Лабораторная работа по Си структуры

Цель работы

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

Лабораторное задание

Составить программу, которая выполняет следующие действия:
- ввод структурированных данных;
- вывод исходных данных в виде заданной таблицы;
- перестановку местами верхней и нижней строк структурированных данных;
- вывод результата преобразования.


Описание метода решения задачи

·        Ввод данных о типе одежды, ее доступных размерах и ее стоимости
·        Вывод на экран в виде таблицы
·        Перестановка местами верхней и нижней строк
·         Вывод результата преобразования

Листинг  

#include <stdio.h>
#include <conio.h>
#include <locale>
#include <windows.h>
void main(void)
{
     setlocale(LC_ALL, "Russian");
     setlocale(LC_ALL, "rus");
     int cp = GetConsoleCP();
     const char shapka[] =
         "+-------------------------------------------------------------+\n"
         "|   |                 |       размер       |                  |\n"
         "| # |  Название       |----------+---------|       цена       |\n"
         "|   |                 | мин      | макс    |                  |\n"
         "+---+-----------------+----------+---------+------------------+\n";
     struct str
     {
         int num ;
         char name[10] ;
         struct razm
         {
              char Min[3], Max[3];
         }razm;
         char price[10];
     };
     int i;

     struct str odejda[5], temp;
     for (i=0; i<5; i++)
     {
         odejda[i].num = i + 1;
         printf("Введите название %d типа одежды: ", i + 1);
         gets(odejda[i].name);
         printf("Введите минимальный размер %d типа одежды: ", i + 1);
         gets(odejda[i].razm.Min);
         printf("Введите максимальный размер %d типа одежды:", i + 1);
         gets(odejda[i].razm.Max);
         printf("Введите цену на %d тип одежды : ", i + 1);
         gets(odejda[i].price);

     }
     system("cls");
     printf ("%s",shapka);
     SetConsoleCP(1251);
     for (i=0; i<5; i++)
     {
         printf ("| %-2d| %-16s| %-9s| %-8s| %-17s|\n",odejda[i].numodejda[i].name,   odejda[i].razm.Min,   odejda[i].razm.Max,   odejda[i].price);
         printf ("+-------------------------------------------------------------+\n");
     }

     temp = odejda[0];
     odejda[0] = odejda[4];
     odejda[4] = temp;
     SetConsoleCP(cp);
     printf ("\n\n%s",shapka);
     SetConsoleCP(1251);
     for (i=0; i<5; i++)
     {
         printf ("| %-2d| %-16s| %-9s| %-8s| %-17s|\n",odejda[i].numodejda[i].name,   odejda[i].razm.Min,   odejda[i].razm.Max,   odejda[i].price);
         printf ("+-------------------------------------------------------------+\n");
     }
     getch();
}


Пояснительный текст к программе


Переменные name, price, Min и Max отвечают соответственно за  введенные данные названия, цены, минимально и максимально доступного размера.

Комментариев нет:

Отправить комментарий