Создание приложения по перемножение матриц 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