Кто может помочь выполнить хотя б 4 пункт? Буду очень благодарен. Вот код, который я уже сделал
C++ |
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
| #include <iostream>
#include <fstream>
#include <random>
#include <ctime>
#include <cstdlib>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <random>
#include <ctime>
#include <cstdlib>
#include <windows.h>
int main()
{
using namespace std;
srand((int)time(NULL));
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
cout << "\n\n";
cout << "\t # # # # # # # # # # # # # # # #" << endl;
cout << "\t # (1)Відкрити файл #" << endl; //OK
cout << "\t # (2)Зберегти зміни у файлі #" << endl; //OK
cout << "\t # (3)Згенерувати файл #" << endl; //OK
cout << "\t # (4)Записати задану кількість чисел #" << endl;
cout << "\t # (5)Видалити задану кількість чисел #" << endl;
cout << "\t # (6)Відсотрувати елементи #" << endl;
cout <<"\t # (7)Закрити файл та зберегти зміни #" << endl;
cout << "\t # # # # # # # # # # # # # # # #" << "\n\n\n";
int countReadFromFile = 0;
int count = 0;
double x = 0;
double number = 0;
int range = 0;
double curnum;
double randomNumber = 0;
double sumOFrandomNumber = 0;
double average = 0;
int choiceInMenu = 0;
ofstream out; // object that allows to write to file
ifstream in;
while (true)
{
cout << "\t#Enter your choice: ";
cin >> choiceInMenu;
switch (choiceInMenu)
{
case 1: //Відкриття файлу, імя якого задається із клавіатури.
char fileName[20];
cout << "\t#Give a name to FILE: ";
cin >> fileName;
out.open(fileName, ios::binary | ios::app); // створення файлу та задання імені
cout << "\t#file <" << fileName << "> created !" << endl;
break;
case 2: //Збереження змін у файлі.
out.flush();
break;
case 3:
cout << "\t#How match numbers you want to generate ? : ";
cin >> number;
cout << "\t#Enter range: ";
cin >> range;
cout << "\n\n\n\tRESULT :::::::::::::::::::::::::::::::::::::::::::";
cout << "\n\t#Randomly generated ...\n";
out.write((char *)&number, sizeof(number)); //write number
count = number;
while (number > 0) //Записуємо згенеровані числа в файл
{
randomNumber = 1.0 * (rand() % range);
sumOFrandomNumber += randomNumber;
number--;
out.write((char *)&randomNumber, sizeof(randomNumber));
cout << "\trand " << randomNumber;
}
average = sumOFrandomNumber / count;
cout << "\n\tAverange is : " << average << endl;
out.write((char *)&average, sizeof(average)); //write average
cout << "\n\t#Writing to file COUNT OF NUMBERS\\RANDOM NUMBERS\\AVERAGE" << endl;
out.close();
cout << endl;
in.open(fileName, ios::binary | ios::in);
cout << "\t#Reading from file «" << fileName << "» ..." << endl;
while (!in.eof())
{
in.read((char*)&x, sizeof(x));
cout << "\trand " << x;
++countReadFromFile;
if (countReadFromFile >= (count + 2)) //Щоб не зчитувати останнє значення 2 рази
{
countReadFromFile = 0;
break;
}
}
in.close();
break;
case 4:
cout << "Задайте кількість чисел:" << endl;
cin >> number;
out.write((char *)&number, sizeof(number));
while(number>0){
cout << "Задайте число:" << endl;
cin >> curnum;
out.write((char *)&curnum, sizeof(curnum));
number--;
}
in.open(fileName, ios::binary | ios::in);
while (!in.eof())
{
in.read((char*)&x, sizeof(x));
cout << "\t" << x;
++countReadFromFile;
if (countReadFromFile >= (count + 2)) //Щоб не зчитувати останнє значення 2 рази
{
break;
}
}
break;
case 5:
break;
case 6:
break;
case 7: //Закриття файлу та збереження змін у ньому.
out.flush();
out.close();
break;
default:
cout << " ERROR !" << endl;
break;
}
cout << "\n\n\tFor EXIT press \'e\' , to continue press ANY OTHER KEY: ";
char exitFromProgramm = '0';
cin >> exitFromProgramm;
if (exitFromProgramm == 'e')
{
break;
}
}
} |
|
Добавлено через 1 минуту
Вот задание:
Написать программу обработки бинарного файла, предусмотрев следующие пункты меню, сформированные с помощью оператора выбора:
1. Открытие файла, имя которого задается с клавиатуры.
2. Сохранение изменений в файле.
3. Генерация исходного файла с использованием генератора случайных чисел. Структура файла следующая: первое число - целое, задает количество чисел, которые в нем записаны; дальше следуют сгенерированные в заданном диапазоне действительные числа (диапазон задается с клавиатуры) последним числом является среднее значение чисел, хранящихся в файле.
4. Запись в файл заданного количества чисел (начиная с заданной позиции), значения которых задаются с клавиатуры.
5. Удаление с файла заданного количества чисел, начиная с заданной позиции.
6. Сортировка элементов файла по убыванию без использования массивов.
7. Закрытие файла и сохранения изменений в нем.