Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.25 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <fstream>
  5. #include <string>
  6. #include <string.h>
  7. #include <windows.h>
  8. #include <cstring>
  9. #include <conio.h>
  10. #include <time.h>
  11. #include <stdlib.h>
  12. #include <ctime>
  13.  
  14.  
  15.  
  16. using namespace std;
  17.  
  18. const int M = 200;
  19. const int L = 200;
  20.  
  21. struct student
  22. {
  23. char name[40];
  24. char gr[10];
  25. int day;
  26. int mout;
  27. int year;
  28. };
  29.  
  30. void inputMasStudentFile(student x[], int& n);
  31. void outputMasstudent(student b[], int size);
  32. void addStudent(student x[], int& n);
  33. void delelteStudent(student x[], int& n);
  34. void sort1_input(student a[], int size);
  35. void sort2_input(student a[], int size);
  36. void sort3_input(student x[], int n);
  37. void poiskstudent(student x[], int n);
  38. void outputMasStudentSort(student y[], int k);
  39. /*void outputMasStudentFileSort(student x[], int n);*/
  40.  
  41. int main()
  42. {
  43. SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода (для ввода русского языка)
  44. SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода (для вывода русского языка)
  45. setlocale(LC_ALL, "rus");
  46. student a[M], b[L];
  47. int m = 0, l = 0, t = 0;
  48. cout << "Введите кол-во записей: ";
  49. cin >> l;
  50. while (1)
  51. {
  52. system("CLS");
  53. cout << " МЕНЮ \n";
  54. cout << "1. Ввести записи из файла.\n";
  55. cout << "2. Вывести исходную таблицу записей на экран.\n";
  56. cout << "3. Добавить студента.\n";
  57. cout << "4. Удалить студента.\n";
  58. cout << "5. Сортировка по дню рождения в порядке возрастания.\n";
  59. cout << "6. Сортировка по дате рождния в порядке возрастания возраста.\n";
  60. cout << "7. Сортировка по ФИО в алфавитном порядке.\n";
  61. cout << "8. Поиск самого старшего студента родившегося летом.\n";
  62. cout << "9. Вывести сортировку на экран.\n";
  63. cout << "10.Вывести сортировку в файл.\n";
  64. /*cout << "11.Вывести результат поиск в файл.\n";*/
  65. cout << "12.Завершить работу.\n";
  66. cout << "Ваш выбор (1-12): ";
  67. cin >> t;
  68. switch (t)
  69. {
  70. case 1: inputMasStudentFile(a, m); break;
  71. case 2: outputMasstudent(a, m); break;
  72. case 3: addStudent(a, m); break;
  73. case 4: delelteStudent(a, m); break;
  74. case 5: sort1_input(a, m); break;
  75. case 6: sort2_input(a, m); break;
  76. case 7: sort3_input(a, m); break;
  77. case 8: poiskstudent(a, m); break;
  78. case 9: outputMasStudentSort(a, m); break;
  79. case 10: outputMasStudentSort(a, m); break;
  80. /*case 11: outputMasStudentFileSort(a, m); break;*/
  81. case 12: cout << "Конец работы.";
  82. system("pause");
  83. return 0;
  84. default: cout << "Нет такого номера меню.\n";
  85. system("pause");
  86. break;
  87. }
  88. }
  89. }
  90.  
  91. void inputMasStudentFile(student x[], int& n)//ввод данных из файла
  92. {
  93. char file[200], iniz[100];
  94. n = 0;
  95. ifstream fin;
  96. cout << "Введите имя входного файла: ";
  97. cin >> file;
  98. strcat_s(file, ".txt");
  99. fin.open(file);
  100. if (fin.fail()) {
  101. cout << "Ошибка! Файл не открывается!\n";
  102. system("pause");
  103. return;
  104. }
  105. while (!fin.eof())
  106. {
  107. fin >> x[n].name >> iniz >> x[n].name >> x[n].year;
  108. strcat_s(x[n].name, " ");
  109. strcat_s(x[n].name, iniz);
  110. n++;
  111. }
  112. //n--;
  113. fin.close();
  114. cout << "Файл введен.\n";
  115. system("pause");
  116. }
  117.  
  118. void outputMasstudent(student b[], int size)
  119.  
  120. {
  121. cout << " _________________________________________ " << endl;
  122. cout << "| ФИО | Группа | Дата рождения |" << endl;
  123. cout << "____________________________________________" << endl;
  124. for (int i = 0; i < size; i++)
  125. {
  126. cout << "|" << setw(20) << b[i].name << "| " << setw(1) << b[i].day << "." << setw(1) << b[i].mout << "." << setw(4) << b[i].year << " |" << endl;
  127. }
  128.  
  129. }
  130.  
  131. void addStudent(student x[], int& n)//добавление строки
  132. {
  133. student t;
  134. char iniz[100];
  135. if (n == M) {
  136. cout << "Массив заполнен!\n";
  137. system("pause");
  138. return;
  139. }
  140. cout << "Фамилия: ";
  141. cin >> t.name;
  142. cout << "Инициалы: ";
  143. cin >> iniz;
  144. strcat_s(t.name, " ");
  145. strcat_s(t.name, iniz);
  146. cout << "Название: ";
  147. cin >> t.name;
  148. cout << "Год издания:\n";
  149. cin >> t.year;
  150. system("pause");
  151. cout << "Запись добавлена.\n";
  152. x[n] = t;
  153. n = n + 1;
  154. system("pause");
  155. }
  156.  
  157. void delelteStudent(student x[], int& n)
  158. {
  159. int i, j;
  160. char ch[8];
  161. outputMasstudent(x, n);
  162. cout << "Номер удаляемой строки: ";
  163. cin >> j;
  164. j--;
  165. if (j < 0 || j >= n) {
  166. cout << "Нет такой строки!\n";
  167. system("pause");
  168. return;
  169. }
  170. cout << j + 1 << "-я строка:\n";
  171. cout << x[j].name << " " << x[j].year << " " << endl;
  172. cout << "Удалить: yes/ no?";
  173. cin >> ch;
  174. if (strcmp(ch, "no") == 0) return;
  175. if (strcmp(ch, "yes") != 0) {
  176. cout << "Неправильно введен ответ!\n";
  177. system("pause");
  178. return;
  179. }
  180. for (i = j + 1; i < n; i++)
  181. x[i - 1] = x[i];
  182. n--;
  183. cout << "Запись удалена.\n";
  184. system("pause");
  185. }
  186.  
  187. void sort1_input(student a[], int size)
  188.  
  189. {
  190. {
  191. for (int i = 0; i < size; i++)
  192. for (int j = 0; j < size - i; j++)
  193. if (a[j].day < a[j + 1].day)
  194. {
  195. student c = a[j + 1];
  196. a[j + 1] = a[j];
  197. a[j] = c;
  198. }
  199. }
  200. system("pause");
  201. }
  202.  
  203. void sort2_input(student a[], int size)
  204. {
  205. for (int i = 0; i < size; i++)
  206. for (int j = 0; j < size - i; j++)
  207. if (a[j].day > a[j + 1].day)
  208. {
  209. student c = a[j + 1];
  210. a[j + 1] = a[j];
  211. a[j] = c;
  212. }
  213. else if ((a[j].year == a[j + 1].year) && (a[j].mout < a[j + 1].mout))
  214. {
  215. student c = a[j + 1];
  216. a[j + 1] = a[j];
  217. a[j] = c;
  218. }
  219. else if ((a[j].mout == a[j + 1].mout) && (a[j].day < a[j + 1].day))
  220. {
  221. student c = a[j + 1];
  222. a[j + 1] = a[j];
  223. a[j] = c;
  224. }
  225. system("pause");
  226. }
  227.  
  228. void sort3_input(student x[], int n)
  229. {
  230. for (int i = 0; i < n; i++)
  231. for (int j = 0; j < n; j++)
  232. if ((strcmp(x[j].name, x[j + 1].name) > 0))
  233. {
  234. student c = x[j + 1];
  235. x[j + 1] = x[j];
  236. x[j] = c;
  237. }
  238. system("pause");
  239. }
  240.  
  241. void poiskstudent(student x[], int n )
  242. {
  243. int max = 0;
  244. int j = 0;
  245. for (int i; i < n; i++)
  246. {
  247. if (x[i].mout > 5 && x[i].mout < 9)
  248. {
  249. if (x[i].mout > max)
  250. {
  251. max = x[i].mout;
  252. j = i;
  253. }
  254. }
  255. }
  256. cout << " _______________________________________________________________________\n";
  257. cout << "| Найденный студент |\n";
  258. cout << "|______________________________________________________________________|\n";
  259. cout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
  260. cout << "|" << setw(20) << x[j].name << "| " << setw(20) << x[j].gr << "| " << setw(1) << x[j].day << "." << setw(1) << x[j].mout << "." << setw(4) << x[j].year << " |" << endl;
  261. cout << "|______________________________________________________________________|\n";
  262. system("pause");
  263. }
  264.  
  265. void outputMasStudentSort(student y[], int k)
  266. {
  267. cout << " _______________________________________________________________________\n";
  268. cout << "| Список студентов |\n";
  269. cout << "|______________________________________________________________________|\n";
  270. cout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
  271. for (int i = 0; i < k; i++)
  272. cout << "|" << setw(20) << y[i].name << "| " << setw(20) << y[i].gr << "| " << setw(1) << y[i].day << "." << setw(1) << y[i].mout << "." << setw(4) << y[i].year << " |" << endl;
  273. cout << "|______________________________________________________________________|\n";
  274. system("pause");
  275. }
  276.  
  277. void outputMasStudentFileSort(student x[], int n)//вывод в файл сортировки
  278. {
  279. char file[200];
  280. ofstream fout;
  281. cout << "Введите имя выходного файла: ";
  282. cin >> file;
  283. strcat_s(file, ".txt");
  284. fout.open(file);
  285. if (fout.fail()) {
  286. cout << "Ошибка! Файл не открывается!\n";
  287. system("pause");
  288. return;
  289. }
  290. fout << " _______________________________________________________________________\n";
  291. fout << "| Список студентов |\n";
  292. fout << "|______________________________________________________________________|\n";
  293. fout << "| Фамилия и инициалы | Группа | Дата рождения |\n";
  294. for (int i = 0; i < n; i++)
  295. fout << "|" << setw(20) << x[i].name << "| " << setw(20) << x[i].gr << "| " << setw(1) << x[i].day << "." << setw(1) << x[i].mout << "." << setw(4) << x[i].year << " |" << endl;
  296. fout << "|______________________________________________________________________|\n";
  297. system("pause");
  298. cout << "Массив выведен в файл " << file << ".\n";
  299. system("pause");
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement