Слайд 1«КАЛЬКУЛЯТОР МАТРИЦ»
Курсовая работа по дисциплине «Объектно–ориентированные инструментальные средства »
Выполнили:
студенты
группы ДИУ-21/2
Косарев Валентин
Конищев Александр
Руководители:
Бокова А.В.
Буйлов К.В.
АГТУ
Слайд 2ВВЕДЕНИЕ
Для многих операций в офисах, лабораториях и прочих рабочих местах, связанных
с какими-либо расчетами, требуются какие-то вычисления с нестандартными типами данных.
Целью данного курсового проекта является создание именно такой программы, которая могла бы выполнять основные операции над матрицами.
Предполагаемый проект должен обладать рядом качеств, которые бы выделили его среди остальных программ с той же функцией.
Во-первых, функциональность, то есть программа должна включать основной и дополнительный набор операций с матрицами.
Во-вторых, простота интерфейса, рассчитанного практически на любого пользователя, имеющего хотя бы первоначальное понятие о матрицах.
В-третьих удобство в использовании программы.
Основное назначение данного курсового проекта – увеличение показателя производительности работников, чья работа связана с вычислениями каких-то величин размерностью матриц, из-за использования нового программного продукта на производстве.
Слайд 4Теоретические основы ООП
Сегодня ни одна программа не представляется без наличия в
ней объектов. Объектно-ориентированное программирование вышло на новую ступень своего развития, когда внедрить объект в программу не составляет большого труда, а порой, это за вас сделает визуальная среда.
Можно сказать, что объектно-ориентированное программирование стоит на трёх китах, таких как инкапсуляция, полиморфизм и наследование.
Слайд 62.1.Техническое задание.
2.1.1.Описание предметной области.
Предлагается разработать калькулятор матриц, следовательно предметной областью
будет являться теория матриц. Теория матриц нашла огромное применение в решении систем линейных уравнений и не только, поэтому целесообразно было бы создать калькулятор, считающий матрицы.
Матрица представляет собой таблицу чисел, каждый из элементов которой должен иметь значение.
В программе должны быть реализованы следующие функции:
сложение,
вычитание,
умножение,
Транспонирование,
Умножение матрицы на скаляр.
Слайд 72.1.2.Описание предметной области.
Матрицей называется прямоугольная таблица, заполненная некоторыми математическими объектами, например,
числами, векторами, функциями, производными, интегралами, операторами и т.д.
В данной курсовой работе будем рассматривать матрицы с элементами из поля целых чисел, хотя все рассуждения сохраняются и для матриц с другими элементами.
Слайд 82.2.Технология обработки информации
Любая матрица представляется в виде двухмерного массива целых десятичных
чисел типа int.
Кроме того, каждой таблице соответствует еще 2 положительных целых числа типа unsigned char хранящие размеры матрицы.
Слайд 92.2.1. Функциональные требования
В программе должны быть реализованы:
o Представление матрицы в формате,
описанном выше. Для этого должен использоваться отдельный класс – класс матриц.
o Операции изменения размеров матриц.
o Операции преобразования матриц (транспонирование).
o Операции инициализации матриц (инициализация единичной, нулевой, случайной, одночисельнной матрицы).
o Операции сложения, и умножения матриц.
o Операции умножения матрицы на скаляр и возведение в скалярную степень.
o Удобная память калькулятора (буфер).
Слайд 102.2.2. Требования к интерфейсу
Интерфейс должен обеспечивать пользователю возможность:
1) удобного ввода данных
с клавиатуры;
2) изменять размер вычисляемых матриц и контролировать текущие размеры рабочих матриц и результирующей;
3) Производить все операции, перечисленные в «Функциональных требованиях» интуитивно понятным и удобным способом;
4) Визуально контролировать содержимое буферной памяти калькулятора;
Не допускать обработки исходных данных, противоречащих логике работы программы путем вывода сообщений об ошибке;
Слайд 13Общие сведения
Borland C++ Builder – это среда быстрой разработки, в которой
в качестве языка
программирования используется язык C++ Builder (C++ Builder Language). Можно сказать, что язык C++ Builder – это расширенный С++. Например, в С++ Builder есть строковый
(AnsiString) и логический (Bool) типы, которых нет в классическом С++. К тому же несомненным преимуществом языка C++ Builder является встроенная RAD (rapid application development) которая обеспечивает быструю разработку приложений.
Borland C++ Builder может работать в среде операционных систем от Windows 95 до Windows XP. Особых требований по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron (рекомендуется Pentium || 400 МГц), объем оперативной памяти должен составлять не менее 128 Мбайт (рекомендуется 256 Mбайт) и свободное дисковое пространство должно быть достаточным.
Слайд 143.1.Укрупненный алгоритм
3.1.1. Классы
В данной программе реализованы 4 класса:
class TMatrix {...}
класс матриц;
class
TForm1 : public TForm {...}
главная форма
class TAboutBox1 : public TForm {...}
форма окна About;
class TErrorBox1 : public TForm {...}
форма окна ошибок;
Слайд 153.2.2. Модули
Исходный текст программы размещается в четырех модулях (восьми файлах) и
двух дополнительных файлах:
1) Unit1.h используется для хранения класса TForm1;
2) Unit2.h используется для хранения класса TMatrix;
3) Unit3.h используется для хранения класса TAboutBox;
4) Unit4.h используется для хранения класса TErrorBox;
5) Unit1.cpp используется для хранения методов класса TForm1 с формой доступа published;
6) File1.cpp используется для хранения методов класса TForm1 с формой доступа public(описанные программистом);
7) Unit2.cpp используется для хранения методов класса TMatrix;
8) Unit3.cpp используется для хранения методов класса TAboutBox;
9) Unit4.cpp используется для хранения методов класса TErrorBox;
10) File2.h используется для хранения глобальных констант;
Слайд 163.2.3.Схема алгоритма
Любая функция нажатия функциональной кнопки главного окна использует одну из
функций чтения формы и/или одну из функций вывода в форму описанных в файле File1.cpp
Сначала происходит чтение одной или двух таблиц строк StringGrid с занесением значений из них в соответствующие матрицы.
Затем с помощью методов класса TMatrix данные обрабатываются и выводятся по необходимости в результирующую или одну из рабочих StringGrid.
Рассмотрим на примере функции нажатия кнопки сложения.
1) Чтение обеих StringGrid с помощью метода ReadForm() с занесением результата в _Mat1 и _Mat2.
2) Присвоение матрице _Res значения суммы матриц _Mat1 и _Mat2 с помощью метода класса TMatrix MSumm(TMatrix, TMatrix).
3) Вывод матрицы _Res в форму с помощью функции WriteForm().
Слайд 173.2.4.Обработка исключений
В программе генерируются исключения с кодом целого типа.
Все они делятся
на 6 групп:
Код 1: Несоответствующий выбранной операции размер матрицы (матрица должна быть квадратной).
Код 2: Несоответствующие выбранной операции размеры матриц (матрицы должны иметь одинаковый размер).
Код 3: Недопустимые данные (элементами матриц могут быть только числа).
Код 4: Недопустимые данные (независимое поле Edit должно содержать только числа).
Код 5: Несоответствующие выбранной операции размеры матриц (высота первой матрицы должна соответствовать ширине второй).
Код 10: Внутренняя ошибка класса TMatrix (неправильные индексы).От пользователя не зависит.
При поимке любого исключения вызывается функция ExceptCatch(int ErrorCode), которая выводит соответствующее сообщение об ошибке в форму TErrorBox1 и показывает саму форму.