Создание Windows приложения с использованием Win API и библиотек классов MFC

Автор: Пользователь скрыл имя, 11 Марта 2012 в 12:54, курсовая работа

Описание работы

Разработать алгоритм и программу вычисления площади, ограниченной двумя кривыми, заданными вариантом индивидуального задания для интервала, определяемого пользователем в диалоговом режиме. Интерфейс программы разработать с использованием MFC. Предусмотреть проверку ввода данных на корректность и графическое отображение заданных функций. Предусмотреть в программе вызов справки.

Содержание

Техническое задание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.Разработка алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Разработка математического алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Разработка схемы алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Разработка схемы математического алгоритма. . . . . . . . . . . . . . . . . 6
Разработка схемы общего алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . .7
2.Разработка Программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.Вычислительный эксперимент. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

Работа содержит 1 файл

Отчет по курсовой работе мой1.docx

— 178.09 Кб (Скачать)

Министерство образования  и науки РФ

Государственное образовательное  учреждение высшего профессионального  образования

«Ижевский государственный  технический университет»

Кафедра «Мехатронные системы»

 

 

 

 

 

 

 

 

 

Курсовая работа

Дисциплина: Информатика

Тема: «Создание Windows приложения с использованием Win API и библиотек классов MFC»

 

 

 

 

 

 

Выполнила:

студентка группы 3-35-1

Хабибуллина Р. Р.

 

Проверил:

преподаватель

Караваев Ю.Л.

 

Рецензент:

Лекомцев П.В.

 

 

 

 

 

 

Ижевск 2010

 

Содержание

 

Техническое задание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

1.Разработка алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

    1. Разработка математического алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
    2. Разработка схемы алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
      1. Разработка схемы математического алгоритма. . . . . . . . . . . . . . . . . 6
      2. Разработка схемы общего алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . .7

2.Разработка Программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.Вычислительный эксперимент. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

 

Приложение А. Руководство оператора. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Приложение Б. Руководство  программиста. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Техническое задание

        Разработать алгоритм и программу вычисления площади, ограниченной двумя кривыми, заданными вариантом индивидуального задания для интервала, определяемого пользователем в диалоговом режиме. Интерфейс программы разработать с использованием MFC. Предусмотреть проверку ввода данных на корректность и графическое отображение заданных функций. Предусмотреть в программе вызов справки.

 

Программа разрабатывается на языке  «С++»

 

Вариант задания представлен  в таблице 1.

 

Основание системы счисления  входных данных

6

Основание системы счисления  выходных данных

16

Функция 1

y=A*x+B

Функция 2

y=A*x2*cos(B*x+C)

Метод интегрирования

Симпсона


 

Таблица 1 – Вариант задания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

Данный программный продукт  разработан в среде программирования

«Microsoft Visual Studio 2010», на языке программирования «С++». Интерфейс программы разработан с использованием библиотеки классов MFC.

 

MFC (Microsoft Foundation Classes) – это библиотека классов, написанных на языке C++. MFC является оболочкой для Win32 API и содержит многоуровневую иерархию классов. Не все функции Win32 API включены в MFC. Однако эта библиотека классов охватывает большую часть функциональных возможностей Windows, и предоставляет разработчику ряд дополнительных механизмов для проектирования и создания программных продуктов.

На вершине иерархии MFC находится единственный базовый  класс – CObject. Все остальные классы библиотеки MFC можно условно разбить  на две группы: производные и не производные от него.

 

Разработанная программа предназначена для расчёта площади, ограниченной двумя исходными функциями: y=A*x+B и y=A*x2*cos(B*x+C) и границами интегрирования, вводимыми пользователем в диалоговом режиме, соответствующими заданным системам счисления.

 

В программе предусмотрены:

 

- расчёт площади, ограниченной  исходными функциями и границами  интегрирования.

- построение графиков  функций и границ интегрирования.

- ввод и вывод данных  в различных система исчисления.

- вызов справки.

 

 

 

 

 

 

 

 

 

 

1 Разработка алгоритма

 

  Алгоритм данной программы состоит из двух частей:

  1. Математический алгоритм – вычисление площади интеграла 
  2. Общий алгоритм работы программы

 

1.1Разработка  математического алгоритма

 

Метод Симпсона относится  к методам численного интегрирования. Суть метода заключается в приближении  подынтегральной функции на отрезке [a,b] интерполяционным многочленом второй степени P2(x), т.е. приближение графика функции на отрезке параболой. Графическое отражение метода представлено на рисунке 1.

 

 

Рисунок 1 – Графическое отражение  метода — аппроксимация функции f (x) (синий график) квадратичным полиномом P (x) (красный).

 

На отрезке [a, b] формула  Симпсона имеет вид:

где величина шага, а границы отрезков, x0=a; xN=b.

 

 

 

 

1.2 Разработка схемы алгоритма

 

1.2.1 Разработка схемы математического  алгоритма

Схема алгоритма программы, считающей площадь, ограниченную двумя  исходными функциями и границами  интегрирования, представлена на рисунке 2.

 




 

 

 

 


 

 

 

 

 


 

 

 


 


 


 






 




 

 

Рисунок 2 – Схема алгоритма  программы, которая считает площадь, ограниченную двумя исходными функциями  и границами интегрирования



 

 



 


 

 


 

 

 


 

 


 


 


 



 


 


 


 

 




 



 

 

 

