Реализация абстрактных типов данных с помощью классов С++

Страницы работы

15 страниц (Word-файл)

Содержание работы

Сибирский государственный университет телекоммуникаций и информатики.

Факультет заочного обучения.

Лабораторная работа №1 по дисциплине «Современные технологии программирования».

Выполнил:

Студент ФЗО СибГУТИ

Группы ЗП-71

Карнаухов Д.С.

Номер студенческого билета 092П-051

Проверил:

Зайцев М.Г.

Новосибирск 2011г.

Содержание.

1.  Задание…………………….…………………………………………………………...3

2.  Текст программы …………………………………………………………………….6

3.  Тестирование ………………………………………………………………………...12


1.  Задание.

Сформировать практические навыки: реализации абстрактных типов данных с помощью классов С++. Реализовать абстрактный тип данных «простая дробь», используя классы С++, в соответствие с приведенной ниже спецификацией.

Данные

Простая дробь (тип TFrac) - это пара целых чисел: числитель и знаменатель (a/b). Простые дроби изменяемые.

Операции

Операции могут вызываться только объектом простая дробь (тип TFrac), указатель на который в них передаётся по умолчанию. При описании операций этот объект называется «сама дробь».

КонструкторЧисло

            Начальные значения:

Пара целых чисел (a) и (b).

            Процесс:

Создаёт простую дробь (тип TFrac) с числителем a, и знаменателем (b). В случае необходимости дробь предварительно сокращается.

             Например:

КонструкторЧисло (6,3) = (2/1)

КонструкторЧисло (0,3) = (0/3).

КонструкторСтрока

            Начальные значения:

Строковое представление простой дроби . Например: ‘7/9’.

            Процесс:

Создаёт простую дробь (тип TFrac), представленную строкой f =’a/b’, с числителем a и знаменателем b.

Например:

КонструкторСтрока(‘6/3’) = 6/3

КонструкторСтрока (‘0/3’) = 0/3

Копировать:

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Создаёт копию самой дроби (тип TFrac) с числителем, и знаменателем такими же, как у самой дроби.

            Выход:

Простая дробь (тип TFrac).

Например:

c = 6/3, Копировать(c) = 6/3

            Постусловия:

Нет.

Сложить

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Нет.

            Процесс:

Создаёт и возвращает простую дробь (тип TFrac), полученную сложением самой дроби q = a1/b1 с d =a2/b2: ((a1/b1)+(a2/b2)=(a1*b2 + a2*b1)/( b1* b2)).

             Например:

q = 1/2, d = -3/4

q.Сложить(d) = -1/4.

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет.

Умножить

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Нет.

            Процесс:

Создаёт простую дробь (тип TFrac), полученную умножением самой дроби q = a1/b1 на d = a2/b2 ((a1/b1)*(a2/b2)=(a1* a2)/( b1* b2)).

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет.

Вычесть

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Нет.

            Процесс:

Создаёт и возвращает простую дробь (тип TFrac), полученную вычитанием d = a2/b2 из самой дроби q = a1/b1: ((a1/b1)-(a2/b2)=(a1* b2-a2*b1)/(b1*b2)).

              Например:

q = (1/2), d = (1/2)

q.Вычесть(d) = (0/1).

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет

Делить

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Числитель числа d не равно 0.

            Процесс:

Создаёт и возвращает простую дробь (тип TFrac), полученное делением самой дроби q = a1/b1 на дробь d = a2/b2: ((a1/b1)/(a2/b2)=(a1* b2)/( a2*b1)).

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет.

Квадрат

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Создаёт и возвращает простую дробь (тип TFrac), полученную умножением самой дроби на себя: ((a/b)*(a/b)=(a* a)/( b* b)).

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет.

Обратное

            Вход:

Нет.

            Предусловия:

Числитель дроби (a/b) не равен нулю (a<>0).

            Процесс:

Создаёт и возвращает простую дробь (тип TFrac), полученное делением единицы на саму дробь: 1/((a/b) = b/a.

            Выход:

Простая дробь (тип TFrac)

            Постусловия:

Нет.

Минус

            Вход:

Простая дробь (q) (тип TFrac).

            Предусловия:

Нет.

            Процесс:

Создаёт простую дробь, являющуюся разностью простых дробей z и q, где z - простая дробь (0/1).

            Выход:

Простая дробь (тип TFrac).

            Постусловия:

Нет.

Равно

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Нет

            Процесс:

Сравнивает саму простую дробь q и d. Возвращает значение True, если q и d - тождественные простые дроби, и значение False - в противном случае.

            Выход:

Булевское значение.

            Постусловия:

Нет.

Больше

            Вход:

Простая дробь d (тип TFrac).

            Предусловия:

Нет.

            Процесс:

Сравнивает саму простую дробь q и d. Возвращает значение True, если q > d, -  значение False - в противном случае.

            Выход:

Булевское значение.

            Постусловия:

Нет.

ВзятьЧислительЧисло

            Вход:

            Предусловия:

Нет.

            Процесс:

Возвращает значение числителя дроби в числовом формате.

            Выход:

Целое значение.

            Постусловия:

Нет.

ВзятьЗнаменательЧисло

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Возвращает значение знаменателя дроби в числовом формате.

            Выход:

Целое значение.

            Постусловия:

Нет.

ВзятьЧислительСтрока

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Возвращает значение числителя дроби в строковом формате.

            Выход:

Строка.

            Постусловия:

Нет.

ВзятьЗнаменательСтрока

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Возвращает значение знаменателя дроби в строковом формате.

            Выход:

Строка.

            Постусловия:

Нет.

ВзятьДробьСтрока

            Вход:

Нет.

            Предусловия:

Нет.

            Процесс:

Возвращает значение простой дроби, в строковом формате.

            Выход:

Строка.

            Постусловия:

Нет.

Похожие материалы

Информация о работе