Нужен пример создания меню - C (СИ)

Узнай цену своей работы

Формулировка задачи:

как можно создать начальное меню на Си какие для этого используются функции?? желательно на простом примере заранее спасибо

Решение задачи: «Нужен пример создания меню»

textual
Листинг программы
#include <iostream>   /*включение в программу заголовочного файла потоков ввода/вывода */
#include <conio>      /*содержит функции очистуи экрана*/
#include <stdio>      /*включение для форматного ввода/вывода текста*/
#include <windows>    /*подключение библиотеки для корректной работы руссктх шрифтов*/
 
char bufRus[256];     /*инициализация таблицы символов*/
 
char* r(const char* text)    /* создание функции для отображения русских шрифтов*/
        {
      CharToOem(text, bufRus);
      return bufRus;
        }
 
typedef struct
{                     /*определение структуры кошки*/
 char poroda[10];
 int koll;
 int cena;
 int vozr;
}koshki;
/*начало main*/
main ()
{
int i,j,i1,k,kol,x,y;   /*объявление переменных*/
int menu;               /*объявление переменной для работы с меню*/
koshki *b;
k=1;
/*proverka na to chtobi ne bilo vvedeno*/
/*porod bolshe chem mojet rabotat programma*/
while (k == 1)
{
    cout << r("\nВведите количество пород\n");
    cin >> kol;
 
    if (kol>100)
    {
        cout << r("Программа не может работать с таким количеством данных");
        k=1;      /*если число меньше 100,то программа выходит из цикла*/
    }
    else k=0;/*если число больше то программа уходит в цикл*/
}
 
for (i=0; i<kol ; i++)
    {
  clrscr();
  cout << r("\nВведите породу \n");
  gets (b[i].poroda);   /*ввод названия пород кошек*/
  cout << r("введите количество котят\n");
  cin >> b[i].koll;     /*ввод количество кошек*/
  cout << r("введите возраст котят\n");
  cin >> b[i].vozr;     /*ввод возраста котят*/
  cout << r("введите цену за одного котенка\n");
  cin >> b[i].cena;     /*ввод цены за одного кота*/
 
    }
 
 
 
clrscr();                   /*очистка экрана*/
/*вывод полученной таблицы*/
cout << "\n+---+-----------+-----------+---------------+--------+\n";
cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
cout << "\n+---+-----------+-----------+---------------+--------+\n";
i=0;
while (i<kol)
{
 
 printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
                                                      b[i].poroda,
                                             b[i].vozr,
                                            b[i].koll,
                                               b[i].cena);
 
 i++;
 
 }
menu = 1;
for (i1=0; menu!=0; i1 = i1)  /*выход из цикла возможен только если с*/
{                             /*клавиатуры будет введен 0*/
clrscr();
// !!!!!!!!!! ВОТ ТУТ НАЧИНАЕТЬСЯ РЕАЛИЗАЦИЯ МЕНЮ, С ФУНКЦИЕЙ SWITCH ( ).....
cout << r("\n\n\aЧто вы хотите страшного сделать с таблицей:");
cout << r("\n- для редактирования нажмите - 1");
cout << r("\n- для просмотра таблицы нажмите - 2");
cout << r("\n- для показа статистики нажмите - 3");
cout << r("\n- для добавки доболнительных записей в таблицу нажмите - 4");
cout << r("\n- для выхода введите - '0' ");
cin >> menu;
 switch (menu)
    {
   case 1:
    /*redaktirovanie tablici*/
    clrscr ();
    {
      for (k = 1; k!=0; k=k)
    { clrscr();
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
      cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
          i=0;
      while (i<kol)
      {
 
         printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
                                                      b[i].poroda,
                                             b[i].vozr,
                                            b[i].koll,
                                               b[i].cena);
 
         i++;
 
      }
      cout << r("\nдял редактирования введите первую цифру - номер столбца\n");
      cout << r("а вторая цифра номер строки\n");
      cout << r("для выхода введите - '0 и 0' ");
      cin >>x>>y;/*получение номер столбца и номера строки которые необходимо изменить*/
        switch(x)
        {
       case 1:
            {       /*изменение названия вида*/
             cout << r("\n Введите новое название вида кошки ")<<r("строки - ")
                    <<b[y-1].poroda;
             gets(b[y-1].poroda);
             clrscr();
             break;
             }
       case 2:
             {    /*изменения возраста котов*/
             cout <<r("\n Введите новый возраст ккотят в строку ")<<y;
             cin >> (b[y-1].vozr);
             clrscr();
             break;
             }
       case 3:
             {      /*изменение количество котов*/
              cout <<r("\n Введите новое количество котят породы ")
                     <<b[y-1].poroda;
              cin >>(b[y-1].koll);
              clrscr();
              break;
             }
       case 4:
             {      /*изменение цены за одного кота*/
              cout <<r("\n Введите цену цену за одного котенка породы ")
                     <<b[y-1].poroda;
              cin >>(b[y-1].cena);
              clrscr();
              break;
             }
       case 0:
             {      /*выход из редактирования таблицы*/
              k = 0;
              break;
             }
    }   }
 
   case 2:
   /*prosmotr tablici*/
   {
   clrscr();
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
      cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
          i=0;
      while (i<kol)
      {
 
         printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
                                                      b[i].poroda,
                                             b[i].vozr,
                                            b[i].koll,
                                               b[i][BASH][/BASH].cena);
 
         i++;
 
      }
      cout <<r("\n для выхода нажмите любую клавишу...");
      getch();
      clrscr();
      break;
    }
 
    case 3:
    /*ccozdanie statistici*/
    { clrscr();
 
     x=0; y=0;
     for (i=0; i < kol; i++)
     {
      x = x + (b[i].koll*b[i].cena); /*подсчет суммы при продаже всех котят*/
      y = y + b[i].koll;             /*подсчет количества котят, всго*/
     }
     cout <<r("\n Всего разных видов котят - ")<<kol;
     cout <<r("\n общее количество котят выставленнызх на продажу - ")<<y;
     cout <<r("\n Сумма при продаже всех котят - ")<<x;
     cout <<r("\n для выхода нажмите любую клавишу...");
     getch ();
     break;
    }
    case 4:
    /*!dobovlenie novih zapisey v tablicu!*/
    {
     y = kol;
     cout <<r("\n сколько вы хотите добавить записей? ");
     cin >> kol;
     for (i = y; i <y + kol; i++)    /*добавление новых записей к существующим в таблице*/
     {
      clrscr;
      cout << "\n vvedite porodu \n";
      gets (b[i].poroda);
        cout << "vvedite kolichestvo kotiat\n";
      cin >> b[i].koll;
      cout << "vvedite vozrast kotiatka\n";
      cin >> b[i].vozr;
      cout << "vvedite cenu za kotianku\n";
      cin >> b[i].cena;
     }
     kol=y+kol;
     clrscr(); /*очистка экрана и вывод таблицы*/
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
      cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
      cout << "\n+---+-----------+-----------+---------------+--------+\n";
          i=0;
      while (i<kol)
      {
 
         printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
                                                      b[i].poroda,
                                             b[i].vozr,
                                            b[i].koll,
                                               b[i].cena);
 
         i++;
 
      }
     cout <<r("\n для выхода нажмите любую клавишу...");
     getch ();
     clrscr();
     break;
     }
 
     }
 
    break;
   }
 
 
}
 
 
return 0;   /*показывает успешное завершение*/
/*конец main*/
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5