2 Состав и структура программного модуля
Программный код представлен в модуле Zeidel.cpp, состав которого представлен в таблице А.1.
Таблица А.1 – Состав программного модуля Zeidel.cpp
Функция Назначение
main Основная функция программы
input Ввод исходных данных
float_input Ввод действительных чисел
n_input Ввод натуральных чисел
decision Решение СЛАУ
output Вывод результата работы программы
menu Функция рисования пунктов меню
help Вывод на экран информации о программе и разработ-чике
cursor Навигация курсора
Данный программный продукт имеет структуру, представленную на рисунке А.1.
Рисунок А.1 – Структура программного модуля
3 Описание логической структуры
Функция main – основная функция программы, реализующая меню для выбора требуемой операции. Тело функции представляет собой цикл, в котором производится вывод строк меню, ожидание ввода символа с клавиатуры и последующий анализ введенного символа.
Навигация в меню осуществляется клавишами курсора. И в соответствии с выбранным пунктом открывается диалоговое окно.
Функция menu играет связующее звено в интерфейсе программы – вы-водит на экран меню программы.
Ввод данных производится функцией input, а проверка корректности вводимой информации функциями float_input, которая позволяет вводить действительные числа, и n_input, позволяющая вводить натуральные числа, а также ограничивает ввод цифр в числе и препятствует вводу иных символов.
Решение введенной СЛАУ реализовано в функции decision. При этом пользователю предлагается выбор метода решения СЛАУ (метод Зейделя или
метод простых итераций).
Вывод результатов производится функцией output на экран.
В случае выбора опций «Decision» и «Output» без выполнения опции «Input» и опции «Output» без «Decision» программа выдаст предупредительное сообщение с напоминанием выполнения требуемых действий.
3 Входные данные
Входные данные представлены в таблице A.2.
Таблица А.2 – Входные данные
Переменная Диапазон Назначение
int n 1…10 Размерность матриц
double **А -99.99…99.999 Матрица коэффициентов
double *В Вектор свободных членов
4 Выходные данные
Выходные данные представлены в таблице A.3.
Таблица А.3 – Входные данные
Переменная Диапазон Назначение
double *X -3.4Е-38…3.4Е+38 Вектор решений СЛАУ
5 Схемы алгоритмов программы
Схема алгоритма функции decision представлена на рисунке A.2.
Рисунок А.2 – Схема алгоритма функции
void decision(double **&A, double *&B, double *&X, int &n, int &s)
Приложение Б
(обязательное)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАВТ
РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
РУКОВОДСТВО ОПЕРАТОРА
Лист утверждения
ТПЖА.12203-01 34 01-ЛУ
Листов 2
Разработал студент гр. СК-02 ____________ / А. И. Иванов /
Руководитель преподаватель
ФАВТ ____________ / К. И. Петров/
Киров 2002
Приложение Б
(обязательное)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАВТ
Лист утверждения
ТПЖА.12203-01 34 01-ЛУ
РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
РУКОВОДСТВО ОПЕРАТОРА
ТПЖА.12203-01 34 01
Листов 7
Киров 2002
Аннотация
В приложении «Руководство оператора» указаны подробные инструкции по работе с программой. В этом приложении указаны условия, необходимые для запуска программы, а также с чего следует начинать работу. Также приложение содержит подробное описание пользовательского интерфейса программы.
Содержание
1 Условия выполнения программы 20
2 Запуск 20
3 Обработка критических ситуаций 20
4 Работа с программой 21
4.1 Ввод исходных данных 21
4.2 Решение СЛАУ 21
4.3 Вывод результата работы 21
1 Условия выполнения программы
Файл Zeidel.exe является главным модулем, и его присутствие гарантирует корректный запуск программы.
2 Запуск
Для начала работы с программой следует запустить файл Zeidel.exe. Экранная форма программы после запуска показана на рисунке Б.1.
Рисунок Б.1 – Экранная форма программы
3 Обработка критических ситуаций
Навигация в программе осуществляется клавишами курсора (зелёная полоска в меню).
Программа снабжена защитой от некорректных действий пользователя, в частности: выбор пунктов «Decision» и «Output» без ввода исходных данных в программу, выбор пункта «Output» не выполнив опцию «Decision». На рисунке Б.2 показан пример работы программы в критической ситуации.
Рисунок Б.2 – Пример работы программы в критической ситуации
4 Работа с программой
4.1 Ввод исходных данных
При выборе пункта меню «Input» экране появится диалоговое окно ввода данных, показанное на рисунке Б.3.
Рисунок Б.3 – Окно ввода исходных данных
4.2 Решение системы
Решение СЛАУ реализовано в опции «Decision» (см. рисунок Б.4).
Рисунок Б.4 – Окно решения СЛАУ
4.3 Вывод результата работы
Вывод полученного вектора решений СЛАУ предусмотрен на экран. Диалоговое окно, вызванное обращением пользователя «Output» представлено на рисунке Б.5.
Рисунок Б.5 – Окно вывода результата на экран
При вводе более 5 уравнений система полностью не помещается в окно вывода результата. В этом случае предусмотрена прокрутка матрицы влево, вправо, вниз и вверх. Диалоговое окно при скроллинге представлено на рисунке Б.6.
Рисунок Б.6 – Окно вывода результата на экран
Приложение В
(обязательное)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАВТ
РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
ТЕКСТ ПРОГРАММЫ
Лист утверждения
ТПЖА.12203-01 12 01-ЛУ
Листов 2
Разработал студент гр. СК-00 ____________ /А. И. Иванов/
Руководитель преподаватель
ФАВТ ____________ / К. И. Петров/
Киров 2002
Приложение В
(обязательное)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет прикладной математики и телекоммуникаций
Кафедра радиоэлектронных средств
Лист утверждения
ТПЖА.12203-01 12 01-ЛУ
РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
ТЕКСТ ПРОГРАММЫ
ТПЖА.12203-01 12 01
Листов 22
Киров 2002
Аннотация
Приложение «Текст программы» содержит полный код программы.
Содержание
1 menu 27
2 cursor 28
3 float_input 31
4 n_input 32
5 about 33
6 task 34
7 help 34
8 input 35
9 decision 37
10 output 39
11 42
/*
Разработать программу для решения систем линейных уравнений.
Реализовать методы а)простых итераций; б) Зейделя.
Предусмотреть ввод числа уравнений(до 10), матрицы коэффициентов
и вектора свободных членов.
Выполнил студент гр. СК-06 Мамаев С.В.
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
//функция отрисовки меню
//------------------------------------------------------------------------------
void menu()
{
window(1,1,80,25);
textbackground(BLACK);
clrscr();
window(1,1,80,1);
textbackground(LIGHTGRAY);
clrscr();
gotoxy(1,1);
textcolor(RED);
cprintf("%s","H");
textcolor(BLACK);
cprintf("%s","elp");
gotoxy(9,1);
textcolor(RED);
cprintf("%s","I");
textcolor(BLACK);
cprintf("%s","nput");
gotoxy(18,1);
textcolor(RED);
cprintf("%s","D");
textcolor(BLACK);
cprintf("%s","ecision");
gotoxy(29,1);
textcolor(RED);
cprintf("%s","O");
textcolor(BLACK);
cprintf("%s","utput");
window(1,25,80,25);
textbackground(LIGHTGRAY);
clrscr();
cprintf("Alt+X - exit");
gotoxy(70,1);
textcolor(BLACK);
}
//------------------------------------------------------------------------------
//курсор
//------------------------------------------------------------------------------
void cursor(int n)
{
if(n==1)
{
window(1,1,5,1);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","H");
textcolor(BLACK);
cprintf("%s","elp");
window(5,1,5,1);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==2)
{
window(9,1,14,1);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","I");
textcolor(BLACK);
cprintf("%s","nput");
window(14,1,14,1);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==3)
{
window(18,1,26,1);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","D");
textcolor(BLACK);
cprintf("%s","ecision");
window(26,1,26,1);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==4)
{
window(29,1,35,1);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","O");
textcolor(BLACK);
cprintf("%s","utput");
window(35,1,35,1);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==6)
{
window(3,3,8,3);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","A");
textcolor(BLACK);
cprintf("%s","bout");
window(8,3,8,3);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==7)
{
window(3,4,7,4);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","T");
textcolor(BLACK);
cprintf("%s","ask");
window(7,4,7,4);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==8)
{
window(10,3,18,3);
textbackground(GREEN);
clrscr();
textcolor(RED);
cprintf("%s","K");
textcolor(BLACK);
cprintf("%s","eyboard");
window(18,3,18,3);
textbackground(LIGHTGRAY);
clrscr();
}
if(n==9)
{
window(10,4,14,4);
textbackground(GREEN);
clrscr();
textcolor(RED);