Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив3 / OOP_kursach / ООП_курсач.doc
Скачиваний:
96
Добавлен:
07.08.2013
Размер:
393.73 Кб
Скачать

2.2.1. Функциональные требования

В программе должны быть реализованы:

    • Представление матрицы в формате, описанном выше. Для этого должен использоваться отдельный класс – класс матриц.

    • Операции изменения размеров матриц.

    • Операции преобразования матриц (транспонирование).

    • Операции инициализации матриц (инициализация единичной, нулевой, случайной, одночисельнной матрицы).

    • Операции сложения, и умножения матриц.

    • Операции умножения матрицы на скаляр и возведение в скалярную степень.

    • Удобная память калькулятора (буфер).

2.2.2. Требования к интерфейсу

Интерфейс должен обеспечивать пользователю возможность:

  1. удобного ввода данных с клавиатуры;

  2. изменять размер вычисляемых матриц и контролировать текущие размеры рабочих матриц и результирующей;

  3. Производить все операции, перечисленные в «Функциональных требованиях» интуитивно понятным и удобным способом;

  4. Визуально контролировать содержимое буферной памяти калькулятора;

  5. Не допускать обработки исходных данных, противоречащих логике работы программы путем вывода сообщений об ошибке;

Внешний вид программы:

Глава 3

РАБОЧИЙ ПРОЕКТ

3.1.Общие сведения (среда функционирования (ОС), способ загрузки, способ инсталляции, требования к ПО, требования к ТО)

Среда функционирования:

Borland C++ Builder – это среда быстрой разработки, в которой в качестве языка программирования используется язык C++ Builder (C++ Builder Language). Можно сказать, что язык C++ Builder – это расширенный С++. Например, в С++ Builder есть строковый

(AnsiString) и логический (Bool) типы, которых нет в классическом С++. К тому же несомненным преимуществом языка C++ Builder является встроенная RAD (rapid application development) которая обеспечивает быструю разработку приложений.

Запуск программы:

Стандартный, т.е. двойной клик на иконке программы.

Способ инсталляции:

Копирование исполняемого файла программы на нужный носитель.

Требования к ПО и к ТО:

  • операционная система Windows 9x/ME/2000/XP/2003

  • 16 Мб оперативной памяти

  • 1 Мб свободного пространства на жестком диске

  • Pentium 133 MHz

3.2. Укрупненный алгоритм

3.2.1.Классы

В данной программе реализованы 4 класса:

class TMatrix {...}

класс матриц;

class TForm1 : public TForm {...}

главная форма

class TAboutBox1 : public TForm {...}

форма окна About;

class TErrorBox1 : public TForm {...}

форма окна ошибок;

Класс TMatrix:

Переменные:

Квадратный массив целых чисел **_mat;

Беззнаковые целые _NNUM1 и _NNUM2 определяющие размеры массива _mat;

Методы:

Изменение размера:

1) void DeleteOldMatrix()

Удаляет старую матрицу;

2) void InitNewMatrix1()

Выделяет память под новую матрицу размером 3x3;

3) void InitNewMatrix1(int M, int N)

Выделяет память под новую матрицу размером MxN;

Инициализация:

1) void InitRandom()

Заполняет матрицу случайными числами;

2) void InitZero()

Заполняет матрицу нулями;

3) void InitE()

Если матрица квадратная, то инициализирует единичную матрицу;

Действия с одним элементом:

1) void InitElem(int i, int j, int NewInt)

Присваивает элементу с индексом [i][j] значение NewInt;

2) int GetElem(int, int)

Возвращает значение элемента с индексом [i][j];

Операции с двумя матрицами:

1) void MSumm(TMatrix &A, TMatrix &B)

Возвращает значение суммы матриц A и B;

2) void MDiff(TMatrix &A, TMatrix &B)

Возвращает значение разности матриц A и B;

3) void MMult(TMatrix &A, TMatrix &B)

Возвращает значение произведения матриц A и B;

Операции с одной матрицей:

1) void MScalMult(int ScalInt)

Возвращает значение умножения матрицы на скаляр ScalInt;

2) void MNegative()

Возвращает значение умножения матрицы на -1;

3) void MTrans()

Возвращает значение транспонированной матрицы;

Класс TForm1:

Переменные:

Элементы интерфейса программы в форме указателей на объект;

Четыре переменные матрицы типа TMatrix:

- _Mat1, _Mat2 – Матрицы привязанные к таблицам строк StringGrid 1 и 2 соответственно;

- _Res - Матрица привязанная к таблице StringGrid3 (хранит результат выполнения операций);

- _Mem – Матрица являющаяся памятью калькулятора;

Четыре переменные целого типа, хранящие размеры таблиц строк StringGrid1 и 2: _SG1_R, _SG1_C, _SG2_R, _SG2_C;

Указатель типа TStringGrid *_SGFocus, определяющий какая таблица строк StringGrid активна в данный момент;

Указатель типа TMatrix *_MatFocus, определяющий какая матрица соответствует активной таблице строк StringGrid;

Переменная целого типа _Edit1Num хранящая значение поля Edit1(поля для значения какого-то целого скаляра);

Переменная целого типа _SGFocusInt определяющая номер активной таблицы StringGrid;

Переменная целого типа _Memory определяющая, используется ли память калькулятора;

Методы:

Конструктор:

__fastcall TForm1(TComponent* Owner);

Функции чтения формы:

1) ReadMemory()

Заносит значения из активной StringGrid в матрицу памяти;

2) ReadForm()

Заполняет матрицы _Mat1 и _Mat2 значениями из соответствующих StringGrid;

3) ReadMatrix();

Заполняет соответствующую матрицу значениями из активной StringGrid;

Функции вывода значений в интерфейс:

1) Print(int Index)

Заполняет соответствующую параметру Index StringGrid из соответствующей матрицы;

2) WriteMemory()

Выводит значение памяти калькулятора в активную StringGrid;

3) WriteForm()

Заполняет StringGrid3 значениями из матрицы _Res (выводит результат);

4) WriteMatrix()

Заполняет активную StringGrid значениями из активной матрицы;

1) SGRight(int SGNUM)

Проверяет допустимость значений каждой строки соответствующей параметру SGNUM StringGrid;

2) ExceptCatch(int ErrCode)

Хранит инструкции по обработке каждого исключения;

Класс TAboutBox1:

Переменные:

Элементы интерфейса формы в форме указателей на объекты;

Методы:

Конструктор: _fastcall TForm1(TComponent* Owner);

Класс TErrorBox1:

Переменные:

Переменные типа *TLabel, используемые для вывода в форму сообщений об ошибке;

Остальные элементы интерфейса формы в форме указателей на объекты;

Методы:

Конструктор: _fastcall TForm1(TComponent* Owner);