小型计算器程序的编写

上传人:新** 文档编号:470423655 上传时间:2022-11-29 格式:DOCX 页数:18 大小:182.07KB
返回 下载 相关 举报
小型计算器程序的编写_第1页
第1页 / 共18页
小型计算器程序的编写_第2页
第2页 / 共18页
小型计算器程序的编写_第3页
第3页 / 共18页
小型计算器程序的编写_第4页
第4页 / 共18页
小型计算器程序的编写_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《小型计算器程序的编写》由会员分享,可在线阅读,更多相关《小型计算器程序的编写(18页珍藏版)》请在金锄头文库上搜索。

1、目录一设计题目:小型计算器程序的编写 2二设计目的和内容 2三:基本功能描述 3四:设计思路 3五:软件设计:设计步骤、界面设计、关键功能的实现 31 设计步骤: 32 界面设计 43 关键功能的实现 6六:结论与心得体会 7七 .参考文献 7八 附录: 8一设计题目:小型计算器程序的编写二设计目的和内容【设计目的】1学习Visual C+的MFC开发程序的步骤。2综合运用所学的类、继承和多态的知识。3进一步掌握程序的调试方法。【设计内容】1 利用MFC勺向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;2 实现算术加、减、乘、除等运算;3 选做:三角函数的运算、对数运算、指数运算、进制

2、转换等。界面参考三:基本功能描述程序运行时,显示一个MFC 程序窗口,等待用户输入,用户可以单击鼠标输入要计算的表达式,输入的表达式在窗口中,用户键入“ = ”符号后,窗口显示出结果,该计算器实现了加减乘除以及求倒数运算。四: 设计思路1Windows 消息处理机制的理解首先编写程序需要对 Windows程序的消息处理机制(Message Handle)有个比较清晰的了解。 Windows 的程序都是通过消息来传送数据,有不需要用户参与的系统消息,比如异常处理等。还有用户消息,比如鼠标的单击,双击,键盘的键入等。2 .界面的设计,对需要的各种运算符在窗口中划出,然后定义各个的属性3 成员函数及

3、其定义,首先对编辑框的相关变量进行定义,定义为 m_edit ,将消息框和函数联系起来,然后进行编写相应函数。4 运行结果并测试五: 软件设计:设计步骤、界面设计、关键功能的实现1 设计步骤:1 ) . 添加头文件将 Calculate.cpp( 见 附 录 ) 改 为 Calculate.h 将 其 添 加 到 计 算 器 Dlg.cpp : implementation file 中,如下: #include Calculate.h。2 .) :成员函数及其释义virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, L

4、PARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnChangeEdit1();afx_msg void On1();afx_msg void On2();afx_msg void On3();afx_msg void On4();afx_msg void On5();afx_msg void On6();afx_msg void On7();afx_msg void On8();afx_msg void On9();afx_msg void On0();afx_msg vo

5、id Onequal();afx_msg void Onadd();afx_msg void Onmin();afx_msg void Onplus();afx_msg void Ondiv();afx_msg void Ondelete();afx_msg void Oncountdown();/AFX_MSGDECLARE_MESSAGE_MAP()CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INIT2界面设计1)界面的初步设计仿照Windows附件里面的计算器,在资源

6、视图中画好界面。2)修改每个static的属性IDCAPTIONIDD STATIC4简易表达式计算器IDC STATIC1待求表姑式IDC STATIC2运算结果3)修改每个button的属性IDC BUTTON1等于(等IDC_BUTTON2全清(CE)IDC BUTTON3清除(C)4)修改每个button的处理机制在英向导Classwizard窗口中进行,如下图:其button按钮的修改类似5)修改每个edit的类型和名称在类向导Classwizard窗口中进行:单击Add Variable按钮,在如下窗口中进行修改其他edit的修改类似最终结果如下:FC CluffTixardl前胸

7、M凿写e#9cM胸口Member V-uriablrg | Ajuluinalli。力 | ActivurX Ewnis | Clussu Inlv |EliwjfEtClaii-s 口通ni曰二IltSlttd CUyDIg二F1律算砌il菖器DlflJk. E:m* 2n计n Mn 5P CgntralTypeMemberAdd-VuriaLli!.QtH etE VuriablrIOCj0tinON1 IDC_BUTTDNZ IOC_l3UlTTON3 IDC二EDlTl IDC EDIT2CEdStCEdrtm_loput m rEs-ullUpdate曾Hin J All|i|OC

8、EDiiT3CErtkm time escriptiu nl may la CEdit mcrmbcrOK.Cancel3关键功能的实现1) .OnButton1()按钮的处理函数void CMy1Dlg:On1()/ TODO: Add your control notification handler code here m_jisuan=m_jisuan+1;UpdateData(FALSE);其他数字按钮类似2)运算符按钮的处理函数void CMy1Dlg二Onadd()/ TODO: Add your control notification handler code here si

9、gn=1;data=atof(m_jisuan);m_jisuan=+;UpdateData(FALSE);m_jisuan=;3)等号的按钮的处理函数void CMy1Dlg二Onequal()/ TODO: Add your control notification handler code here switch(sign)case 1:data=data+atof(m_jisuan);break;case 2:data=data-atof(m_jisuan);break;case 3:data=data*atof(m_jisuan);break;case 4:if(atof(m_jis

10、uan)=0)MessageBox(ERROR);break;elsedata=data/atof(m_jisuan);break;char Drray50;memset(Drray,0,50);sprintf(Drray,%f,data);m_jisuan=Drray;UpdateData(FALSE);4)编辑框的按钮的处理函数void CMy1Dlg:OnChangeEdit1()/ TODO: If this is a RICHEDIT control, the control will not/ send this notification unless you override t

11、he CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code here六:结论与心得体会这次课程设计用MFC勺相关知识编写一个小型计算器,刚开整个始感觉这个题目挺新鲜, 很想好好尝试下, 平时只知道用计算器, 其中的原理却不甚了解。此次课程设计没有像上次那样尴尬, 不知从何做起, 可能是有了上次的经验。 老师开始的讲

12、解感觉作用挺大的, 知道了从那块着手, 编写的过程中不断出错, 写的源代码总是找不到头文件,这是最让人郁闷的了。和同学的交流,探讨过程,是我对这学期学的类有了更深刻的了解。 身边有很多高手的存在, 通过他们的讲解很容易对整个过程熟悉,比上次好多了。七 .参考文献VisualC+7.0 实战入口八附录:调试及测试结果如上,关键源代码如下:#if !defined(AFX_1DLG_H_B53FAC72_C8D2_473B_BF3F_DF4E3D42EB50_INCLUD ED_)#define AFX_1DLG_H_B53FAC72_C8D2_473B_BF3F_DF4E3D42EB50_INC

13、LUDED_ #if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ CMy1Dlg dialogclass CMy1Dlg : public CDialog/ Constructionpublic:double data;int sign;CMy1Dlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CMy1Dlg)enum IDD = IDD_MY1_DIALOG ;CString m_jisuan;/AFX_DATA/ ClassWizard gen

14、erated virtual function overrides/AFX_VIRTUAL(CMy1Dlg)protected:virtual void DoDataExchange(CDataExchange* pDX); /DDX/DDVsupport/AFX_VIRTUAL/ Implementation protected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CMy1Dlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnChangeEdit1();afx_msg void On1();afx_msg void On2();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号