Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska.doc
Скачиваний:
3
Добавлен:
18.11.2019
Размер:
179.2 Кб
Скачать

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

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

необходимо:

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

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

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

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

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

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

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

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

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

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

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

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

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

Результаты испытаний программы представлены в таблице 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.Решение системы

Проверка:

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

18

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]