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