- •Курсовая работа
- •На тему: Проектирование и реализация программ в технологии «абстрактных типов данных»
- •Задание
- •Общие требования
- •Тип числа – «Калькулятор простых дробей». Требования.
- •Необходимо предусмотреть следующие варианты использования (прецеденты) калькулятора:
- •Спецификация типа данных «простые дроби».
- •Спецификация типа данных «память».
- •Операции
- •Спецификация типа данных «Процессор».
- •Form1.H
- •InitializeComponent();
- •If (components)
- •Void InitializeComponent(void)
- •Void SetOperation(tOprtn toprtn) {
- •Void SetFunction(tFunc tfunc) {
- •Interface class Operation {
- •Int countOp;
- •Void Run() {
- •Void PrepareMemoryFunction() {
- •Void PostAction() {
- •Void ResetController() {
- •Void set(bool onPrepare) {
- •Void set(bool onOperationClicked) {
- •Поле ввода
- •Управление вычислением
- •Дополнительные возможности
Спецификация типа данных «Процессор».
ADT TProc
Данные. Процессор (тип TProc) выполняет двухоперандные операции TOprtn = (None, Add, Sub, Mul, Dvd) и однооперандные операции - функции TFunc = (Rev, Sqr) над значениями типа T. Левый операнд и результат операции хранится в поле Lop_Res, правый - в поле Rop. Оба поля имеют тип T. Процессор может находиться в состояниях: «операция установлена» - поле Operation не равно None (значение типа TOprtn) или в состоянии «операция не установлена» - поле Operation = None. Значения типа TProc - изменяемые. Они изменяются операциями: «Сброс операции» (OprtnClear), «Выполнить операцию» (OprtnRun), «Вычислить функцию» (FuncRun), «Установить операцию» (OprtnSet), «Установить левый операнд» (Lop_Res_Set), «Установить правый операнд» (Rop_Set), «Сброс калькулятора» (ReSet). На значениях типа T должны быть определены указанные выше операции и функции.
Операции
Конструктор |
|
Начальные значения: |
Нет |
Процесс: |
Инициализирует поля объекта процессор типа TProc. Поля Lop_Res, Rop инициализируются объектами (тип T) со значениями по умолчанию. Например, для простых дробей - 0/1. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
СбросПроцессора |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Поля объекта процессор: Lop_Res, Rop инициализируются объектами (тип T) со значениями по умолчанию. Например, для простых дробей - 0/1. Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
Выход: |
Нет. |
Постусловия: |
Состояние процессора – «операция сброшена» (Operation = None). |
СбросОперации |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс |
Процессор устанавливается в состояние: «операция не установлена»: (Operation = None). |
Выход: |
Нет. |
Постусловия: |
Состояние процессора – «операция сброшена» (Operation = None). |
ВыполнитьОперацию |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс |
Вызывает выполнение текущей операции (записанной в поле Operation). Операция (Operation) выполняется над значениями, хранящимися в полях Rop и Lop_Res. Результат сохраняется в поле Lop_Res. Если Operation = None, никакие действия не выполняются. Состояние объекта не изменяется. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
ВычислитьФункцию |
|
Вход: |
Вид функции (Func: TFunc). |
Предусловия: |
Нет. |
Процесс |
Вызывает выполнение текущей функции (Func). Функция (Func) выполняется над значением, хранящимся в поле Rop. Результат сохраняется в нём же. Состояние объекта не изменяется. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не меняется. |
ЧитатьЛевыйОперанд |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс |
Создаёт и возвращает копию объекта, который хранится в поле Lop_Res. |
Выход: |
Объект типа T. |
Постусловия: |
Состояние процессора не изменяется. |
ЗаписатьЛевыйОперанд |
|
Вход: |
Переменная Operand типа T. |
Предусловия: |
Нет. |
Процесс |
Создаёт копию объекта Operand и заносит её в поле Lop_Res. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
ЧитатьПравыйОперанд |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс |
Создаёт и возвращает копию объекта, который хранится в Rop. |
Выход: |
Объект типа T. |
Постусловия: |
Состояние процессора не меняется. |
ЗаписатьПравыйОперанд |
|
Вход: |
Переменная Operand типа T. |
Предусловия: |
Нет. |
Процесс |
Создаёт копию объекта Operand и заносит её в поле Rop. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора не изменяется. |
ЧитатьСостояние |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс |
Копирует и возвращает значение поля Operation. |
Выход: |
Значение поля Operation. |
Постусловия: |
Состояние процессора не изменяется. |
ЗаписатьСостояние |
|
Вход: |
Переменная Oprtn типа TOprtn. |
Предусловия: |
Нет. |
Процесс |
Заносит значение Oprtn в поле Operation. |
Выход: |
Нет. |
Постусловия: |
Состояние процессора изменяется на Oprtn. |
Текст программы
