Контрольная работа по дисциплине «Объектно-ориентированное программирование» - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Конспект лекций по дисциплине «Объектно-ориентированное программирование» 3 374.25kb.
Программа вступительного экзамена по специальности 05. 13. 18 Математическое... 1 113.98kb.
Рабочая программа по дисциплине «Объектно-ориентированное программирование»... 1 129.85kb.
Лабораторные работы по курсу Объектно-ориентированное программирование... 9 848.53kb.
Объектно-ориентированное программирование на современном фортране 1 288.94kb.
Задание на курсовую работу по дисциплине «объектно-ориентированное... 1 193.62kb.
Пояснительная записка к курсовому проекту по дисциплине «Объектно-ориентированное... 1 189.09kb.
Объектно-ориентированное программирование 6 944.02kb.
Объектно-ориентированное программирование 3 568.1kb.
Рабочая программа по курсу «Объектно-ориентированное программирование»... 1 58.66kb.
Методические указания по выполнению контрольной работы Контрольная... 2 849.86kb.
Билет №1. Понятие множеств. Способы задания множеств. Основные числовые... 1 168.86kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Контрольная работа по дисциплине «Объектно-ориентированное программирование» - страница №1/1

Контрольная работа
по дисциплине
«Объектно-ориентированное программирование»

Каждое задание состоит в создании класса и решении с его помощью задачи.


Кроме методов, перечисленных в задании, если это имеет смысл, должны быть реализованы:

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

Конструктор, устанавливающий все свойства объекта (может совпадать с Конструктором по умолчанию);

Копирующий конструктор;

Деструктор;

Методы для ввода объекта с консоли и вывода его на консоль;

Методы для получения и изменения свойств объекта.

Все поля должны быть скрытыми.

В соответствии с контекстом должны использоваться ключевое слово const и ссылки.

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

Например, класс комплексных чисел может иметь такое объявление:

class Complex {


<�поля, методы требуемые по заданию>
Complex( double re=0, double im=0 );
Complex( const Complex & );
Read();
Write() const ;
double GetIm() const ;
double GetIm() const ;
void Set( double re, double im=0 );
Complex operator + (const Complex & ) const;

}

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


1.Дробь


Класс, предназначенный для хранения рациональных чисел в виде дроби (целые числитель и знаменатель). Дробь всегда должна быть несократимой.

Методы


Инициализация дроби целым числом.

Получение целой части.

Получение обратной дроби.

Операторы


Присвоение целого числа.

Преобразование в double .

Арифметические операции с дробями (+,   –,   *,   /).

Сравнение дробей (>, <, ==).


Задача


Написать программу, которая вводит две дроби (A и B) и два целых числа (x и y), вычисляет значение выражения A2 + Bx + y и выводит его на экран в виде простой дроби и в виде десятичного числа.

2.Дата (день, месяц, год)


Класс, предназначенный для хранения даты. Дата хранится в виде года, месяца и числа.

При вводе даты должен быть контроль корректности даты.


Операторы


Разность дат, как число дней между датами.

Сравнение дат (>, <, ==).

Сумма даты и числа (дней).

Инкремент и декремент даты.


Задача


Программа должна ввести три даты –  D, D1 и D2.

Требуется найти дату D3, которая больше даты D2 на столько же дней, на сколько дата D2 больше даты D1.

Определить входит ли дата D в интервал [D1, D3].

3.Дата (дни)


Класс даты, который реализован как количество дней, прошедших с 1 января 1990 года.

При вводе даты должен быть контроль корректности даты.


Операторы


Разность дат, как число дней между датами.

Сравнение дат (>, <, ==).

Сумма даты и числа (дней).

Инкремент и декремент даты.


Задача


Программа должна ввести три даты –  D, D1 и D2.

Требуется найти дату D3, которая больше даты D2 настолько же дней, насколько дата D2 больше даты D1.

Определить входит ли дата D в интервал [D1, D3].

4.Время (час, минута, секунда)


