Разработка программы- "Решение СЛАУ методом Гаусса"

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

Пояснительная записка.doc

— 776.00 Кб (Скачать документ)

 

Рисунок 4 – Блок-схема метода OnBnClickedButton2 

3. РАБОЧИЙ  ПРОЕКТ.

    3.1. Описание исходного кода программы.

    Исходный  код программы представляет собой  совокупность всех структур данных и классов. Рассмотрим каждый класс подробнее. Вся бизнес логика заключается в файле filereadDlg.cpp.

      Методы класса CfilereadDlgDlg:

      - ReadFile() – не возвращает значений, сохраняет путь к файлу с исходной матрицей.

      - OnBnClickedOk() - не возвращает значений, обрабатывает нажатие кнопки «Открыть».

      - OnBnClickedButton1() – не возвращает значений, открывает диалоговое окно со справкой о программе.

      - OnBnClickedButton2() – не возвращает значений, считывает данные из файла, производит необходимые вычисления и выводит результат решения.

      -  OnExit() – не возвращает значений, закрывает приложение.

    3.2. Описание интерфейса программы

    Абстрактный диалог.

    Интерфейс программы представлен диалоговым окном, с расположенными на нем элементами управления. Диалог начинается когда пользователь нажимает кнопку “Открыть”. В ответ на это программа открывает диалоговое окно, в котором можно указать путь к файлу с исходными данными. После выбора файла и нажатия кнопки “Открыть”, диалоговое окно для выбора файла закрывается. Далее для выполнения решения СЛАУ методом Гауса необходимо нажать кнопку “Решить”. После нажатия данной кнопки выводится последовательность преобразований матрицы, необходимая для нахождения решения и решение системы. При нажатии на кнопку “О программе” открывается диалоговое окно с информацией о программе и ее разработчике.

    Так же пользователь может закрыть приложение, нажав кнопку выход “Выход”.

    1) Ввод размерности и коэффициентов уравнения системы

    

Рисунок 5 - Диаграмма состояния “Ввод размерности и коэффициентов уравнения системы ”

    1. Выход

    Рисунок 6 – Диаграмма состояния “ Выход” 

    3) Решить СЛАУ методом Гаусса

    Рисунок 7 – Диаграмма состояния “Решить СЛАУ методом Гаусса”

    Окно  программы показано на рисунке 8.

    

    Рисунок 8 - Диалоговое окно программы "Решение СЛАУ методом Гаусса"

      4. ТЕСТИРОВАНИЕ

        Проведем тестирование программы на выявление возможных ошибок в результате работы и различных действий пользователя.

      При первом запуске программы создается  окно программы, показанное на рисунке  9.

      

    Рисунок 9 - Окно программы " Решение СЛАУ методом Гаусса " при первом запуске

      После нажатия кнопки “Открыть” откроется диалоговое окно, изображенное на рисунке 10.

      

      Рисунок 10 – Диалоговое окно для выбора пути к файлу.

      После выбора пути к файлу диалоговое окно программы будет выглядеть следующим  образом:

      

      Рисунок 11 – Окно программы "Решение СЛАУ методом Гаусса". 

      Произведем  тестирование нашей программы для  следующих данных.

      

      Для этого выберем путь к файлу  со следующим содержимым:

      

      Рисунок 12 – Тестовый пример для программы

      Выбрав  путь к указанному файлу, нажмем кнопку решить.

      

 

      Рисунок 13 – Окно программы "Решение СЛАУ методом Гаусса" с тестовым примером.

      

      Рисунок 14 – Решение СЛАУ для тестового примера.

      Данное  решение верно.

      Про нажатии кнопки “О программе” открывается диалоговое окно, изображенное на рисунке 15.

      

      Рисунок 15 – Диалоговое окно “О программе”.

