Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Б.1.3 Разработка программного продукта

Читайте также:
  1. A. Разработка и отладка программного кода.
  2. B. Проверка работоспособности и рефакторинг кода программного обеспечения.
  3. IV. Разработка законопроектов
  4. Qt Designer. Быстрая разработка прототипов интерфейсов
  5. Абсолютная взаимозаменяемость продукта
  6. Анализ возможных причин повреждения аппаратов; разработка необходимых средств защиты.

Требования, предъявляемые к программному продукту:

- программа должна быть работоспособной;

- программа должна полностью правильно решать поставленную задачу;

При разработке программного продукта следует использовать знания и навыки, полученные в ходе изучения теоретического материала и выполнения лабораторных работ.

При разработке и реализации программы рекомендуется придерживаться методологии структурного программирования, то есть:

- разрабатывать алгоритм «сверху-вниз», начиная со списка входных и выходных данных с постепенной детализацией алгоритма (нисходящее проектирование);

- разделять программу на отдельные модули и использовать для их реализации процедуры и функции (модульное программирование);

Рекомендуется продемонстрировать программный продукт примерно за 1-2 недели до окончания срока. В этом случае при возникновении замечаний останется время на доработки и исправление ошибок.

Б.2 Этапы курсовой работы

Этап.

Во всех вариантах требуется реализовать 2 класса. Один класс является основным, другой – вспомогательным. Несколько объектов вспомогательного класса должны быть полями основного класса. Должныбыть реализованы методы Init, Read, Display для вспомогательного класса и методы, позволяющие инициализировать, вводить и отображать на консоли поля основного класса.

В основной функции main должны быть объекты основного и вспомогательного классов и приведены примеры работы методов как основного, так и вспомогательных классов. На первом этапе отсутствуют массивы, за исключением строк, которые представляются как в языке Си в виде массива символов заданной длины. В вариантах указаны основные методы и поля основного и вспомогательного классов, необходимые для выполнения этапа курсовой работы. При реализации дополнительных методов классов или новых классов начисляются бонусные баллы к базовой оценке. Также положительно на первом этапе оценивается введение вспомогательных методов, объявленных private и вызываемых только методами класса и замена предложенных методов другими или модификацией методов, с целью более наглядного представления о моделируемой области.

 

В1 Расчет оптимального диетического питания на платформе языка С#

Каждый продукт питания имеет строковое поле название, целое поле калорийность 100 гр. и стоимость 100 гр. (вещественное). Реализовать метод, вычисляющий ценность продукта, равную отношению стоимости к калорийности. Основной класс диета содержит три поля продуктов, три целых поля, равных количеству в граммах, потребляемых каждого продукта и поле количество в граммах потребляемой воды. Реализовать метод, определяющий самый ценный из трех продуктов и метод, вычисляющий общий вес проглоченного.

 

В2 Исследование ценности художественных полотен музея на платформе языка С#

Вспомогательный класс картина имеет строковое поле жанр (портрет, пейзаж), стоимость картины и год написания. Реализовать метод, изменения стоимости при прошествии n лет, n – целое число - аргумент функции. Предполагается, что через год стоимость увеличивается на 0,5 процента. Главный класс музей имеет три поля картин, три поля, равные количеству картин каждого типа и вещественное поле, равное суммарной стоимости всех других произведений (скульптур). Реализовать метод, вычисляющий полную стоимость произведений и метод определения самой ценной картины из трех по заданному текущему году (целочисленный аргумент).

 

В3 Исследование репертуара театра на платформе языка С#

Вспомогательный класс спектакль имеет три поля: строковое жанр (драма, комедия) вещественное – цена билета в партер и целое – количество билетов в партер, переданное в кассы. Реализовать метод вычисления общей ожидаемой сумы продаж, если добавлен балкон и цены на балкон (количество билетов -1/3 от партера) в два раза снижены от базовой цены. Основной класс спектакли за день имеет два поля спектакль (утренний и вечерний) и 4 поля процент заполнения партеров и балконов. Определить методы, вычисляющий общее число зрителей, сумму денег от продажи билетов и метод, возвращающий спектакль, с большей ожидаемой суммой продаж.

В4 Изучение урожайности сельскохозяйственных культур на платформе языка С#

Вспомогательным классом является выращиваемая культура, имеющая поля: строковое название (пшеница, просо…), вещественное – стоимость затрат на удобрение на тонну и стоимость от продажи с одного гектара (доход). Реализовать метод, вычисляющий чистую прибыль, после вычитания от дохода затрат. В основном классе село имеются три поля культура, три поля площади, на которых выращиваются культуры и три целых поля – тонны посаженных культур. Реализовать метод вычисления затрат, прибыли для объектов класса и определения самой невыгодной культуры.

В5 Представление элементов географической карты на платформе языка С#

Вспомогательный класс город содержит строковую переменную – название города, целое поле – число жителей и вещественное воле – площадь, занимаемую городом. Реализовать метод, вычисляющий плотность населения в городе. Основной класс страна имеет три поля типа город, вещественное поле – площадь, не занятая городами и целое поле – число жителей, живущих не в городах. Реализовать 2 метода, вычисляющие общее число жителей, среднюю плотность населения в стране и наиболее «плотный” город с максимальной плотностью населения.

В6 Моделирование работы железной дороги на платформе языка С#

Вспомогательным является класс вагон, содержащий строковое поле тип вагона (купейный, плацкартный, общий), количество мест (целое число) и цена билета за купе по данному маршруту(вещественная). Реализовать метод, вычисляющий общую стоимость билетов в вагоне с учетом того, что в плацкартном вагоне цена снижена на 30 % от купейного, а общего на 50%. Основным классом является поезд (train), содержащий три поля van (из трех вагонов) и процент заполнения каждого вагона(три вещественных поля). Реализовать методы, вычисляющие общее число перевезенных пассажиров, общую сумму проданных билетов и вагон с ожидаемой наибольшей суммой продажи.

В7 Методы обработки результатов сессии на платформе языка С#

Вспомогательным классом является предмет, изучаемый студентом в семестре. У класса три поля: строковое название, и два целых - количество лекционных часов и часов на практические занятия. Реализовать метод, вычисляющий общее число часов, при этом еще добавляется 30% от аудиторных занятий на самостоятельную работу. Основным классом является класс студент имеющий три поля предметов и 3 целочисленных поля – баллы, набранные по этим предметам. Реализовать метод, вычисляющий суммарную нагрузку студента и метод, вычисляющий его рейтинг. Рейтинг вычисляется как средний балл по трем предметам. Определить также самый трудный предмет с наибольшей нагрузкой.

В8 Моделирование работы цветочного киоска на платформе языка С#

Вспомогательным классом является класс цветы, имеющий три поля: строковое – название, вещественное – цена цветка и целое – число дней до конца реализации. Реализовать метод, меняющий цену цветка при уменьшении количества дней(целочисленный аргумент). Если после изменения количества дней осталось от двух до 5 дней, то цена уменьшается на 30%, если остался один день – цена падает на 70%. Основным классом является класс покупатель имеющий два поля типа цветков и количество купленных цветов первого и второго типов. Реализовать метод, вычисляющий общую цену покупки, определить более ценный цветок при заданном уменьшении числа дней до конца реализации.

В9 Моделирование изучения условий проживания в квартирах на платформе языка С#

Вспомогательным классом является комната, имеющий строковое поле название (спальня, гостиная, кабинет), вещественное поле – площадь комнаты и целое – количество проживающих людей. Реализовать метод, вычисляющий площадь, приходящуюся на одного человека. Основным классом является квартира, имеющий три поля типа комнаты, целое число – количество служебных помещений (кухня, кладовка) и вещественное – общая площадь таких помещений. Реализовать методы, вычисляющие общее число проживающих, среднюю площадь на одного человека и определяющую наиболее свободную комнату (с наименьшей плотностью на человека)

В10 Моделирование авиаперевозок на платформе языка С#

Вспомогательным является класс рейс, содержащий строковое поле название компании, количество мест в самолете(целое число) и цена билета за обычное место(вещественная). Реализовать метод, вычисляющий общую стоимость билетов в самолете с учетом того, что имеются еще дополнительных 20% vip мест, цена на которые на 50% дороже. Основным классом является маршрут, содержащий три поля рейса, количество проданных обычных и vip мест на каждый рейс. Определить наиболее ожидаемый выгодный рейс из трех и суммарную выручку по трем рейсам.

В11 Метод определения рейтинга учащегося на платформе языка С#

