Advertisement
Guest User

Untitled

a guest
May 3rd, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.62 KB | None | 0 0
  1. //Программа для выполнения дейтсвий над списком сотрудников отдела кадров
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <locale.h>
  6. #define N 20
  7. int answer;//переменная для выбора пользователя функции в меню
  8.  
  9. void header()//функция заголовка
  10. {puts("\n            Курсовая работа 2016 (Стельмах Диана Евгениевна АИ-151)");
  11.  puts("\n                            База данных отдела кадров");
  12.  puts("--------------------------------------------------------------------------------");
  13. }
  14.  
  15. void choice()//функция для вывода меню
  16. {puts("\n--------------------------------------------------------------------------------");
  17.  puts("\n                            Что бы вы хотели сделать?");
  18.  puts("\n->   1- Добавить нового сотрудника");
  19.  puts("\n->   2- Удалить данные о сотруднике");
  20.  puts("\n->   3- Изменить данные о сотруднике");
  21.  puts("\n->   4- Вывести список всех сотрудников");
  22.  puts("\n->   5- Вывести данные о сотрудниках со стажем больше 5 лет");
  23.  puts("\n->   6- Вывести список сотрудниц старше заданного вами возраста");
  24.  puts("\n->   7- Вывести фамилии всех сотрудников, живущих на заданной улице");
  25.  puts("\n->   8- Сортировать данные по полю возраста");
  26.  puts("\n->   9- Закрыть программу");
  27.  puts("\n--------------------------------------------------------------------------------");
  28.  printf("\nВаш выбор: ");
  29. }
  30.  
  31. //Зададим структуру двусвязного списка для информации о работнике
  32. struct worker{
  33.  char surname[N];//фамилия
  34.  int work_year;//год зачисления на работу
  35.  char gender[2];//пол (будет состоять из одной буквы ('м' или 'ж')
  36.  int b_year;//год рождения
  37.  char street[N];//улица проживания
  38.  int house;//домcccccccccccc
  39.  int flat;//квартира
  40.  struct worker *next;//указатель на следующий элемент
  41.  struct worker *prev;//указатель на предыдущий элемент
  42. };
  43.  
  44.  
  45. struct worker *head=NULL;
  46. //struct worker *prev;
  47. struct worker *current;
  48. char in_sur[20];
  49.  
  50. void input()
  51. {printf("\nВведите фамилию работника: ");
  52.  scanf("%s", in_sur);
  53.  current=(struct worker*)malloc(sizeof(struct worker));//выделение памяти
  54.   if(head==NULL)
  55.     head = current;
  56.   else
  57.     prev->next=current;
  58.   current->next = NULL;
  59.   strcpy(current->surname, in_sur);
  60.    printf("\Год зачисления на работу: ");
  61.    scanf("%d",&current->work_year);
  62.    printf("Пол - женщина/мужчина (f/m): ");
  63.    scanf("%s",&current->gender);
  64.    printf("Год рождения: ");
  65.    scanf("%d",&current->b_year);
  66.    printf("Улица Проживания: ");
  67.    scanf("%s",&current->street);
  68.    printf("Дом: ");
  69.    scanf("%d",&current->house);
  70.    printf("Квартира:");
  71.    scanf("%d",&current->flat);
  72.    prev = current;
  73. }
  74.  
  75. int main()
  76. {   setlocale(LC_ALL,"rus");
  77.     header();
  78.      while(answer!=9)//будем просить пользователя сделать выбор, пока он не нажмет 4(выход из программы)
  79.      {
  80.      choice();
  81.       scanf("%d",&answer);
  82.    switch(answer)
  83.       {case 1: input(); break;
  84.        case 2: delete_info(); break;
  85.        case 3: change_info(); break;
  86.        case 4: output(); break;
  87.        case 5: over_five(); break;
  88.        case 6: fem_over_age(); break;
  89.        case 7: workers_streets(); break;
  90.        case 8: sorting(); break;
  91.        case 9: puts("\nСпасибо за использование программы."); return EXIT_SUCCESS;
  92.        default: printf("\nВы ввели неверный символ."); break;
  93.       }
  94.      }
  95. return 0;
  96. }
  97.  
  98. void delete_info()
  99. {printf("\nФункция 'удалить информацию' на стадии разработки");
  100. }
  101.  
  102. void change_info()
  103. {printf("\nФункция 'изменить информацию' на стадии разработки");
  104. }
  105.  
  106. void output()
  107. {if(head==NULL)
  108.    printf("\nСписок пуст.");
  109.  else
  110.    printf("\nСписок сотрудников:\n");
  111.  current=head;
  112.   while(current!=NULL)
  113.    { printf("\n\n\nФамилия: %s\nГод зачисления на работу: %d\nПол: %s",current->surname,current->work_year,current->gender);
  114.      printf("\nГод рождения: %d\nУлица: %s\nДом: %d\nКвартира: %d",current->b_year,current->street,current->house,current->flat);
  115.         current = current->next;
  116.    }
  117. }
  118. void over_five()
  119. {printf("\nФункция 'вывод данных о сотрудниках со стажем больше 5 лет' на стадии разработки");
  120. }
  121.  
  122. void fem_over_age()
  123. {printf("\nФункция 'сотрудницы старше заданного возраста' на стадии разработки");
  124. }
  125.  
  126. void workers_streets()
  127. {printf("\nФункция 'список сотрудников на данной улице' на стадии разработки");
  128. }
  129.  
  130. void sorting()
  131. {printf("\nФункция 'сортировка по возрасту' на стадии разработки");
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement