Создание приложения по перемножение матриц NM и MN

Средства программирования, описание языка С++. Назначение программы, требования к документации. Стадии разработки, виды испытаний. Используемые технические, программные средства. Вызов и загрузка, входные и выходные данные. Программа и методика испытаний.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 23.07.2013
Размер файла 205,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

В настоящее время компьютеры позволяют мгновенно решать многие задачи, на решение которых раньше требовались большие затраты. Применение компьютеров решает проблемы быстроты и надежности вычислений.

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

Задача вычислений такой матрицы часто встречается в вычислительной математике, геометрии и других областях.

Теоретические основы разработки

Описание предметной области и анализ методов решения.

Решение системы линейных уравнений может быть реализовано следующими способами:

Ручным - этот способ является трудоёмким и требует больших затрат времени.

Автоматизированным - исходные данные вводятся вручную, а результат рассчитывается программой на компьютере.

Автоматическим - исходные данные автоматически считываются с внешнего устройства (например, файла на диске) и обрабатываются программой.

Метод решения задачи - умножение матриц по правилу умножения. Это правило состоит в следующем:

Операция умножения двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором; в этом случае говорят, что форма матриц согласована. В частности, умножение всегда выполнимо, если оба сомножителя - квадратные матрицы одного и того же порядка. Произведение матриц AB состоит из всех возможных комбинаций скалярных произведений строк матрицы A и столбцов матрицы B. Элемент матрицы AB с индексами i,j есть скалярное произведение i-ой строки матрицы A и j-го столбца матрицы B.

второй пункт правила позволяет ввести формулу, по которой можно вычислять элементы матрицы

Исходные матрицы

Результирующая матрица

Таким образом, если выполняется условие о размерах матриц, то можно поэлементно вычислить матрицу.

Обзор средств программирования

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

Из современных языков программирования, многие подходили под выполняемую задачу:

С/С++

Java

Pascal

Delphi

Ruby

C#

и другие. Самым простым для решения задачи является С/С++, как один из основных и широко распространенных.

В качестве среды разработки я использовал Microsoft Visual Studio 2008.

Описание языка С++

Язык C++ один из самым распространенных языков в мире.

Он является высокоуровневым, т.е. основными элементами являются переменные и структуры и классы, а не машинные команды.

Переменные на языке С++ описываются следующим образом:

int sizecolumns=1;//число столбцов

int **elements;//содержимое матрицы

Тип данных, имя переменной, и начальное значение. После двойного слеша идет описание переменной в комментариях (не обязательная часть). Язык является типизированным.

Функции описываются следующим образом:

bool Multiply(Matrix *MultMatrix)

{

Тело функции

}

Тип возвращаемого значения, имя функции, и в круглых скобках принимаемые параметры функции.

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

В этой работе создавался класс Matrix (Матрица), содержащий помимо самой матрицы, ее параметры - размеры, минимально и максимально допустимые значения.

Практическая часть

Постановка задачи

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

Основания для разработки

Основанием для разработки является задания преподавателя в соответствии с программой курса “Технология разработки программных продуктов”.

Назначение программы

Разрабатываемая программа предназначена для перемножения заданных матриц.

Требования к программе.

Требования к функциональным характеристикам.

Программный продукт должен обеспечивать:

Подготовку исходных данных.

Ввод исходных данных с клавиатуры.

Просмотр исходных данных на экране.

перемножение заданных матриц.

Вывод результатов на экран.

Запись результатов в файл.

Требования к надёжности.

Требования к надёжности программы отсутствуют, так как при отказе программы её можно выполнить повторно.

Требования к условиям эксплуатации

Программа должна эксплуатироваться в условиях вычислительного центра при температуре от +15 до +35 С и относительной влажности воздуха от 25 до 85%.

Программа не требует специального обслуживания, а её сопровождение выполняется самим автором.

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

Требования к техническим средствам

Программа должна работать на IBM PC- совместимых компьютерах с процессором 80386 и выше, объёмом оперативной памяти 1 Мбайт и выше, цветным монитором EGA/VGA, наличием жёсткого диска и дисковода для гибких магнитных дисков 3,5, наличие CD-ROM для лазерных дисков. Принтер необходим в тех случаях, когда предусмотрен вывод результатов на печать.

Требования к информационной и программной совместимости

Программа должна работать под управлением операционной системы MS DOS версии 3.2 и выше или Windows 3.11 и выше.

Текст программы может быть просмотрен с помощью текстовых редакторов, совместимых с редактором Edit.

Требования к маркировке и упаковке

Программа должна поставляться на диске в виде исполняемого (exe) файла. На диске должна быть наклейка с надписью, соответствующей названию работы. Дискета (диск) должна быть упакована в пластиковую коробку.

Требования к транспортировке и хранению

