Некоторые примеры разделения камней на две кучи, которые должна решать ваша программа



Камни Решение
7 10, 20, 30, 15, 25, 35, 15 10+30+35  =75  20+15+25+15=75
7 1, 5, 11, 16, 18, 21, 21 5+21+21   =47 1+11+16+18=46
6 1, 4, 5, 6, 7, 9 1+4+5+6 = 16 7+9     = 16
5 4, 4, 5, 6, 7 4+4+5 =13 6+7 =13
5 6, 1, 1, 1, 1 6         =6 1+1+1+1 =4

 

 


Разработка простого класса

Чтобы получить реальное время разработки программы, надо прогнозируемое время увеличить вдвое и перейти к следующей единице измерения времени. Например, если вы помышляете написать программу за 2 часа, то вы ее будете писать 4 дня

Закон Мерфи

 

Цель работы – освоить программирование и применение простого класса, включающего конструктор, деструктор, член-данные и член-функции (4 час.).

 

Задание

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

2. Добавьте в проект новый класс.

3. Спроектируйте собственный класс в соответствии с вашим вариантом задания, добавьте в заголовочный файл описание тела класса, а в файл реализации – реализацию его конструктора, деструктора и член-функций.

4. Во всех заданиях дату определить как структуру, включающую день, месяц и год в формате целых чисел.

5. Все член-данные классов должны быть объявлены в секции с ключом доступа protected и для чтения и записи их значений надо написать соответствующие функции, называемые иногда аксессорами (от англ. accessor – средство доступа). Функции записи значений член-данных должны проверять их корректность и, как правило, возвращать значение булевского типа, указывающее на наличие ошибки. Ясное дело, что эти функции должны быть объявлены в секции public.

6. Значения член-данных строкового типа должны сохраняться в указателях char *. Выделение памяти для указателей должно выполняться в конструкторе или в методах класса, предназначенных для записи значений член-данных. Освобождение памяти надо выполнять в деструкторе класса.

7. Во всех вариантах заданий предполагается создание и обработка массива объектов. Значения член-данных объектов необходимо загружать из предварительного созданного текстового файла, иначе отладку программы при жизни завершить не удастся.

8. «По умолчанию» предполагается, что пользователь должен иметь возможность просмотреть (вывести на экран) значения всех объектов в форме таблицы как до их модификации, так и после.

Описание вариантов заданий

Таблица 2.1.

Варианты заданий

№ вар. Задание
1 Класс Студент с член-данными: фамилия, номер зачетки, массив из 5 отметок, средний балл. Разработать метод вычисления среднего балла по массиву объектов. Сортировка студентов в порядке убывания среднего балла.
2 Класс Клиент банка с член-данными: фамилия, имя, № счета, сумма вклада, дата внесения депозита. Реализовать метод пересчета суммы вклада по заданной ставке годовых (например, 15%) в зависимости от срока хранения вклада (текущей даты).
3 Класс Автовладельцы с член-данными: марка авто, номер, цвет авто, фамилия и адрес владельца. Реализовать поиск владельцев авто с заданной маркой, цветом и номером, который заканчивается на две заданные цифры.
4 Класс Мотовладельцы с член-данными: марка мотоцикла, номер, цвет, фамилия и адрес владельца, отметка о техосмотре и дата его прохождения. Вывести информацию о владельцах тех мотоциклов, которые проходили техосмотр до заданной даты.
5 Класс Книголюб с член-данными: автор книги, название, издательство, год издания, число страниц. Найти книги заданного автора, изданные после заданного года и имеющие число страниц не более заданного.
6 Класс Рабочий с член-данными: фамилия, величина почасовой оплаты, дата последней выплаты зарплаты. Разработать функцию вычисления суммы заработка, причитающегося работнику. Заработок начислять за целое число недель, прошедшее с момента последней выплаты зарплаты до заданной даты. Считать, что число отработанных часов в неделе равно 40.
7 Класс Погода с член-данными: дата, средние температура (градусы) и скорость ветра (м/сек), величина осадков (мм), балл жесткости. Разработать метод вычисления балла жесткости по такому правилу: если температура ниже нуля, то балл жесткости равен температуре плюс удвоенная скорость ветра; в противном случае балл жесткости принимать равным нулю. Отсортировать объекты в порядке убывания баллов жесткости.
8 Класс Товары с член-данными: название товара, код товара, цена одной единицы товара, количество единиц товара. Разработать метод вычисления суммарной стоимости товаров (одного объекта). Найти объекты с максимальной и минимальной стоимостью товаров.
9 Класс Файл с член-данными: имя файла, тип файла, размер в байтах, дата создания, число кластеров, необходимое для хранения файла на диске. Разработать метод вычисления числа кластеров, приняв размер кластера равным 4096 байт. Если размер файла равен, например, 4097 байт, то для его хранения потребуется 2 кластера и в этом случае 4095 байт на диске не используются. Отсортировать файлы в порядке убывания такой «неиспользуемой» памяти.
10 Класс Преступник с член-данными: фамилия, рост, ширина и высота головы, длина руки, расстояние между глазами. Разработать метод вычисления близости заданных параметров подозреваемого к преступнику как сумма процентов отклонения физических параметров. По заданным физическим параметрам подозреваемого найти в базе наиболее близкого по параметрам преступника.
11 Класс Заготовки с член-данными: материал, номер, длина, высота. Заготовка прямоугольной формы, причем длина всегда не меньше высоты. Разработать метод, который получает в качестве параметров материал, длину и высоту детали и возвращает процент остатка площади материала, если деталь можно выкроить из данной заготовки. Метод должен вернуть отрицательное значение, если деталь выкроить не удается или если материал детали не совпадает с материалом заготовки.
12 Класс Абонент библиотеки с член-данными: фамилия, номер читательского билета, дата получения книги, число дней, на которое выдана книга. Разработать метод, который по заданной дате вычисляет «задолженность» (число дней) по несвоевременному возврату книги. Найти всех должников и их степень задолженности.
13 Класс Событие с член-данными: описание события, дата, время напоминания. Описание события – строка символов, например, «день рождения мамы». Время напоминания задается в часах в виде двух чисел: начало и конец (от 0 до 24). Написать метод, который получает в качестве параметров заданную дату и время суток (в часах) и возвращает значение true, если надо напоминать о событии. По заданной дате и времени суток проанализировать все объекты и вывести соответствующие напоминания
14 А здеся могет быть ваш варьянт

 

Во всех заданиях дату определить как структуру, включающую день, месяц и год в целочисленном формате.


 


Дата добавления: 2018-02-18; просмотров: 530; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!