Как сделать меню для программы? - C (СИ)

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

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

Надо сделать меню для программки, 1. Ввод чисел в массив random 2. Ввод своих чисел в массив как это сделать, в паскале знаю как, а вот в Си нет.

Решение задачи: «Как сделать меню для программы?»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. typedef enum {
  4.     MENU_ITEM_EXIT,
  5.     MENU_ITEM_USAGE,
  6.     MENU_ITEM_HELLO,
  7.  
  8.     /* Should be the last */
  9.     MENU_ITEM_UNKNOWN,
  10. } MENU_ITEM_E;
  11.  
  12. const char *menu_item_names[] = {
  13.     "Exit", "Usage", "Hello",
  14. };
  15.  
  16. void usage() {
  17.     printf("menu.c, 2011\n"
  18.            "Enter the number of operation, 0 to exit\n");
  19. }
  20.  
  21. void hello() {
  22.     printf("Hello, World\n");
  23. }
  24.  
  25. void menu_print_items() {
  26.     MENU_ITEM_E i;
  27.     for (i = 0; i != MENU_ITEM_UNKNOWN; ++i)
  28.         printf("[%d] %s\n", i, menu_item_names[i]);
  29. }
  30.  
  31. MENU_ITEM_E menu_exec(int item) {
  32.     switch (item) {
  33.     case MENU_ITEM_EXIT:
  34.         break;
  35.  
  36.     case MENU_ITEM_USAGE:
  37.         usage();
  38.         break;
  39.  
  40.     case MENU_ITEM_HELLO:
  41.         hello();
  42.         break;
  43.  
  44.     default:
  45.         printf("Uknown menu item\n");
  46.         item = MENU_ITEM_UNKNOWN;
  47.     }
  48.  
  49.     return item;
  50. }
  51.  
  52. int main() {
  53.     int item = 0;
  54.  
  55.     do {
  56.         menu_print_items();
  57.         printf("> ");
  58.         scanf("%d", &item);
  59.     } while (menu_exec(item) != MENU_ITEM_EXIT);
  60.  
  61.     return 0;
  62. }

Объяснение кода листинга программы

  1. Программа представляет собой меню на языке C.
  2. Тип данных переменной itemint.
  3. Переменная item используется для получения выбора пользователя.
  4. В начале программы объявлен массив menu_item_names с именами пунктов меню.
  5. Функция usage выводит информацию о программе и её использовании.
  6. Функция hello выводит приветствие на экран.
  7. Функция menu_print_items выводит список пунктов меню.
  8. В функции menu_exec происходит обработка выбранного пункта меню.
  9. В случае выбора пункта меню Exit, Usage или Hello, выполняется соответствующая функция.
  10. В случае выбора пункта меню Unknown, на экран выводится сообщение об ошибке.
  11. В функции main создаётся переменная item, которая используется для получения выбора пользователя.
  12. В цикле до тех пор, пока пользователь не выберет пункт меню Exit, происходит вывод списка пунктов меню и получение выбора пользователя.
  13. После получения выбора пользователя, он передаётся в функцию menu_exec для обработки.
  14. После выполнения функции menu_exec, программа возвращается в начало цикла.
  15. В конце программы выполняется команда return 0;, заканчивающая работу программы.
  16. Для работы программы на ввод данных от пользователя используется функция scanf.
  17. В данном коде не обрабатывается случай, когда пользователь вводит некорректные данные.
  18. В данном коде не обрабатывается случай, когда пользователь вводит буквы вместо цифр.
  19. В данном коде не обрабатывается случай, когда пользователь вводит число, которое не соответствует номеру пункта меню.
  20. В данном коде не обрабатывается случай, когда пользователь вводит число, которое больше или меньше, чем количество пунктов меню.

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


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

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

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

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

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

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