Вспомогательным классом является предмет, имеющий строковое поле название, целое – число часов в неделю и целое – трудоемкость предмета (коэффициент 1-10). Определить метод, вычисляющий вес предмета в рейтинге учащегося равный число часов/8 * трудоемкость/10. Основной класса – ученик с тремя полями предметов и количеством баллов по каждому предмету. Реализовать метод, определяющий предмет с максимальным весом и метод, вычисляющий средний рейтинг ученика, равный сумме произведений балл по предмету на его вес.

В12 Моделирование процесса сборки мебели на платформе языка С#

Вспомогательным классом является элемент сборки мебели, имеющий строковое поле название (шуруп, доска), целое поле вес и вещественное поле стоимость грамма элемента. Реализовать метод вычисления стоимости элемента. Основной класс изделие состоит из 3 элементов, трех целых полей равных количеству каждого элемента при сборке и стоимость сборки изделия (вещественное число). Определить общую стоимость изделия и элемент, который не самый дорогой и не самый дешевый.

В13. Моделирование приготовления пищи на платформе языка C#.

Вспомогательным является класс продукт. Класс содержит строковое поле – название, и вещественное поле – стоимость 100 гр. Должен быть реализован метод переоценки стоимости (увеличение или уменьшение стоимости при заданном коэффициенте – аргумент функции, вещественное число. 1,5 – стоимость возрастет в полтора раза). Главный класс – блюдо, содержащий три поля продуктов, три целых поля, определяющих количество каждого продукта в блюде в граммах и вещественное поле, определяющее стоимость приготовления (оплата повара). Реализовать метод, определяющий самый ценный продукт, при трех заданных коэффициентов переоценки (три вещественных аргумента) и метод, вычисляющий общую стоимость блюда.

В14 Моделирование устройства компьютера на платформе языка С#

Вспомогательным классом является компонента компьютера, имеющий строковое поле название (монитор, процессор), вещественное поле – цена на момент изготовления и целое поле – год выпуска. Задать метод изменения цены компоненты. Аргументом является текущий год и цена падает на 10 % каждый год с момента выпуска. Основной класс компьютер содержит три поля компонент и общую стоимость вспомогательного оборудования, кроме трех компонент. Реализовать метод, вычисляющий общую стоимость компьютера и его наиболее ценную компоненту в текущем году (аргумент – целое число, текущий год).

В15 Моделирование амортизации зданий на платформе языка С#

Вспомогательным классом является здание, имеющее строковое поле название (цех, склад), целое площадь, год постройки и стоимость одного квадратного метра в этот год (вещественное поле). Реализовать метод определения стоимости здания в текущем году (аргумент – целое число, текущий год, ежегодно стоимость уменьшается на 10% от предыдущей.) Основной класс предприятие, имеющее три здания и дополнительные помещения с заданной стоимостью в текущем году. Реализовать метод, определяющий самое ценное здание в текущем году и общую стоимость предприятия.

 

В16 Моделирование банковских операций по вкладам на платформе языка С#

 

Вспомогательным классом является вклад, содержащий строковое поле название банка, сумму денег на вкладе (вещественное число) и процент по вкладу, определяющий на сколько денег увеличится вклад через год. Если было x рублей, то через год при проценте y станет x+0,01*y*x. Определить метод, вычисляющий вклад через n лет (целочисленный аргумент). Основным классом является вкладчик, имеющий 3 вклада, а также поля пол (char) и возраст (целое). Написать метод, определяющий какой вклад будет самым выгодным к моменту выхода на пенсию, и сколько денег принесут все три вклада.

 

В17 Моделирование автобусных перевозок на платформе языка С#

 

Вспомогательным классом является рейс, имеющий строковое поле название транспорта (автобус, микроавтобус, газель), цена билета и вместимость пассажиров. Определить метод, вычисляющий ожидаемый доход при полном заполнении. Главный класс маршрут имеет три поля рейса и три поля процент наполненности пассажирами в каждом рейсе. Определить метод определяющий не самый выгодный ожидаемый рейс, но и не самый невыгодный и метод вычисляющий сумму реального дохода от трех рейсов.

 

В18 Моделирование системы оплаты мобильных телефонов на платформе языка С#

