ВУЗ: Московский государственный университет технологий и управления им. К.Г. Разумовского
Категория: Методичка
Дисциплина: Программирование
Добавлен: 16.02.2019
Просмотров: 342
Скачиваний: 10
Содержание
1
Практическая работа №1. Всплывающее меню (2 часа)
1
Практическая работа №2. Панель инструментов и список действий (2 часа)
1
Практическая работа №3. Ini-файлы (2 часа)
1
Практическая работа №4. Печать (6 часов)
1
Практическая работа №5. Создание собственного компонента (4 часа)
1
Практическая работа №6. Внедрение ассемблерных вставок (2 часа)
3
Практическая работа №7. Работа с XML (2 часа)
4
1
Введение
Большинство практических работ делается на основе базы данных, созданной в среде Lazarus/Delphi в весеннем семестре
второго курса обучения. Исключения составляют 5 и 6 практические работы.
2
Практическая работа №1. Всплывающее меню (2 часа)
Внедрите в базу данных всплывающее контекстное меню, часть из пунктов которого осуществляет действия в зависимости от
того, в каком месте таблицы пользователь нажал правую кнопку мыши.
3
Практическая работа №2. Панель инструментов и список действий (2 часа)
Внедрите в базу данных панель инструментов. Реализуйте ее посредством списка действий (TActionList). Переработайте глав-
ное меню (MainMenu) так, чтобы оно работало через список действий. Реализуйте быстрой способ доступа к пунктам меню с
помощью нажатия комбинаций клавиш (ShortCut).
4
Практическая работа №3. Ini-файлы (2 часа)
Реализуйте хотя бы две настройки базы данных (цвета символов, фона, шрифты, размеры и т. п.), осуществите их сохранение
в Ini-файлах.
5
Практическая работа №4. Печать (6 часов)
Осуществите реализацию печати содержимого вашей базы данных на принтере. Обратите внимание на наличие линий в таблице
и автоматическое разбиение на страницы.
6
Практическая работа №5. Создание собственного компонента (4 часа)
0 уровень
0.1 Создайте компонент для ввода даты в трех ComboBox’ах; при этом должна быть возможность выбрать как просто
дату, так и дату с учетом года. Необходимо создать property, возвращающее/устанавливающее результат в виде одного
значения (составного типа). /Сатлыков/
0.2 Создайте компонент для ввода интервала времени (часы-минуты) в 4-ех ComboBox’а; при этом необходимо проверять
корректность интервала (начало его раньше оконания). Необходимо создать property, возвращающее/устанавливающее
результат в виде одного значения (составного типа). /Абросимов/
0.3 Создайте компонент для ввода IP-адреса (IPv4) в 4-ех ComboBox’ах. Необходимо создать property, возвращающее/устанавливающее
результат в виде одного значения.
0.4 Создайте компонент для выбора станции московского метрополитена (сначала линию – потом станцию). Необходимо
создать property, возвращающее/устанавливающее результат в виде одного значения (составного типа).
1
0.5 Создайте компонент для задания информации об электричке какого-нибудь направления московского узла: названия
начальной и конечной станции, время отправления (часы-минуты) от начальной станции и номер поезда. Первые четы-
ре компонента – ComboBox’ы. Необходимо создать property, возвращающее/устанавливающее результат в виде одного
значения (составного типа).
0.6 Создайте компонент для задания матрицы 3×3 Необходимо создать property, возвращающее/устанавливающее результат
в виде одного значения (составного типа).
0.7 Создайте компонент для задания отрезка следующим путем: пользователь осуществляет клик в одной точке компонента,
потом в другой точке компонента – отрезок появляется. Если он снова осуществляет клик, то старый отрезок стирается,
а новая точка запоминается как начало отрезка. Компонент должен иметь метод для возврата всех точек в виде записи
из двух TPoint, а также возможность задать отрезок в инспекторе объектов.
0.8 Создайте компонент для задания окружности следующим путем: пользователь осуществляет клик в одной точке компо-
нента, потом в другой точке компонента – появляется окружность (первый клик осуществляется в центре, второй – в
любой из точек окружности). Если он снова осуществляет клик, то старая окружность стирается, а новая точка запоми-
нается как центр окружности. Компонент должен иметь метод для возврата центра и радиуса в виде записи из TPoint и
значения типа real, а также возможность задать окружность в инспекторе объектов.
0.9 Создайте компонент для задания прямоугольника (со сторонами, параллельными осям) следующим путем: пользователь
осуществляет клик в одной точке компонента, потом в другой точке компонента – появляется прямоугольник. Если
он снова осуществляет клик, то старый прямоугольник стирается, а новая точка запоминается как одна из вершин
прямоугольника. Компонент должен иметь метод для возврата обоих точек в виде записи из двух TPoint, а также
возможность задать прямоугольник в инспекторе объектов.
0.10 Создайте компонент для отображения погоды: температуры, давления, облачности. Конкретное значение задается в
инспекторе объектов или программно. Внешний вид должен быть похож на тот, что есть в какой-нибудь известной
программе.
0.11 Создайте компонент ввода почтового индекса, при этом он должен выглядеть в процессе редактирования так, как он
выглядит на почтовых конвертах. Сам индекс изначально задается в инспекторе объектов. Должно быть также свойство
для чтения/изменения индекса.
0.12 Создайте элемент управления, осуществляющий удобный ввод номера телефона (с автоматическим вводом тире, не
забудьте, что телефон может начинаться со знака +). Номер телефона должен задаваться в инспекторе объектов, также
должно быть свойство для чтения/изменения телефона.
0.13 Создайте элемент управления для ввода SMS. Он должен показывать количество оставшихся символов и блокировать
ввод слишком длинных строк. Начальное значение SMS должно задаваться в инспекторе объектов; а также должно
осуществляться чтение/изменение строки с помощью свойства.
0.14 Создайте компонент для ввода числа, состоящий из трех частей: 10-ого, 16-ого и 8-ого. При изменении любого из этих
чисел одновременно меняются и другие. Число должно задаваться в инспекторе объектов; а также должно быть доступно
свойство для чтения/изменения числа.
1 уровень
1.1 Создайте компонент, соответствующий основным функциям вашей БД (одна таблица+кнопки). Какой-то из методов
должен возвращать список (TList) записей о текущем состоянии таблицы./Батурин/
1.2 Создайте компонент для ввода 32-битного числа в двоичном виде побитового (для каждой цифры отдельный встроенный
компонент). Необходимо создать property, возвращающее/устанавливающего результат в виде одного значения.
1.3 Создайте компонент – маленький графический редактор для рисунков 16×16, который позволяет для каждого пикселя пе-
реключить его в состояние черный/белый. Необходимо создать propery типа TImage, позволяющее установить/получить
рисунок. /Сосина/
1.4 Создайте элемент управления, который позволяет выбирать значение с помощью ползунка: программист в инспекторе
объектов задаёт минимальное и максимальное значение, а потом с помощью ползунка пользователь может выбрать кон-
кретное значение. Начальное значение должно выбираться в инспекторе объектов. Также должен быть метод получения
значения, выбранного на ползунке.
2 уровень
2.1 Создайте компонент для выбора даты в интерфейсе, приближенном к выбору даты в календаре Windows.
2
2.2 Создайте компонент для ввода информации о посещаемости группы; он должен позволять задавать список группы,
добавлять даты и выбирать для каждого человека и даты одно из следующих значений: отсутствует; количество минут
отсутствия; присутствует. Компонент должен содержать метод(-ы), позволяющие получить для каждого студента и даты
информацию о его присутствии или отсутствии.
2.3 Создайте компонент для ввода информации о плане одного дня, похожий на стандартный интерфейс планировщика.
Компонент должен позволять получить всю информацию о плане с помощью метода и/или property.
2.4 Создайте компонент – конструктор арифметических выражений по типу того, что есть в Excel (мастер выражений). С
возможностью задать стандартные арифметические операции, написать названия переменных и целых чисел. Компонент
должен иметь свойство типа String, позволяющее получить и установить выражение.
2.5 Создайте компонент – аналог TImage, который дополнительно к обычным свойствам TImage позволяет пользователю
осуществлять масштабирование (должны появляться кнопки + и - /для масштабирования/, а также кнопки влево, вправо,
вверх, вниз, которые осуществляют сдвиг изображения).
7
Практическая работа №6. Внедрение ассемблерных вставок (2 часа)
Напишите программу в Lazarus/Delphi, осуществляющую ввод в три поля целых чисел x, y, z, осуществляющую вычисление по
формуле согласно вашему варианту и вывод результата в TLabel. Само вычисление необходимо организовать с использованием
ассемблерной вставки.
Ассемблерный код внутри функции начинается со слова asm и оканчивается словом end. К локальной переменной можно
обратиться просто написав ее имя.
Для выбора обычного синтаксиса ассемблерного кода используется директива {$ASMMODE intel}.
В нижеприведенных вариантах выражение написано с использованием синтаксиса и семантики языка C.
1. (x+2*y+3*z)/4
2. (3*x+z*y)%4
3. (x-y*z+3)/5
4. x/5+y*2-3*z
5. (x-2*y)/z
6. (2*x+z)%y
7. x%2-y/z
8. x*x+z%y
9. (x/y+z)%x
10. ((10-x)*(y+2)%z
11. (x*y-z%5)/2
12. (x%5+y|z)*3
13. (x-y&(z+15))%10
14. (3-x%5)/(y+2*z)
15. (x+(y<<2)%5+z)
16. (x/3+(y>>3)*z)
17. (x|3+y&(~3))%125
18. ((x*y*y-z)%65)
19. (x/4+y%z)<<2
20. (x%5+z/y)>>2
21. (x|(y&z))%125
22. (x<<2+y>>2+z%3)
23. (x/(y/z)+y*3)
24. (x|(~y))/z-23
25. (y&(x|5)-z%256)
26. (y^(x&31)-z%256)
3
8
Практическая работа №7. Работа с XML (2 часа)
Реализуйте чтение и запись информации в/из XML-файл(-а) с использованием интерфейса DOM.
4