Автор работы: Пользователь скрыл имя, 13 Сентября 2011 в 12:12, курсовая работа
Разработать программу для решения системы линейных уравнений порядка N методом Гаусса с выбором главного элемента по столбцу и по строке. Исходные данные: порядок системы линейных уравнений N, матрица коэффициентов, вектор правых частей. Разработать тестовый пример для N=10 и определить погрешность расчета.
1. АНАЛИЗ И ПОСТАНОВКА ЗАДАЧИ 4
1.1 Постановка задачи 4
1.2 Анализ задания 4
1.3. Техническое задание 5
1.3.1. Спецификация данных 5
1.3.2. Функциональные спецификации 5
1.3.3. Спецификация оборудования 6
2. ПРОЕКТИРОВАНИЕ 7
2.1. Модель использования 7
2.2. Структурная модель 8
2.3. Алгоритмы программы 9
3. РАБОЧИЙ ПРОЕКТ. 15
3.1. Описание исходного кода программы. 15
3.2. Описание интерфейса программы 15
4. ТЕСТИРОВАНИЕ 18
ЗАКЛЮЧЕНИЕ 23
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 24
ПРИЛОЖЕНИЕ А 25
ПРИЛОЖЕНИЕ Б 38
Рисунок
4 – Блок-схема метода OnBnClickedButton2
3. РАБОЧИЙ ПРОЕКТ.
3.1. Описание исходного кода программы.
Исходный код программы представляет собой совокупность всех структур данных и классов. Рассмотрим каждый класс подробнее. Вся бизнес логика заключается в файле filereadDlg.cpp.
Методы класса CfilereadDlgDlg:
- ReadFile() – не возвращает значений, сохраняет путь к файлу с исходной матрицей.
- OnBnClickedOk() - не возвращает значений, обрабатывает нажатие кнопки «Открыть».
- OnBnClickedButton1() – не возвращает значений, открывает диалоговое окно со справкой о программе.
- OnBnClickedButton2() – не возвращает значений, считывает данные из файла, производит необходимые вычисления и выводит результат решения.
- OnExit() – не возвращает значений, закрывает приложение.
3.2. Описание интерфейса программы
Абстрактный диалог.
Интерфейс программы представлен диалоговым окном, с расположенными на нем элементами управления. Диалог начинается когда пользователь нажимает кнопку “Открыть”. В ответ на это программа открывает диалоговое окно, в котором можно указать путь к файлу с исходными данными. После выбора файла и нажатия кнопки “Открыть”, диалоговое окно для выбора файла закрывается. Далее для выполнения решения СЛАУ методом Гауса необходимо нажать кнопку “Решить”. После нажатия данной кнопки выводится последовательность преобразований матрицы, необходимая для нахождения решения и решение системы. При нажатии на кнопку “О программе” открывается диалоговое окно с информацией о программе и ее разработчике.
Так же пользователь может закрыть приложение, нажав кнопку выход “Выход”.
1) Ввод размерности и коэффициентов уравнения системы
Рисунок 5 - Диаграмма состояния “Ввод размерности и коэффициентов уравнения системы ”
Рисунок
6 – Диаграмма состояния “ Выход”
3) Решить СЛАУ методом Гаусса
Рисунок 7 – Диаграмма состояния “Решить СЛАУ методом Гаусса”
Окно программы показано на рисунке 8.
Рисунок 8 - Диалоговое окно программы "Решение СЛАУ методом Гаусса"
4. ТЕСТИРОВАНИЕ
Проведем тестирование программы на выявление возможных ошибок в результате работы и различных действий пользователя.
При первом запуске программы создается окно программы, показанное на рисунке 9.
Рисунок 9 - Окно программы " Решение СЛАУ методом Гаусса " при первом запуске
После нажатия кнопки “Открыть” откроется диалоговое окно, изображенное на рисунке 10.
Рисунок 10 – Диалоговое окно для выбора пути к файлу.
После
выбора пути к файлу диалоговое окно
программы будет выглядеть
Рисунок
11 – Окно программы "Решение СЛАУ методом
Гаусса".
Произведем тестирование нашей программы для следующих данных.
Для этого выберем путь к файлу со следующим содержимым:
Рисунок 12 – Тестовый пример для программы
Выбрав путь к указанному файлу, нажмем кнопку решить.
Рисунок 13 – Окно программы "Решение СЛАУ методом Гаусса" с тестовым примером.
Рисунок 14 – Решение СЛАУ для тестового примера.
Данное решение верно.
Про нажатии кнопки “О программе” открывается диалоговое окно, изображенное на рисунке 15.
Рисунок 15 – Диалоговое окно “О программе”.
В ходе
тестирования никаких ошибок программы
обнаружено не было, а следовательно
программа в отладке не нуждается.
ЗАКЛЮЧЕНИЕ
В результате выполнения курсового проекта была разработана программа «Решение СЛАУ методом Гаусса». Программа написана на языке Visual C++. При реализации интерфейса была использована стандартная библиотека MFC среды программирования Microsoft Visual Studio 6.
В
пояснительной записке
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
ПРИЛОЖЕНИЕ А
Исходный код программы на языке Visual C++:
Файл filereadDlg.cpp
// filereadDlg.cpp : implementation file
//
#include "stdafx.h"
#include "fileread.h"
#include "math.h"
#include "filereadDlg.h"
#include
".\filereaddlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
//
CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange*
pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void
CAboutDlg::DoDataExchange(
{
CDialog::
}
BEGIN_MESSAGE_MAP(
END_MESSAGE_MAP()
//
CfilereadDlg dialog
CfilereadDlg::
: CDialog(CfilereadDlg::IDD, pParent)
, m_FileTitle(_T(""))
, m_FilePath(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_
}
void
CfilereadDlg::DoDataExchange(
{
CDialog::
DDX_Control(pDX, IDC_LIST1, listbox);
}
BEGIN_MESSAGE_MAP(
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_
//}}AFX_MSG_MAP
ON_BN_CLICKED(
ON_BN_CLICKED(IDC_
ON_BN_CLICKED(IDC_
END_MESSAGE_MAP()
//
CfilereadDlg message handlers
BOOL CfilereadDlg::OnInitDialog()
{
CDialog::
// Add "About..." menu item
to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_
ASSERT(IDM_
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu
if (!strAboutMenu.IsEmpty())
{
pSysMe
pSysMe
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small
icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void
CfilereadDlg::OnSysCommand(
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.
}
else
{
CDialog::
Информация о работе Разработка программы- "Решение СЛАУ методом Гаусса"