Как сделать меню для программы? - 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
. - В данном коде не обрабатывается случай, когда пользователь вводит некорректные данные.
- В данном коде не обрабатывается случай, когда пользователь вводит буквы вместо цифр.
- В данном коде не обрабатывается случай, когда пользователь вводит число, которое не соответствует номеру пункта меню.
- В данном коде не обрабатывается случай, когда пользователь вводит число, которое больше или меньше, чем количество пунктов меню.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д