Программа должна поставляться на CD-RW диске (700 Мбайт). Диск должен быть упакован и храниться вдали от электромагнитных полей и не подвергаться механической деформации. Место и условия хранения должны соответствовать санитарным нормам требованиям отрасли. Срок хранения данной программы 10 лет.

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

Требования к программной документации

Должны быть разработаны следующие программные документы:

- Текст программы (ГОСТ 19.401-78)

- Описание программы (ГОСТ 19.402-78)

- Руководство оператора (ГОСТ 19.505-79)

- Программа и методика испытаний (ГОСТ 19.301-79)

- Описание языка (ГОСТ 19.507-79)

Стадии разработки

Разработка программы должна вестись по следующему графику:

Технический проектсрок сдачи.

Рабочий проектсрок сдачи.

Виды испытаний

Приемо-сдаточные испытания проводятся преподавателем.

Описание схем

Описание схемы основного модуля

Основной модуль представляет собой меню выбора сценария.

Сценарий 1. Загрузка данных из файлов

Сценарий 2. Ввод данных с клавиатуры

Сценарий 3. Ввод из файла или клавиатуры(с возможностью записи данных в файл)

Сценарий 4.Ввод из файла(возможность редактирования), или с клавиатуры.

Текст программы

Текст программы в соответствии с ГОСТ 19.101-77 (СТ СЭВ 1626-79) и ГОСТ 19.401-79 (СТ СЭВ 3746-82) представляет собой запись программы на исходном языке программирования с необходимыми комментариями. Текст программы представляет собой документ, выполненный машинным способом, и приведен в приложении 1.

Описание программы

Общие сведения

Программа предназначена для умножения матриц. Программа написана на языке С++ .

Функциональное назначение

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

Используемые технические и программные средства

Программа может работать на Windows XP и выше. Наличие принтера необходимо, если пользователь желает выводить на него ответ.

Вызов и загрузка

Программа может храниться на компакт диске. Исполняемым файлом программы является файл Multiply.exe.

Входные и выходные данные

Входными данными программы являются матрицы целых чисел, задаваемых вручную, или загружаемых из файла.

Выходными данными является матрица, полученная путем умножения исходных матриц. Выходные данные выводятся и на экран и в файл.

Руководство оператора

Назначение программы

Программа предназначена для умножения матриц с помощью правила перемножения матриц.

Условия выполнения

Программа работает на IBM PC совместимых компьютерах с процессором 80386 и выше, объёмом оперативной памяти 1 Мбайт и выше, CD-ROM для дисков под управлением операционной системы DOS 3.2 и выше или Windows 3.11 и выше.

Выполнения программы и сообщения оператору

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

Программа и методика испытаний

Объект испытаний

Объектом испытаний является программа, предназначенная для выполнения операции умножения матриц

Цель испытаний

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

Требования к программе

В процессе испытаний подлежат проверке следующие требования к программе:

Требования к функциональным характеристикам

Программа должна:

1) Вычислять произведение матриц

2)предоставлять пользователю удобный графический интерфейс;

3)выводить результат по желанию пользователя на экран или в файл.

Требования к информационной и программной совместимости

Текстовый файл с результатами работы программы должен иметь формат, позволяющий просматривать его с помощью текстовых редакторов типа блокнот.

Требования к маркировке и упаковке

Программа должна поставляться на компакт диске.

Средства и порядок испытаний

Для проведения испытаний необходимы следующие технические средства:

-Windows XP или 7

Для проведения испытаний необходимы следующие программные средства:

-Windows XP

-Текстовый редактор блокнот

Испытания проводятся в следующем порядке

1) проверяется наличие и комплектность программной документации

2) проверяется соответствие требованиям к маркировке и упаковке

3) проверяется соответствие требованиям к функциональным характеристикам

-способность программы обеспечивать ввод исходных данных

-способность выводить результаты по желанию пользователя на экран, принтер или в файл.

4)проверяется соответствие требованиям к информационной и программной совместимости

Методы испытаний

Для проверки способности обеспечивать ввод исходных данных

необходимо:

-запустить программу;

-запустить первый и второй сценарии работы

Для проверки способности программы правильно находить матрицу.

- открыть программу;

-запустить любой из сценариев

-ввести исходные данные

- вывести результат на экран, в файл;

-проверить результат перемножения с помощью калькулятора

Для проверки способности выводить результат на экран или в файл необходимо:

-запустить программу;

-запустить любой из 4 модулей

-выбрать вывод результата на экран или файл

Протокол испытаний

Результаты испытаний программы представлены в таблице 1.

Результаты испытаний программы

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

Таблица 1

Проверяемые требования

Сообщения программы и вводимые значения

Результаты

Способность программы обеспечивать ввод исходных данных

Вводились исходные данные - имена файлов. Программа их приняла и вывела введенные таблицы.

Успешное создание таблиц из файла

Способность программы обеспечивать вывод данных.

После ввода исходных данных программа вывела результат, который по требованию записался в текстовый файл

Успешная запись в файл

Способность программы правильно рассчитывать данные

В приложении представлена проверка правильности расчета результатов

Правильные результаты

Заключение

Разработанная в ходе выполнения курсового проекта программа удовлетворяет всем требованиям задания, что подтверждается протоколом испытаний.

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

Список литературы

1. Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. - 4-е издание. - М: Наука, 1978. - С. 392-394.

2. ГОСТ 19.105-78 Общие требования к программным документам.

3. ГОСТ 19.106-78 Требования к программным документам, выполненным печатным способом.

4. ГОСТ 19.201-78 Техническое задание. Требования к содержанию и оформлению.

5. ГОСТ 19.301-78 Программа и методика испытаний. Требования к содержанию и оформлению.

6. ГОСТ 19.401-78 Текст программы. Требования к содержанию и оформлению.

7. ГОСТ 19.402-78 Описание программы. Требования к содержанию и оформлению.

8. ГОСТ 19.505-79 Руководство оператора. Требования к содержанию и оформлению.

9. ГОСТ 19.701-90 Схемы алгоритмов программ, данных и систем. Условные обозначения и правила выполнения.

Приложение 1

Структура класса Matrix

#include "iostream"

using namespace std;

class Matrix

{

public:

//два конструктора

Matrix();//создание пустой матрицы, без каких-либо параметров

Matrix(int newsizeL,int newsizeC,int newmine,int newmaxe);//создание матрицы с параметрами

//деструктор

virtual ~Matrix();//удаление матрицы

//ввод/вывод данных

bool generateMatrix();//генерирование матрицы

bool manualInput();//ввод матрицы вручную

bool LoadFromFile(char[255]);//загрузка матрицы из файла

bool SaveToFile(char[255]);//запись в файл

bool PrintOnDisplay();//вывод на экран

bool Modify(int line,int col,int newcapt);//изменить элемент матрицы

//перемножение

bool CheckMultiply(Matrix *MultMatrix);//проверить возможность умножения матриц

bool Multiply(Matrix *MultMatrix);//произвести умножение этой матрицы (A) на другую матрицу(B) - A*B

private:

int sizelines;//число строк

int sizecolumns;//число столбцов

int **elements;//содержимое матрицы

int mine;//минимально допустимый по значению элемент матрицы

int maxe;//максимально допустимый по значению элемент матрицы

int i,j,k;//счетчики(для совместимости с VS2006)

};

Основной код программы

// Multiply.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "Matrix.h"

void ChooseOutput(Matrix *RES)

{

int OutN=-1;

//bool Correct=true;

char *filename=new char[255];

while(OutN<1||OutN>3)

{

printf("print result on:\n");

printf("1. Display\n");

printf("2. File\n");

printf("3. Printer\n");

cin>>OutN;

switch(OutN)

{

case 1:

RES->PrintOnDisplay();

break;

case 2:

printf("input filename:\n");

cin>>filename;

RES->SaveToFile(filename);

break;

case 3:

break;

}

}

system("pause");

}

Matrix *LoadFromFile(bool needMenuFile,int MaxSize,int Mine,int Maxe)

{

printf("input filename:\n");

char *filename=new char[255];

cin>>filename;

Matrix *A=new Matrix();

A->LoadFromFile(filename);//добавить проверку на открытие файла

if(needMenuFile)

{

int ChL=-1;

int Cl,Cc,Nc;

while(ChL!=2)

{

printf("Correction\n");

printf("1.correction matrix\n");

printf("2.save to file and continue\n");

cin>>ChL;

switch(ChL)

{

case 1:

printf("line of correction:\n");

cin>>Cl;

printf("column of correction:\n");

cin>>Cc;

printf("new value\n");

cin>>Nc;

A->Modify(Cl,Cc,Nc);

break;

case 2:

printf("input new filename:\n");

memcpy(filename,0,255);

cin>>filename;

A->SaveToFile(filename);

break;

}

}

}

return A;

}

Matrix *LoadFromKeyboard(bool NeedMenuKeyboard,int MaxSize,int Mine,int Maxe)

{

Matrix *A=new Matrix();

A->manualInput();

if(NeedMenuKeyboard)

{

char *filename=new char[255];

int ChK=-1;

printf("Correction\n");

printf("1. Save matrix to file\n");

printf("other. continue\n");

switch(ChK)

{

case 1:

printf("input new filename:\n");

memcpy(filename,0,255);

cin>>filename;

A->SaveToFile(filename);

break;

default:

break;

}

}

return A;

}

Matrix *ChooseInput(bool NeedMenuKeyboard,bool needMenuFile,int MaxSize,int Mine,int Maxe)

{

Matrix *InM;

int ChM=-1;

while(ChM!=1 &&ChM!=2)

{

printf("Input method:\n");

printf("1.Keyboard\n");

printf("2.File\n");

cin>>ChM;

}

switch(ChM)

{

case 1:

InM=LoadFromKeyboard(NeedMenuKeyboard,MaxSize,Mine,Maxe);

break;

case 2:

InM=LoadFromFile(needMenuFile,MaxSize,Mine,Maxe);

вreak;

}

return InM;

}

void scenario1()

{

Matrix *A=new Matrix();

A=LoadFromFile(0,100,-9999,9999);

A->PrintOnDisplay();

Matrix *B=new Matrix();

B=LoadFromFile(0,100,-9999,9999);

B->PrintOnDisplay();

Matrix *MM=A->Multiply(B);

ChooseOutput(MM);

}

void scenario2()

{

Matrix *A=new Matrix();

A->manualInput();

Matrix *B=new Matrix();

B->manualInput();

Matrix *MM=A->Multiply(B);

ChooseOutput(MM);

}

void scenario3()

{

ChooseInput(true,false,1000,-999999,999999);

}

void scenario4()

{

ChooseInput(false,true,1000,-999999,999999);

}

int main(int argc, char* argv[])

{

int ScN=-1;//номер задачи

while(ScN!=0)

{

system("cls");

printf("input task\n");

printf("1. m,n<=100 Mij>=-100 Mij<=100 load from files\n");

printf("2. m,n<=10 Mij>=0 Mij<=1000 keyboard\n");

printf("3. m,n<=20 keyboard|file\n");

printf("4. m,n<=20 keyboard|file|modify\n");

printf("0. Exit\n");

cin>>ScN;

switch(ScN)

{

case 1:

scenario1();

break;

case 2:

scenario2();

break;

case 3:

scenario3();

break;

case 4:

scenario4();

break;

case 5:

exit(SUCCESS);

break;

}

}

return 0;

}

Приложение 2

Пример 1.Решение системы

Проверка:

Результаты сошлись

Размещено на Allbest.ru


Подобные документы

  • Функциональное назначение и область применения программы "Локальный сетевой чат"; логическая структура, технические и программные средства. Требования к программе; характеристика, вызов и загрузка, входные и выходные данные, настройка, интерфейс.

    дипломная работа [1,3 M], добавлен 18.10.2013

  • Разработка информационно-поисковой системы "Музыкальный магазин". Характеристика языка Delphi 7. Функциональное назначение, область применения, используемые технические средства. Описание логической структуры. Вызов, загрузка, входные и выходные данные.

    курсовая работа [6,4 M], добавлен 07.04.2014

  • Описание и функциональное назначение программы по оптимизации функции, ее логическая структура и используемые технические средства. Практическое применение программы, вызов и загрузка, входные и выходные данные, выполнение контрольного примера и листинг.

    курсовая работа [337,4 K], добавлен 26.02.2012

  • Требования к функциональным характеристикам, составу и параметрам технических средств, информационной и программной совместимости. Описание программы: общие сведения, логическая структура. Средства и порядок испытаний. Входные и выходные данные.

    курсовая работа [6,3 M], добавлен 12.01.2015

  • Обзор средств программирования. Описание и свойства языка Delphi. Основания для разработки, ее назначение, предъявляемые требования, стадии разработки. Описание схемы основного модуля, процедур, программы. Используемые технические и программные средства.

    курсовая работа [42,8 K], добавлен 25.02.2012

  • Технико-математическое описание задачи. Требования к программе учета книг и читателей библиотеки. Описание языка программирования. Алгоритмы обработки информации. Текст программы. Инструкция на выполнение: вызов и загрузка, входные и выходные данные.

    дипломная работа [1,2 M], добавлен 29.06.2012

  • Основания для разработки программы: назначение и сферы практического использования, главные предъявляемые требования. Характеристика логической структуры и используемые технические средства. Программа и методика испытаний. Эксплуатационные документы.

    курсовая работа [2,4 M], добавлен 16.12.2013

  • Требования к программе, составу и параметрам технических средств. Основные элементы языка программирования. Инструкция на выполнение программы учета клиентов: вызов и загрузка, входные и выходные данные. Расчет себестоимости программного продукта.

    дипломная работа [3,9 M], добавлен 29.06.2012

  • Общие сведения о программном средстве по моделированию работы электродвигателя, его функциональное назначение. Описание логической структуры программного обеспечения. Вызов программы modelDPR52, ее загрузка, входные и выходные данные. Листинг программы.

    курсовая работа [420,0 K], добавлен 28.05.2012

  • Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.

    курсовая работа [2,2 M], добавлен 15.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.