Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Программа для выполнения дейтсвий над списком сотрудников отдела кадров
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h>
- #define N 20
- int answer;//переменная для выбора пользователя функции в меню
- void header()//функция заголовка
- {puts("\n Курсовая работа 2016 (Стельмах Диана Евгениевна АИ-151)");
- puts("\n База данных отдела кадров");
- puts("--------------------------------------------------------------------------------");
- }
- void choice()//функция для вывода меню
- {puts("\n--------------------------------------------------------------------------------");
- puts("\n Что бы вы хотели сделать?");
- puts("\n-> 1- Добавить нового сотрудника");
- puts("\n-> 2- Удалить данные о сотруднике");
- puts("\n-> 3- Изменить данные о сотруднике");
- puts("\n-> 4- Вывести список всех сотрудников");
- puts("\n-> 5- Вывести данные о сотрудниках со стажем больше 5 лет");
- puts("\n-> 6- Вывести список сотрудниц старше заданного вами возраста");
- puts("\n-> 7- Вывести фамилии всех сотрудников, живущих на заданной улице");
- puts("\n-> 8- Сортировать данные по полю возраста");
- puts("\n-> 9- Закрыть программу");
- puts("\n--------------------------------------------------------------------------------");
- printf("\nВаш выбор: ");
- }
- //Зададим структуру двусвязного списка для информации о работнике
- struct worker{
- char surname[N];//фамилия
- int work_year;//год зачисления на работу
- char gender[2];//пол (будет состоять из одной буквы ('м' или 'ж')
- int b_year;//год рождения
- char street[N];//улица проживания
- int house;//домcccccccccccc
- int flat;//квартира
- struct worker *next;//указатель на следующий элемент
- struct worker *prev;//указатель на предыдущий элемент
- };
- struct worker *head=NULL;
- //struct worker *prev;
- struct worker *current;
- char in_sur[20];
- void input()
- {printf("\nВведите фамилию работника: ");
- scanf("%s", in_sur);
- current=(struct worker*)malloc(sizeof(struct worker));//выделение памяти
- if(head==NULL)
- head = current;
- else
- prev->next=current;
- current->next = NULL;
- strcpy(current->surname, in_sur);
- printf("\Год зачисления на работу: ");
- scanf("%d",¤t->work_year);
- printf("Пол - женщина/мужчина (f/m): ");
- scanf("%s",¤t->gender);
- printf("Год рождения: ");
- scanf("%d",¤t->b_year);
- printf("Улица Проживания: ");
- scanf("%s",¤t->street);
- printf("Дом: ");
- scanf("%d",¤t->house);
- printf("Квартира:");
- scanf("%d",¤t->flat);
- prev = current;
- }
- int main()
- { setlocale(LC_ALL,"rus");
- header();
- while(answer!=9)//будем просить пользователя сделать выбор, пока он не нажмет 4(выход из программы)
- {
- choice();
- scanf("%d",&answer);
- switch(answer)
- {case 1: input(); break;
- case 2: delete_info(); break;
- case 3: change_info(); break;
- case 4: output(); break;
- case 5: over_five(); break;
- case 6: fem_over_age(); break;
- case 7: workers_streets(); break;
- case 8: sorting(); break;
- case 9: puts("\nСпасибо за использование программы."); return EXIT_SUCCESS;
- default: printf("\nВы ввели неверный символ."); break;
- }
- }
- return 0;
- }
- void delete_info()
- {printf("\nФункция 'удалить информацию' на стадии разработки");
- }
- void change_info()
- {printf("\nФункция 'изменить информацию' на стадии разработки");
- }
- void output()
- {if(head==NULL)
- printf("\nСписок пуст.");
- else
- printf("\nСписок сотрудников:\n");
- current=head;
- while(current!=NULL)
- { printf("\n\n\nФамилия: %s\nГод зачисления на работу: %d\nПол: %s",current->surname,current->work_year,current->gender);
- printf("\nГод рождения: %d\nУлица: %s\nДом: %d\nКвартира: %d",current->b_year,current->street,current->house,current->flat);
- current = current->next;
- }
- }
- void over_five()
- {printf("\nФункция 'вывод данных о сотрудниках со стажем больше 5 лет' на стадии разработки");
- }
- void fem_over_age()
- {printf("\nФункция 'сотрудницы старше заданного возраста' на стадии разработки");
- }
- void workers_streets()
- {printf("\nФункция 'список сотрудников на данной улице' на стадии разработки");
- }
- void sorting()
- {printf("\nФункция 'сортировка по возрасту' на стадии разработки");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement