Смекни!
smekni.com

Разработка программы для решения систем линейных уравнений (стр. 2 из 4)

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);