Тема: Виведення масиву структур на екран у вигляді таблиці
У програмі повинні бути реалізовані наступні функції: 2) Виведення масиву структур на екран у вигляді таблиці;
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string.h>
#include <Windows.h>
using namespace std;
struct person{
public:
char* name1, *name2, *name3, *sex, *nationality;
int height, weight;
int year, month, number;
long long phone_number;
int zip_code;
char* country, *region, *city, *street;
int house, apartment;
};
void PrintArr(person per[], int index);
void PrintHeader();
void line1();
void line2();
void PrintElement(int index);
void PrintHeader();
void Input(person per[], int index)
{
for (int i = 0; i < index; i++)
{
printf("Людина : %d\n", i + 1);
printf("Ведіть Прізвище людини:");
per[i].name1 = new char[12];
cin.get();
cin.getline(per[i].name1, 12);
printf("Ведіть Імя людини:");
per[i].name2 = new char[12];
cin.get();
cin.getline(per[i].name2, 12);
printf("Ведіть По-батькові людини:");
per[i].name3 = new char[17];
cin.get();
cin.getline(per[i].name3, 17);
printf("Ведіть стать людини:");
per[i].sex = new char[55];
cin.get();
cin.getline(per[i].sex, 55);
printf("Ведіть національність людини:");
per[i].nationality = new char[55];
cin.get();
cin.getline(per[i].nationality, 55);
printf("Ведіть ріст людини:");
scanf_s("%d", &per[i].height);
printf("Ведіть вагу людини:");
scanf_s("%d", &per[i].weight);
printf("Ведіть рік народження людини:");
scanf_s("%d", &per[i].year);
printf("Ведіть місяць народження людини:");
scanf_s("%d", &per[i].month);
printf("Ведіть число народження людини:");
scanf_s("%d", &per[i].number);
printf("Ведіть номер телефону людини:");
scanf_s("%d", &per[i].phone_number);
printf("Ведіть zip code людини:");
scanf_s("%d", &per[i].zip_code);
printf("Ведіть країну людини:");
per[i].country = new char[15];
cin.get();
cin.getline(per[i].country, 15);
printf("Ведіть регіон людини:");
per[i].region = new char[12];
cin.get();
cin.getline(per[i].region, 12);
printf("Ведіть місто людини:");
per[i].city = new char[12];
cin.get();
cin.getline(per[i].city, 12);
printf("Ведіть вулицю людини:");
per[i].street = new char[14];
cin.get();
cin.getline(per[i].street, 14);
printf("Ведіть будинок людини:");
scanf_s("%d", &per[i].house);
printf("Ведіть квартиру людини:");
scanf_s("%d", &per[i].apartment);
printf("\n");
}
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int index = 1;
person arr[index];
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(arr, index); break;
case 2:PrintArr(arr, index); break;
case 3:(arr, index); break;
case 4:(arr, index); break;
case 5:(arr, index); break;
case 0:(arr, index); break;
default:printf("Такої функції не існує\n");
}
} while (selection != 0);
system("pause");
}
void line1() {
printf_s("___________________________________________________________________________________________________________________________________________________\n");
}
void line2() {
printf_s("---------------------------------------------------------------------------------------------------------------------------------------------------\n"); //лінії для таблиці
}
void PrintArr(person per[]) //виведення таблиці
{
for (int i = 0; i < 1; i++)
{
PrintHeader();
PrintElement(i);
line2();
}
}
void PrintHeader() {
line1();
printf_s("| № ");
printf_s("| Ім'я |");//12
printf_s(" Прізвище |");//12
printf_s(" По-батькові |");//14
printf_s("стать|");//4
printf_s("національність|");//6
printf_s(" зріст |");//5
printf_s("вага|");//5
printf_s("рік|");//4
printf_s("місяць|");//5
printf_s("день|");//4
printf_s("Номер телефона|");//20
printf_s("zip_code|");//20
printf_s("країна |");
printf_s("регіон |");
printf_s("місто |");
printf_s("вулиця |");
printf_s("будинок|");
printf_s("квартира |");
line2();
}
void PrintElement(person per[], int index)
{
for (int i = 0; i < index; i++) {
printf_s("|%5d", index);
printf_s("|%-12s|", per[i].name1);
printf_s("%-12s|", per[i].name2);
printf_s("%-14s|", per[i].name3);
printf_s("%4d|", per[i].sex);
printf_s("%4d|", per[i].nationality);
printf_s("%6d|", per[i].height);
printf_s("%6d|", per[i].weight);
printf_s("%5d|", per[i].year);
printf_s("%5d|", per[i].month);
printf_s("%5d|", per[i].number);
printf_s("+%-14lld|\n", per[i].phone_number);
printf_s("%5d|", per[i].zip_code);
printf_s("%5d|", per[i].country);
printf_s("%5d|", per[i].region);
printf_s("%5d|", per[i].city);
printf_s("%5d|", per[i].street);
printf_s("%5d|", per[i].house);
printf_s("%5d|", per[i].apartment);
}
}
проблема в тому що я не можу вести масиву структур на екран у вигляді таблиці. Я прописав функції, воно не працює.