- •Разработка Pascal-программ с интерфейсом типа «Меню» с использованием процедур и функций пользователей
- •1 Цель работы
- •2 Задание на лабораторную работу
- •3 Требования к программе
- •4 Порядок выполнения работы
- •5 Структура диалога типа "меню"
- •6 Проектирование размещения информации на экране
- •7 Реализация меню
- •8.8 Проектирование структуры программы
- •8.9 Справки по процедурам, функциям и управляющим параметрам
- •8.10 Варианты заданий
- •8.11 Содержание отчета
- •8.12 Контрольные вопросы
8.9 Справки по процедурам, функциям и управляющим параметрам
TextColor (Код цвета) - процедура установки цвета символов; коды цветов смотри в таблице 8.4.
TextBackGround (Код цвета) - процедура установки цвета фона.
TextAttr - параметр, определяющий коды цветов символа и фона для него; значение TextAttr определяется как (Код цвета фона) х 16 + (Код цвета символа).
Например, для вывода на экран желтых символов на синем фоне следует установить TextAttr:=30.
ReadKey: Char - функция чтения кода нажатой клавиши.
ClrScr - процедура очистки экрана.
Таблица 8.4
Код цвета |
Цвет |
Код цвета |
Цвет |
0 |
Черный |
8 |
Серый, темно-серый |
1 |
Синий |
9 |
Ярко синий |
2 |
Зеленый |
10 |
Ярко зеленый |
3 |
Бирюзовый, голубой |
11 |
Ярко голубой |
4 |
Красный |
12 |
Ярко красный |
5 |
Вишневый, сиреневый |
13 |
Ярко сиреневый |
6 |
Коричневый |
14 |
Желтый |
7 |
Белый, светло-серый |
15 |
Белый, ярко-белый |
Таблица 8.5 – Примеры кодов клавиш
Название клавиши |
Код клавиши (десятичный) |
Название клавиши |
Код клавиши (десятичный) |
Enter |
13 |
F1 |
59 |
Home |
71 |
F2 |
60 |
Up (Стрелка вверх) |
72 |
F3 |
61 |
PgUp |
73 |
F4 |
62 |
Left (Стрелка влево) |
75 |
F5 |
63 |
Right (Стрелка вправо) |
77 |
F6 |
64 |
End |
79 |
F7 |
65 |
Down (Стрелка вниз) |
80 |
F8 |
66 |
PgDown |
81 |
F9 |
67 |
|
|
F10 |
68 |
Если символ не имеет графического представления, то в программе на языке Turbo Pascal используется обозначение вида “#K”, где К - код символа.
Например, константа #75 соответствует коду клавиши "Стрелка влево" ( Left arrow). Этот прием используется для анализа кода нажатой управляющей клавиши.
8.10 Варианты заданий
В каждом варианте задания (см. таблицу 8.6) имеются ссылки на 3 группы данных, приведенных ниже:
- номер варианта меню (таблица 8.7);
- номера обрабатывающих функций (пп.1 и 2 обязательны для всех вариантов);
- номер структуры данных совпадает с № варианта.
Таблица 8.6
N вар. |
Меню |
N операций обработки |
N вар. |
Меню |
N операций обработки |
1 |
1 |
3а, 4а |
9 |
3 |
3б, 4а |
2 |
2 |
3а, 4б |
12 |
4 |
3б, 4б |
3 |
3 |
3б, 4а |
13 |
5 |
3а, 5а |
4 |
4 |
3б, 4б |
14 |
6 |
3а, 5б |
5 |
5 |
3а, 5а |
15 |
7 |
3б, 4а |
6 |
6 |
3а, 5б |
16 |
8 |
3б, 4б |
7 |
7 |
3б, 5а |
17 |
1 |
3а, 5а |
8 |
8 |
3б, 5б |
18 |
2 |
3а, 5б |
9 |
1 |
3а, 4а |
19 |
3 |
3б, 4а |
10 |
2 |
3а, 4б |
20 |
4 |
3б, 4б |
Таблица 8.7- Характеристики меню
№ |
Расположение пунктов меню |
Способ выбора пункта меню |
1 |
Горизонтальное |
По номеру |
2 |
Горизонтальное |
По выделенному символу |
3 |
Горизонтальное |
По функциональной клавише |
4 |
Горизонтальное |
По указателю (выделенной строке) |
5 |
Вертикальное |
По номеру |
6 |
Вертикальное |
По выделенному символу |
7 |
Вертикальное |
По функциональной клавише |
8 |
Вертикальное |
По указателю (выделенной строке) |
Обрабатывающие функции программы.
1. Ввод данных в массив заданной структуры.
Вывод результатов обработки.
3. Дополнение данных:
а) после элемента с заданным номером;
б) после элемента с заданным атрибутом (символом, именем и др.).
4. Удаление элемента списка:
а) с заданным номером;
б) с заданным атрибутом.
5. Обмен местами элементов:
а) с заданными номерами;
б) с заданными атрибутами.
Содержание функций:
Дополнение:
- ввод дополняемого элемента;
- определение места вставки;
- реализация дополнения массива (списка).
2. Удаление:
- ввод информации об удаляемом элементе;
- поиск удаляемого элемента;
- реализация удаления.
Обмен элементов:
- ввод информации об обмене;
- поиск меняющихся элементов;
- реализация обмена.
Структуры данных
1)
МЕНЮ |
|||
Название блюда |
Вес |
Цена (руб.) |
Цена со скидкой 10% (руб.) |
2)
РАСПИСАНИЕ ИГР |
|||
Команды |
Дата |
Цена билета (взросл. руб.) |
Цена билета (детск. 50% от взр. руб.) |
3)
СКЛАД |
||||
Наименование материал. Цен. |
Инвент. Номер |
Дата поставки |
Закупочная цена (руб.) |
Отпускная цена (руб.) |
4)
АПТЕКА |
|||
Название препарата |
Изготовитель |
Цена (руб.) |
Цена со скидкой 15% (руб.) |
5)
КНИГА |
|||
ФИО автора |
Издание |
Цена (руб.) |
Цена на распродажу (руб.) |
6)
ШТАТНОЕ РАСПИСАНИЕ |
|||||
Шифр сотрудн. |
ФИО |
Должность |
Оклад (руб.) |
Надбавка % |
Итого (руб.) |
7)
СТРАНЫ |
|||
Название страны |
Столица |
Площадь (км.кв.) |
Численность населен. (т.чел.) |
8)
АВТОВОКЗАЛ |
|||
Маршрут |
Расстояние (км) |
Цена за км.(руб.) |
Итого(руб.) |
9)
РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ СТУДЕНТОВ |
|||
ФИО студента |
Набранный бал |
Проходной бал |
Результат |
10)
ГОСТИНИЦА |
||||
ФИО |
Номер комнаты |
Кол-во суток проживания |
Цена/сут. (руб.) |
Итого (руб.) |
11)
ДИВИДЕНД |
||||
ФИО акционера |
Номинальная стоимость (руб.) |
Кол-во акций |
% дивиденда на акцию |
Сумма дивиденда (руб.) |
12)
ТОВАР |
||||
Наименование товара |
Ед. измерен. |
Цена (руб.) |
Кол-во |
Сумма (руб.) |
13)
САДОВОД |
|||
ФИО |
Кол-во соток |
Годовой взнос за сотку (руб.) |
Сумма годового взноса (руб.) |
14)
ПРОКАТ АВТОМОБИЛЕЙ |
|||||
ФИО |
Марка и модель автомоб. |
Дата |
Кол-во часов |
Цена за час (руб.) |
Итого (руб.) |
15)
КВИТАНЦИЯ ЗА ГАЗ |
||||
ФИО квартиросъемщика |
Адрес |
Кол-во человек |
Тариф на человека (руб.) |
Итого (руб.) |
16)
АВТОМОБИЛЬ |
|||
Марка |
Объем бака(л.) |
Расход топлива на 100 км. |
Пробег без заправки (км.)
|
17)
РАСЧЕТ СРЕДНЕГО ЗАРАБОТКА ЗА 3 МЕСЯЦА |
||||
ФИО |
Заработок за 1 месяц (руб.) |
Заработок за 2 месяц (руб.) |
Заработок за 3 месяц (руб.) |
Средний заработок (руб.) |
18)
ОПЛАТА УСЛУГ ДЕТ. САДА |
|||
ФИО ребенка |
Кол-во дней |
Стоимость 1 дня (руб.) |
Итого (руб.) |
19)
КВИТАНЦИЯ ЗА КВАРТПЛАТУ |
||||
ФИО квартиросъемщика |
Адрес |
Площадь |
Тариф на 1 кв.м |
Итого (руб.) |
20)
ОПЛАТА ЗА ПЕРЕГОВОРЫ ПО ТЕЛЕФОНУ |
||||
ФИО абонента |
№ телефоона |
Кол-во минут |
Стоимость 1 минуты |
Итого (руб.) |
