
- •Овсянник в.Н. Лабораторные работы по курсу «Объектно-ориентированное программирование»
- •13. Разработка приложения с архитектурой «документ-вид». Часть 2 120
- •14. Разработка приложения с архитектурой «документ-вид». Часть 3 135
- •1.Разработка типового консольного приложения
- •1.1.Методические указания
- •1. Запуск и настройка ис mvs-2008.
- •2.Поиск данных в массиве
- •3.Обработка текстового файла
- •4.Задача «куча камней»
- •5.Реализация алгоритма полного перебора
- •6. Исследование погрешностей вычислений
- •7.Поиск экстремумов с ограничениями или «Брачное агенство»
- •Постановка задачи
- •Задание
- •Листинг файла mAgency.Cpp (с главной функцией)
- •Листинг файла Lib.H
- •Листинг файла Lib.Cpp
- •8.Приложение с окном вида
- •9.Разработка графического редактора
- •Задание.
- •9.1.Проектирование программы
- •9.2.Разработка интерфейса
- •Установка флагов
- •Создание меню и панели инструментов
- •Обработка сообщений о нажатии кнопки мыши
- •9.3.Рисование
- •9.4.Растягивание фигур
- •9.5.Обновление изображения
- •9.6.Сохранение метафайла на диске и его загрузка
- •10.Приложение, основанное на модальном диалоговом окне
- •Методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •11.Приложение с контекстным меню и строкой состояния
- •11.1.Методические указания к первой части работы
- •11.2.Сценарий выполнения первой части работы
- •11.3.Методические указания ко второй части работы Строка состояния
- •Определение секций в строке состояния
- •Строка сообщений
- •Индикатор состояния
- •Управление строкой состояния
- •11.4.Сценарий выполнения второй части работы
- •12.Разработка приложения с архитектурой «документ-вид». Часть 1
- •12.1.Сценарий создания приложения
- •13.Разработка приложения с архитектурой «документ-вид». Часть 2
- •13.1.Методические указания Класс коллекций cObList
- •13.2.Сценарий выполнения работы
- •14.Разработка приложения с архитектурой «документ-вид». Часть 3
- •14.1.Методические указания
- •15.Класс вектор
- •15.1.Пример класса tVector
- •15.2.Класс tVector с перегруженными операциями
- •16.Приложение с таблицей
- •16.1.Вариант 1 Сценарий выполнения работы
- •16.2.Вариант 2 Сценарий выполнения работы
7.Поиск экстремумов с ограничениями или «Брачное агенство»
Если отладка - процесс удаления ошибок, то программирование должно быть процессом их внесения
Закон Мерфи
Цель работы – освоить приемы поиска экстремальных значений в массивах структур при наличии дополнительных ограничений и условий (4 час.).
Постановка задачи
Вам, возможно, повезло и вас приняли на работу программистом в брачное агентство, начальница которого хочет внедрить у себя инновационные технологии по подбору невест и женихов с помощью гениальной компьютерной программы, которую вы и должны разработать. Данные, которые собирает агентство о своих клиентах, представлены в табл. 1, которая, конечно, может расширяться.
Таблица 1
Клиенты брачного агентства
Имя |
Пол |
Рост |
Возраст |
Характер |
Цвет кожи |
Доход |
Джон |
м |
150 |
20 |
Пакостный |
Белый |
198 |
Барбара |
ж |
178 |
23 |
Зловредный |
Черный |
567 |
Майкл |
м |
165 |
45 |
Нежный |
Желтый |
987 |
Инесса |
ж |
189 |
43 |
Отвратительный |
Белый |
3544 |
Стивен |
м |
201 |
21 |
Хороший |
Желтый |
1234 |
Деннис |
м |
172 |
18 |
Ласковый |
Черный |
987 |
Смит |
м |
168 |
19 |
Твердый |
Черный |
7463 |
Джоан |
ж |
153 |
33 |
Пакостный |
Белый |
873 |
Джейла |
ж |
178 |
44 |
Зловредный |
Желтый |
368 |
Рейчел |
ж |
178 |
23 |
Зловредный |
Черный |
567 |
Лайла |
ж |
153 |
33 |
Пакостный |
Коричневый |
873 |
Тильда |
ж |
166 |
43 |
Отвратительный |
Белый |
3454 |
Льюис |
м |
168 |
23 |
Твердый |
Белый |
463 |
Керол |
ж |
165 |
32 |
Нежный |
Желтый |
876 |
Характеры клиентов разбиты на категории в соответствии с табл. 2 для того, чтобы можно было не только указывать в запросах конкретный характер, но и делать более общие запросы путем указания категории характера, в том числе и в числовой форме. Подобным образом введены категории клиентов по величине доходов и цвету кожи (см. табл.3 и табл.4).
Таблица 2
Классификация характеров клиентов
Характер |
Категория характера |
Пакостный |
-1 Плохой |
Отвратительный |
-1 Плохой |
Твердый |
0 Умеренный |
Нежный |
0 Умеренный |
Зловредный |
0 Умеренный |
Хороший |
+1 Подходящий |
Ласковый |
+1 Подходящий |
Таблица 3
Классификация клиентов по величине их месячного дохода
Доход |
Категория клиента по величине дохода |
менее 200 |
-2 Нищий |
200-500 |
-1 Бедный |
501-1000 |
0 Средний |
1001-2000 |
+1 Богатый |
более 2000 |
+2 Жадный |
Таблица 4
Классификация клиентов по цвету кожи
Цвет кожи |
Категория цвета кожи |
Белый |
0 Белый |
Черный |
1 Черный |
Желтый |
2 Цветной |
Коричневый |
2 Цветной |