В ходе тестирования никаких ошибок программы  обнаружено не было, а следовательно программа в отладке не нуждается. 
 
 
 
 

      ЗАКЛЮЧЕНИЕ

     В результате выполнения курсового проекта была разработана программа «Решение СЛАУ методом Гаусса». Программа написана на языке Visual C++. При реализации интерфейса была использована стандартная библиотека  MFC среды программирования Microsoft Visual Studio 6.

     В пояснительной записке содержатся все этапы разработки проекта, схемы алгоритмов, интерфейс рабочего приложения, исходный код программы и ее тестирование. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Семенихин, И.Н. Технология программирования: учебно-методическое пособие / И.Н.Семенихин. – Шахты: Изд-во ЮРГУЭС, 2007. – 55с.: ил.
  2. Иванова, Г.С. Технология программирования: учебник для вузов / Г.С. Иванова. – М.: Изд-во МГТУ им Н.Э.Баумана, 2002. – 320с.
  3. СТП 01-01 Стандарт предприятия: Курсовые и дипломные проекты (работы). Основные требования к объему и оформлению. – Взамен СТП 01-97. – Дата введ. 2001. – 01. – 07. – Шахты: ЮРГУЭС, 2001. – 35 с.
  4. Олафсен, Ю., Скрайбнер, К., Уайт, К.Д. Visual C++ и MFC. Энциклопедия пользователя.
  5. Черносвитов, А. Visual C++ 7: учебный курс. – СПб.: Питер, 2001. – 528 с.: ил.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      ПРИЛОЖЕНИЕ А

      Исходный код программы на языке 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_MAP()

      }; 

      CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

      {

      } 

      void CAboutDlg::DoDataExchange(CDataExchange* pDX)

      {

            CDialog::DoDataExchange(pDX);

      } 

      BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

      END_MESSAGE_MAP() 
 

      // CfilereadDlg dialog 
 
 

      CfilereadDlg::CfilereadDlg(CWnd* pParent /*=NULL*/)

            : CDialog(CfilereadDlg::IDD, pParent)

            , m_FileTitle(_T(""))

            , m_FilePath(_T(""))

      {

            m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

      } 

      void CfilereadDlg::DoDataExchange(CDataExchange* pDX)

      {

            CDialog::DoDataExchange(pDX);

            DDX_Control(pDX, IDC_LIST1, listbox);

      } 

      BEGIN_MESSAGE_MAP(CfilereadDlg, CDialog)

            ON_WM_SYSCOMMAND()

            ON_WM_PAINT()

            ON_WM_QUERYDRAGICON()

            //}}AFX_MSG_MAP

            ON_BN_CLICKED(IDOK, OnBnClickedOk)

            ON_BN_CLICKED(IDC_BUTTON1, CfilereadDlg::OnBnClickedButton1)

            ON_BN_CLICKED(IDC_BUTTON2, CfilereadDlg::OnBnClickedButton2)

      END_MESSAGE_MAP() 
 

      // CfilereadDlg message handlers 

      BOOL CfilereadDlg::OnInitDialog()

      {

            CDialog::OnInitDialog(); 

            // Add "About..." menu item to system menu. 

            // IDM_ABOUTBOX must be in the system command range.

            ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

            ASSERT(IDM_ABOUTBOX < 0xF000); 

            CMenu* pSysMenu = GetSystemMenu(FALSE);

            if (pSysMenu != NULL)

            {

                  CString strAboutMenu;

                  strAboutMenu.LoadString(IDS_ABOUTBOX);

                  if (!strAboutMenu.IsEmpty())

                  {

                        pSysMenu->AppendMenu(MF_SEPARATOR);

                        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

                  }

            } 

            // 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(UINT nID, LPARAM lParam)

      {

            if ((nID & 0xFFF0) == IDM_ABOUTBOX)

            {

                  CAboutDlg dlgAbout;

                  dlgAbout.DoModal();

            }

            else

            {

                  CDialog::OnSysCommand(nID, lParam);

Информация о работе Разработка программы- "Решение СЛАУ методом Гаусса"