Рисунок 2 – Продолжение




 

 



 


 


 

 




 


 



 


 

 


 

 

 

Рисунок 2 – Продолжение

 

 

 

 

 

 

 

 

 

1.2.2 Разработка схемы общего алгоритма

Общий алгоритм программы представлен на рисунке 3.


 




 


 


 

 

 


 

 


 

 


 


 

 


 

 

 


 

 


 


 

 


 


 

 


 

 

 

Рисунок 3 – Схема общего алгоритма  программы




 



 


 


 

 

 


 

 


 

 

 


 

 

 

 

 


 


 

 


 

 

 



 




 

 

 

 

 

                                                                                                                           

Рисунок 3 – Продолжение

2 Разработка Программы

 

Программа была разработана  в среде программирования

«Microsoft Visual Studio 2010», на языке программирования «С++».

Интерфейс программы разработан с использованием библиотеки классов MFC.

 

Содержание файла «KursovoyDlg.h» представлено на рисунке 4.

Содержание файла «KursovoyDlg.cpp»представлено на рисунке 5.

 

// KursovoyDlg.h : header file

//

 

#pragma once

 

//Задание констант pi, x_start, x_end

const double pi = 3.141592653;

const double x_start = (-5)*pi;

const double x_end = 5*pi;

 

// CKursovoyDlg dialog

class CKursovoyDlg : public CDialogEx

{

// Construction

public:

CKursovoyDlg(CWnd* pParent = NULL); // standard constructor

 

// Dialog Data

enum { IDD = IDD_KURSOVOY_DIALOG };

 

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

 

 

// Implementation

protected:

HICON m_hIcon;

 

// Generated message map functions

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

DECLARE_MESSAGE_MAP()

 

protected:

void DrawAxis(CDC *pdc, RECT rect);

void FillRect(CDC *pdc, RECT rect);

void DrawBorder(CDC *pdc, RECT rect);

void DrawGraph(CDC *pdc, RECT rect);

void DrawGraph2(CDC *pdc, RECT rect);

void DrawLim(CDC *pdc, RECT rect);

 

public:

CString STA;

CString STB;

CString STC;

CString STa;

CString STb;

 

Рисунок 4 - Содержание файла «KursovoyDlg.h»

            CString STn;

      CString STS;

      double A;

double B;

double C;

double a;

double b;

double n;

double S;

void Check_error();

void Calculation();

void Graph();

double func1 (double x);

double func2 (double x);

double lea_to_dec(CString lea);

CString dec_to_leac(double A);

afx_msg void OnBnClickedButton3();

afx_msg void OnBnClickedButton2();

afx_msg void OnBnClickedButton1();

};

 

 

     

 

Рисунок 4 – Продолжение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

// KursovoyDlg.cpp : implementation file

//

 

#include "stdafx.h"

#include "Kursovoy.h"

#include "KursovoyDlg.h"

#include "afxdialogex.h"

#include "math.h"

#include "afxwin.h"

 

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

 

 

// CAboutDlg dialog used for App About

 

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

 

// Dialog Data

enum { IDD = IDD_ABOUTBOX };

 

protected:

virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

 

// Implementation

protected:

DECLARE_MESSAGE_MAP()

};

 

CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)

{

}

 

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

 

 

// CKursovoyDlg dialog

 

 

 

 

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

: CDialogEx(CKursovoyDlg::IDD, pParent)

{

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

}

 

void CKursovoyDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT1, STA);

DDX_Text(pDX, IDC_EDIT2, STB);

DDX_Text(pDX, IDC_EDIT3, STC);

DDX_Text(pDX, IDC_EDIT4, STa);

 

Рисунок 5 - Содержание файла «KursovoyDlg.cpp»

      DDX_Text(pDX, IDC_EDIT5, STb);

DDX_Text(pDX, IDC_EDIT6, STn);

DDX_Text(pDX, IDC_EDIT7, STS);

}

 

BEGIN_MESSAGE_MAP(CKursovoyDlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON3, &CKursovoyDlg::OnBnClickedButton3)

ON_BN_CLICKED(IDC_BUTTON2, &CKursovoyDlg::OnBnClickedButton2)

ON_BN_CLICKED(IDC_BUTTON1, &CKursovoyDlg::OnBnClickedButton1)

END_MESSAGE_MAP()

 

 

// CKursovoyDlg message handlers

 

BOOL CKursovoyDlg::OnInitDialog()

{

CDialogEx::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)

{

BOOL bNameValid;

CString strAboutMenu;

bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

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

 

STA="1.0";

STB="1.0";

STC="1.0";

STa="1.0";

STb="3.0";

STn="100.0";

STS="0.0";

A=0.0;

B=0.0;

C=0.0;

a=0.0;

b=0.0;

n=0.0;

S=0.0;

UpdateData(false); //Выставить значения в окно

 

 

Рисунок 5 - Продолжение

 

      return TRUE;  // return TRUE  unless you set the focus to a control

}

 

void CKursovoyDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

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

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialogEx::OnSysCommand(nID, lParam);

}

}

 

// If you add a minimize button to your dialog, you will need the code below

//  to draw the icon.  For MFC applications using the document/view model,

//  this is automatically done for you by the framework.

 

void CKursovoyDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

Информация о работе Создание Windows приложения с использованием Win API и библиотек классов MFC