↑ вверх

Помощь дистанционщикам!
ДО СибГУТИ (www.do.sibsutis.ru),
ДО СибАГС (www.sapanet.ru),
ДО НГУЭиУ (sdo.nsuem.ru),
ДО СибУПК (sdo.sibupk.su) и др ВУЗы

Этот сайт продаётся. По всем вопросам обращаться по +7 913 923-45-34 (Денис)
Корзина пуста!
Обратная связь




Вариант 11 Лабораторная работа 03

25000
      
Просмотров: 761
Тип работы: Лабораторная работа
Название предмета: Современные технологии программирования
Тема/вариант: Вариант 11 Лабораторная работа 03
Объем работы: 10
ВУЗ: СибГУТИ
Дата выполнения: 2013-08-20
Размер файла, тип файла: 389.3 Kb, , CFG, DOF, DPR, EXE, RES, ~DPR, DCU, DDP, DFM, PAS, ~DDP, ~DFM, ~PAS, DOC
Прикрепленные файлы: Курс 280 Задание на курсовую работу по дисциплине «Современные технологии программирования» 8 семестр (3616 Kb)

Тема: Классы Object Pascal, С++
Цель: Сформировать практические навыки: реализации абстрактного типа данных с помощью классов Object Pascal, С++.
Задание
1.    В соответствии с приведенной ниже спецификацией реализовать абстрактный тип данных «Процессор простых дробей», используя класс Object Pascal, С++.
2.    Протестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3.    Протестировать тип данных в целом.
Спецификация типа данных «Процессор простых дробей».
ADT TProc

Данные
Процессор простых дробей (тип TProc) выполняет двухоперандные операции TOprtn = (None, Add, Sub, Mul, Dvd) и однооперандные операции - функции TFunc  = (Rev, Sqr). Если операция или функция не может быть выполнена, в поле Error типа String заносится сообщение об ошибке. Левый операнд и результат операции хранится в поле Lop_Res, правый - в поле Rop. Оба поля имеют тип TFrac. Процессор может находиться в состоянии «операция установлена»: поле Operation не равно None (значение типа TOprtn) или в состоянии операция не установлена: поле Operation = None. Значения типа TProc - изменяемые. Они изменяются операциями: Сброс операции (OprtnClear), Выполнить операцию (OprtnRun), Вычислить функцию (FuncRun), Установить операцию (OprtnSet), Установить левый операнд (Lop_Res_Set), Установить правый операнд (Rop_Set), Сброс калькулятора (ReSet).
Операции
Конструктор   
    Начальные значения:    Нет
    Процесс:    Создаёт объект процессор простых дробей типа TProc. Поля Lop_Res, Rop инициализируются объектами (тип TFrac) со значением 0/1. В поле Error заносится пустая строка. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).
   
СбросПроцессора   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс:    Поля объекта процессор простых дробей: Lop_Res, Rop инициализируются объектами (тип TFrac) со значением 0/1. В поле Error заносится пустая строка. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).
    Выход:    Нет
    Постусловия:    Состояние процессора – «операция сброшена» (Operation = None).
   
СбросОперации   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Процессор устанавливается в состояние: «операция не установлена»: (Operation = None).
    Выход:    Нет
    Постусловия:    Состояние процессора – «операция сброшена» (Operation = None).
   
ВыполнитьОперацию   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Вызывает выполнение текущей операции (записанной в поле Operation). Операция (Operation) выполняется над значениями, хранящимися в полях Rop и Lop_Res. Результат сохраняется в поле Lop_Res. Если Operation = None, никакие действия не выполняются. Если операция не может быть выполнена, в поле Error заносится сообщение об ошибке. Состояние объекта не изменяется.
    Выход:    Нет
    Постусловия:    Состояние процессора не изменяется.
   
ВычислитьФункцию   
    Вход:    Вид функции (Func: TFunc).
    Предусловия:    Нет
    Процесс    Вызывает выполнение текущей функции (Func). Функция (Func) выполняется над значением, хранящимся в поле Rop. Результат сохраняется в нём же. Если операция не может быть выполнена, в поле Error заносится сообщение об ошибке. Состояние объекта не изменяется.
    Выход:    Нет
    Постусловия:    Состояние процессора не меняется.
   
ЧитатьЛевыйОперанд   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Создаёт и возвращает копию объекта, указатель на который хранится в Lop_Res.
    Выход:    Объект типа TFrac.
    Постусловия:    Состояние процессора не изменяется.
   
ЗаписатьЛевыйОперанд   
    Вход:    Переменная (Operand) типа TFrac.
    Предусловия:    Нет.
    Процесс    Создаёт копию объекта Operand и заносит указатель на него в поле Lop_Res.
    Выход:    Нет.
    Постусловия:    Состояние процессора не изменяется.
   
ЧитатьПравыйОперанд   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Создаёт и возвращает копию объекта, указатель на который хранится в Rop.
    Выход:    Объект типа TFrac.
    Постусловия:    Состояние процессора не меняется.
   
ЗаписатьПравыйОперанд   
    Вход:    Переменная (Operand) типа TFrac.
    Предусловия:    Нет.
    Процесс    Создаёт копию объекта Operand и заносит указатель на него в поле Rop.
    Выход:    Нет.
    Постусловия:    Состояние процессора не изменяется.
   
ЧитатьСостояние   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Копирует и возвращает значение поля Operation.
    Выход:    Значение поля Operation.
    Постусловия:    Состояние процессора не изменяется.
   
ЗаписатьСостояние   
    Вход:    Переменная (Oprtn) типа TOprtn.
    Предусловия:    Нет.
    Процесс    Заносит значение Oprtn в поле Operation.
    Выход:    Нет.
    Постусловия:    Состояние процессора изменяется на Oprtn.
   
ЧитатьОшибку   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Копирует и возвращает значение поля Error.
    Выход:    Значение поля Error.
    Постусловия:    Состояние процессора не изменяется.
   
СбросОшибки   
    Вход:    Нет.
    Предусловия:    Нет.
    Процесс    Очищает поле Error.
    Выход:    Нет.
    Постусловия:    Состояние процессора не изменяется.

Рекомендации к выполнению
1.    Тип данных TProc реализовать, используя класс Object Pascal, С++.
2.    Число храните как поле типа TFrac (см. лаб. Раб. Абстрактный тип данных – простые дроби).
3.    Для чтения состояния процессора, полей: «левый операнд-результат» (Lop_Res), «правый операнд» (Rop), «ошибка» ()Error используйте свойство (property).
4.    Тип данных реализовать в отдельном модуле UProc.
5.    В приведённой ниже таблице показана последовательность изменения состояния процессора при вычислении выражения:
2/1 + 3/1 * (4/1)2
Шаг    Вход    Метод    Rop    Lop_Res    Operation
0        Create    0/1    0/1    None
1    2        0/1    0/1    None
2    +    Lop_Res_Set;
OprtnSet    0/1    2/1    Add
3    3        0/1    2/1    Add
4    *    Rop_Set;   OprtnRun;
OprtnSet;    3/1    2/1+3/1    Mul
5    4        4/1    2/1+3/1    Mul
6    Sqr    Rop_Set;
FuncRun    (4/1)^2    2/1+3/1    Mul
7    =    OprtnRun    (4/1)^2    2/1+3/1* (4/1)^2    Mul
8    C    ReSet    0/1    0/1    None
Содержание отчета
1.    Задание.
2.    Текст программы.
3.    Тестовые наборы данных для тестирования типа данных.
 

ЗАКАЗАТЬ РАБОТУ
Отправь нам своё задание, и мы поищем твою работу в нашей базе готовых работ. А если не найдем, то порекомендуем партнеров, которые качественно смогут выполнить твой заказ.
(doc, docx, rtf, zip, rar, bmp, jpeg) не более 5 Мб