Advertisement
Guest User

Untitled

a guest
Feb 29th, 2016
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2. //Подключаем библиотеки.
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<string.h>
  6. #include<locale.h>
  7. #include"employee.h"  //Подключаем файл.
  8.  
  9. //Прототипы функций.
  10. int vvod(struct employee set[], int *n);  //Функция ввода.Указатель на n ставиться потому что переменную n мы инициализируем в самой фук-ции.
  11. void vivod(struct employee set[], int n);  //Функция вывода.
  12. void poisk(struct employee set[], int n);  //Функция поиска.
  13.  
  14.  
  15. int main(void)
  16. {
  17.     int n = 0;  //Объявляем переменные.
  18.     struct employee set[19];  //
  19.    
  20.     system("chcp 1251");
  21.     setlocale(LC_ALL, "rus");  //Подключаем русскую раскладку.
  22.  
  23.     n = vvod(set, &n);
  24.     poisk(set, n);
  25.     vivod(set, n);
  26. }
  27.  
  28. int vvod(struct employee set[], int *n){
  29.     //Инициализируем переменные.
  30.     int i = 0;
  31.  
  32.     printf("Введите число сотрудников:\n");  //Вводим число сотрудников.
  33.     scanf_s("%d", n);
  34.     //Проверяем правильность ввода.
  35.     while (0 >= *n)
  36.     {
  37.         printf("Внимание! Число сотрудников строго больше 0.\n");
  38.         printf("Введите число сотрудников:\n");
  39.         scanf_s("%d", n);
  40.     }
  41.  
  42.     for (i = 0; i < *n; i++){
  43.         printf("-------------------------------------------------\n");
  44.         printf("Сотрудник %d\n", i + 1);  //Прибавляем 1, так как нумерация начинаеся с 0.
  45.         printf("Фамилия Имя Отчество: \n");
  46.         getchar();  //Так как перед этим мы считывали численную переменную n.
  47.         gets(set[i].FIO.surname);
  48.         gets(set[i].FIO.fname);
  49.         gets(set[i].FIO.middlename);
  50.         printf("(Внимание! При отсутсвии номера квартиры ввести 0.)\n");
  51.         printf("Улица, № дома, № квартиры: \n");
  52.         gets(set[i].adress.street);
  53.         scanf("%d", &set[i].adress.house);
  54.         scanf("%d", &set[i].adress.kv);
  55.         printf("Год рождения: \n");
  56.         scanf("%d", &set[i].years);
  57.     }
  58.  
  59.     return *n;  //Возвращаем кол-во сотрудников.
  60. }
  61.  
  62. void vivod(struct employee set[], int n){
  63.     //Инициализируем переменные.
  64.     int i = 0;
  65.  
  66.     for (i = 0; i < n; i++){
  67.         printf("-------------------------------------------------\n");
  68.         printf("Сотрудник %d\n", i + 1);  //Прибавляем 1, так как нумерация начинаеся с 0.
  69.         printf("%s %s %s\n", set[i].FIO.surname, set[i].FIO.fname, set[i].FIO.middlename);
  70.         printf("%s %d %d\n", set[i].adress.street, set[i].adress.house, set[i].adress.kv);
  71.         printf("%d\n", set[i].years);
  72.     }
  73. }
  74.  
  75. void poisk(struct employee set[], int n){
  76.     int i = 0;
  77.     int nomer = 0;  
  78.     int vzr = 0;
  79.  
  80.     printf("Введите номер дома:\n");  //Вводим номер дома.
  81.     scanf_s("%d", nomer);
  82.     /*//Проверяем правильность ввода.
  83.     while (0 >= nomer)
  84.     {
  85.         printf("Внимание! Номер дома строго больше 0.\n");
  86.         printf("Введите номер дома:\n");
  87.         scanf("%d", nomer);
  88.     }
  89.     /*
  90.     //Принимаем возраст первого встретившегося сотрудника за минимальный.
  91.     for (i = 0; i < n; i++){
  92.         if (set[i].adress.house == nomer){
  93.             vzr = set[i].years;
  94.             break;
  95.         }
  96.     }
  97.     //Проверяем проживают ли сотрудники в этом доме.
  98.     if (vzr == -1){
  99.         printf("Внимание! В этом доме нет сотрудников.\n");
  100.     }
  101.     else{
  102.         //Сравниваем возраст первого встретившегося сотрудника с возрастом всех сотрудников, проживающих в этом доме.
  103.         for (i = 0; i < n; i++){
  104.             if ((set[i].adress.house == nomer) && (set[i].years > vzr)){
  105.                 vzr = set[i].years;
  106.             }
  107.         }
  108.         //Выводим сотрудников.
  109.         for (i = 0; i < n; i++){
  110.             if ((set[i].adress.house == nomer) && (set[i].years == vzr)){
  111.                 printf("-------------------------------------------------\n");
  112.                 printf("Сотрудник %d\n", i + 1);  //Прибавляем 1, так как нумерация начинаеся с 0.
  113.                 printf("%s %s %s\n", set[i].FIO.surname, set[i].FIO.fname, set[i].FIO.middlename);
  114.                 printf("%s %d %d\n", set[i].adress.street, set[i].adress.house, set[i].adress.kv);
  115.                 printf("%d\n", set[i].years);
  116.             }
  117.         }
  118.     }*/
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement