Как вывести данные в виде таблицы c
Перейти к содержимому

Как вывести данные в виде таблицы c

  • автор:

Как вывести данные в виде таблицы c

Регистрация: 12.12.2019

Сообщений: 3

Вывод массива структур на экран в виде таблицы

Хранение данных необходимо организовать в виде массива
структур. В программе должны быть реализованы следующие функции:
1) Создание новой записи;
2) Вывод массива структур на экран в виде таблицы;
3) Поиск записи по параметру;
4) Удаление записи из массива;
5) Сортировка массива структур с некоторым параметром некоторым параметром
мой код( не роботает, когда вожу уже «nationality» вылетает.

#include #include #include 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"); >

Вывести данные в виде таблицы

Author24 — интернет-сервис помощи студентам

Задание:Разработать программу, вводит фактические данные из таблицы, предоставленной в Вашем варианте индивидуального задания и выводит на экран таблицу, подобную той, что находится в индивидуальном задании (включая заголовок и примечания).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#іnclude іnt maіn(voіd) \n", name1, tolsh1, ves1, rad1, cena1); prіntf("

Вот пытался делать,помогите исправить.

Преобразование текста в таблицу или таблицы в текст

Кнопка

Чтобы преобразовать текст в таблицу или таблицу в текст, начните с щелчка Показать и скрыть абзац на вкладке Главная . Это позволяет увидеть, как текст разделяется в документе.

На вкладке

Преобразование текста в таблицу

  1. Чтобы отметить границы столбцов, в которых вы хотите расположить текст, вставьте знаки разделения, например запятые или знаки табуляции.

Примечание: Если в тексте есть запятые, в качестве разделителей используйте знаки табуляции.

  • Обозначьте границы строк будущей таблицы с помощью знаков абзаца. В следующем примере с помощью знаков табуляции и абзаца текст разбивается на таблицу с 3 столбцами и 2 строками. Текст, который требуется преобразовать в таблицу
  • Выделите текст, который вы хотите преобразовать, а затем щелкните Вставка >Таблица >Преобразовать в таблицу. На вкладке
  • В окне Текст в таблицу задайте параметры. Отображается диалоговое окно В разделе Размер таблицы убедитесь в том, что указанные числа соответствуют требуемому количеству столбцов и строк. В разделе Автоподбор ширины столбцов выберите вид таблицы. Word автоматически подбирает ширину столбцов таблицы. Если вам нужны столбцы другой ширины, выполните одно из перечисленных ниже действий.

    Действие Параметр
    Задать ширину всех столбцов В поле Фиксированная ширина столбца введите или выберите необходимое значение.
    Изменить размер столбцов в соответствии с шириной текста в каждом столбце Автоподбор по содержимому
    Автоматически менять размер таблицы при изменении ширины доступного пространства (например, режим веб-документа или альбомная ориентация) Автоподбор по ширине окна

    Таблица

    В разделе Разделитель текста выберите использованный в тексте знак разделителя.

  • Нажмите кнопку ОК. Преобразованный в таблицу текст должен выглядеть подобным образом:
  • Преобразование таблицы в текст

    На вкладке

    1. Выделите строки или таблицу для преобразования в текст.
    2. На вкладке Макет в разделе Данные выберите Преобразовать в текст.
    3. В окне Таблицу в текст в разделе Разделитель выберите знак разделения, который будет использоваться вместо границ столбцов. Строки будут разделены знаками абзаца.
    4. Нажмите кнопку ОК.

    Как вывести структуру в виде таблицы на СИ?

    Вот что получается

    возникла такая проблема- пытался вывести структуру в виде таблицы, но почему-то не получается.

    #include "stdafx.h" #include "stdio.h" #include"Windows.h" #include "locale.h" typedef struct < int year; int ussr; int usa; int eng; int fran; >row; row table[5]; #pragma warning (disable : 4996) int _tmain(int argc, _TCHAR* argv[]) < setlocale(LC_ALL, ""); char *nazva[] = < " Годы ", " СССР ", " США ", " Англия ", " Франция " >; printf("Введите данные: "); for (int i = 0; i for (int i = 0; i system("pause"); return 0; > 

    Пример

    Вот собственно говоря код этого чуда, не судите строго, я еще толком не разобрался, что тут да как. Не могу понять как сделать хотя бы приблизительно такой вид у таблицы

    Отслеживать
    Drunk Withcher
    задан 25 ноя 2020 в 17:38
    Drunk Withcher Drunk Withcher
    21 1 1 серебряный знак 5 5 бронзовых знаков

    Задайте ширину для полей вывода. printf(«%10s «, nazva[i]); и так всем. 10 для примера. Можете указать другое значение.

    – user361068
    25 ноя 2020 в 17:45
    Попробовал, стало лучше, но все равно не так как нужно
    25 ноя 2020 в 17:53
    Что, прям с рамкой?
    – user361068
    25 ноя 2020 в 17:57
    Без рамки, главное чтобы она была такого вида
    25 ноя 2020 в 17:59
    Шапку (это у вас массив nazva[] ) и строки печатайте в разных циклах.
    25 ноя 2020 в 18:00

    2 ответа 2

    Сортировка: Сброс на вариант по умолчанию

    // Здесь, кстати, нужен const const char *nazva[5] = < "Годы", "СССР", "США", "Англия", "Франция" >; // Здесь ввод данных // Выводим шапку таблицы // 5 потому что в nazva лежат 5 строк for (int i = 0; i < 5; i++) < printf("%10s ", nazva[i]); >// Переход на следующую строку printf("\n"); // Выводим данные из массива // ArrSize - количество выводимых структур for (int i = 0; i

    Отслеживать
    ответ дан 25 ноя 2020 в 18:17
    user361068 user361068

    помогла константа, но почему-то вывод строк не такой, то есть первый вводимый пользователем элемент(год) выводится в строчку, как и все остальное

    25 ноя 2020 в 18:25
    Вы вводите сначала года чтоли?
    – user361068
    25 ноя 2020 в 18:28
    вначале вывожу константу, года и все остальное вывожу последовательно
    25 ноя 2020 в 18:44
    Вы вводите с клавиатуры числа по очереди так: 1928 120 137 94 105 или так: 1928 1940 1950 1955 120?
    – user361068
    25 ноя 2020 в 18:50
    да, сканирую вначале все года, затем данные сср,сша, англии и франции
    25 ноя 2020 в 19:06

    Cпасибо всем кто пытался помочь в решении моей проблемы. Я его все-таки нашел:

    #include "stdafx.h" #include "stdio.h" #include"Windows.h" #include "locale.h" typedef struct < int year, ssr, usa, ang, franz; >dannie; dannie d[5]; #pragma warning (disable : 4996) int _tmain(int argc, _TCHAR* argv) ; int i = 0; printf("Введите года: "); for (i = 0; i < 5; i++) < scanf("%d", &d[i].year); >printf("Введите данные СССР: "); for (i = 0; i < 5; i++) < scanf("%d", &d[i].ssr); >printf("Введите данные США: "); for (i = 0; i < 5; i++) < scanf("%d", &d[i].usa); >printf("Введите данные Англии: "); for (i = 0; i < 5; i++) < scanf("%d", &d[i].ang); >printf("Введите данные Франции: "); for (i = 0; i < 5; i++) < scanf("%d", &d[i].franz); >for (i=0;i <5;i++) < printf("%s\t", nazva[i]); >printf("\n"); for (i=0;i <5;i++) < printf("%4d\t", d[i].year); printf("%4d\t", d[i].ssr); printf("%3d\t", d[i].usa); printf("%6d\t", d[i].ang); printf("%7d\t", d[i].franz); printf("\n"); >printf("\n Производится расчет производительности труда. \n"); float tempra=0, temprf=0; float rascheta, raschetf; for (int i = 0; i < 5; i++) < printf("Год:%d, Англия:%d, Франция:%d\n", d[i].year, d[i].ang, d[i].franz); rascheta =(float) d[i+1].ang / d[i].year * 100; raschetf =(float) d[i].franz / d[i].year * 100; if (rascheta >tempra) < tempra = rascheta; printf("Прирост за %d год составляет(Англия): %f\n", d[i].year, tempra); >else < printf("Прироста за %d год не было(Англия)\n", d[i].year); >if (raschetf > temprf) < temprf = raschetf; printf("Прирост за %d год составляет(Франция): %f\n", d[i].year, temprf); >else < printf("Прироста за %d год не было(Франция)\n", d[i].year); >> float raznica; raznica = temprf - tempra; if (raznica < 0) < -raznica; >printf("Разница: %f\n", raznica); printf("Введите процент роста: "); float P; float tempu; int y[5]; scanf("%f", &P); if (P <=0) < printf("Отрицательного процента роста не бывает\n"); >else < for (i=0; i<5;i++) < tempu = d[i + 1].usa / d[i].usa * 100; if (tempu<=P) < printf("В %d году не превышало\n", d[i].year); >> > system("pause"); return 0; > 

    Эта работа уже с дополнениями, но суть вывода таблицы заключается в следующем- мы должны спросить каждый элемент таблицы у пользователя в отдельности и занести это в массив структур, как это и было в старой версии, но при этом запоминать не строкой, а переменной массива структур, после чего поэлементно вывести вначале названия таблицы через цикл for, а затем вывести через этот цикл все данные, главное это указать сколько места они будут занимать(К примеру, Года, 4 буквы, то есть когда выводим таблицу вначале выводим заголовок, а после этого тоже в цикле for printf(«%4d», d[i].year); но цикл этим не заканчивается, продолжаем так для всех данных, а затем в конце с новой строки, иначе все данные пойдут строчкой). Еще раз хочу всем сказать огромное спасибо, без вашей помощи я бы не справился)))

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *