Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<conio.h>
  4. #include<clocale>
  5. #include<Windows.h>
  6.  
  7. struct SOTRUDNIK {
  8. char fio[21];
  9. char dol[21];
  10. int tn;
  11. int zarplata;
  12. };
  13.  
  14. void Dol(int k, SOTRUDNIK * str);
  15. void Zap(int k, SOTRUDNIK * str);
  16.  
  17. int main()
  18. {
  19. int zap;
  20. setlocale(LC_CTYPE, "Russian");
  21. int i;
  22. FILE *f;
  23. struct SOTRUDNIK str[300];
  24. if ((f = fopen("сотрудники.txt", "r")) == NULL)
  25. puts("Файл не найден.");
  26. for (i = 0; !feof(f); i++) {
  27. fgets(str[i].fio, 20, f);
  28. fgets(str[i].dol, 20, f);
  29. fscanf(f, "%d %d", &str[i].tn, &str[i].zarplata);
  30. }
  31. int k = i;
  32. char c;
  33. bool proof = true;
  34. for (int i = 0; i <= k; i++) {
  35. for (int j = 0; j <= 21; j++) {
  36. if (str[i].dol[j] == ' ')
  37. str[i].dol[j] = '';
  38. }
  39. }
  40. do {
  41. if (proof) {
  42. puts("___________________________________________");
  43. puts("Выберите действие:");
  44. puts("1-вывод сотрудников по заданной должности");
  45. puts("2-вывод сотрудников с минимальной зарплатой");
  46. puts("3-для выхода");
  47. puts("___________________________________________");
  48. }
  49. c = getchar();
  50. proof = true;
  51. switch (c) {
  52. case '1':
  53. Dol(k, str);
  54. break;
  55. case '2':
  56. Zap(k, str);
  57. break;
  58. case '3':
  59. return 0;
  60. fclose(f);
  61. break;
  62. default:
  63. proof = false;
  64. break;
  65. }
  66. }
  67. while (c = '!3');
  68. }
  69.  
  70. void Dol(int k, SOTRUDNIK * str)
  71. {
  72. char dolC[21];
  73. bool naiden = 0;
  74. puts("Введите должность:");
  75. scanf("%s", dolC);
  76. for (int i = 0; i <= k; i++)
  77. if (strcmp(str[i].dol, dolC) == 0) {
  78. printf("%d %s %s", str[i].tn, str[i].fio,
  79. str[i].zarplata);
  80. naiden = 1;
  81. }
  82. if (naiden == 0)
  83. printf
  84. ("В базе нет работника с такой должностью");
  85. puts("Для возврата в меню нажмите любую клавишу");
  86. getchar();
  87. getchar();
  88. system("cls");
  89. }
  90.  
  91. void Zap(int k, SOTRUDNIK * str)
  92. {
  93. int minzap = 100000;
  94. puts("Сотрудники с минимальной зарплатой:");
  95. puts("n № ФИО зарплата");
  96. puts("___________________________________________");
  97. for (int i = 0; i <= k; i++) {
  98. if (minzap > str[i].zarplata)
  99. minzap = str[i].zarplata;
  100. }
  101. for (int i = 0; i <= k; i++)
  102. if (minzap == str[i].zarplata)
  103. printf("n %d %s %d", str[i].tn, str[i].fio,
  104. str[i].zarplata);
  105. puts("___________________________________________");
  106. puts("Для возврата в меню нажмите любую клавишу");
  107. getchar();
  108. getchar();
  109. system("cls");
  110. }
  111.  
  112. 1 Васильев секретарь 5000
  113. 2 Зубков менеджер 6000
  114. 3 Джексон менеджер 4000
  115.  
  116. while (c = '!3') -> while(c != '3');
  117.  
  118. fscanf(f, "%d %s %s %d", &str[i].tn, &str[i].fio,&str[i].dol,&str[i].zarplata);
  119.  
  120. printf("%d %s %s %dn",str[i].tn, str[i].fio,str[i].dol,str[i].zarplata);
  121.  
  122. #define MAX_STR_LEN 21
  123. #define MAX_EMPLOYEES 100
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement