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

下载本文档

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

文档简介

1、MFC 计算器课程设计题题 目:目: MFCMFC 计算器设计 学学 院院 : 计算机学院 姓姓 名:名: 学学 号:号: 指导教师指导教师: : 20152015 年年 5 5 月月 2020 日日目录目录1 概述.31.1 课程设计目的 .31.2 课程设计内容 .32 系统需求分析.42.1 系统目标 .42.2 主体功能 .42.3 开发环境 .43 系统概要设计 .43.1 系统功能划 .44 系统详细设计.74.1 设计步骤.74.2 界面设计.95 测试 .115.1 测试方案.115.2 测试结果.126 小结 .14参考文献.14附 录.15附录 1 源程序清单 .153计算

2、器的设计计算器的设计1 1 概述概述 1.11.1 课程设计目的课程设计目的1、巩固并加深学生对 C+语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用 VC+ 6.0 集成开发环境;4、提高运用 C+语言解决实际问题的能力; 5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的 MIS 系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告) 。1.21.2 课程设计内容课程设计内容课题名称:课题名称:计算器的实现说明:说明:实现一个计算器。要求要求: 用用“计算器计算器”的标准视图执行简单的计算

3、。的标准视图执行简单的计算。42 系统需求分析系统需求分析2.12.1 系统目标系统目标我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,乘方。2.22.2 主体功能主体功能十进制数的加、减、乘、除、乘方简单计算。2.32.3 开发环境开发环境Windows 操作系统,VC+ 6.0, OFFICE WORD3 3 系统概要设计系统概要设计3.13.1 系统功能划系统功能划表 3-1 系统功能表1) 假设执行操作“+” ,先输入一个数,再输入“+” ,再输入另一

4、个数,最后输入“+” 。整个功能“+”就执行完毕。序号文件名主要功能备注1+加法求和两个操作数2-减法求差两个操作数3*乘法求积两个操作数4/除法求商两个操作数5S求平方根一个操作数6=等于7C寄存器清零5四则代码如下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(FA

5、LSE);else / int f = 0; switch (ope) /加 case 0: m_str = num1 + num2; break; /减 case 1: m_str = num1 - num2; break; 6case 2: m_str = num1 * num2; break; case 3: m_str = num1 / num2; break; case 4:m_str = num1 * num1; UpdateData(FALSE); 74 4 系统详细设计系统详细设计4.14.1 设计步骤设计步骤打开 Microsoft Visual C+ 6.0,在文件中点击新

6、建,在弹出框内选择 MFC AppWizardexe工程,输入工程名 yeyahui 及其所在位置,点击确定,如图 4-1所示。图 4-1 新建 MFC AppWizardexe工程将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成,如图 4-2所示。 8图 4-2 基本对话框这样,MFC AppWizard 就建立了一个基于对话窗口的程序框架,如图 4-3 所示。9图 4-3 新建的对话框4.24.2 界面设计界面设计界面设计主要是创建控件,在图 4-3 所示的 Resoure View 选项卡中打开Dialog 资源组,双击 IDD_ZHOUTONG_DIA

7、LOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图 4-3 中 Controls 的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出 Edit 属性对话框,如图 4-4 所示,在该对话框中输入 ID 属性。 10图 4-4 Edit 属性对话框2)在图 4-2 中 Controls 的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一

8、个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出 Push Button属性对话框,如图 4-5 所示,在该对话框中输入控件的 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按钮ID

9、C_BUTTON8811按钮IDC_BUTTON99按钮IDC_BUTTONJIA+按钮IDC_BUTTONJIAN-按钮IDC_BUTTONMUL*按钮IDC_BUTTONDIV/按钮IDC_BUTTON10 x2按钮IDC_BUTTONCLACLAER按钮IDC_BUTTONEQUAL=完成后界面如图 4-6 所示。图 4-6 设计界面5 5 测试测试5.15.1 测试方案测试方案先用标准型进行简单的四则运算:+ - * /,测试完成后,核对其计算结果的正确性。125.25.2 测试结果测试结果经测试标准型计算器,进行简单的四则运算,结果均正确,如图 5-1 所示。13图 5-1 四则运算

10、,乘法测试结果图146 6 小结小结经过一个月的努力,课程设计基本完成了。在课程设计的实践中,学到很多有用的知识,也积累了不少宝贵的经验。课程设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。在课程设计中我了解到到对话框应用程序的编程模式、改变按钮的客户区形状、在按钮客户区内作图及对话框的扩展等知识。在此期间,遇上了不少的技术难题,但是经过老师知道,难题还是一个个被解决了。经过设计的各个环节,从中学到了很多,锻炼了自己系统的设计的能力,从系统的需求到系统的功能,到系统的测试,到系统的发布,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中

11、得到很好的锻炼,为用 VC+编辑软件奠定基础。参考文献参考文献1谭浩强. C 程序设计(第三版)(M).北京:清华大学出版社,2005. 2谭浩强. C 程序设计题解与上机指导(第三版) (M).北京:清华大学出版社,2005.3甄炜. C+语言和面向对象程序设计教程(M).北京:机械工业出版社,2005.15附附 录录附录附录 1 源程序清单源程序清单/ 计算器 Dlg.cpp : implementation file/#include stdafx.h#include CAL.h#include CALDlg.h#ifdef _DEBUG#define new DEBUG_NEW#und

12、ef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : 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

13、DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX

14、);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAP16BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ 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/

15、 Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-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_MES

16、SAGE_MAP(CCALDlg, CDialog)/AFX_MSG_MAP(CCALDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()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(ID

17、C_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7, 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_

18、CLICKED(IDC_BUTTONEQUAL, OnButtonequal)ON_BN_CLICKED(IDC_BUTTONMUL, OnButtonmul)ON_BN_CLICKED(IDC_BUTTONDIV, OnButtondiv)ON_BN_CLICKED(IDC_BUTTON10, OnButton10)/AFX_MSG_MAPEND_MESSAGE_MAP()/17/ CCALDlg message handlersBOOL CCALDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system

19、 menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applicat

20、ions 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 initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CCALDlg:OnSysCommand(UINT n

21、ID, LPARAM lParam)if (nID & 0 xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog: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 automaticall

22、y done for you by the framework.void CCALDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for painting18SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect

23、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 calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CCALDlg:OnQueryDra

24、gIcon()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:OnButton1() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+1; Upd

25、ateData(FALSE);void CCALDlg:OnButton2() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+2; UpdateData(FALSE);19void CCALDlg:OnButton3() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+3; UpdateData(FALSE);v

26、oid 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 notification handler code hereUpdateData(TRUE); m_str =0; m_str=m_str+5; UpdateData(FALSE);void CCALDlg:OnButt

27、on6() / 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 code hereUpdateData(TRUE); m_str =0; m_str=m_str+7; UpdateData(FALSE);void CCALDlg:OnButton8() / TODO: Add

28、your control notification handler code hereUpdateData(TRUE); m_str =0;20 m_str=m_str+8; UpdateData(FALSE);void CCALDlg:OnButton9() / TODO: Add your control notification handler code hereUpdateData(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 co

温馨提示

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

评论

0/150

提交评论