Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2019, 15:48   #1
Bohdan12
Новичок
Джуниор
 
Регистрация: 12.12.2019
Сообщений: 3
По умолчанию Вывод массива структур на экран в виде таблицы

Хранение данных необходимо организовать в виде массива
структур. В программе должны быть реализованы следующие функции:
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");
}
Bohdan12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить и вывести на экран в виде таблицы значения функции C# Happy- Помощь студентам 0 13.10.2015 17:54
Массив заполнить натуральными числами от 1 до 10 и организовать вывод массива на экран в виде таблицы sensys64 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 08.04.2015 18:58
Вычислить и вывести на экран в виде таблицы значения функции Klikil Помощь студентам 1 03.03.2014 21:00
Вычислить и вывести на экран в виде таблицы значения функции Mathcоre Помощь студентам 0 22.10.2012 13:30
Вывести на экран значения Х и функции У(Х)=sqrt(x-2)/(x+2) в виде таблицы morsekkk Помощь студентам 5 20.04.2012 14:09