Advertisement
Guest User

Untitled

a guest
May 29th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. // ConsoleApplication7.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "locale.h"
  6. #include "iostream"
  7. #include "stdio.h"
  8. #include <stdlib.h>
  9. #include <conio.h>
  10.  
  11.  
  12. struct subj { char disc[20]; int sem; char rep[10];} sub;
  13. int in();
  14. int out();
  15. int update();
  16. int search();
  17.  
  18. int main()
  19. {
  20. setlocale(LC_ALL, "");
  21. system("chcp 1251 & cls");
  22. int p = 0 ;
  23. system("cls");
  24. puts("Выберите действие:");
  25. puts("1 - Создание файла");
  26. puts("2 - Просмотр файла");
  27. puts("3 - Добавление в файл");
  28. puts("4 - Поиск в файле");
  29. puts("5 - Выход");
  30. scanf("%d", &p);
  31. switch (p)
  32. {
  33. case 1:in(); break;
  34. case 2:out(); break;
  35. case 3:update(); break;
  36. case 4:search(); break;
  37. case 5: return 0; break;
  38. default:
  39. printf( "Неправильный ввод.\n" );
  40. };
  41.  
  42. };
  43.  
  44. int in()
  45. {
  46. int l = 0;
  47. FILE *txt = fopen("in.dat", "wb");
  48. system("cls");
  49.  
  50. printf("Заполнение структуры:\n");
  51. printf("Кол-во дисциплин:");
  52. scanf("%d", &l);
  53. for (int i = 0; i < l; i++)
  54. {
  55. printf("\nДисциплина:"); scanf("%s", sub.disc);
  56. printf("\nНомер семестра:"); scanf("%d", &sub.sem);
  57. printf("\nВид отчетности:"); scanf("%s", sub.rep);
  58. fwrite(&sub, sizeof(sub), 1, txt);
  59. };
  60. fclose(txt);
  61. main();
  62. return 0;
  63. };
  64.  
  65. int out()
  66. {
  67. FILE *txt;
  68. int i;
  69. system("cls");
  70. txt = fopen("in.dat", "rb");
  71. i = 1;
  72. fread(&sub, sizeof(sub), 1, txt);
  73. while (!feof(txt))
  74. {
  75. printf("%d) Дисциплина: %-10s Семестр: %d Отчетность: %s\n", i, sub.disc, sub.sem, sub.rep);
  76. fread(&sub, sizeof(sub), 1, txt);
  77. i++;
  78. }
  79. system("pause");
  80. main();
  81. return 0;
  82. }
  83.  
  84. int update()
  85. {
  86. system("cls");
  87. FILE *txt;
  88. char m;
  89. txt = fopen("in.dat", "ab");
  90. printf("Добавление элементов структуры:\n");
  91. do
  92. {
  93. printf("\nДисциплина:"); scanf("%s", sub.disc);
  94. printf("\nНомер семестра:"); scanf("%d", &sub.sem);
  95. printf("\nВид отчетности:"); scanf("%s", sub.rep);
  96. fwrite(&sub, sizeof(sub), 1, txt);
  97. printf("\nЗакончить ввод? y\\n");
  98. m = getch();
  99. } while (m != 'y');
  100. fclose(txt);
  101. main();
  102. return 0;
  103. }
  104.  
  105. int search()
  106. {
  107. FILE *txt;
  108. txt = fopen("in.dat", "rb");
  109. system("cls");
  110. int n = 0;
  111. puts("Введите номер семестра: ");
  112. scanf("%d", &n);
  113. fread(&sub, sizeof(sub), 1, txt);
  114. printf("По окончанию %d-го семестра будут следующие экзамены:\n", n);
  115. while (!feof(txt))
  116. {
  117. if ((sub.sem == n) && strcmp(sub.rep, "Зачет"))
  118. {
  119. printf("%s\n", sub.disc);
  120. }
  121. fread(&sub, sizeof(sub), 1, txt);
  122. }
  123. fclose(txt);
  124. system("pause");
  125. main();
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement