mfc计算器的设计报告_第1页
mfc计算器的设计报告_第2页
mfc计算器的设计报告_第3页
mfc计算器的设计报告_第4页
mfc计算器的设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上MFC计算器课程设计题 目: MFC计算器设计 学 院: 计算机学院 姓 名: 学 号: 指导教师: 2015年5月20日专心-专注-专业目录计算器的设计1概述 1.1 课程设计目的1、巩固并加深学生对C+语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC+ 6.0集成开发环境;4、提高运用C+语言解决实际问题的能力; 5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。1.2 课程设计内容课题名称:计算器

2、的实现说明:实现一个计算器。要求: 用“计算器”的标准视图执行简单的计算。2系统需求分析2.1 系统目标我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,乘方。2.2 主体功能十进制数的加、减、乘、除、乘方简单计算。2.3 开发环境Windows操作系统,VC+ 6.0, OFFICE WORD3 系统概要设计3.1 系统功能划序号文件名主要功能备注1+加法求和两个操作数2-减法求差两个操作数3*乘法求积两个操作数4/除法求商两个操作数5S求平方根一个操作数6=

3、等于7C寄存器清零表3-1 系统功能表1) 假设执行操作“+”,先输入一个数,再输入“+”,再输入另一个数,最后输入“+”。整个功能“+”就执行完毕。四则代码如下void CCALDlg:OnButtonequal() / TODO: Add your control notification handler code hereUpdateData(TRUE); num2 =m_str; if(num2=0&&ope=3)m_str1="除数不能为零"m_str =0; num1 = 0; num2 = 0;UpdateData(FALSE);else /

4、int f = 0; switch (ope) /加 case 0: m_str = num1 + num2; break; /减 case 1: m_str = num1 - num2; break; case 2: m_str = num1 * num2; break; case 3: m_str = num1 / num2; break; case 4:m_str = num1 * num1; UpdateData(FALSE); 4系统详细设计4.1 设计步骤打开Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizardexe工程,输入工

5、程名yeyahui及其所在位置,点击确定,如图4-1所示。图4-1 新建MFC AppWizardexe工程将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图4-2所示。 图4-2基本对话框这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图4-3所示。图4-3新建的对话框4.2 界面设计界面设计主要是创建控件,在图4-3所示的Resoure View选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的

6、创建可参照此进行操作。1)在图4-3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图4-4所示,在该对话框中输入ID属性。 图4-4 Edit属性对话框2)在图4-2中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图4-5所示,在该对话框中输入控件的

7、ID值和标题属性。图4-5 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。表4-1 各按钮和编辑框等对象的属性对象ID标题或说明编辑框IDC_EDIT2结果显示按钮IDC_BUTTON00按钮IDC_BUTTON11按钮IDC_BUTTON22按钮IDC_BUTTON33按钮IDC_BUTTON44按钮IDC_BUTTON55按钮IDC_BUTTON66按钮IDC_BUTTON77按钮IDC_BUTTON88按钮IDC_BUTTON99按钮IDC_BUTTONJIA+按钮IDC_BUTTONJIAN-按钮IDC_BUTTONMUL*按钮IDC_BUTTONDIV

8、/按钮IDC_BUTTON10x2按钮IDC_BUTTONCLACLAER按钮IDC_BUTTONEQUAL=完成后界面如图4-6所示。图4-6 设计界面5 测试5.1 测试方案先用标准型进行简单的四则运算:+ - * /,测试完成后,核对其计算结果的正确性。5.2 测试结果经测试标准型计算器,进行简单的四则运算,结果均正确,如图5-1所示。图5-1 四则运算,乘法测试结果图6 小结经过一个月的努力,课程设计基本完成了。在课程设计的实践中,学到很多有用的知识,也积累了不少宝贵的经验。课程设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。在课程设

9、计中我了解到到对话框应用程序的编程模式、改变按钮的客户区形状、在按钮客户区内作图及对话框的扩展等知识。在此期间,遇上了不少的技术难题,但是经过老师知道,难题还是一个个被解决了。经过设计的各个环节,从中学到了很多,锻炼了自己系统的设计的能力,从系统的需求到系统的功能,到系统的测试,到系统的发布,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定基础。参考文献1谭浩强. C程序设计(第三版)(M).北京:清华大学出版社,2005. 2谭浩强. C程序设计题解与上机指导(第三版) (M).北京:清华大学出版社,2005.3甄炜. C+语

10、言和面向对象程序设计教程(M).北京:机械工业出版社,2005.附 录附录1 源程序清单/ 计算器Dlg.cpp : implementation file/#include "stdafx.h"#include "CAL.h"#include "CALDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutD

11、lg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG

12、(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)

13、/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CCALDlg dialogCCALDlg:CCALDlg(CWnd* pParent /*=NULL*/): CDialog(CCALDlg:IDD, pParent)/AFX_DATA_INIT(CCALDlg)m_str = 0;m_str1 = _T("");/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp

14、()->LoadIcon(IDR_MAINFRAME);void CCALDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CCALDlg)DDX_Text(pDX, IDC_EDIT2, m_str);DDX_Text(pDX, IDC_EDIT3, m_str1);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CCALDlg, CDialog)/AFX_MSG_MAP(CCALDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_Q

15、UERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON0, OnButton0)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7,

16、OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_BUTTONJIA, OnButtonjia)ON_BN_CLICKED(IDC_BUTTONJIAN, OnButtonjian)ON_BN_CLICKED(IDC_BUTTONCLA, OnButtoncla)ON_BN_CLICKED(IDC_BUTTONEQUAL, OnButtonequal)ON_BN_CLICKED(IDC_BUTTONMUL, OnButtonmul)ON_BN

17、_CLICKED(IDC_BUTTONDIV, OnButtondiv)ON_BN_CLICKED(IDC_BUTTON10, OnButton10)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CCALDlg message handlersBOOL CCALDlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX

18、 & 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, str

19、AboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small iconSetWindowText(_T("计算器 V1.0 作者:13级数学与计算机学院第4期 陈菁");/修改软件名称/ TODO: Add extra in

20、itialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CCALDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will

21、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 CCALDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center ic

22、on in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system ca

23、lls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CCALDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CCALDlg:OnButton0() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+0; UpdateData(FALSE); void CCALDlg:OnB

24、utton1() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+1; UpdateData(FALSE);void CCALDlg:OnButton2() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+2; UpdateData(FALSE);void CCALDlg:OnButton3() / TODO: A

25、dd your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+3; UpdateData(FALSE);void CCALDlg:OnButton4() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+4; UpdateData(FALSE);void CCALDlg:OnButton5() / TODO: Add your control no

26、tification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+5; UpdateData(FALSE);void CCALDlg:OnButton6() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+6; UpdateData(FALSE);void CCALDlg:OnButton7() / TODO: Add your control notification handler

27、 code hereUpdateData(TRUE); m_str =0; m_str=m_str+7; UpdateData(FALSE);void CCALDlg:OnButton8() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+8; UpdateData(FALSE);void CCALDlg:OnButton9() / TODO: Add your control notification handler code hereUpdateDa

28、ta(TRUE); m_str =0; m_str=m_str+9; UpdateData(FALSE);void CCALDlg:SaveValue1() UpdateData(TRUE); num1=m_str; / m_str =0; UpdateData(FALSE); void CCALDlg:OnButtonjia() / TODO: Add your control notification handler code hereSaveValue1(); ope=0;void CCALDlg:OnButtonjian() / TODO: Add your control notification handler code hereSaveVa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论