Автор: Пользователь скрыл имя, 11 Марта 2012 в 12:54, курсовая работа
Разработать алгоритм и программу вычисления площади, ограниченной двумя кривыми, заданными вариантом индивидуального задания для интервала, определяемого пользователем в диалоговом режиме. Интерфейс программы разработать с использованием MFC. Предусмотреть проверку ввода данных на корректность и графическое отображение заданных функций. Предусмотреть в программе вызов справки.
Техническое задание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.Разработка алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Разработка математического алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Разработка схемы алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Разработка схемы математического алгоритма. . . . . . . . . . . . . . . . . 6
Разработка схемы общего алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . .7
2.Разработка Программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.Вычислительный эксперимент. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Список литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Министерство образования и науки РФ
Государственное образовательное учреждение высшего профессионального образования
«Ижевский государственный технический университет»
Кафедра «Мехатронные системы»
Курсовая работа
Дисциплина: Информатика
Тема: «Создание Windows приложения с использованием Win API и библиотек классов MFC»
Выполнила:
студентка группы 3-35-1
Хабибуллина Р. Р.
Проверил:
преподаватель
Караваев Ю.Л.
Рецензент:
Лекомцев П.В.
Ижевск 2010
Содержание
Техническое задание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.Разработка алгоритма. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
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.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 – Продолжение
1.2.2 Разработка схемы общего алгоритма
Общий алгоритм программы представлен на рисунке 3.
Рисунок 3 – Схема общего алгоритма программы
Рисунок 3 – Продолжение
2 Разработка Программы
Программа была разработана в среде программирования
«Microsoft Visual Studio 2010», на языке программирования «С++».
Интерфейс программы разработан с использованием библиотеки классов MFC.
Содержание файла «KursovoyDlg.
Содержание файла «KursovoyDlg.
// 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(
{
CDialogEx::DoDataExchange(pDX)
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// CKursovoyDlg dialog
CKursovoyDlg::CKursovoyDlg(
: CDialogEx(CKursovoyDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_
}
void CKursovoyDlg::DoDataExchange(
{
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(
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON3, &CKursovoyDlg::
ON_BN_CLICKED(IDC_BUTTON2, &CKursovoyDlg::
ON_BN_CLICKED(IDC_BUTTON1, &CKursovoyDlg::
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_
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_
pSysMenu->AppendMenu(MF_
}
}
// 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(
{
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