Конструирование программ и языки программирования

Автор работы: Пользователь скрыл имя, 26 Февраля 2012 в 21:45, курсовая работа

Краткое описание

С++ был создан в начале 80-х Бьерном Страуструпом. Страуструп имел перед собой две цели: (1) оставить С++ совместимым с обычным С и (2) расширить С конструкциями объектно-ориентированного программирования (ООП), основанными на понятии класса в Simula 67.
Конечная цель создания С++ - предоставить профессиональному программисту язык, который можно использовать при создании объектно-ориентированного программного обеспечения, не жертвуя эффективностью или переносимостью С.

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

Введение 3
1. Техническое задание 6
2. Рабочий проект 7
2.1.Общие сведения (среда функционирования (ОС), способ загрузки,
способ инсталляции, требования к ПО, требования к ТО) 7
2.2. Алгоритм программы 8
2.2.1.Классы 8
2.2.2.Диаграмма классов 13
2.2.3.Модули 14
2.2.4.Схема алгоритма 15
2.2.5.Диаграмма последовательности 16
2.2.6.Обработка исключений 17
2.3.Руководство пользователя 18
Заключение……………………………..……………………………………….........23
Список используемой литературы…………………..……..…………....…..…….. 24

Содержимое работы - 1 файл

Пояснительная записка.doc

— 628.00 Кб (Скачать файл)

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

                                          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)

                                                        Хранит инструкции по обработке каждого                            

                                          исключения

Класс TAboutBox:

Переменные:

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

 

              Методы:

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

                                          __fastcall TForm1(TComponent* Owner);

 

Класс TAboutBox1:

              Переменные:

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

 

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

                           

              Методы:

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

                                          __fastcall TForm1(TComponent* Owner);

                           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.2 Диаграмма классов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.3.Модули программы

 

Исходный текст программы размещается в четырех модулях (восьми файлах) и двух дополнительных файлах:

 

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              используется для хранения методов класса TAboutBox1;

10)            File2.h              используется для хранения глобальных констант;

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.4.Схема алгоритма

 

Любая функция нажатия функциональной кнопки главного окна использует одну из функций чтения формы и/или одну из функций вывода в форму описанных в файле File1.cpp

Сначала происходит чтение одной или двух таблиц строк StringGrid с занесением значений из них в соответствующие матрицы.

Затем с помощью методов класса TMatrix данные обрабатываются и выводятся по необходимости в результирующую или одну из рабочих StringGrid.

Рассмотрим на примере функции нажатия кнопки сложения.

1)                Чтение обеих StringGrid с помощью метода ReadForm() с занесением результата в _Mat1 и _Mat2.

2)                Присвоение матрице _Res значения суммы матриц _Mat1 и _Mat2 с помощью метода класса TMatrix MSumm(TMatrix, TMatrix).

3)                Вывод матрицы _Res в форму с помощью функции WriteForm().

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.5 Диаграмма последовательности

2.2.6.Обработка исключений

 

В программе генерируются исключения с кодом целого типа.

Все они делятся на 6 групп:

Код 1:                            Несоответствующий выбранной операции размер матрицы                                           (матрица должна быть квадратной).

Код 2:                            Несоответствующие выбранной операции размеры матриц                                           (матрицы должны иметь одинаковый размер).

Код 3:                            Недопустимые данные (элементами матриц могут быть                                           только числа).

Код 4:                            Недопустимые данные (независимое поле Edit должно                                           содержать только числа).

Код 5:                            Несоответствующие выбранной операции размеры матриц                                           (высота первой матрицы должна соответствовать ширине                                           второй).

Код 10:              Внутренняя ошибка класса TMatrix (неправильные                                                         индексы). От пользователя не зависит.

При поимке любого исключения вызывается функция ExceptCatch(int ErrorCode), которая выводит соответствующее сообщение об ошибке в форму TErrorBox1 и показывает саму форму.

             


2.3.Руководство пользователя

 

Интерфейс любой программы должен отличаться легкой восприимчивостью пользователем.

Если пользователь сможет разобраться в программе без руководства, то работа программиста будет считаться выполненной великолепно. В этой работе тоже были приложены усилия для создания простого, понятного и удобного интерфейса.(рис. 1)

 

рис. 1- показан интерфейс программы.

 

В правой части окна(одна над другой) находятся три основные панели.

Каждая из двух верхних представляют собой панель, включающую рабочую таблицу строк (рис. 2а) и два объекта (рис. 2б,в) изменения размера таблицы.

Каждый объект представляет собой числовое поле и две кнопки «+» и «-». Верхний объект изменения размера таблицы (рис2.б) служит для изменения высоты таблицы, нижний (рис. 2в) – ширины.

 

рис. 2- Одна из двух верхних панелей.

 

 

Каждая такая панель представляет собой матрицу.

Для ввода данных необходимо:

1.        Выбрать нужный размер

2.        Выделяя курсором необходимую ячейку ввести значение данной ячейки.

 

 

рис. 3- Результирующая панель.

 

 

В правом нижнем углу окна находится результирующая панель.

Она представляет собой панель, включающую результирующую таблицу   (рис. 2а) и две кнопки (рис. 3в) для переноса данных из результирующей таблицы в одну из рабочих.

Верхняя кнопка «ТО 1» служит для переноса данных в первую матрицу, нижняя  – во вторую.

В левом верхнем углу отображается информация о размерах матрицы (рис. 3б): высоте и ширине.

 

Панель основных операций.

Над матрицами можно выполнять операции сложение, вычитание, умножение с помощью нажатия соответствующей кнопки на панели основных операций

(рис. 4).

«*» - умножение матриц(рис. 4а);

«+» - сложение матриц(рис. 4б);

«-» - вычитание матриц(рис. 4в);

«Модуль» - подсчет определителя матрицы(рис. 4г);

 

 

рис. 4- Панель основных операций.

 

 

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

Во время работы матрицу можно преобразовать с помощью нажатия соответствующей кнопки на панели дополнительных операций (рис. 5).

«Е» - инициализация единичной матрицы(рис. 5а);

«0» - инициализация нулевой матрицы(рис. 5д);

«Rand» - инициализация случайной матрицы(рис. 5е);

«Integer» - инициализация матрицы целым из поля «Число» (рис. 5б)

«- Х» - умножение матрицы на –1(рис. 5з);

«Х * С» - умножение матрицы на скаляр(рис. 5в);

«Х ^ C» - возведение матрицы в скалярную степень(последовательное умножение на себя)(рис. 5ж);

«Т» - транспонирование матрицы(рис. 5г);

 

 

 

рис. 5- Панели дополнительных операций

 

Все эти операции производятся над активной матрицей.

Чтобы сделать матрицу активной необходимо сначала выделить соответствующую ей таблицу, а затем нажать соответствующую операции кнопку.

Для операций умножения на скаляр и возведения в скалярную степень используется целое число.

Это число вводится в числовое поле (рис. 6) находящееся в верхней правой части окна.

 

рис. 6 - числовое поле

 

Для очистки всей формы (обнуления всех матриц формы) используется кнопка «С»(рис. 7), находящаяся в левом нижнем углу окна.

рис. 7 - кнопка «обнуления всех матриц формы»

 

Использование памяти.

В данном калькуляторе можно использовать память для хранения одной матрицы.

Все операции с памятью производятся с помощью кнопок на панели памяти

(рис. 8)

Чтобы занести в память матрицу нужно выделить матрицу кликом мыши и нажать кнопку «М». На панели появится индикатор «М».

Чтобы вынести результат из памяти нужно выделить матрицу кликом мыши и нажать кнопку «МR».

Чтобы очистить память необходимо нажать «МС». Индикатор «М» исчезнет.

 

рис. 8 – Кнопки панели памяти.

Для получения информации о программе нажмите кнопку «О программе», находящуюся в левом верхнем углу окна.

 

рис. 9 - кнопка «О программе»

Заключение

 

Данная программа является типичным примером реализации программ использованием объектно-ориентированной технологии программирования

созданных для Windows с помощью Borland C++ Builder.

Достоинством данной программы является ее простота в использовании в наиболее распространенной, на данный момент, операционной системе Windows  и то, что при необходимости можно добавить нужные кнопки-функции.

Недостаток программы в том, что при наборе очень сложных функций одновременно программа выдает ошибку набора. Поэтому чтобы избежать этой ошибки необходимо соблюдать последовательность и правильность набора команд.

 

 

 

 

 

 

 


Список использованной литературы

 

1.      Бьерн Страуструп «Язык программирования C++» специальное издание. Москва, Санкт – Петербург,2002. 

2.      Г.Шилдт «Теория и практика Си++.» СПб.:BHV – Санкт-Петербург, 1996.

3.      Н. Подбельский «Язык С++»; Питер, Санкт – Петербург 2004.

4.      Валерий Лаптев «С++ Экспресс курс», БХВ – Санкт-Петербург, 2004.

5.      А.Я. Лемих «С/С++ в примерах и задачах» Москва, 2004.

6.      Кун С. «Матричные процессоры на СБИС». М. 1991

7.      «Транспьютеры. Архитектура и ПО». Пер. с англ./ Под ред. Г. Харпа.- М.: Радио и связь, 1993.

8.      «СуперЭВМ. Аппаратная и программная организация.»/ Под ред. С.Фернбаха. Пер. с англ. - М.: Радио и связь, 1991.

9.      «Вычислительные комплексы, системы и сети» / А.М.Ларионов, С.А.Майоров, Г.И.Новиков: Учебник для вузов. Л:Энергоиздат. Ленингр.отд-ние, 1987.

10. «Фути К., Судзуки Н. Языки программирования и схемотехника» СБИС: Пер. с япон. М.: Мир, 1988.

11. Головкин Б.А. «Параллельные вычислительные системы». М.:Наука, 1980.

12. Н.Культин «Практика программирования на С++». «Питер», Санкт – Петербург 2003.

13. А.Л. Фридман «Язык программирования С++ » курс лекций; Интернет Университет Информационных технологий; Москва 2003

14. Т.А. Павловская «С/С++ Программирование на языке высокого уровня» учебник для вузов; Питер, Санкт – Петербург 2004.

15. http://www.parallel.ru

16. http://www.rusmath.ru

 

 


ПРИЛОЖЕНИЕ А.

 

Исходный код программы

 

Project1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("Unit1.cpp", Form1);

USEFORM("Unit3.cpp", AboutBox);

USEFORM("Unit4.cpp", AboutBox1);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

        try

        {

                 Application->Initialize();

                 Application->CreateForm(__classid(TForm1), &Form1);

                 Application->CreateForm(__classid(TAboutBox), &AboutBox);

                 Application->CreateForm(__classid(TAboutBox1), &AboutBox1);

                 Application->Run();

        }

        catch (Exception &exception)

        {

                 Application->ShowException(&exception);

        }

        catch (...)

        {

                 try

                 {

                         throw Exception("");

                 }

                 catch (Exception &exception)

                 {

                         Application->ShowException(&exception);

                 }

        }

        return 0;

}

//---------------------------------------------------------------------------

 


Unit1.h

 

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

#ifndef File1H

#define File1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include "CSPIN.h"

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include "Unit2.h"

class TMatrix;

//---------------------------------------------------------------------------

class NSquare {};

class InsideError {};

class NRightSize {};

Информация о работе Конструирование программ и языки программирования