Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
27.11.2024
Размер:
110.55 Кб
Скачать

Создание меню

Пользовательский интерфейс в языке С реализуется в командной строке. Взаимодействие пользователя с программой можно реализовать через диалог, в котором пользователю предлагается осуществить выбор действия из предлагаемого списка.

Для реализации выбора можно использовать конструкцию switch...case, в которой будут предлагаться варианты действий. Пользователю необходимо ввести переменную, которая будет сравниваться со значениями case. Ввод переменной можно организовать в цикле с предусловием. Ввод значений должно осуществляться до тех пор, пока не будет введено значение, соответствующее части программного кода, отвечающего за выход из программы.

Для реализации подменю основных пунктов главного меню следует использовать вложенные конструкции switch...case.

Порядок выполнения работы.

1.Создайте новое консольное приложение.

2.Для работы приложения потребуются библиотеки, подключите их:

#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h>

3. Для вывода на консоль текста на кириллице используйте функцию:

setlocale(LC_ALL, "Russian");

4. Запишите цикл с предусловием, в качестве переменной цикла задайте переменную:

int choice = 0; while (choice != 3) {}

5. Внутри цикла выведите на экран сообщения для пользователя и список пунктов главного меню. Например, это можно сделать так:

printf("********************************************************************\n \n"); printf("\t\t\t\tБИБЛИОТЕЧНЫЙ КАТАЛОГ\n\n"); printf("********************************************************************\n \n"); printf("Для работы с библиотечным каталогом выберите действие:\n\n1. Войти для

администрирования БД\n2. Работа с базой\n3. Выход\n");

6. Также внутри цикла организуйте ввод значений с помощью функции:

scanf("%d", &choice);

7. Далее запишите конструкцию:

switch (choice)

{

case 1: {}

case 2: {}

case 3: {}

}

Здесь первый вариант case 1 используется для выполнения действий создания, редактирования, удаления записей структуры; вариант case 2 предназначен для организации работы с базой (поиска, сортировки и просмотра записей в базе данных); вариант 3 - для выхода из программы.

8. Внутри блока case 3 запишите следующий программный код (очистка экрана, вывод сообщения для пользователя, функция ввода символа для подтверждения действия, условие - если введены любой символ кроме прописной Y или строчной буквы y, то переменная choice обнуляется и происходит возврат к главному меню ):

case 3

{

system("cls");

printf("Вы действительно хотите выйти из программы? (Y/N)\n"); getchar();

scanf("%c", &c);

if (c != 'Y' && c != 'y')

{

choice = 0;

}

break;

}

9. Внутри блока case 2 запишите программный код для организации навигации по командам подменю второго блока главного меню. Аналогично, записывается оператор цикла с предусловием while и пока значение вводимой переменной для выбора действия из меню не будет равно 3 (возврат в главное меню), будет осуществляться переход по командам меню внутри второго блока:

case 2:

{

int base2 = 0; system("cls");

printf("\nn2. Работа с базой\n"); printf("\n_____________________________________________________\n"); while (base2!=3)

{

printf("Выберите действие:\n1. Поиск\n2. Сортировка\n3.

Главное меню\n");

scanf("%d", &base2); switch (base2)

{

case 1:

{

system("cls"); printf("\nn1. Поиск\n"); break;

}

case 2:

{

system("cls");

printf("\nn1. Сортировка\n"); break;

}

case 3:

{

system("cls");

printf("\nn1. Главное меню\n"); break;

}

}

}

break;

}

10.Самостоятельно оформите вывод на экран пунктов вложенного меню.

11.Внутри блока case 1 запишите следующий программный код:

case 1:

{

int base1=0; system("cls");

printf("\n\n1. Администратор БД\n"); printf("\n________________________________________________________\n");

char str[10]="password"; char s[10];

printf("Введите пароль для входа в систему: \n"); getchar();

scanf("%s", s);

int c=strcmp(str,s); if (c==0)

{

while (base1!=4)

{

printf("Для редактирования записей выберите действие:\n1. Добавить запись\n2. Вывести записи\n3. Удалить запись\n4. Выход в главное меню\n");

scanf("%d", &base1); switch (base1)

{

case 1:

{

system("cls");

printf("\nn1. Добавить запись\n"); break;

}

case 2:

{

system("cls");

printf("\nn1. Вывести записи\n"); break;

}

case 3:

{

system("cls");

printf("\nn1. Удалить записи\n"); break;

}

case 4:

{

system("cls");

printf("\nn1. Главное меню\n"); break;

}

}

}

break;

}

else {printf("Пароль не верный");}

}