Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка практические 2 курс.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
168 Кб
Скачать
☆

1 Изучить теоретический материал и дать ответы на контрольные вопросы.

2 Составить программу на языке С++ в соответствии с индивидуальным заданием для базового, среднего и высокого уровней.

3 Выполнить программу на компьютере.

1 Базовый уровень

Для всех вариантов заданий создать класс с указанными полями и тремя методами:

− конструктор для инициализации объекта;

− функция формирования строки с информацией об объекте;

− функция обработки значений полей по индивидуальному варианту.

Выполнить обработку исключительных ситуаций.

Создать метод для сохранения полученных данных в файл.

Создать статическое поле и соответсвующий метод для подсчета количества объектов класса.

Создать перегруженные операторы + и – для операций с объектами одного класса . Создать перегруженные операторы - дружественные функции для ввода и вывода данных (<< и >>).

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

1 Денежные купюры: номинал (1, 2, 5, 10 и т.д.) и количество. Вычислить сумму купюр.

2 Монеты: номинал(1, 2, 5, 10 и т.д.) и количество. Вычислить сумму монет.

3 Товар: цена и количество. Вычислить общую стоимость товара.

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

5 Диапазон вещественных чисел: левая и правая границы диапазона. Квадрат длины диапазона.

6 Время: минуты и секунды. Вычислить общее количество секунд.

7 Время: часы и минуты. Вычислить общее количество минут.

8 Катеты прямоугольного прямоугольника: вещественные числа к1 и к2. Вычислить площадь прямоугольного треугольника.

9 Параметры движения: скорость движения (м/cек) и время движения в минутах. Вычислить пройденное расстояние (в метрах).

10 Катеты прямоугольного прямоугольника: вещественные числа а1 и а2. Вычислить длину гипотенузы прямоугольного треугольника.

11 Параметры трапеции: верхнее и нижнее основание трапеции. Вычислить полусумму оснований трапеции.

12 Катеты прямоугольного прямоугольника: вещественные числа р1 и р2. Вычислить тангенс угла α, противолежащего второму катету прямоугольного треугольника.

13 Пара вещественных чисел: z1 и z2 Вычислить полуразность чисел.

14 Пара вещественных чисел: р1 и р2 Вычислить корень квадратный из произведения чисел.

15 Пара целых чисел: x и y. Вычислить целую часть от деления х на y.

17 Пара целых чисел: n и m. Вычислить куб большего из чисел.

18 Телефонный разговор: продолжительность телефонного разговора в минутах и стоимость одной минуты разговора. Вычислить общую стоимость разговора.

19 Точка на плоскости: координаты точки на плоскости (по горизонтали и вертикали). Определить периметр прямоугольника, ограниченного координатами точки и

осями Ox и Oy.

20 Два вещественных числа: a и b Вычислить разность квадратов чисел a2 – b2.

2 Средний уровень

Создать класс с полями, указанными в индивидуальном задании.

Реализовать в классе методы:

- конструктор по умолчанию;

- конструктор перезагрузки с параметрами;

- деструктор для освобождения памяти (с сообщением об уничтожении объекта);

- функции-методы обработки данных, указанные в индивидуальном задании;

- функцию формирования строки информации об объекте.

Выполнить обработку исключительных ситуаций.

Создать метод для сохранения полученных данных в файл.

Создать перегруженные операторы + и – для операций с объектами одного класса . Создать перегруженные операторы - дружественные функции для ввода и вывода данных (<< и >>).

Создать проект для демонстрации работы: сформировать объекты со значениями-константами и с введенными значениями полей объекта.

1 Дата (три числа): день, месяц, год. Определить, является ли год високосным

(кратным 4). Увеличить дату на 5 дней.

2 Дата (три числа): день, месяц, год. Увеличить год на 1 Уменьшить дату на 2 дня

3 Дата (три числа): день, месяц, год. Определить, совпадают ли номер месяца и число дня Увеличить дату на один месяц

4 Время (три числа): часы, минуты, секунды Вычислить количество секунд в указанном

времени Увеличить время на 5 секунд

5 Время (три числа): часы, минуты, секунды Вычислить количество полных минут в ука

занном времени Уменьшить время на 10 минут

6 Время (три числа): часы, минуты, секунды Определить количество минут до полуночи

(24:00:00) Увеличить время на 100 минут

7 Правильная дробь: числитель, знаменатель Выразить значение дроби в процентах

Найти сумму цифр значения знаменателя

8 Комплексное число: действительная (a1) и мнимая (b1) части числа Вычислить модуль комплексного числа Найти комплексное число, обратное заданному

9 Комплексное число: действительная и мнимая часть числа Вычислить произведение комплексного числа на число, вводимое пользователем Вычислить аргумент комплексного числа в градусах

10 Книга: название, количество страниц, цена. Вычислить среднюю стоимость одной страницы. Увеличить цену книги в два раза, если название начинается со слова «Программирование»

11 Работник: фамилия, оклад, год поступления на работу. Вычислить стаж работы

работника на данном предприятии. Сколько дней прошло после года поступления

на работу

12 Работник: фамилия, оклад, год рождения. Вычислить возраст работника. Сколько календарных дней до исполнения работнику 50 лет

13 Вектор на плоскости: координаты вектора на плоскости (x1, y1, x2, y2). Вычислить координаты середины вектора. Равен ли угол наклона вектора 45 градусов?

14 Вектор на плоскости: координаты вектора на плоскости (x1, y1, x2, y2). Вычислить координаты вектора, удвоенной длины. Вычислить площадь прямоугольного треугольника, образованного заданным вектором и прямыми, параллельными

осям Оx, Оy.

3 Высокий уровень

Реализовать в классе методы:

- конструктор по умолчанию;

- конструктор перезагрузки с параметрами;

- деструктор для освобождения памяти (с сообщением об уничтожении объекта);

- функции-методы обработки данных, указанные в индивидуальном задании;

- функцию формирования строки информации об объекте.

Выполнить обработку исключительных ситуаций.

Создать метод для сохранения полученных данных в файл.

Создать перегруженные операторы + и – для операций с объектами одного класса . Создать перегруженные операторы - дружественные функции для ввода и вывода данных (<< и >>).

Создать проект для демонстрации работы: сформировать объекты со значениями-константами и с введенными значениями полей объекта.

Задание

1 Создать класс вектор, задаваемый тройкой координат (x, y, z). Реализовать функции: сложения и вычитания векторов, скалярное произведение векторов, вычисление длины вектора.

2 Создать класс деньги для работы с денежными суммами. Число должно быть представлено двумя полями: long для гривни и unsigned char для копеек. Дробная часть (копейки) при выводе должна быть отделена от целой части (гривни) запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число (для пересчета в другие денежные единицы по заданному курсу).

3 Создать класс треугольник для вычисления его числовых характеристик. Поля данных должны включать стороны. Реализовать функции: вычисления периметра, площади, всех углов и высот треугольника; определения вида треугольника (равносторонний, равнобедренный, прямоугольный).

4 Создать класс два угла для работы с углами на плоскости, которые задаются в градусах с минутами. Реализовать функции: перевод значений углов из минут с секундами в радианы, приведение к диапазону 0-360, сложение и вычитание углов, получение синуса и тангенса угла.

5 Создать класс комплексные числа, которые представляются парой вещественных чисел (a,b) и (c,d), где a, c – действительная часть чисел, b,d − мнимая часть чисел. Реализовать функции: сложения, вычитания, умножения, деления чисел; формирования сопряженного комплексного числа и проверки двух комплексных чисел на равенство.

6 Создать класс рациональные дроби, которые представлены парой чисел (a,b) и (c,d), где a, c − числители, b,d − знаменатель. Реализовать функции: сложения, вычитания, умножения, деления и сокращения дробей; сравнения значений дробей (меньше, равны или больше).

7 Создать класс дата, которое представляется тремя полями типа unsigned int для года, месяца и дня. Дата должна инициализироваться двумя конструкторами в форматах строки «год.месяц.день» и трех целых чисел. Реализовать функции: вычисление даты через заданное количество дней или месяцев, вычитание заданного количества дней из даты, выделение из даты отдельных её частей (года, месяца, дня).

8 Создать класс время, которое представляется тремя полями типа unsigned int для часов, минут и секунд. Время должно инициализироваться двумя конструкторами в форматах строки «часы.минуты.секунды» и трех целых чисел. Реализовать функции: вычисление времени через заданное количество минут или секунд, вычитание заданного количества минут из времени, выделение из времени отдельных его частей (часы,

минуты, секунды).

9 Релизовать класс нечеткие числа, которые представляются тройками чисел: A=(A−al, A, A+ar) B=(B−bl, b, B+br). Реализовать функции:

- сложения A+B =(A+B−al −bl, A+B, A+ B +ar+br);

- вычитания A−B =(A−B−al −bl, A−B, A− B +ar+br);

- умножения A х B= (A х B−B х al −A х bl+ al х bl, A х B, A х B+B х ar +A х br+ ar х br);

- обратное нечеткое числоA-1= (1/(A+ar), 1/A,1/(A−al)), A>0;

- A/B=((A−al)/(B+br),A/B,(A+ar)/(B−bl), B>0.

10 Создать класс товар с полями: наименование товара, дата получения, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать функции: изменения цены товара, изменения количества товара, вычисления стоимости товара, определения количества дней, месяцев и лет от получения товара.

11 Создать класс BitString для работы с 64-битовыми строками. Битовая строка должна быть представлена двумя полями типа unsigned long. Реализовать функции для операций с битами: and, or, xor, not. Реализовать сдвиг влево и сдвиг вправо на заданное количество битов.

12 Создать класс LongLong для работы с целыми числами из 64-бит. Число должно быть представлено двумя полями: long − старшая часть, unsigned long − младшая часть. Реализовать функции для операций с числами: сложение, вычитание, умножение, деление, деление нацело, остаток от деления.

13 Создать класс зарплата с полями: фамилия, имя, отчество, оклад, дата поступления на работу, процент подоходного налога, количество рабочих дней в месяце. Реализовать функции: вычисления подоходного налога, стажа работы на предприятии, надбавок за стаж, зарплаты (суммы, выдаваемой на руки работнику). Надбавки за стаж составляют 10% оклада при стаже от 5 до 10 лет, 20% − при стаже более 10 лет. Из оклада удерживается подоходный налог и отчисления в пенсионный фонд в размере 1% оклада.

14 Создать класс банковский счет с полями: фамилия и инициалы, номер счета, процент начисления, сумма на счету в гривне. Реализовать функции: смены владельца счета, снять сумму со счета, добавить сумму на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, записать сумму прописью (словами).

Практическая работа № 9.

Наследование простое и множественное. Виртуальные методы. Виртуальные и абстрактные базовые классы.

Цель работы. Изучить простое и множественное наследование, ромбовидное наследование, виртуальные и чисто виртуальные методы.

Контрольные вопросы

1. Что такое простое наследование?

2. Что такое множественное наследование?

3. Как создать объект класса-потомка на основе класса-предка?

4. Синтаксис объявления класса-потомка?

5. Для чего используются виртуальные методы?

6. Что такое ромбовидное наследование и какие проблемы возникают при ромбовидном наследовании?

7. Что такое переопределение метода? Чем отличается от перегрузки?

8. В каких случаях используется виртуальный базовый класс?

9. Какой метод называется чисто виртуальным?

10. Какой класс называется абстрактным?

11. Для чего используются абстрактные базовые классы?

12. Правила использования абстрактных базовых классов?

13. Какой модификатор доступа используется для скрытых полей класса при наследовании?

Ход работы: