fork download
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <fstream>
  5. #include <vector>
  6. #include<conio.h>
  7. #include<windows.h>
  8. using namespace std;
  9. FILE *f;
  10. struct Student //Структура Студент
  11. {
  12. char Family[35]; //Фамилия студента
  13. char Name[35]; //Имя студента
  14. char Sex[20]; //Пол студента
  15. char City[100]; //Город рождения студента
  16. int Date[3]; //Дата рождения студента
  17. void Show(); //Функция будет отображать данные студента
  18. void Input(); //Функция ввода данных в структуру
  19. void Year(const int Date1, const int Date2);//нужные года
  20. void Gorod();//пока не испотльзую и не буду наверн
  21. int god;//год
  22. };
  23.  
  24. void gotoxy(int x, int y)
  25. {
  26. COORD c = { x, y };
  27. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
  28. }
  29. void Student::Input() //ЗАПИСЬ В ФАЙЛ Функцию объявленную внутри структуры можно использовать вне структуры таким вот образом
  30. {
  31. system("cls");
  32. cout << "\n";
  33. cout << "===========================================================================\n";
  34. cout << "|Family |Name |Sex |Date born |City \n";
  35. cout << "===========================================================================\n";
  36. cout << "| | | | | \n";
  37. cout << "===========================================================================\n";
  38.  
  39.  
  40.  
  41. int y;
  42. //gotoxy(1, 1);
  43. //cout << "\n\n";
  44. gotoxy(1, 2); // используя gotoxy перемещаемся по таблице
  45. cout << "Family";
  46. gotoxy(1, 4);
  47. //cin.getline(Family, 35); //Считали фамилию
  48. gets_s(Family); fprintf(f, "%s\n", Family);
  49. gotoxy(16, 2);
  50. cout << "Name";
  51. gotoxy(16, 4);
  52. //cin.getline(Name, 35); //Считали имя
  53. gets_s(Name); fprintf(f, "%s\n", Name);
  54.  
  55. int k;
  56. gotoxy(31, 2);
  57. cout << "Sex Female/Male";//Выбираем пол "Sex chouse 1=Male ,2 =Female"
  58. gotoxy(31, 4);
  59. /*cin >> k;
  60. if (k == 1)
  61. strcpy(Sex, "Male");
  62. else
  63. strcpy(Sex, "Female");
  64. */
  65. gets_s(Sex); fprintf(f, "%s\n", Sex);
  66. gotoxy(52, 2);
  67. cout << "Date born"; // вводим дату рождения через пробел
  68. gotoxy(52, 4);
  69. //cin >> Date[0]; //Дата внутри структуры является массивом, поэтому обращение с индексом
  70. // cin.ignore(); cin.ignore();
  71. cin >> Date[0]; fprintf(f, "%d\n", Date[0]);
  72. // cin >> Date[1];
  73. gotoxy(55, 4);
  74. cin.ignore();
  75. cin >> Date[1]; fprintf(f, "%d\n", Date[1]);
  76. gotoxy(58, 4);
  77.  
  78. cin >> Date[2]; fprintf(f, "%d\n", Date[2]);
  79. cin.ignore();
  80.  
  81. gotoxy(65, 2);
  82. cout << "City";
  83. gotoxy(65, 4);
  84.  
  85. gets_s(City); fprintf(f, "%s\n", City);
  86. cout << "\n\n";
  87. cout << "======================\n";
  88.  
  89. }
  90.  
  91. void Student::Show() //Функция показывает данные структуры на экране
  92. {
  93.  
  94. cout << "Student \n";
  95. fprintf(f, "%s\n", Family);
  96. fprintf(f, "%s\n", Name);
  97. fprintf(f, "%s\n", Sex);
  98. fprintf(f, "%d\n", Date[0]);
  99. fprintf(f, "%d\n", Date[1]);
  100. fprintf(f, "%d\n", Date[2]);
  101. fprintf(f, "%s\n", City);
  102. cout << Name << " " << Family << "\n" << "Sex: " << Sex << "\nBorn in " << Date[0] << "." << Date[1] << "." << Date[2] << "\n";
  103. cout << "In the city which is called " << City << "\n\n";
  104.  
  105.  
  106.  
  107. }
  108.  
  109. void Student::Year(const int Date1, const int Date2) //Внутри функции ничего менять не планируется, поэтому константы
  110. {
  111. if ((Date[2] >= Date1) && (Date[2] <= Date2)) Show(); //Проверка принадлежности диапазону и при вхождении в диапазон вывод элемента структуры на экран
  112. };
  113.  
  114.  
  115. int prompt_menu_item()
  116. {
  117. // Выбранный вариант меню
  118. int variant;
  119. cout << "Choose you variant\n" << endl;
  120. cout << "1. Men born in towns НЕ ТООООО\n" //этот пункт не нужен я его потом должен убрать
  121. << "2. Only girls\n" //только девушки
  122. << "3. All students born in years\n" //список всех студентов родившихся в годах с какого то по какой то, вводим с клавы
  123. << "4. Men born in towns\n" << endl; // список юношей родившихся в городе, вводим с клавы
  124. cout << ">>> ";
  125. cin >> variant;
  126. return variant;
  127. }
  128.  
  129.  
  130. int main()
  131. {
  132. char Gorod[20];
  133.  
  134.  
  135. int N; //Количество элементов в структуре
  136. cout << "Enter amount students = "; cin >> N; cin.ignore();
  137. Student* student = new Student[N]; //
  138. cout << "Enter information about students in English\n";
  139.  
  140. cout << "File name? ";
  141. char s[50];
  142. cin.getline(s, 50);
  143. f = fopen("s.txt", "a+");
  144. for (int i = 0; i < N; i++) student[i].Input(); //ЭТО И ЕСТЬ ЗАПИСЬ В ФАЙЛ С помощью цикла заполняем структуру, вызывая метод структуры.
  145. fclose(f);
  146. setlocale(LC_ALL, "Rus");
  147.  
  148. while (true){
  149. int variant = prompt_menu_item();
  150. switch (variant) {
  151. case 1:
  152. cout << "\nEnter need town:";
  153. (cin >> Gorod).get();
  154. for (int i = 0; i < N; i++)
  155. if (strcmp(student[i].Sex, "Male") == 0 && strcmp(student[i].City, Gorod) == 0)
  156. {
  157. student[i].Show();// показываем всех пацанов с района
  158. }
  159. system("pause");
  160. break;
  161.  
  162. case 2:
  163.  
  164. char f4[20];
  165. FILE *z1;
  166.  
  167. cout << "\nВведите имя файла для чтения: ";
  168.  
  169. //fscanf(v, "%d", &m);
  170. cin >> f4;
  171.  
  172. z1 = fopen(f4, "r");
  173. for (int i = 0; i < N; i++)
  174. fscanf(z1, "%s%s%s%d%d%d%s", &student[i].Family, &student[i].Name, &student[i].Sex, &student[i].Date[0], &student[i].Date[1], &student[i].Date[2], &student[i].City);
  175. cout << "\nЧтение из файла " << f4 << ":\n";
  176. for (int i = 0; i < N; i++)
  177. cout << student[i].Family << " " << student[i].Name << " " << student[i].Sex << " " << student[i].Date[0] << "." << student[i].Date[1] << "." << student[i].Date[2] << " " << student[i].City << "\n";
  178.  
  179. cout << "File name? ";
  180. char girls[50];
  181. cin.getline(girls, 50);
  182. f = fopen("girls.txt", "a+");
  183. for (int i = 0; i < N; i++)
  184. if (strcmp(student[i].Sex, "Female") == 0)
  185. {
  186. student[i].Show();
  187. }
  188. fclose(f); //С помощью цикла показываем всех девочек.
  189. system("pause");
  190. break;
  191.  
  192. case 3:
  193. char f3[20];
  194. FILE *z;
  195.  
  196. cout << "\nВведите имя файла для чтения: ";
  197.  
  198. //fscanf(v, "%d", &m);
  199. cin >> f3;
  200.  
  201. z = fopen(f3, "r");
  202. for (int i = 0; i < N; i++)
  203. fscanf(z, "%s%s%s%d%d%d%s", &student[i].Family, &student[i].Name, &student[i].Sex, &student[i].Date[0], &student[i].Date[1], &student[i].Date[2], &student[i].City);
  204. cout << "\nЧтение из файла " << f3 << ":\n";
  205. for (int i = 0; i < N; i++)
  206. cout << student[i].Family << " " << student[i].Name << " " << student[i].Sex << " " << student[i].Date[0] << "." << student[i].Date[1] << "." << student[i].Date[2] << " " << student[i].City << "\n";
  207.  
  208.  
  209. cout << "File name? ";
  210. char years[50];
  211. cin.getline(years, 50);
  212. f = fopen("years.txt", "a+");
  213. int o, p;
  214. cout << "Enter need yaers\t";
  215. cin >> o; cin >> p; // ввод нужных годов
  216. for (int i = 0; i < N; i++)
  217. {
  218. student[i].Year(o, p); //Выводим студентов, которые родились в нужные года
  219. cin.get();
  220. }
  221. fclose(f);
  222. system("pause");
  223. break;
  224.  
  225. case 4: //Чтение из файла
  226. char f2[20];
  227. FILE *v;
  228.  
  229. cout << "\nВведите имя файла для чтения: ";
  230.  
  231. //fscanf(v, "%d", &m);
  232. cin >> f2;
  233.  
  234. v = fopen(f2, "r");
  235. for (int i = 0; i < N; i++)
  236. fscanf(v, "%s%s%s%d%d%d%s", &student[i].Family, &student[i].Name, &student[i].Sex, &student[i].Date[0], &student[i].Date[1], &student[i].Date[2], &student[i].City);
  237. cout << "\nЧтение из файла " << f2 << ":\n";
  238. for (int i = 0; i < N; i++)
  239. cout << student[i].Family << " " << student[i].Name << " " << student[i].Sex << " " << student[i].Date[0] << "." << student[i].Date[1] << "." << student[i].Date[2] << " " << student[i].City << "\n";
  240.  
  241.  
  242.  
  243. cout << "File name? ";
  244. char s[50];
  245. cin.getline(s, 50);
  246. f = fopen("men.txt", "a+");
  247. cout << "\nEnter need town:";
  248. (cin >> Gorod).get();
  249. for (int i = 0; i < N; i++)
  250. if (strcmp(student[i].Sex, "Male") == 0 && strcmp(student[i].City, Gorod) == 0)
  251. {
  252.  
  253. student[i].Show(); // показываем всех пацанов с района
  254. }
  255. fclose(f);
  256. //system("pause");
  257.  
  258. break;
  259. }
  260. }
  261. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:6:18: fatal error: conio.h: No such file or directory
compilation terminated.
stdout
Standard output is empty