Хранение данных необходимо организовать в виде массива
структур. В программе должны быть реализованы следующие функции:
1) Создание новой записи;
2) Вывод массива структур на экран в виде таблицы;
3) Поиск записи по параметру;
4) Удаление записи из массива;
5) Сортировка массива структур с некоторым параметром некоторым параметром
мой код( не роботает, когда вожу уже "nationality" вылетает.
Код:
#include<iostream>
#include<string.h>
#include <Windows.h>
using namespace std;
struct person
{
char* fio;
char sex[13];
char nationality[25];
int height;
int weight;
struct person_date_of_birth {
int year;
int month;
int number;
};
person_date_of_birth pdob;
int phone_number;
struct person_home_adres {
int zip_code;
char country[20];
char region[20];
char district[20];
char city[20];
char street[20];
int house;
int apartment;
};
person_home_adres pha;
};
void Input(person per[], int n)
{
for (int i = 0; i < n; i++)
{
printf("Людина : %d\n", i + 1);
printf("Ведіть ФІО людини:");
per[i].fio = new char[55];
cin.get();
cin.getline(per[i].fio, 55);
printf("Ведіть стать людини:");
scanf_s("%s\n", per[i].sex);
printf("Ведіть національність людини:");
scanf_s("%s\n", per[i].nationality);
printf("Ведіть ріст людини:");
scanf_s("%d\n", &per[i].height);
printf("Ведіть вагу людини:");
scanf_s("%d\n", &per[i].weight);
void Input(person::person_date_of_birth pdob[], int n);
printf("Ведіть номер телефону людини:");
scanf_s("%d\n", &per[i].phone_number);
void Input(person::person_home_adres pha[], int n);
printf("\n");
}
}
void Input(person::person_date_of_birth pdob[], int n)
{
for (int i = 0; i < n; i++)
{
printf("Ведіть рік народження людини:");
scanf_s("%d\n", &pdob[i].year);
printf("Ведіть місяць народження людини:");
scanf_s("%d\n", &pdob[i].month);
printf("Ведіть число народження людини:");
scanf_s("%d\n", &pdob[i].number);
}
}
void Input(person::person_home_adres pha[], int n)
{
for (int i = 0; i < n; i++)
{
printf("Ведіть zip code людини:");
scanf_s("%d\n", &pha[i].zip_code);
printf("Ведіть країну людини:");
scanf_s("%s\n", pha[i].country);
printf("Ведіть регіон людини:");
scanf_s("%s\n", pha[i].region);
printf("Ведіть район людини:");
scanf_s("%s\n", pha[i].district);
printf("Ведіть місто людини:");
scanf_s("%s\n", pha[i].city);
printf("Ведіть вулицю людини:");
scanf_s("%s\n", pha[i].street);
printf("Ведіть будинок людини:");
scanf_s("%d\n", &pha[i].house);
printf("Ведіть квартиру людини:");
scanf_s("%d\n", &pha[i].apartment);
}
}
void Output(person per[], int n)
{
printf("ПІП\tСтать\tНаціональність\tРіст\t\Вага\tДата народження\tНомер телефону\tДомашній адрес\t");
for (int i = 0; i < n; i++)
{
printf("%c\t%c\t%c\t%d\t%d\t%d\t%d:%d:%d\t%d\t%d%:c%:c%:c%:c%:c%:%d:%d\t", per[i].fio, per[i].sex, per[i].nationality, per[i].height, per[i].weight, per[i].pdob.year, per[i].pdob.month, per[i].pdob.number, per[i].pha.zip_code, per[i].pha.country, per[i].pha.region, per[i].pha.district, per[i].pha.city, per[i].pha.street, per[i].pha.house, per[i].pha.apartment);
}
}
void Free(person per[], int n)
{
for (int i = 0; i < n; i++)
{
delete[] per[i].fio;
}
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int n = 10;
person mas[n];
int selection;
do
{
printf("\n");
printf("Виберіть потрібну функцію:\n");
printf("1 - Створення нового запису\n");
printf("2 - Виведення масиву структур на екран у вигляді таблиці\n");
printf("3 - Пошук запису за параметром\n");
printf("4 - Видалення запису із масиву\n");
printf("5 - Сортування масиву структур за деяким параметром\n");
printf("0 - Вихід\n");
scanf_s("%d", &selection);
switch (selection)
{
case 1:Input(mas, n); break;
case 2:Output(mas, n); break;
case 3:(mas, n); break;
case 4:(mas, n); break;
case 5:(mas, n); break;
case 0:Free(mas, n); break;
default:printf("Такой функции нет\n");
}
} while (selection != 0);
system("pause");
}