Advertisement
frustration

DONEвариант 12. Структура(клиент,номер тел, др)

Jun 14th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.24 KB | None | 0 0
  1. /* вариант 12
  2. Описать структуру с именем NOTE,содержащую следующие поля:
  3. 1. фамилия и имя;
  4. 2. номер телефона;
  5. 3. дата рождения.
  6. Написать программу,выполняющую след.действия:
  7. 1. ввод с клавиатуры данных в массив, состоящий из 8-ми структур типа NOTE; записи должны быть упорядочены по датам рождения;
  8. 2. вывод на экран информацию о человеке, номер телефона которого введен с клавиатуры;
  9. 3. если такого нет, вывести сответтвующее сообщение.*/
  10.  
  11. #include <conio.h>
  12. #include <iostream>
  13. #include <string>
  14. #include <clocale>
  15. #include <iomanip>
  16.  
  17. using namespace std;
  18.  
  19. struct NOTE {
  20.     string NAME;
  21.     string LASTNAME;
  22.     int PHONE, YEAR, MONTH, DAY;
  23. };
  24.  
  25. void input(NOTE *st, int N){
  26.     for (int i = 0; i < N; ++i){
  27.         cout << "Введите ФИО: ";
  28.         cin >> st[i].LASTNAME;
  29.         cin >> st[i].NAME;
  30.         cout << "Введите номер телефона: ";
  31.         cin >> st[i].PHONE;
  32.         cout << "Введите дату рождения: ";
  33.         cin >> st[i].DAY >> st[i].MONTH >> st[i].YEAR;
  34.   }
  35. }
  36. void sort_birth(NOTE *st, int N){
  37.     int temp = 0;
  38.     for (int i = 0; i < N - 1; i++)
  39.     {
  40.         for (int j = i + 1; j<N; j++)
  41.         {
  42.  
  43.             if (st[i].YEAR > st[j].YEAR)
  44.             {
  45.                 temp = st[i].YEAR;
  46.                 st[i].YEAR = st[j].YEAR;
  47.                 st[j].YEAR = temp;
  48.                 continue;
  49.             }
  50.  
  51.             if (st[i].YEAR == st[j].YEAR && st[i].MONTH > st[j].MONTH){
  52.                 temp = st[i].MONTH;
  53.                 st[i].MONTH = st[j].MONTH;
  54.                 st[j].MONTH = temp;
  55.                 continue;
  56.             }
  57.  
  58.             if (st[i].YEAR == st[j].YEAR && st[i].MONTH == st[j].MONTH && st[i].DAY > st[j].DAY)
  59.             {
  60.                 temp = st[i].DAY;
  61.                 st[i].DAY = st[j].DAY;
  62.                 st[j].DAY = temp;
  63.             }
  64.         }
  65.     }
  66. }
  67.  
  68.  
  69. void find(NOTE *st, int N){
  70.     int num;
  71.     bool isFound = false;
  72.     cout << "\nВедите номер, который хотите найти:";
  73.     cin >> num;
  74.     for (int i = 0; i<N; i++)
  75.     {
  76.         if (st[i].PHONE == num)
  77.         {
  78.             cout << "\n"<<st[i].NAME << " " << st[i].LASTNAME << "   " << st[i].PHONE << " "; printf("  %02d", st[i].DAY); cout << "."; printf("%02d", st[i].MONTH); cout << "."; printf("%02d", st[i].YEAR);
  79.             isFound = true;
  80.         }
  81.        
  82.     }
  83.     if (!isFound) printf("\nНомеров нет\n");
  84.  
  85.    
  86. }
  87. void output(NOTE *st, int N){
  88.     cout << "-------------------------------------------------\n";
  89.     cout << "|       ФИ       |     Номер     |       ДР      |\n";
  90.     cout << "-------------------------------------------------\n";
  91.     for (int i=0; i < N; ++i){
  92.         cout << "|" << setw(8) << st[i].LASTNAME << " " << st[i].NAME << setw(5) << "|" << setw(9) << st[i].PHONE << setw(7) << "|";
  93.         printf("  %02d", st[i].DAY);cout << ".";printf("%02d", st[i].MONTH);cout << ".";printf("%02d",st[i].YEAR);
  94.         cout << "   |\n";
  95.     }
  96.     cout << "-------------------------------------------------\n";
  97. }
  98. int main(){
  99.     setlocale(LC_CTYPE, "rus");
  100.     int N;
  101.     cout << "Число клиентов: ";
  102.     cin >> N;
  103.     NOTE *st = new NOTE[N];
  104.     input(st, N);
  105.     sort_birth(st, N);
  106.     output(st, N);
  107.     find(st, N);
  108.     _getch();
  109.     return 0;
  110.  
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement