Функциональное назначение
Программа предназначена для нахождения матрицы, являющейся результатом умножения заданных матриц
2.4.3. Используемые технические и программные средства
Программа может работать на Windows XP и выше. Наличие принтера необходимо, если пользователь желает выводить на него ответ.
2.4.4. Вызов и загрузка
Программа может храниться на компакт диске. Исполняемым файлом программы является файл Multiply.exe.
2.4.5. Входные и выходные данные
Входными данными программы являются матрицы целых чисел, задаваемых вручную, или загружаемых из файла.
Выходными данными является матрица, полученная путем умножения исходных матриц. Выходные данные выводятся и на экран и в файл.
Руководство оператора
Назначение программы
Программа предназначена для умножения матриц с помощью правила перемножения матриц.
Условия выполнения
Программа работает на IBM PC совместимых компьютерах с процессором 80386 и выше, объёмом оперативной памяти 1 Мбайт и выше, CD-ROM для дисков под управлением операционной системы DOS 3.2 и выше или Windows 3.11 и выше.
Выполнения программы и сообщения оператору
Для начала работы с программой – запустите ее. Далее программа запрашивает у пользователя один из сценариев, соответствующих исходному заданию. Дальше необходимо ввести данные – саму матрицу или имена файлов, в которых расположены матрицы. После этого оператор выбирает метод вывода информации.
Программа и методика испытаний
Объект испытаний
Объектом испытаний является программа, предназначенная для выполнения операции умножения матриц
Цель испытаний
Целью испытаний является проверка соответствия программы требованиям технического задания.
Требования к программе
В процессе испытаний подлежат проверке следующие требования к программе:
Требования к функциональным характеристикам
Программа должна:
1) Вычислять произведение матриц
2)предоставлять пользователю удобный графический интерфейс;
3)выводить результат по желанию пользователя на экран или в файл.
Требования к информационной и программной совместимости
Текстовый файл с результатами работы программы должен иметь формат, позволяющий просматривать его с помощью текстовых редакторов типа блокнот.
Требования к маркировке и упаковке
Программа должна поставляться на компакт диске.
Средства и порядок испытаний
Для проведения испытаний необходимы следующие технические средства:
-Windows XP или 7
Для проведения испытаний необходимы следующие программные средства:
-Windows XP
-Текстовый редактор блокнот
Испытания проводятся в следующем порядке
1) проверяется наличие и комплектность программной документации
2) проверяется соответствие требованиям к маркировке и упаковке
3) проверяется соответствие требованиям к функциональным характеристикам
-способность программы обеспечивать ввод исходных данных
-способность выводить результаты по желанию пользователя на экран, принтер или в файл.
4)проверяется соответствие требованиям к информационной и программной совместимости
Методы испытаний
Для проверки способности обеспечивать ввод исходных данных
необходимо:
-запустить программу;
-запустить первый и второй сценарии работы
Для проверки способности программы правильно находить матрицу.
- открыть программу;
-запустить любой из сценариев
-ввести исходные данные
- вывести результат на экран, в файл;
-проверить результат перемножения с помощью калькулятора
2.6.6.3. Для проверки способности выводить результат на экран или в файл необходимо:
-запустить программу;
-запустить любой из 4 модулей
-выбрать вывод результата на экран или файл
Протокол испытаний
Результаты испытаний программы представлены в таблице 1.
Результаты испытаний программы
Таблица 1
Проверяемые требования
| Сообщения программы и вводимые значения
| Результаты
| Способность программы обеспечивать ввод исходных данных
| Вводились исходные данные – имена файлов. Программа их приняла и вывела введенные таблицы.
| Успешное создание таблиц из файла
| Способность программы обеспечивать вывод данных.
| После ввода исходных данных программа вывела результат, который по требованию записался в текстовый файл
| Успешная запись в файл
| Способность программы правильно рассчитывать данные
| В приложении представлена проверка правильности расчета результатов
| Правильные результаты
|
Заключение
Разработанная в ходе выполнения курсового проекта программа удовлетворяет всем требованиям задания, что подтверждается протоколом испытаний.
Разработанная программа позволяет вычислять значение матрицы, полученной путем перемножения исходных матриц, что позволяет упрощать расчеты в некоторых областях науки и производства.
СПИСОК ЛИТЕРАТУРЫ
1. Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. — 4-е издание. — М: Наука, 1978. — С. 392—394..
2. Стандарты Единой Системы Программной Документации:
ГОСТ 19.105-78 Общие требования к программным документам
ГОСТ 19.106-78 Требования к программным документам, выполненным печатным способом
ГОСТ 19.201-78 Техническое задание. Требования к содержанию и оформлению
ГОСТ 19.301-78 Программа и методика испытаний. Требования к содержанию и оформлению
ГОСТ 19.401-78 Текст программы. Требования к содержанию и оформлению
ГОСТ 19.402-78 Описание программы. Требования к содержанию и оформлению
ГОСТ 19.505-79 Руководство оператора. Требования к содержанию и оформлению
ГОСТ 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);
break;
}
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.Решение системы
Проверка:
Результаты сошлись
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|