Класс для хранения времени суток. Время должно быть представлено в виде часов, минут и секунд.

При вводе должен быть предусмотрен контроль корректности.

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

Методы


Увеличение и уменьшение на час, и на минуту.

Операторы


Разность как количество секунд между двумя временами суток.

Сумма времени и целого числа (секунд).

Инкремент и декремент (по секунде).

Сравнение (>, <, ==).


Задача


Программа должна ввести три значения времени –  T , T1 и T2.

Требуется найти время T3, которое позже времени T2 на столько секунд, на сколько время T2 позже времени T1.

Определить входит ли момент T во временной интервал [T1, T3].

5.Время (секунды)


Класс для хранения времени суток. Время должно быть представлено в виде числа секунд, прошедших с начала суток.

При вводе должен быть предусмотрен контроль корректности.

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

Методы


Увеличение и уменьшение на час, и на минуту.

Операторы


Разность как количество секунд между двумя временами суток.

Сумма времени и целого числа (секунд).

Инкремент и декремент (по секунде).

Сравнение (>, <, ==).


Задача


Программа должна ввести три времени – T, T1 и T2.

Требуется найти время T3, которое позже времени T2 на столько секунд, на сколько время T2 позже времени T1.

Определить входит ли момент T во временной интервал [T1, T3].

6.Вектор


Класс для хранения векторов размерности N , где N – целая константа. Вектор хранится в виде массива координат.

Методы


Получение длины вектора.

Проверка на ортогональность векторов.

Получение проекции на n -тую ось. (Результат – вектор).

Операторы


Сложение.

Скалярное умножение.

Умножение на число.

Задача


Для заданных векторов A , и B.

Вычислить значение выражений:

x=B2*A+B*A-B.

C=B2*A+B+A2*A-B

Вывести число x, вектор C, а также его длину.

7.Матрица


Класс для хранения матриц размерности 3. Матрица хранится в виде двухмерного массива.

Методы


Получение определителя матрицы.

Операторы


Сложение.

Умножение матриц.

Умножение на число.

Задача


Для заданных матриц A , и B вычислить значение выражения

C = 5*((A+B)*(A-B)+A2).

Вывести матрицу C, а также ее определитель.

8.Многочлен


Класс многочленов степени не выше 10 с вещественными коэффициентами. Многочлен представляется в виде массива коэффициентов. Ввод должен быть организован так, чтобы не требовалось вводить старшие нулевые коэффициенты. Так, если вводится многочлен степени 2, требуется ввести только 3 коэффициента. При выводе старшие нулевые коэффициенты не должны выводиться.

Методы


Получение степени многочлена.

Операторы


Сложение многочленов ( + ).

Умножение многочленов ( * ).

Значение в точке ( () ).

Задача


Посчитать значение выражения Px2+ 5Px- 102 в заданной точке x , где P – многочлен.

9.Строка


Класс, реализующий строку в стиле языка Pascal .

Строка в языке Pascal, это массив символов, в котором нулевой байт содержит текущую длину сроки.


Методы


Получение длины строки.

Получение подстроки.

Удаление подстроки.

Поиск подстроки (получение индекса начала искомой подстроки.


Если подстрока не найдена, результат равен –1).

Операторы


Сложение строк (+).

Получение символа по индексу ([]).


Задача


Вводится набор строк. Требуется в каждой строке вырезать слово “hello”, то что получится объединить в одну строку и вывести на экран.

10.Множество символов


Класс для хранения множества символов. Внутреннее представление может быть массивом байтов (256 байт) или массива битов (32 байта). При этом i -тый байт (бит) содержит информацию о наличии во множестве символа с кодом i .

Операторы


Объединение множеств (+).

Пересечение множеств (*).

Разность множеств (–)

Проверка принадлежности символа множеству ([]).

Сравнение множеств (==).

Проверка вхождения ( A < B , если A – подмножество B ).


Задача


Даны две строки. Требуется вывести все символы, которые встречаются в первой строке, но не встречаются во второй.