Студопедия

Главная страница Случайная страница

Разделы сайта

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






Задания к лабораторной работе 1






1. Создайте класс с именем Complex для выполнения ариф-
метических действий с комплексными числами. Напишите программу
драйвера для про­верки вашего класса. Комплексные числа имеют форму realPart + imaginaryPart * j, где j – квадратный корень из (-1).

Используйте переменные с плавающей запятой для представления зак­рытых данных этого класса. Создайте функцию конструктор, которая поз­воляет объекту этого класса принимать начальные значения при его объ­явлении. Создайте открытые функции-элементы для каждого из следующих пунктов:

a) сложения двух комплексных чисел: отдельно складываются действительные и мнимые части;

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

в) печати комплексных чисел в форме (a, b), где a – действитель­ная часть,
b –мнимая часть.

2. Создайте класс по имени Rational для выполнения арифметических действий с дробями. Напишите программу драйвера для вашего класса.

Используйте целые переменные для представления закрытых данных класса – числителя и знаменателя. Создайте функцию-конструктор, кото­рая позволяет объекту этого класса принимать начальные значения при его объявлении. Конструктор должен содержать значения по умолчанию на случай от­сутствия заданных начальных значений и должен хранить дроби в сокра­щенном виде (т.е. дробь 2/4 должна храниться в объекте как 1 в числи­теле и 2 в знаменателе). Создайте открытые функции-элементы для каждо­го из следующих случаев:

a) сложения двух чисел Rational (результат должен храниться в сокращенной форме);

б) вычитания двух чисел Rational;

в) перемножения двух чисел Rational;

г) деления двух чисел Rational;

д) печати чисел Rational в форме a / b, где а – числитель, b – знаменатель;

е) печати чисел Rational в форме с плавающей точкой.

3. Создайте класс Rectangle (прямоугольник). Класс имеет атрибуты length (длина) и width (ширина), каждый из которых по умолчанию равен единице. Он имеет функции-элементы, которые вычисляют периметр (perimeter) и площадь (area) прямоугольника, а также функции записи и чтения как для length, так и для width. Функции записи должны проверять, что length и width – числа с плавающей запятой, находящиеся в пределах от 0.0 до 20.0.

4. Создайте более совершенный (по отношению к предшествующему заданию) класс Rectangle. Он должен хранить только декартовы координаты четырех углов прямоугольника. Конструктор вызывает набор функций, которые принимают четыре группы координат и проверяют, чтобы каждая из координат x и y находилась в первом квадранте, в диапазоне от 0.0 до 20.0. Также должна выполняться проверка: дейс­твительно ли переданные координаты определяют прямоугольник. Должны быть предусмотрены функ­ции-элементы, вычисляющие length, width, perimeter и area. Длиной считается большее из двух измерений. Включите предикатную функцию square, которая определяла бы, не является ли прямоугольник квадратом.

5. Модифицируйте класс Rectangle в предыдущем задании так, чтобы добавить в него функцию draw, которая изображает прямоугольник внутри окна 25 на 25, перекрывающего часть первого квадранта, в кото­ром находится прямоугольник. Включите функцию setFillCharacter, чтобы задавать символ, которым будет заполняться прямоугольник внутри. Добавьте функцию setPerimeterCharacte r, чтобы задавать символ, которым будут печататься границы прямоугольника. Можете включить функции масш­табирования размера прямоугольника, его вращения и перемещения в пре­делах первого квадранта.

6. Создайте класс HugeInteger, который использует массив из 40 элементов для хранения целых чисел, содержащих до 40 цифр. Создайте функции элементы inputHugeInteger, outputHugeInte­ger, addHugeIntegers и substractHugeIntegers для ввода, вывода, сложе­ния и вычитания этих больших целых. Для сравнения объектов HugeInteger создайте функции isEqualTo (равно), isNotEqualTo (неравно), isGreaterThan (больше), isLessThan ( меньше ), isGreaterThanOrEqualTo (больше или равно), isLessThanOrEqualTo (меньше или равно) – каждая из них является предикатной функцией, которая просто возвращает единицу (истина), если соот­ветствующее соотношение между двумя большими целыми выполняется. Соз­дайте предикатную функцию isZero (нуль). Можно подготовить также функции-элементы multiplayHugeIntegers (умножение), divideHugeIntegers (деление) и mo­dulusHugeIntegers (нахождение абсолютной величины).

7. Создайте класс Date со следующими возможностями:

a) с выводом дат в форматах: DD YYYY; MM/DD/YY; Июнь 14, 2007;

b) с использованием перегруженных конструкторов для создания объектов Date с начальными значениями дат в форматах пункта а);

c) с конструктором Date, который читает системную дату, исполь­зуя стандартные библиотечные функции заголовочного файла time.h, и передает ее элементам Date.

Напишите демонстрационную программу.

8. Создайте класс SavingsAccount (хранение вкладов) со ста­тическим элементом данных annualInterestRate (процентная ставка) для хранения информации о каждом вкладчике. Каждый элемент этого класса содержит закрытый элемент данных savingsBalance, указывающий сумму, которую вкладчик имеет на депозите. Напишите функцию-элемент calcu­lateMonthlyInterest (расчет ежемесячного дохода), которая ежемесячно вычисляет доход путем деления на 12 произведения balance и annualIn­terestRate; этот доход $ + 7 % должен прибавляться к savingsBalance. Напиши­те статическую функцию-элемент modifyInterestRate (изменение про­центной ставки), которая задает annualnterestRate новое значение. Напишите программу-драйвер для проверки класса SavingsAccount saver1 и saver2, с балансами $2000.00 и $3000.00 соответственно. Установите annualInterstRate равным 3 %, затем вычислите месячный доход по вкла­ду и напечатайте новые балансы для каждого из вкладчиков. Затем ус­тановите annualInterestRate равным 4 % и повторите операции.

9. Создайте класс IntegerSet (множество целых). Каждый объект класса может вмещать целые в диапазоне от 0 до 100. Множество представляется массивом из нулей и единиц. Элемент массива a[i] равен единице, если целое i находится во множестве. Элемент массива a[j] равен нулю, если целого j нет во множестве. Конструктор по умолчанию ини­циализирует множество как пустое, т.е. множество, содержащее только нули. Напишите функции-элементы для типичных операций над множествами: функцию-элемент unionOfIntegerSet, которая создает третье множество, являющееся теорети­ко-множественным объединением двух существующих. (Элемент масси­ва третьего множества устанавливается равным единице, если соответствующий элемент равен единице хотя бы в одном или обоих существующих множествах, и элемент массива третьего множества устанавливается равным нулю, если этот эле­мент равен нулю в обоих существующих множествах). Функ­ция-элемент intersectionOfIntegerSets создает третье мно­жество, являющееся теоретико-множественным пересечением двух сущест­вующих наборов (т.е. элемент массива третьего множества устанавлива­ется равным нулю, если этот элемент равен нулю в одном или обоих сущест­вующих множествах, и элемент массива третьего множества устанавлива­ется равным единице, если этот элемент единичный в обоих существующих).

10. Создайте класс SalesPerson, отслеживающий суммы продаж служащего за определенный срок работы. Полями класса должны быть имя продавца PersonName и динамический массив или самоссылочная конструкция для хранения сумм вырученных от продаж средств за каждый месяц MonthlySales. С помощью конструктора всем данным должны присваиваться нулевые начальные значения. Класс должен содержать функции-члены по анализу объемов продаж. Функция-член TotalSales возвращает сумму продаж за весь период работы. MonthSales возвращает сумму, вырученную за один определенный месяц. PeriodSales возвращает сумму продаж за указанный промежуток времени. Все функ­ции-члены класса должны выводить информацию на экран в удобном и понятном для пользователя виде.

11. Создайте три способа работы с данными логического типа boolean:

а) традиционный с использованием препроцессора

#define TRUE 1

#define FALSE 0

#define Boolean int

б) в ANSI C и С++ c использованием перечислимых типов

enum Boolean {false, true};

в) в С++ как класс






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.