Вспомогательный класс телефон содержит строковое поле – название сотового оператора (МТС, Билайн), стоимость минуты и стоимость роуминга (вещественные поля). Реализовать метод, определяющий условную выгоду, т.е. стоимость при x минутах разговора и x/10 минутах роуминга. Основным классов является человек, у которого три сотовых телефона, 6 целых полей, равных количеству минут разговора по телефонам (обычный тариф и роуминг) и три поля, равные суммам скидок за использование выгодных тарифов. Реализовать методы, вычисляющие суммарную оплату и наиболее выгодный тариф, если бы роуминг был по всем телефонам равным 1/10 от обычного времени.

В 19 Моделирование работы библиотеки на платформе языка C#

Вспомогательным классом является книга. Класс содержит строковое поле название, целое – коэффициент ценности книги, год выпуска и вещественное – стоимость книги. Должен быть реализован метод переоценки книги по заданному текущему году, каждый год хранения повышает стоимость книги на ее коэффициент ценности умноженный на текущую в году стоимость.. Главный класс – библиотека имеет 3 поля книги и три поля количества каждой книги. Определить самую ценную книгу по заданному текущему году и общую стоимость книг.

В20 Моделирование работы магазина на платформе языка C#

Вспомогательным является класс товар. Класс содержит строковое поле – название, и вещественное поле – стоимость единицы. Должен быть реализован метод переоценки стоимости (увеличение или уменьшение стоимости при заданном коэффициенте – аргумент функции, вещественное число. 1,5 – стоимость возрастет в полтора раза). Главный класс – покупатель купивший три товара, три целых поля, определяющих количество каждого товара и вещественное поле, определяющее процент скидки. Реализовать метод, определяющий самый дорогой товар, при трех заданных коэффициентов переоценки (три вещественных аргумента) и метод, вычисляющий общую стоимость покупки с учетом скидки.

Этап.

 

1. К программе, разработанной на первом этапе работы требуется добавить свободную (не метод класса) функцию дружественную к основному классу и в main продемонстрировать ее работу.

 

В 1 Функция вычисляет соотношение всего съеденного к масс выпитой воды (вещественное число)

В 2 Функция вычисляет общее число 3 типов картин

В 3 Метод вычисляет средний процент заполненности балкона и партера

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

В 5 Функция вычисляет плотность жителей, проживающих вне трех городов

В 6 Функция вычисляет средний процент наполненности поезда по трем вагонам

В 7 Функция вычисляет максимальный рейтинг по трем предметам

В 8 Функция вычисляет общее число купленных цветов

В 9 Функция вычисляет среднюю площадь служебного помещения

В 10 Функция вычисляет в процентах отношение числа проданных vip билетов к количеству обычных

В 11 Функция вычисляет средний балл ученика без учета трудности предметов

В 12 Функция вычисляет общее количество требуемых элементов

В 13 Функция вычисляет общий вес блюда

В 14 Функция вычисляет новую стоимость вспомогательного оборудования через n лет после года выпуска (аргумент функции) в предположении, что стоимость меняется также как и у компонент

В 15 Функция вычисляет новую стоимость дополнительных помещений через n лет после ввода в эксплуатацию при предположении, что она меняется аналогично зданиям

В 16 Функция вычисляет количество лет до пенсии по заданному текущему году (аргумент функции)

В 17 Функция вычисляет максимальный процент заполненности по трем рейсам

В 18 Функция вычисляет общее количество минут, затраченное человеком

В 19 Функция вычисляет общее количество книг

В 20 Функция вычисляет общее число единиц товара, купленного покупателем

 

2. Заменить поля вспомогательного класса в основном классе полем в виде массива объектов вспомогательного класса (не динамического) и определить лучший элемент из этого массива [см. 9) лекция 2]

 

Этап.

 

1. Задать два конструктора для основного класса: конструктор со всеми параметрами, не относящимися к вспомогательному классу и конструктор без параметров. Продемонстрировать вызовы конструкторов статических и динамических объектов и конструктор копии. Для инициализации полей вспомогательных классов использовать Init.

 

2. В main задать массив из 5-8 объектов вспомогательного класса. Поле названия, заданное как массив char заменить на строку. Задать методы Putname, Getname для работы с этим полем, остальные поля класса инициализируются методом Init.

Для тестирования программы в именах использовать малые латинские буквы.

 

Написать программу обработки массива вспомогательных объектов по варианту задания. Указать в комментариях какие методы класса string использовались.

 

В 1 В массиве названий выбрать самое короткое и самое длинное название. Из самого длинного удалить «ab”, если эта строка встречается. В самое короткое перед 5 символом вставить 2 первых символа этого элемента. Заменить нулевой элемент сцеплением преобразованного самого короткого и самого длинного имени. Вывести параметры нулевого элемента.

 

В 2 Сцепить в одну строку все имена, в которых есть подстрока «qwe” и длина которых меньше 5. Удалить символы с 4 по 6 и вставить перед 8 «123”. Заменить название a[1] этой строкой. Вывести параметры a[1].

 

В 3 Удалить в каждом названии «ab” если встречается “qabnm”. После этого в самом длинном названии перед 7 символом вставить «asd” и в начало добавить «qwe”. Заменить название a[2] полученной строкой. Вывести поля a[2].

 

 

В 4 Вычислить сколько элементов названий содержат «rew”. Если это количество меньше 5 в каждом таком названии удалить со 2 по 5 символ, иначе в каждое такое название перед 4 символом вставить «uio”. Потом к самому длинному названию добавить «asdf” и вывести этот элемент.

 

В 5 Сцепить в одну строку все названия длина которых больше 5. Удалить “iuy” если подстрока имеется или вставить “qwert” перед 7 символом. Заменить название a[1] данной строкой. Вывести элемент.

 

В 6 Сцепить самое короткое название с самым длинным, удалив предварительно из самого длинного подстроку «fgh” если она есть и добавить в самое короткое название перед 4 символом “xcvb”. Заменить строкой название третьего элемента и вывести элемент.

 

В 7 Найти название у которого 3-7 символ равны 'a'. Если такое название есть, заменить эти символы на «bbb”, если нет к самому короткому названию добавить «ccc”. Вывести поля элемента, название которого было заменено.

 

В 8 Из всех названий извлечь символы с 3 по 6 и сцепить их. Если в строке имеется «qwdf” удалить. Заменить название a[0] этой строкой и вывести a[0]

 

В 9 В названии каждого элемента заменить символы со 2 по 5 на «aa”. Сцепить строки, в которых есть «ccc” и заменить название первого элемента на эту строку. Вывести этот элемент.

 

В 10 В самом длинном названии заменить 2-6 символ на «aaa” и удалить “bbb”, если он встречается.

 

В 11 Найти название, в котором чаще всего встречается символ 'c'. Удалить из него «ff”, если такая подстрока есть. Заменить название a[2] полученной подстрокой.

 

В 12 Найти самое длинное и короткое название. Из самого длинного названия удалить число символов, равных длине самого короткого, начиная с третьего символа самого длинного.

 

В 13 Выделить первое название, в котором встречается «qwer”. Если такого названия нет, взять название последнего элемента. Удалить из выделенного названия «bbb”, если есть такая подстрока. Заменить название a[1] выделенным названием и вывести a[1].

 

В 14 В самом длинном названии переставить местами первые два символа и последние три. Вывести этот элемент.

 

В 15 Во все названия, где есть «abc” удалить последние три элемента. Сцепить после этого все такие измененные названия и заменить a[0] плученной строкой. Вывести a[0].

 

В 16 Найти первое название длиной более 5, в котором имеется подстрока «aaa”. Если такого нет, взять название последнего элемента. Заменить в полученной строке символы со 2 по 4 на «bbbbb”. Название у элемента a[1] заменить на полученную строку. Вывести a[1].

 

В 17 Найти первое название, в котором имеется подстрока «zxc”. Если такого названия нет взять название последнего элемента. Удалить из выделенного названия подстроку и вставить ее перед последним символом. Заменить исходное название данной строкой. Вывести элемент массива.

 

В 18 Если самая длинное название начинается с «abc” переставить эти символы в конец строки, иначе вставить эти символы перед четвертым символом. Вывести элемент с измененным названием.

 

В 19 Сцепить строки в которых есть подстрока «abc”. Если в полученной строке больше 10 символов, удалить символы со 2 по 4. Заменить название a[2] полученной строкой и вывести элемент массива a[2]

 

В 20 К самой длинной строке подцепить подстроку самой короткой от 2 до 6 элемента. Заменить название элемента с самой длинной строкой на полученную строку. Вывести поля элемента.

 

Этап.

 

Определить производный класс к вспомогательному классу по варианту задания. В основном классе добавить два поля производных вспомогательных классов. Исправить метод основного класса для работы с полями базового и вспомогательных классов. Создать конструкторы без параметров и с параметрами вспомогательного и производного вспомогательного классов. Продемонстрировать созданные конструкторы в main. Определить оператор присваивания объектам производного от вспомогательного базового класса и продемонстрировать варианты присваивания в main.

 

В 1. В производном классе определяется целое поле количество хлебных единиц и метод, вычисляющий «вредность” продукта, равной удвоенному значению хлебных единиц плюс калорийности.

При присваивании объектам производного класса хлебные единицы равны половине калорийности.

 

В 2. В производном классе добавлено целое поле площадь картины и метод ценность хранения, значение – площадь деленная на 3 умноженная на стоимость.

При присваивании объектам производного класса площадь равна 10.

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

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

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

В 6. Производным классом является вагон дальнего следования, в котором добавлено поле стоимости белья и метод вычисления стоимости билета с учетом оплаты за белье. При присваивании объектам производного класса стоимость белья равно нулю.

В 7. В производном классе трудных предметов добавлено поле часов для консультаций и метод суммарной нагрузки, для таких предметов число часов самостоятельной работы равно 20% от аудиторных. При присваивании объектам производного класса количество часов консультаций равно 10% от лекционных.

В 8. В производный класс добавлено поле сортность: 1,2,3 и метод вычисления цены – на 1 сорт наценка 50%, на третий - -25%. При присваивании объектам производного класса сортность равна 2.

В 9. В производном классе добавлено поле, равное площади окон и балконной двери и метод определяющий освещенность комнаты, как площадь окон по отношению к площади комнаты. При присваивании объектам производного класса площадь окон равна 1/10 от площади комнаты.

В 10. В производном классе имеется целое поле, значение которого равно 1, если рейс туристический с оплаченным обратным билетом. Цена на билет при этом уменьшается на 10% от обычной стоимости (метод вычисления в производном классе). При присваивании объектам производного класса признак оплаты обратного билета равен нулю.

В 11. В производном классе имеется признак, равный 1, если по предмету есть ЕГЭ. Вес таких предметов увеличивается в 1.4 раза. Реализовать метод вычисления веса. При присваивании объектам производного класса признак ЕГЭ равен нулю.

В 12. В производном классе добавлена стоимость драгоценных микродобавок и в методе вычисления стоимости такого элемента добавляется данная стоимость. При присваивании объектам производного класса стоимость добавок равна нулю.

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

В 14. В производном классе процент падения цены задан в поле, а не фиксированный 10%. реализовать метод изменения цены для таких компонент. При присваивании объектам производного класса процент равен 10.

В 15. В производном классе коэффициент амортизации задан в поле, а не постоянный 10% как в базовом. Метод изменения цены для таких объектов должен учитывать этот показатель. При присваивании объектам производного класса коэффициент равен 10%

D 16. В производном классе депозит указывается число лет, на которое положен вклад. Если вклад снимается через больше или равным числе лет процент по вкладу удваивается, иначе выдается просто положенная сумма. Реализовать метод вычисления депозитов на n лет. При присваивании объектам производного класса число лет равно 5.

В 17. Производный класс укороченные маршруты имеет поле, равное 1, если маршрут до конечной остановки и 0, если идет до промежуточного пункта. Цена билета уменьшается при этом на треть. При присваивании объектам производного класса значение поля 1.

В 18. В производном классе добавлено поле равное сумме за СМС. При вычислении условной выгоды для таких телефонов учитывается значение поля. При присваивании объектам производного класса сумма равна нулю.

В 19. В производном классе древние книги имеется поле стоимость профилактики/реставрации книги. При переоценке стоимости для таких книг учитывается значение этого поля. При присваивании объектам производного класса значение поля равно нулю.

В20. В произвольном классе товары с моральным старением добавлен коэффициент падения стоимости при каждой переоценке. Реализовать метод переоценки. При присваивании объектам производного класса морального старения нет.

 

Этап.

 

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

 

В 1. Обычная диета содержит три обычных продукта, ограниченная – 2 обычных и один с учетом хлебных единиц, диабетическая – три продукта с учетом вредности. Чисто виртуальная функция – расчет стоимости всех продуктов. При вычислении стоимости производного класса она умножается на 1.2

 

В 2. Маленький музей имеет 3 обычные картины, средний – две обычные и одну из производного класса, большой – 1 обычную и 2 с учетом площади. Виртуальная функция – общая стоимость. Для производного класса – ценность хранения с учетом площади.

 

