Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как правильно создать функцию? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с zip архивами http://www.cyberforum.ru/cpp-beginners/thread692114.html
Кто-нибудь знает хорошую библиотеку?
C++ Перевод чисел из 10очной системы счисления в 3ую Это схема: http://s60.***********/i168/1211/6f/70dd775c9ead.jpg Суть программы пользователь вводит число она считает и выводит остатки в обратном порядке. У меня опыта не хватает сделать чистый... http://www.cyberforum.ru/cpp-beginners/thread692095.html
вычислить значение функции, используя ряд тейлора C++
Написать программу на языке C в среде Microsoft Visual Studio 2010 C++, реализующую предложенное вариантом задание (вычислить значение функции, используя ряд тейлора). Исходные данные задаются путем...
Объекты и классы C++
Добрый день . Помогите написать пожалуйста ... Пункт приема платежей за проезд по автостраде. Платеж составляет 50 рублей, но есть машины, которые проезжают бесплатно. Необходимо написать...
C++ Обходы графа http://www.cyberforum.ru/cpp-beginners/thread692073.html
Ребят, помогите с курсачом по Дискретной математике. Задача у меня такая: Имеется N городов, соединенных сетью дорог. Заданы длины участков дорог между парами городов. Спроектировать структуру...
C++ Выражения из скобок Построить все правильные скобочные выражения . На входе число - на выходе все строки Например 2 () 4 ()() (()) 6 ()()() ()(()) подробнее

Показать сообщение отдельно
nohope
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 1

Как правильно создать функцию? - C++

08.11.2012, 14:52. Просмотров 270. Ответов 0
Метки (Все метки)

Задание звучит так:
Создайте текстовой файл, содержащий сведения об ассортименте игрушек в магазине: название игрушки, артикул, цена, страна производитель, для кого предназначена игрушка (мальчикам или девочкам или тем и другим). Напишите программу, которая формирует двоичный файл, каждый элемент которого является структурой, составленной на основе данных текстового файла. Отсортируйте данные бинарного файла в порядке убывания цены и выведите на экран информацию об игрушках для категории X и страны производителя Y.

Объясните как правильно создать функцию, которая будет выводить на экран информацию об игрушках по стране и полу

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <clocale>
using namespace std;
struct Tutors
{
char nazvanie[20];
char articul[20];
char cena[20];
char strana[10];
char maldev[10];
};
// функция вывода на экран содержимого файла
void outfile(fstream& f, int n)
{
Tutors a;
f.seekg(0);// установить указатель файла на начало
cout<<setw(26)<<"Название игрушки|"<<setw(9)<<"Артикул|"<<setw(7)<<"Цена|"<<setw(10)<<"Страна|"<<setw(11)<<"Мал./Дев.|"<<endl; 
cout<<setw(63)<<" _______________________________________________________"<<endl;
for(int i=0; i<n; i++)
{
f.read((char *)&a,sizeof a);// чтение из файла 
cout<<setw(25)<<a.nazvanie<<"|"<<setw(8)<<a.articul<<"|"<<setw(6)<<a.cena<<"|"<<setw(9)<<a.strana<<"|"<<setw(10)<<a.maldev<<"|";
cout<<endl;
}
}
// функция чтения данных из текстового файла и запись данных в бинарный файл
int read_f(fstream &f, fstream &out)
{
int i=0;Tutors a;
while(!f.eof())// пока не конец файла
{
f>>a.nazvanie>>a.articul;f>>a.cena;f>>a.strana>>a.maldev;
out.write((char *) &a, sizeof a);
i++;
}
return i;
}
// функция сортировки в порядке убывания
void sort(fstream &f,int n)
{
Tutors max,a;
int n_max;
for(int i=0;i<n;i++)
{
f.seekg(i*(sizeof a));
f.read((char *)&max,sizeof max);
n_max=i;
for(int j=i+1;j<n;j++)
{
f.read((char *)&a,sizeof a);
if(strcmp(a.cena,max.cena)>0) 
{
max=a;
n_max=j;
} } 
f.seekg(i*(sizeof a));
f.read((char *) &a,sizeof a);
f.seekp(i*(sizeof a));
f.write((char *) &max,sizeof max);
f.seekp(n_max*(sizeof a));
f.write((char *) &a,sizeof a);
 
}
}
// функция формирования нового файла по стране и полу
int IsStranaMaldev(fstream &f,fstream &f_new,int n,char c, char d)
{
    int k=0;
    Tutors a;
    f.seekg(0);f_new.seekp(0);
    for(int i=0;i<n;i++)
    {
        f.read((char *) &a, sizeof a); 
        int srticmp(char *c[10], char *d[10]);
        {
            k++;
            f_new.write((char *) &a,sizeof a);
            
        }
    }
    return k;  }
 
int main()
{
setlocale(LC_CTYPE,"Russian");
fstream in ("data.txt", ios::in);
if(!in)
{
cout<<"не открыт data.txt"<<endl;
return 1;
}
fstream out ("data.dat", ios::out | ios::binary);
if(!in.is_open())
{
cout<<"не открыт data.dat"<< endl;
return -1;
}
int size_f=read_f(in,out);
in.close();out.close();
fstream out_f ("data.dat", ios::in | ios::out | ios::binary);
if(!out_f)
{
cout<<"не открыт data.dat"<<endl;
return 1;
} 
 
outfile(out_f,size_f);
sort(out_f,size_f);
cout<<endl;
fstream out_f2 ("data2.dat", ios::out | ios::binary);
if(!out_f2.is_open())
{
cout<<"не открыт data2.dat"<< endl;
return -1;
}
out_f2.close();
fstream out_f1 ("data2.dat", ios::in |  ios::out | ios::binary);
    if(!out_f1)
    {
        cout<<"не открыт data2.dat"<<endl;
        return 1;
    }
    char c,d;
    cout<<"Введите страну>";
    cin>>c;
    cout<<"Введите пол>";
    cin>>d;
 
outfile(out_f1,IsStranaMaldev(out_f,out_f1,size_f, c,d));
out_f.close();out_f1.close();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru