Advertisement
Guest User

Untitled

a guest
Jul 13th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <string.h>
  5. struct student
  6. { int grup;
  7. char secondName[20];
  8. char firstName[20];
  9. float mathAnalysis;
  10. float algebra;
  11. float programming;
  12. } roll[20], roll2[20], buffer;
  13. void write(FILE *file);
  14. void printer(FILE *file);
  15. void result(FILE *file, FILE *file2);
  16. void print_result(FILE *file);
  17. void write(FILE *file)
  18. { int n, i;
  19. printf("Введіть кількість студентів: ");
  20. scanf("%d", &n);
  21. for(i=0; i<n; i++)
  22. {
  23. printf("%d Група: ", i+1);
  24. scanf("%d", &(roll[i].grup));
  25. printf(" Прізвище: ");
  26. scanf("%s", (roll[i].secondName));
  27. printf(" Iм'я: ");
  28. scanf("%s", (roll[i].firstName));
  29. printf(" Бали:\n");
  30. printf(" Математичний аналіз - ");
  31. scanf("%f", &(roll[i].mathAnalysis));
  32. printf(" Алгебра - ");
  33. scanf("%f", &(roll[i].algebra));
  34. printf(" Програмування - ");
  35. scanf("%f", &(roll[i].programming));
  36. fwrite(&(roll[i]), sizeof(struct student), 1, file);
  37. }
  38. }
  39. void printer(FILE *file)
  40. {
  41. int i=0;
  42. while(fread(&roll[i], sizeof(struct student), 1, file))
  43. {
  44. printf("\n%d Група: ", i+1);
  45. printf("%d", (roll[i].grup));
  46. printf("\n Прізвище: ");
  47. printf(roll[i].secondName);
  48. printf("\n Iм'я: ");
  49. printf(roll[i].firstName);
  50. printf("\n Бали:");
  51. printf("\n Математичний аналіз - ");
  52. printf("%f", roll[i].mathAnalysis);
  53. printf("\n Алгебра - ");
  54. printf("%f", roll[i].algebra);
  55. printf("\n Програмування - ");
  56. printf("%f", roll[i].programming);
  57. i++;
  58. }
  59.  
  60. }
  61.  
  62. void result(FILE *file, FILE *file2)
  63. {
  64. int i=0, n, j;
  65. while( fread(&roll[i], sizeof(struct student), 1, file))
  66. {
  67. roll2[i]=roll[i];
  68. i++;
  69. }
  70. n=i;
  71. for(i=0;i<n;i++)
  72. for(j=0;j<n-1;j++)
  73. {
  74. if((roll2[j].mathAnalysis+roll2[j].algebra+roll2[j].programming)<(roll2[j+1].mathAnalysis+roll2[j+1].algebra+roll2[j+1].programming))
  75. buffer=roll2[j];
  76. roll2[j]=roll2[j+1];
  77. roll2[j+1]=buffer;
  78. }
  79. for(i=0; i<n; i++)
  80. {
  81. fwrite(&roll2[i], sizeof(struct student), 1, file2);
  82. }
  83. fclose(file2);
  84.  
  85.  
  86. }
  87. void print_result(FILE *file)
  88. {
  89. int i=0;
  90. while( fread(&roll2[i], sizeof(struct student), 1, file))
  91. {
  92. printf("\nПрізвище : %s", roll2[i].secondName);
  93. printf("\n Середній бал: %0.2f", (roll2[i].mathAnalysis+roll2[i].algebra+roll2[i].programming)/3 );
  94. i++;
  95. }
  96. }
  97. int main()
  98. {
  99. FILE *file, *file2;
  100. int point=1, i;
  101. SetConsoleCP(1251);
  102. SetConsoleOutputCP(1251);
  103.  
  104. while(point)
  105. { system("cls");
  106. printf("Для вибору дії натисніть: \n");
  107. printf("1-Створити 2-Відкрити 3-Закрити 4-Переглянути 5-Додати 6-Результат 7-Вихід\n");
  108. scanf("%d", &i);
  109. if(i==1)
  110. {
  111. file=fopen("BF_12.dat", "wb");
  112. write(file);
  113. fclose(file);
  114. system("cls");
  115. }
  116. if(i==2)
  117. {
  118. file=fopen("BF_12.dat", "rb");
  119. }
  120. if(i==3)
  121. {
  122. fclose(file);
  123. }
  124. if(i==4)
  125. {
  126. file=fopen("BF_12.dat", "rb");
  127. printer(file);
  128. fclose(file);
  129. getch();
  130. }
  131. if(i==5)
  132. {
  133. file = fopen("BF_12.dat", "ab");
  134. write(file);
  135. fclose(file);
  136. }
  137. if(i==6)
  138. {
  139. file=fopen("BF_12.dat", "rb");
  140. file2 =fopen("BF_12_2.dat", "wb");
  141. result(file, file2);
  142. fclose(file2);
  143. file2 =fopen("BF_12_2.dat", "rb");
  144. print_result(file2);
  145. fclose(file);
  146. fclose(file2);
  147. getch();
  148. }
  149. if(i==7)
  150. {
  151. point=0;
  152. }
  153. }
  154. return 0;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement