1.3. Создание абстрактных классов с конструкторами и деструктором
Создать класс с полями, указанными в индивидуальном задании (табл. 1.3). Реализовать в классе методы:
- конструктор по умолчанию;
- конструктор перезагрузки с параметрами;
- деструктор для освобождения памяти.
Создать проект для демонстрации работы: сформировать объекты со значениями-константами и с введенными значениями полей объекта из компонентов Edit. Выводить результаты в компонент Memo.
Таблица 1.3 – Варианты индивидуальных заданий
№ |
Задание |
1 |
Создать класс вектор, задаваемый тройкой координат (x, y, z). Реализовать функции: сложения и вычитания векторов, скалярное произведение векторов, вычисление длины вектора. |
2 |
Создать класс деньги для работы с денежными суммами. Число должно быть представлено двумя полями: long для рубля и unsigned char для копеек. Дробная часть (копейки) при выводе должна быть отделена от целой части (рубля) запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число (для пересчета в другие денежные единицы по заданному курсу). |
3 |
Создать класс треугольник для вычисления его числовых характеристик. Поля данных должны включать стороны. Реализовать функции: вычисления периметра, площади, всех углов и высот треугольника; определения вида треугольника (равносторонний, равнобедренный, прямоугольный). |
4 |
Создать класс комплексные числа, которые представляются парой вещественных чисел (a,b) и (c,d), где a, c – действительная часть чисел, b,d − мнимая часть чисел. Реализовать функции: сложения, вычитания, умножения, деления чисел; формирования сопряженного комплексного числа и проверки двух комплексных чисел на равенство. |
5 |
Создать класс рациональные дроби, которые представлены парой чисел (a,b) и (c,d), где a, c − числители, b,d − знаменатель. Реализовать функции: сложения, вычитания, умножения, деления и сокращения дробей; сравнения значений дробей (меньше, равны или больше). |
6 |
Создать класс дата, которое представляется тремя полями типа unsigned int для года, месяца и дня. Дата должна инициализироваться двумя конструкторами в форматах строки «год.месяц.день» и трех целых чисел. Реализовать функции: вычисление даты через заданное количество дней или месяцев, вычитание заданного количества дней из даты, выделение из даты отдельных её частей (года, месяца, дня). |
8 |
Создать класс время, которое представляется тремя полями типа unsigned int для часов, минут и секунд. Время должно инициализироваться двумя конструкторами в форматах строки «часы.минуты.секунды» и трех целых чисел. Реализовать функции: вычисление времени через за- данное количество минут или секунд, вычитание заданного количества 44 минут из времени, выделение из времени отдельных его частей (часы, минуты, секунды). |
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 |
Создать класс товар с полями: наименование товара, дата получения, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать функции: изменения цены товара, изменения количества товара, вычисления стоимости товара, определения количества дней, месяцев и лет от получения товара. |
12 |
Создать класс BitString для работы с 64-битовыми строками. Битовая строка должна быть представлена двумя полями типа unsigned long. Реализовать функции для операций с битами: and, or, xor, not. Реализовать сдвиг влево и сдвиг вправо на заданное количество битов. |
13 |
Создать класс LongLong для работы с целыми числами из 64-бит. Число должно быть представлено двумя полями: long − старшая часть, unsigned long − младшая часть. Реализовать функции для операций с числами: сложение, вычитание, умножение, деление, деление нацело, остаток от деления. |
14 |
Создать класс зарплата с полями: фамилия, имя, отчество, оклад, дата поступления на работу, процент подоходного налога, количество рабочих дней в месяце. Реализовать функции: вычисления подоходного налога, стажа работы на предприятии, надбавок за стаж, зарплаты (суммы, выдаваемой на руки работнику). Надбавки за стаж составляют 10% оклада при стаже от 5 до 10 лет, 20% − при стаже более 10 лет. Из оклада удерживается подоходный налог и отчисления в пенсионный фонд в размере 1% оклада. |
