Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <string>
- #include <io.h>
- using namespace std;
- FILE* file;
- struct ych {
- char naz[20], fam[20];
- int och;
- } spisok,*sp;
- void create();
- void write();
- void OpenAndShow();
- void show();
- void consolOut();
- int menu();
- int main()
- {
- setlocale(LC_ALL, "rus");
- while (true) {
- switch (menu()) {
- case 1: create(); cout << "Файл создан!" << endl; break;
- case 2: write(); break;
- case 3: OpenAndShow(); break;
- case 4: show(); break;
- case 5: consolOut(); cout << "Результат записан в текстовый файл! " << endl; break;
- case 6: exit(0);
- default: cout << "Выберите правильный вариант";
- }
- }
- }
- int menu() {
- cout << "Выбирайте:" << endl;
- cout << "1. Создать файл" << endl;
- cout << "2. Записать данные в файл" << endl;
- cout << "3. Открыть файл и прочитать данные" << endl;
- cout << "4. Вывести результат на экран" << endl;
- cout << "5. Вывести результат в текстовый файл" << endl;
- cout << "6. Выйти из программы" << endl;
- int i; cin >> i; cin.ignore();
- return i;
- }
- void create() {
- if ((file = fopen("lab9.dat", "wb")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- fclose(file);
- }
- void write() {
- if ((file = fopen("lab9.dat", "ab")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- string answer;
- do {
- cout << "введите название учебного учреждения\t"; cin >> spisok.naz;
- cout << "\nвведите фамилию ученика \t"; cin >> spisok.fam;
- cout << "\nвведите количество набранных очков\t"; cin >> spisok.och; cin.ignore();
- fwrite(&spisok, sizeof(ych), 1, file);
- cout << "\n\tбудете вводить ещё? (yes/no)" << endl;
- cin >> answer; cin.ignore();
- } while (answer == "yes");
- fclose(file);
- }
- void OpenAndShow() {
- if ((file = fopen("lab9.dat", "rb")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n; n = _filelength(_fileno(file)) / sizeof(ych);
- for (int i = 0; i < n; i++)
- {
- fread(&spisok, sizeof(ych), 1, file);
- cout << "\nНазвание учебного заведения: " << spisok.naz;
- cout << "\nФамилия: " << spisok.fam << endl;
- cout << "Колличество очков: " << spisok.och << endl;
- }
- fclose(file);
- }
- void show() {
- if ((file = fopen("lab9.dat", "rb+")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n; n = _filelength(_fileno(file)) / sizeof(ych);
- ych tmp;
- sp = new ych[n];
- fread(sp, sizeof(ych), n, file);
- for (int i = 0; i < n - 1; i++)
- for (int j = i + 1; j < n; j++)
- if (sp[i].och < sp[j].och)
- {
- tmp = sp[j];
- sp[j] = sp[i];
- sp[i] = tmp;
- }
- for (int i = 0; i < n; i++)
- {
- if (strcmp(sp[i].naz, "BSUIR") == 0) {
- cout << "\nНазвание учебного заведения: " << sp[i].naz;
- cout << "\nФамилия: " << sp[i].fam << endl;
- cout << "Количество очков: " << sp[i].och << endl;
- }
- }
- delete[] sp;
- fclose(file);
- }
- void consolOut()
- {
- if ((file = fopen("lab9.dat", "ab+")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n; n = _filelength(_fileno(file)) / sizeof(ych);
- ych tmp;
- sp = new ych[n];
- fread(sp, sizeof(ych), n, file);
- for (int i = 0; i < n - 1; i++)
- for (int j = i + 1; j < n; j++)
- if (sp[i].och < sp[j].och)
- {
- tmp = sp[j];
- sp[j] = sp[i];
- sp[i] = tmp;
- }
- for (int i = 0; i < n; i++)
- {
- if (strcmp(sp[i].naz, "BSUIR") == 0) fwrite(&sp[i], sizeof(ych), 1, file);
- }
- delete[] sp;
- fclose(file);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement