Описать структуру с именем 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;
            }
}

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

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

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


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

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

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