Описать структуру с именем NOTE - C (СИ)
Формулировка задачи:
Описать структуру с именем NOTE, содержащий следующие поля:
• фамилия, имя;
• номер телефона
• дата рождения (массив из трех чисел).
Написать программу, которая выполняет следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE;
• записи должны быть упорядочены по датам рождения; выводит на экран информации о человеке, номер телефона которого введен с клавиатуры;
• если такого нет, выдать на дисплей соответствующее сообщение.
Решение задачи: «Описать структуру с именем NOTE»
textual
Листинг программы
#include "stdafx.h" #include "locale.h"//для русского языка #include "string.h" #include "stdlib.h" struct note { char fam[40];//Фамилия char name[40];//имя int nomer;//Номер телефона int date;//Дата рождения }; struct note NOTE[100]; struct note temp;//для сортировки int records=0; int i=0,j; int menu(); void vvod();//Ввод void vivod();//Вывод void sort();//записи должны быть упорядочены по датам рождения; Т.е. сортировка по дате рождения int main() { setlocale(LC_ALL,".1251");//для русского языка while(1) { switch(menu()) { case 1:vvod();break; case 2:vivod();break; case 3:sort();break; case 4:return 0;break; default:printf("Не верно выбрано значение\n"); } } return 0; } int menu() { int ch; printf("\nМеню:\n"); printf("1.Ввод структуры\n"); printf("2.Вывод структуры\n"); printf("3.Сортировка по дате рождения\n"); printf("4.Выход\n"); printf("Ваш выбор? - "); scanf("%d",&ch); return ch; } void vvod() { int i; do { printf("Запись №%d:\n", records+1); printf("Введите фамилию\n"); fflush(stdin); gets(NOTE[records].fam); printf("Введите имя\n"); fflush(stdin); gets(NOTE[records].name); printf("Введите номер телефона\n"); scanf("%d",&NOTE[records].nomer); printf("Введите дату рождения\n"); scanf("%d",&NOTE[records].date); records++; printf("Прекратить работу? 1-нет,0-да\n"); scanf("%d",&i); }while(i); } void vivod() { if(records==0) printf("Нет записей\n"); else for(i=0;i<records;i++) { printf("Фамилия : %s",NOTE[i].fam); printf("Имя : %s",NOTE[i].name); printf("Номер : %d",NOTE[i].nomer); printf("Дата рождения : %d\n",NOTE[i].date); } } void sort() { for (i=0; i<records-1; i++) for (j=i; j<records; j++) if (NOTE[i].date>NOTE[j].date)//По возростанию { temp=NOTE[i]; NOTE[i]=NOTE[j]; NOTE[j]=temp; } }
Объяснение кода листинга программы
- Структура данных
note
описывает информацию о человеке, включая фамилию, имя, номер телефона и дату рождения. - Переменная
NOTE
является массивом структурnote
и содержит информацию о всех записях. - Переменная
temp
используется для временного хранения данных во время сортировки. - Переменная
records
отслеживает количество записей в массивеNOTE
. - Функция
menu
выводит меню для выбора пользователем действий. - Функция
vvod
запрашивает у пользователя ввод данных для каждой записи и сохраняет их в соответствующей структуреnote
. - Функция
vivod
выводит все записи из массиваNOTE
в формате фамилии, имени, номера телефона и даты рождения. - Функция
sort
сортирует записи в массивеNOTE
по дате рождения в порядке возрастания.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д