В 3 Основной класс может быть начало сезона с одним премьерным и обычным спектаклем, конец сезона с двумя обычными и гастроли с одним обычным. Виртуальная функция – расчет ожидаемого дохода.

 

В 4. Село может быть во влажном климате, с тремя обычными культурами, средней засушливости с одной обычной и двумя поливаемыми и в сухом районе с тремя поливаемыми культурами (производный класс). Виртуальная функция – суммарные затраты.

 

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

 

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

 

В 7. Студенты могут быть заочного, вечернего и дневного факультетов. У заочников только обычные предметы, вечерников – 2 обычных и один из производного класса, дневного факультета – три предмета с консультациями (производный класс). Виртуальная функция – суммарная нагрузка.

 

В 8. Обычный покупатель – три обычных цветка, 8 марта – 1 обычный и два с учетом сорта, 14 февраля – три с учетом сорта. Виртуальная функция – стоимость покупки.

 

В 9. Квартира может быть с 2 комнатами без балкона, одна комната с балконом и одна без и 3 комнаты, две с балконом. Виртуальная функция – общая площадь. Для комнаты с балконом площадь умножается на 1.1

 

В 10.Маршруты могут содержать 3 обычных рейса, два обычных и один из производного класса и маршрут из двух рейсов производного класса. Виртуальная функция – суммарная выручка.

 

В 11. Ученик может быть слабым с одним ЕГЭ и двумя обычными предметами, с двумя ЕГЭ и одним обычным и тремя с ЕГЭ. Виртуальная функция – суммарный вес предметов.

 

В 12. Изделие может быть обычным из трех обычных элементов, дорогим – из одного обычного и двух элементов с дорогими добавками и антикварным – из трех дорогих элементов. Виртуальная функция – расчет общей стоимости изделия.

 

В 13. Обычное блюдо в столовой содержит 3 обычных продукта, кафе – два обычных и один скоропортящийся и блюдо в ресторане – три скоропортящихся продукта. Виртуальная функция – расчет общей стоимости.

 

В 14. Новый компьютер содержит только 3 обычных компоненты, б/у – две обычных и одну из производного класса и старый – все три компоненты производного класса. Виртуальная функция – расчет стоимости.

 

В 15. Предприятия могут быть современными из 3 зданий базового класса, старых – из двух обычных зданий и одного из производного класса и очень старых – из 3 объектов производного класса. Виртуальная функция – расчет общей стоимости.

 

В 16. Вкладчик может быть основательным, имеющим 3 депозита, разумным, 2 обычных вклада и депозит и живущий сегодняшним днем с тремя обычными вкладами. Виртуальная функция – расчет денег через n лет.

 

В 17. Маршрут в городе имеет 3 обычных транспорта, в поселке – 2 обычных и один укороченный и в селе – 3 укороченных. Виртуальная функция – расчет суммарного дохода.

 

В 18. Обычный абонент имеет 3 обычных телефона, корреспондент – один обычный и два с учетом СМС, писатель для журнала – все из производного класса. Виртуальная функция – суммарная оплата.

 

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

 

В 20. Обычный покупатель берет три обычных товара, бедный – один обычный и два устаревших и пенсионер – три устаревших. Виртуальная функция – расчет стоимости.

 

Этап.

 

1. Добавить методы чтения всех полей объекта из файла с заданным строковым именем (1 аргумент) и сохранение всех текущих полей объекта в заданный файл со строковым именем для основного и вспомогательного класса. Продемонстрировать результаты в main для статических и динамических объектов.

2. На 5 этапе определен абстрактный класс с чисто виртуальной функцией и имеются 3 производных класса, где эта функция определена. Три класса сделать независимыми, вместо чисто виртуальной функции сделать класс с шаблоном функции, такой, чтобы она использовала поля, имеющиеся во всех трех классах.

 


Дата добавления: 2015-08-13; просмотров: 159 | Нарушение авторских прав


Читайте в этой же книге: Область применения | Требования к результатам освоения дисциплины | Семестр (15 часов) | Семестр (34 часа) | Модуль 3 | Учебно-методическое и информационное обеспечение дисциплины | Дисциплине | Аттестаций | Семестр | Семестр |
<== предыдущая страница | следующая страница ==>
Семестр.| Семестр

mybiblioteka.su - 2015-2024 год. (0.044 сек.)