Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.59 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. #include<locale.h>
  5. #include<windows.h>
  6. #include<iostream>
  7. struct scholnik
  8. {
  9. char surename[80];
  10. char name[80];
  11. char fathern[80];
  12. char klass[80];
  13. char tel[80];
  14. int mat;
  15. int phys;
  16. int rus;
  17. };
  18. struct scholnik scho[30],t;
  19. int sch=0;
  20. int menu();
  21. void input();
  22. void sort();
  23. int search();
  24. void change();
  25. void deleting() ;
  26. void output();
  27.  
  28. int main()
  29. {
  30. SetConsoleCP(1251);
  31. SetConsoleOutputCP(1251);
  32. setlocale(LC_ALL, "Russian");
  33. while (1)
  34. {
  35. switch (menu())
  36. {
  37. case 1: input();break;
  38. case 2: sort();break;
  39. case 3: search();break;
  40. case 4: change();break;
  41. case 5: deleting();break;
  42. case 6: output();break;
  43. case 7: return 0;
  44. default: printf ("Неверный выбор \n");
  45. }
  46. }
  47. getch();
  48. return 0;
  49. }
  50. int menu()
  51. {
  52. int ch;
  53. do {
  54. printf("\n Меню: \n");
  55. printf("1. Ввод массива структур \n");
  56. printf("2. Сортировка массива структур \n");
  57. printf("3. Поиск в массиве структур по заданному параметру \n");
  58. printf("4. Изменение заданной структуры \n");
  59. printf("5. Удаление структуры из массива \n");
  60. printf("6. Вывод на экран массива структур \n");
  61. printf("7. Выход \n");
  62. printf("\t Ваш выбор: ");
  63. scanf("%d",&ch);
  64. }
  65. while(ch>7);
  66. return ch;
  67. }
  68. void input()
  69. {
  70. int i,k=0;
  71. printf("Введите количество школьников: ");
  72. scanf("%d", &k);
  73. for (i=0; i<k; i++)
  74. {
  75. printf("Запись номер: %d\n",sch+1);
  76. puts("Введите фамилию: ");
  77. fflush(stdin);
  78. gets(scho[i].surename);
  79. puts("Введите имя: ");
  80. fflush(stdin);
  81. gets(scho[i].name);
  82. puts("Введите отчество:");
  83. fflush(stdin);
  84. gets(scho[i].fathern);
  85. puts("Введите класс:");
  86. fflush(stdin);
  87. gets(scho[i].klass);
  88. puts("Введите номер телефона:");
  89. scanf("%s", &scho[i].tel);
  90. puts("Введите оценку по математике:");
  91. scanf("%d", &scho[i].mat);
  92. puts("Введите оценку по физике:");
  93. scanf("%d", &scho[i].phys);
  94. puts("Введите оценку по русскому языку:");
  95. scanf("%d", &scho[i].rus);
  96. sch++;
  97. printf("\n");
  98. }
  99. }
  100. void output()
  101. {
  102. setlocale(LC_ALL, "Russian");
  103. int i=0,k,sw=0;
  104. if (scho[i].surename==0)
  105. printf("\nНет записей");
  106. else
  107. printf("\nВведите: ");
  108. printf("\nl - для вывода одной записи\n");
  109. printf("2 - для вывода всех записей\n");
  110. scanf("%d",&sw);
  111. if(sw==1)
  112. {
  113. printf("Номер записи, которую требуется вывести\n");
  114. scanf_s("%d",&k);
  115. if (k>sch) printf("Нет записи, которую требуется вывести\n");
  116. else
  117. {
  118. printf("\n");
  119. puts(scho[k-1].surename);
  120. puts(scho[k-1].name);
  121. puts(scho[k-1].fathern);
  122. printf("Класс: %s \n", scho[k-1].klass);
  123. printf("Номер телефона: %s \n", scho[k-1].tel);
  124. printf("Оценка по математике: %d\n",scho[k-1].mat);
  125. printf("Оценка по физике: %d\n", scho[k-1].phys);
  126. printf("Оценка по русскому языку: %d\n",scho[k-1].rus);
  127. }
  128. }
  129. else if(sw==2)
  130. for(int i=0;i<sch;i++)
  131. {
  132. printf("\n\n");
  133. puts(scho[i].surename);
  134. puts(scho[i].name);
  135. puts(scho[i].fathern);
  136. printf("Класс: %s \n", scho[i].klass);
  137. printf("Номер телефона: %s \n", scho[i].tel);
  138. printf("Оценка по математике: %d\n",scho[i].mat);
  139. printf("Оценка по физике: %d\n", scho[i].phys);
  140. printf("Оценка по русскому языку: %d\n",scho[i].rus);
  141. }
  142. }
  143. void sort()
  144. {
  145. int i,j=0;
  146. if (sch==0) printf("\nНе найдено ни одной записи.\n");
  147. else
  148. {
  149. for (i=0; i<sch; i++)
  150. for (j=i+1; j<sch; j++)
  151. if (strcmp(scho[i].surename, scho[j].surename)>0)
  152. {
  153. t=scho[i];
  154. scho[i]=scho[j];
  155. scho[j]=t;
  156. }
  157. }
  158. printf("Записи отсортированы по алфавиту фамилий.\n");
  159. printf("Получили: \n");
  160. for (i=0; i<sch; i++)
  161. {
  162. puts(scho[i].surename);
  163. puts(scho[i].name);
  164. puts(scho[i].fathern);
  165. printf("Класс: %s \n", scho[i].klass);
  166. printf("Номер телефона: %s \n", scho[i].tel);
  167. printf("Оценка по математике: %d\n",scho[i].mat);
  168. printf("Оценка по физике: %d\n", scho[i].phys);
  169. printf("Оценка по русскому языку: %d\n",scho[i].rus);;
  170. printf("\n");
  171. }
  172. }
  173. void change()
  174. {
  175. int c;
  176. if (sch==0)
  177. printf("\nНе найдено ни одной записи.\n");
  178. else
  179. printf ("\nВведите номер записи\n");
  180. scanf("%d",&c);
  181. printf("Веведите новую фамилию: \n");
  182. fflush(stdin);
  183. gets(scho[c-1].surename);
  184. printf("Веведите новое имя: \n");
  185. fflush(stdin);
  186. gets(scho[c-1].name);
  187. printf("Веведите новое отчество: \n");
  188. fflush(stdin);
  189. gets(scho[c-1].fathern);
  190. puts("Введите класс:");
  191. fflush(stdin);
  192. scanf("%s", &scho[c-1].klass);
  193. puts("Введите номер телефона: \n");
  194. scanf("%s", &scho[c-1].tel);
  195. puts("Введите оценку по математике: \n");
  196. scanf("%d", &scho[c-1].mat);
  197. puts("Введите оценку по физике: \n");
  198. scanf("%d", &scho[c-1].phys);
  199. puts("Введите оценку по русскому языку: \n");
  200. scanf("%d", &scho[c-1].rus);
  201. printf("Запись изменена.\n");
  202. }
  203. void deleting()
  204. {
  205. int i,ch;
  206. int d;
  207. printf("Выберите действие:\n1 - удалить все записи;\n2 - удалить одну запись\n");
  208. scanf("%d",&ch);
  209. switch(ch){
  210. case 1:
  211. for(i=0;i<sch;i++)
  212. scho[i]=t;
  213. sch=0;
  214. printf("\nВсе записси удалены.\n");
  215. break;
  216. case 2:
  217. printf("Введите номер записи, которую необходимо удалить\n");
  218. scanf("%d",&d);
  219. for (i=d-1;i<sch;i++)
  220. {
  221. scho[i]=scho[i+1];
  222. sch--;
  223. }
  224. printf("Запись №%d удалена.",d);
  225. break;
  226. default:printf("\nНеверный ввод\n");
  227. }
  228. }
  229. int search()
  230. {
  231. int i,k=0,c=0;
  232. int per;
  233. int
  234.  
  235. printf("Введите: \n");
  236. printf("1. фамилию\n");
  237. printf("2. класс\n");
  238. printf("3. номер телефона\n");
  239. printf("4. оценка по математике\n");
  240. printf("5. оценка по физике\n");
  241. printf("6. оценка по русскому языку\n");
  242. printf("7. Выход\n");
  243. scanf("%d",&per);
  244.  
  245. switch (per)
  246. {
  247. case 1:
  248. printf("Введите фамилию:\n");
  249. fflush(stdin);
  250. gets(scho[c].surename);
  251. for (i=0;i<k;i++)
  252. if (strcmp(scho[c].surename,scho[i].surename)==0)
  253. scho[c]=scho[i];
  254. printf("\nШкольник найден:\n");
  255. puts(scho[c].surename);
  256. puts(scho[c].name);
  257. puts(scho[c].fathern);
  258. puts(scho[c].klass);
  259. printf("Номер телефона: %s \n", scho[c].tel);
  260. printf("Оценка по математике: %d\n",scho[c].mat);
  261. printf("Оценка по физике: %d\n", scho[c].phys);
  262. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  263. break;
  264. case 2:
  265. printf("Введите класс\n");
  266. fflush(stdin);
  267. gets(scho[c].klass);
  268. for (i=0;i<k;i++)
  269. if (strcmp(scho[c].klass,scho[i].klass)==0)
  270. scho[c]=scho[i];
  271. printf("Школьник найден:\n");
  272. puts(scho[c].surename);
  273. puts(scho[c].name);
  274. puts(scho[c].fathern);
  275. puts(scho[c].klass);
  276. printf("Номер телефона: %s \n", scho[c].tel);
  277. printf("Оценка по математике: %d\n",scho[c].mat);
  278. printf("Оценка по физике: %d\n", scho[c].phys);
  279. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  280. break;
  281. case 3:
  282. printf("Введите номер телефона:\n");
  283. scanf("%s",&scho[c].tel);
  284. for (i=0;i<k;i++)
  285. if (scho[c].tel==scho[i].tel)
  286. scho[c]=scho[i];
  287. printf("Школьник найден:\n");
  288. puts(scho[c].surename);
  289. puts(scho[c].name);
  290. puts(scho[c].fathern);
  291. puts(scho[c].klass);
  292. printf("Номер телефона: %s \n", scho[c].tel);
  293. printf("Оценка по математике: %d\n",scho[c].mat);
  294. printf("Оценка по физике: %d\n", scho[c].phys);
  295. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  296. break;
  297. case 4:
  298. printf("Введите оценку по математике:\n");
  299. scanf("%d",&scho[c].mat);
  300. for (i=0;i<k;i++)
  301. if (scho[c].mat==scho[i].mat)
  302. scho[c]=scho[i];
  303. printf("Школьник найден:\n");
  304. puts(scho[c].surename);
  305. puts(scho[c].name);
  306. puts(scho[c].fathern);
  307. puts(scho[c].klass);
  308. printf("Номер телефона: %s \n", scho[c].tel);
  309. printf("Оценка по математике: %d\n",scho[c].mat);
  310. printf("Оценка по физике: %d\n", scho[c].phys);
  311. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  312. break;
  313. case 5:
  314. printf("Введите оценку по физике:\n");
  315. scanf("%d",&scho[c].phys);
  316. for (i=0;i<k;i++)
  317. if (scho[c].phys==scho[i].phys)
  318. scho[c]=scho[i];
  319. printf("Школьник найден:\n");
  320. puts(scho[c].surename);
  321. puts(scho[c].name);
  322. puts(scho[c].fathern);
  323. puts(scho[c].klass);
  324. printf("Номер телефона: %s \n", scho[c].tel);
  325. printf("Оценка по математике: %d \n",scho[c].mat);
  326. printf("Оценка по физике: %d\n", scho[c].phys);
  327. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  328. break;
  329. case 6:
  330. printf("Введите оценку по русскому языку:\n");
  331. scanf("%d",&scho[c].rus);
  332. for (i=0;i<k;i++)
  333. if (scho[c].rus==scho[i].rus)
  334. scho[c]=scho[i];
  335. printf("Школьник найден:\n");
  336. puts(scho[c].surename);
  337. puts(scho[c].name);
  338. puts(scho[c].fathern);
  339. puts(scho[c].klass);
  340. printf("Номер телефона: %s \n", scho[c].tel);
  341. printf("Оценка по математике: %d\n",scho[c].mat);
  342. printf("Оценка по физике: %d\n", scho[c].phys);
  343. printf("Оценка по русскому языку: %d\n",scho[c].rus);
  344. break;
  345. case 7:
  346. return 0;
  347. default: printf("\nНеверный ввод\n");
  348.  
  349. }
  350. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement