Advertisement
fabis_sparks

Lab3

May 22nd, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.57 KB | None | 0 0
  1. // Lab3.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdio.h>
  6. #include <iostream>
  7. #include <string.h>
  8. #include <conio.h>
  9. #include <cstdlib>
  10. #include <fstream>
  11.  
  12. #define filename "studs.txt"
  13.  
  14. void filewrite(void); // Запись в файл
  15. void fileread(void); // Чтение из файла
  16. void fileedit(void); // Редактирование файла
  17. void filedelete(void); // Удаление инфы из файла
  18. void fileexist(void); // Проверка на существование файла
  19. void filecreate(void); // Создание файла
  20.  
  21. const int ch = 10; // Кол-во студентов
  22. FILE *f;
  23. struct stds { // Структура для студентов и баллов
  24.     char lname[50];
  25.     int mark;
  26. } student[ch];
  27. /*
  28. struct stds_sorted { // Структура для студентов и баллов
  29.     char lnam[50];
  30.     int mar[1];
  31. } student_sorted[ch];
  32. */
  33.  
  34. using namespace std;
  35. int main()
  36. {
  37.     setlocale(LC_ALL, "Russian");
  38.    
  39.     int choice;
  40.     cout << "Выберите нужную опцию: \n";
  41.     cout << "1. Создать файл \n";
  42.     cout << "2. Записать данные в файл \n";
  43.     cout << "3. Прочитать данные из файла \n";
  44.     cout << "4. Редактировать файл \n";
  45.     cout << "5. Удалить файл \n";
  46.     cout << "6. Выход \n\n";
  47.    
  48.     cout << "Введите цифру:";
  49.     cin >> choice;
  50.     switch (choice) {
  51.     case 1: {
  52.         filecreate();
  53.         break;
  54.  
  55.     }
  56.     case 2: {
  57.         filewrite();
  58.         break;
  59.  
  60.     }
  61.     case 3: {
  62.         fileread();
  63.         break;
  64.     }
  65.     case 4: {
  66.         fileedit();
  67.         break;
  68.  
  69.     }
  70.     case 5: {
  71.         filedelete();
  72.         break;
  73.     }
  74.     case 6: {
  75.         return 0;
  76.     }
  77.     default: {
  78.         system("cls");
  79.         cout << "Нет такой опции. Сделай выбор заново \n";
  80.         main();
  81.  
  82.     }
  83.     }
  84.     system("pause");
  85.     return 0;
  86. }
  87.  
  88. void filewrite()
  89. {
  90.     fileexist();
  91.  
  92.     for (int i=0;i<ch;i++)
  93.     {
  94.         cout << "Введите фамилию студента №" << i + 1 << ":";
  95.         cin >> student[i].lname;
  96.         int temp = rand() % 4 + 2;
  97.         cout << temp;
  98.         student[i].mark = temp;
  99.     }
  100.     for (int i = 0;i < ch;i++) fwrite(&student[i], sizeof(struct stds), 1, f);
  101.     fclose(f);
  102. }
  103.  
  104. void fileread(void)
  105. {
  106.     if ((f = fopen(filename, "r")) == NULL) {
  107.         system("cls");
  108.         cout << "Файла не существует. Создайте для начала файл.\n\n";
  109.         main();
  110.     }
  111.     else {
  112.         int num = 0,i;
  113.         for ( i = 0;i < ch;i++) {
  114.             if (fread(&student[i], sizeof(struct stds), 1, f) != ferror(f)) num++;
  115.             else break;
  116.         }
  117.         for (i = 0;i < ch;i++) {
  118.             cout << student[i].lname << "\t" << student[i].mark << "\n";
  119.         }
  120.     }
  121.  
  122. }
  123.  
  124. void fileedit(void)
  125. {
  126.     if ((f = fopen(filename, "r")) == NULL) {
  127.         system("cls");
  128.         cout << "Файла не существует. Создайте для начала файл.\n\n";
  129.         main();
  130.     }
  131.     cout << "Сколько человек добавить?";
  132.     int pp, i;
  133.     cin >> pp;
  134.     for(i=0;i<pp;i++)
  135.  
  136.  
  137.  
  138. }
  139.  
  140. void filedelete(void)
  141. {
  142.     fileexist();
  143. }
  144.  
  145. void fileexist(void)
  146. {
  147.     ofstream outfile;
  148.     FILE *f = fopen(filename, "r");
  149.     if (f == NULL) outfile.open(filename);
  150.     else {
  151.         system("cls");
  152.         cout << "Файл уже существует.\n"; // Вывести сообщение о успехе создания?
  153.         //main();
  154.     }
  155.  
  156.  
  157. }
  158.  
  159. void filecreate(void)
  160. {
  161.     ofstream outfile;
  162.     FILE *f = fopen(filename, "r");
  163.     if (f == NULL) outfile.open(filename);
  164.     else {
  165.         system("cls");
  166.         cout << "Файл уже существует.\n\n";
  167.         main();
  168.     }
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement