Нужен пример создания меню - 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*/
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д