Как сделать меню для программы? - C (СИ)
Формулировка задачи:
Надо сделать меню для программки,
1. Ввод чисел в массив random
2. Ввод своих чисел в массив
как это сделать, в паскале знаю как, а вот в Си нет.
Решение задачи: «Как сделать меню для программы?»
textual
Листинг программы
- #include <stdio.h>
- typedef enum {
- MENU_ITEM_EXIT,
- MENU_ITEM_USAGE,
- MENU_ITEM_HELLO,
- /* Should be the last */
- MENU_ITEM_UNKNOWN,
- } MENU_ITEM_E;
- const char *menu_item_names[] = {
- "Exit", "Usage", "Hello",
- };
- void usage() {
- printf("menu.c, 2011\n"
- "Enter the number of operation, 0 to exit\n");
- }
- void hello() {
- printf("Hello, World\n");
- }
- void menu_print_items() {
- MENU_ITEM_E i;
- for (i = 0; i != MENU_ITEM_UNKNOWN; ++i)
- printf("[%d] %s\n", i, menu_item_names[i]);
- }
- MENU_ITEM_E menu_exec(int item) {
- switch (item) {
- case MENU_ITEM_EXIT:
- break;
- case MENU_ITEM_USAGE:
- usage();
- break;
- case MENU_ITEM_HELLO:
- hello();
- break;
- default:
- printf("Uknown menu item\n");
- item = MENU_ITEM_UNKNOWN;
- }
- return item;
- }
- int main() {
- int item = 0;
- do {
- menu_print_items();
- printf("> ");
- scanf("%d", &item);
- } while (menu_exec(item) != MENU_ITEM_EXIT);
- return 0;
- }
Объяснение кода листинга программы
- Программа представляет собой меню на языке C.
- Тип данных переменной
item
—int
. - Переменная
item
используется для получения выбора пользователя. - В начале программы объявлен массив
menu_item_names
с именами пунктов меню. - Функция
usage
выводит информацию о программе и её использовании. - Функция
hello
выводит приветствие на экран. - Функция
menu_print_items
выводит список пунктов меню. - В функции
menu_exec
происходит обработка выбранного пункта меню. - В случае выбора пункта меню
Exit
,Usage
илиHello
, выполняется соответствующая функция. - В случае выбора пункта меню
Unknown
, на экран выводится сообщение об ошибке. - В функции
main
создаётся переменнаяitem
, которая используется для получения выбора пользователя. - В цикле до тех пор, пока пользователь не выберет пункт меню
Exit
, происходит вывод списка пунктов меню и получение выбора пользователя. - После получения выбора пользователя, он передаётся в функцию
menu_exec
для обработки. - После выполнения функции
menu_exec
, программа возвращается в начало цикла. - В конце программы выполняется команда
return 0;
, заканчивающая работу программы. - Для работы программы на ввод данных от пользователя используется функция
scanf
. - В данном коде не обрабатывается случай, когда пользователь вводит некорректные данные.
- В данном коде не обрабатывается случай, когда пользователь вводит буквы вместо цифр.
- В данном коде не обрабатывается случай, когда пользователь вводит число, которое не соответствует номеру пункта меню.
- В данном коде не обрабатывается случай, когда пользователь вводит число, которое больше или меньше, чем количество пунктов меню.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д