1

Тема: Виведення масиву структур на екран у вигляді таблиці

У програмі повинні бути реалізовані наступні функції: 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);
    }
}

проблема в тому що я не можу вести масиву структур на екран у вигляді таблиці. Я прописав функції, воно не працює.

2

Re: Виведення масиву структур на екран у вигляді таблиці

Увімкніть для початку комп'ютер.
Або просто замість "не працює" опишіть конкретно, що відбувається.

3

Re: Виведення масиву структур на екран у вигляді таблиці

Тобі потрібно написати клас Persons, який буде містити масив структур. В ньому будуть функції Add та Print. Потрібна лише одна функція, яка буде спілкуватися з користувачем, а після поверне посилання на екземпляр класу Person. Цю функцію треба зациклити на термінальне введення типу

поки результ = Створити(&Персону):
  Песоналії.Додати(Персону)
Персоналії.ДрукуватиУсіх()

от і вся задача