Описать структуру с именем NOTE - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Описать структуру с именем NOTE, содержащий следующие поля: • фамилия, имя; • номер телефона • дата рождения (массив из трех чисел). Написать программу, которая выполняет следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; • записи должны быть упорядочены по датам рождения; выводит на экран информации о человеке, номер телефона которого введен с клавиатуры; • если такого нет, выдать на дисплей соответствующее сообщение.

Решение задачи: «Описать структуру с именем NOTE»

textual
Листинг программы
  1. #include "stdafx.h"
  2. #include "locale.h"//для русского языка
  3. #include "string.h"
  4. #include "stdlib.h"
  5.  
  6. struct note
  7. {
  8.     char fam[40];//Фамилия
  9.     char name[40];//имя
  10.     int nomer;//Номер телефона
  11.     int date;//Дата рождения
  12. };
  13.  
  14. struct note NOTE[100];
  15. struct note temp;//для сортировки
  16. int records=0;
  17. int i=0,j;
  18. int menu();
  19. void vvod();//Ввод
  20. void vivod();//Вывод
  21. void sort();//записи должны быть упорядочены по датам рождения;  Т.е. сортировка по дате рождения
  22.  
  23. int main()
  24. {
  25.     setlocale(LC_ALL,".1251");//для русского языка
  26.     while(1)
  27.     {
  28.         switch(menu())
  29.         {
  30.         case 1:vvod();break;
  31.         case 2:vivod();break;
  32.         case 3:sort();break;
  33.         case 4:return 0;break;
  34.             default:printf("Не верно выбрано значение\n");
  35.         }
  36.     }
  37.     return 0;
  38. }
  39.  
  40. int menu()
  41. {
  42.     int ch;
  43.     printf("\nМеню:\n");
  44.     printf("1.Ввод структуры\n");
  45.     printf("2.Вывод структуры\n");
  46.     printf("3.Сортировка по дате рождения\n");
  47.     printf("4.Выход\n");
  48.     printf("Ваш выбор? - ");
  49.     scanf("%d",&ch);
  50.     return ch;
  51. }
  52.  
  53. void vvod()
  54. {
  55.     int i;
  56.     do {
  57.         printf("Запись №%d:\n", records+1);
  58.         printf("Введите фамилию\n");
  59.         fflush(stdin);
  60.         gets(NOTE[records].fam);
  61.         printf("Введите имя\n");
  62.         fflush(stdin);
  63.         gets(NOTE[records].name);
  64.         printf("Введите номер телефона\n");
  65.         scanf("%d",&NOTE[records].nomer);
  66.         printf("Введите дату рождения\n");
  67.         scanf("%d",&NOTE[records].date);
  68.         records++;
  69.         printf("Прекратить работу? 1-нет,0-да\n");
  70.         scanf("%d",&i);
  71.     }while(i);
  72.    
  73. }
  74.  
  75. void vivod()
  76. {
  77.     if(records==0)
  78.         printf("Нет записей\n");
  79.     else
  80.         for(i=0;i<records;i++)
  81.         {
  82.    
  83.         printf("Фамилия : %s",NOTE[i].fam);
  84.         printf("Имя : %s",NOTE[i].name);
  85.         printf("Номер : %d",NOTE[i].nomer);
  86.         printf("Дата рождения : %d\n",NOTE[i].date);
  87.     }
  88. }
  89.  
  90. void sort()
  91. {
  92. for (i=0; i<records-1; i++)
  93.         for (j=i; j<records; j++)
  94.             if (NOTE[i].date>NOTE[j].date)//По возростанию
  95.             { temp=NOTE[i];
  96.                NOTE[i]=NOTE[j];
  97.                NOTE[j]=temp;
  98.             }
  99. }

Объяснение кода листинга программы

  1. Структура данных note описывает информацию о человеке, включая фамилию, имя, номер телефона и дату рождения.
  2. Переменная NOTE является массивом структур note и содержит информацию о всех записях.
  3. Переменная temp используется для временного хранения данных во время сортировки.
  4. Переменная records отслеживает количество записей в массиве NOTE.
  5. Функция menu выводит меню для выбора пользователем действий.
  6. Функция vvod запрашивает у пользователя ввод данных для каждой записи и сохраняет их в соответствующей структуре note.
  7. Функция vivod выводит все записи из массива NOTE в формате фамилии, имени, номера телефона и даты рождения.
  8. Функция sort сортирует записи в массиве NOTE по дате рождения в порядке возрастания.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут