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

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

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

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

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

textual
Листинг программы
  1. #include <iostream>   /*включение в программу заголовочного файла потоков ввода/вывода */
  2. #include <conio>      /*содержит функции очистуи экрана*/
  3. #include <stdio>      /*включение для форматного ввода/вывода текста*/
  4. #include <windows>    /*подключение библиотеки для корректной работы руссктх шрифтов*/
  5.  
  6. char bufRus[256];     /*инициализация таблицы символов*/
  7.  
  8. char* r(const char* text)    /* создание функции для отображения русских шрифтов*/
  9.         {
  10.       CharToOem(text, bufRus);
  11.       return bufRus;
  12.         }
  13.  
  14. typedef struct
  15. {                     /*определение структуры кошки*/
  16.  char poroda[10];
  17.  int koll;
  18.  int cena;
  19.  int vozr;
  20. }koshki;
  21. /*начало main*/
  22. main ()
  23. {
  24. int i,j,i1,k,kol,x,y;   /*объявление переменных*/
  25. int menu;               /*объявление переменной для работы с меню*/
  26. koshki *b;
  27. k=1;
  28. /*proverka na to chtobi ne bilo vvedeno*/
  29. /*porod bolshe chem mojet rabotat programma*/
  30. while (k == 1)
  31. {
  32.     cout << r("\nВведите количество пород\n");
  33.     cin >> kol;
  34.  
  35.     if (kol>100)
  36.     {
  37.         cout << r("Программа не может работать с таким количеством данных");
  38.         k=1;      /*если число меньше 100,то программа выходит из цикла*/
  39.     }
  40.     else k=0;/*если число больше то программа уходит в цикл*/
  41. }
  42.  
  43. for (i=0; i<kol ; i++)
  44.     {
  45.   clrscr();
  46.   cout << r("\nВведите породу \n");
  47.   gets (b[i].poroda);   /*ввод названия пород кошек*/
  48.   cout << r("введите количество котят\n");
  49.   cin >> b[i].koll;     /*ввод количество кошек*/
  50.   cout << r("введите возраст котят\n");
  51.   cin >> b[i].vozr;     /*ввод возраста котят*/
  52.   cout << r("введите цену за одного котенка\n");
  53.   cin >> b[i].cena;     /*ввод цены за одного кота*/
  54.  
  55.     }
  56.  
  57.  
  58.  
  59. clrscr();                   /*очистка экрана*/
  60. /*вывод полученной таблицы*/
  61. cout << "\n+---+-----------+-----------+---------------+--------+\n";
  62. cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
  63. cout << "\n+---+-----------+-----------+---------------+--------+\n";
  64. i=0;
  65. while (i<kol)
  66. {
  67.  
  68.  printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
  69.                                                       b[i].poroda,
  70.                                              b[i].vozr,
  71.                                             b[i].koll,
  72.                                                b[i].cena);
  73.  
  74.  i++;
  75.  
  76.  }
  77. menu = 1;
  78. for (i1=0; menu!=0; i1 = i1)  /*выход из цикла возможен только если с*/
  79. {                             /*клавиатуры будет введен 0*/
  80. clrscr();
  81. // !!!!!!!!!! ВОТ ТУТ НАЧИНАЕТЬСЯ РЕАЛИЗАЦИЯ МЕНЮ, С ФУНКЦИЕЙ SWITCH ( ).....
  82. cout << r("\n\n\aЧто вы хотите страшного сделать с таблицей:");
  83. cout << r("\n- для редактирования нажмите - 1");
  84. cout << r("\n- для просмотра таблицы нажмите - 2");
  85. cout << r("\n- для показа статистики нажмите - 3");
  86. cout << r("\n- для добавки доболнительных записей в таблицу нажмите - 4");
  87. cout << r("\n- для выхода введите - '0' ");
  88. cin >> menu;
  89.  switch (menu)
  90.     {
  91.    case 1:
  92.     /*redaktirovanie tablici*/
  93.     clrscr ();
  94.     {
  95.       for (k = 1; k!=0; k=k)
  96.     { clrscr();
  97.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  98.       cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
  99.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  100.           i=0;
  101.       while (i<kol)
  102.       {
  103.  
  104.          printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
  105.                                                       b[i].poroda,
  106.                                              b[i].vozr,
  107.                                             b[i].koll,
  108.                                                b[i].cena);
  109.  
  110.          i++;
  111.  
  112.       }
  113.       cout << r("\nдял редактирования введите первую цифру - номер столбца\n");
  114.       cout << r("а вторая цифра номер строки\n");
  115.       cout << r("для выхода введите - '0 и 0' ");
  116.       cin >>x>>y;/*получение номер столбца и номера строки которые необходимо изменить*/
  117.         switch(x)
  118.         {
  119.        case 1:
  120.             {       /*изменение названия вида*/
  121.              cout << r("\n Введите новое название вида кошки ")<<r("строки - ")
  122.                     <<b[y-1].poroda;
  123.              gets(b[y-1].poroda);
  124.              clrscr();
  125.              break;
  126.              }
  127.        case 2:
  128.              {    /*изменения возраста котов*/
  129.              cout <<r("\n Введите новый возраст ккотят в строку ")<<y;
  130.              cin >> (b[y-1].vozr);
  131.              clrscr();
  132.              break;
  133.              }
  134.        case 3:
  135.              {      /*изменение количество котов*/
  136.               cout <<r("\n Введите новое количество котят породы ")
  137.                      <<b[y-1].poroda;
  138.               cin >>(b[y-1].koll);
  139.               clrscr();
  140.               break;
  141.              }
  142.        case 4:
  143.              {      /*изменение цены за одного кота*/
  144.               cout <<r("\n Введите цену цену за одного котенка породы ")
  145.                      <<b[y-1].poroda;
  146.               cin >>(b[y-1].cena);
  147.               clrscr();
  148.               break;
  149.              }
  150.        case 0:
  151.              {      /*выход из редактирования таблицы*/
  152.               k = 0;
  153.               break;
  154.              }
  155.     }   }
  156.  
  157.    case 2:
  158.    /*prosmotr tablici*/
  159.    {
  160.    clrscr();
  161.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  162.       cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
  163.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  164.           i=0;
  165.       while (i<kol)
  166.       {
  167.  
  168.          printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
  169.                                                       b[i].poroda,
  170.                                              b[i].vozr,
  171.                                             b[i].koll,
  172.                                                b[i][BASH][/BASH].cena);
  173.  
  174.          i++;
  175.  
  176.       }
  177.       cout <<r("\n для выхода нажмите любую клавишу...");
  178.       getch();
  179.       clrscr();
  180.       break;
  181.     }
  182.  
  183.     case 3:
  184.     /*ccozdanie statistici*/
  185.     { clrscr();
  186.  
  187.      x=0; y=0;
  188.      for (i=0; i < kol; i++)
  189.      {
  190.       x = x + (b[i].koll*b[i].cena); /*подсчет суммы при продаже всех котят*/
  191.       y = y + b[i].koll;             /*подсчет количества котят, всго*/
  192.      }
  193.      cout <<r("\n Всего разных видов котят - ")<<kol;
  194.      cout <<r("\n общее количество котят выставленнызх на продажу - ")<<y;
  195.      cout <<r("\n Сумма при продаже всех котят - ")<<x;
  196.      cout <<r("\n для выхода нажмите любую клавишу...");
  197.      getch ();
  198.      break;
  199.     }
  200.     case 4:
  201.     /*!dobovlenie novih zapisey v tablicu!*/
  202.     {
  203.      y = kol;
  204.      cout <<r("\n сколько вы хотите добавить записей? ");
  205.      cin >> kol;
  206.      for (i = y; i <y + kol; i++)    /*добавление новых записей к существующим в таблице*/
  207.      {
  208.       clrscr;
  209.       cout << "\n vvedite porodu \n";
  210.       gets (b[i].poroda);
  211.         cout << "vvedite kolichestvo kotiat\n";
  212.       cin >> b[i].koll;
  213.       cout << "vvedite vozrast kotiatka\n";
  214.       cin >> b[i].vozr;
  215.       cout << "vvedite cenu za kotianku\n";
  216.       cin >> b[i].cena;
  217.      }
  218.      kol=y+kol;
  219.      clrscr(); /*очистка экрана и вывод таблицы*/
  220.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  221.       cout << "\n| # |\tmodel\t|  vozrast  |  kolichestvo  |  cena  |\n";
  222.       cout << "\n+---+-----------+-----------+---------------+--------+\n";
  223.           i=0;
  224.       while (i<kol)
  225.       {
  226.  
  227.          printf ( "|%3d| %10s| %10d| %14d|%8d|\n", i+1,
  228.                                                       b[i].poroda,
  229.                                              b[i].vozr,
  230.                                             b[i].koll,
  231.                                                b[i].cena);
  232.  
  233.          i++;
  234.  
  235.       }
  236.      cout <<r("\n для выхода нажмите любую клавишу...");
  237.      getch ();
  238.      clrscr();
  239.      break;
  240.      }
  241.  
  242.      }
  243.  
  244.     break;
  245.    }
  246.  
  247.  
  248. }
  249.  
  250.  
  251. return 0;   /*показывает успешное завершение*/
  252. /*конец main*/
  253. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут