C++简单计算器课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

武汉理工大学《专业课程设计2》课程设计说明书目录1基本功能描述...........................................................................................................12设计思路...................................................................................................................13软件设计...................................................................................................................43.1设计步骤........................................................................................................43.2界面设计.........................................................................................................53.3关键功能的实现............................................................................................114结论与心得体会.....................................................................................................125参考文献.................................................................................................................136思考题.....................................................................................................................137附录.........................................................................................................................147.1调试报告.......................................................................................................147.2测试结果.......................................................................................................157.3关键源代码...................................................................................................16武汉理工大学《专业课程设计2》课程设计说明书1简单计算器1基本功能描述简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。2设计思路如图是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序。子程序开始时m_num为零。按下数字按钮后,判断m_num的正负号,对其进行相关处理,然后在判断是否有小数点,处理后输出结果。回到总流程图中,输完第一个操作数后,若按下双目运算符,则把m_num存入num2,按下输入第二个操作数并算出结果。若按下的是单目运算符,则直接对其处理得出结果。若按下清零,则m_num等于0.在运算中还要判断运算是否合法,以及结果是否超出显示范围,以做出相关提示,按下清零。算出后把结果保存至num2。若需用算出的结果继续运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结束。武汉理工大学《专业课程设计2》课程设计说明书2图1输入数据子函数流程图NNY键入一个数是否为正数?m_num=10*m_num+im_num=10*m_num-i是否为小数?用UpdateData(FALSE)刷新显示还原m_num根据小数点后位数将键入的数除以n次10累加到m_numYN继续键入数字?Y输入数据子函数编辑框关联变量m_num=0武汉理工大学《专业课程设计2》课程设计说明书3图2简单计算器总流程图Y开始输入数据子函数编辑框关联的变量保存至num2输入数据子函数进行运算运算是否合法把结果保存到num2m_num清零弹出对话框显示ERRORNY是否用保存的结果继续进行运算N结束jie双目运算符单目运算符是否开始新一轮的计算YN武汉理工大学《专业课程设计2》课程设计说明书43软件设计3.1设计步骤打开MicrosoftVisualC++6.0,在文件中点击新建,在弹出框内选择MFCAppWizard[exe]工程,输入工程名zhoutong及其所在位置,点击确定,如图3所示。图3新建MFCAppWizard[exe]工程将弹出MFCAppWizard-step1对话框,选择基本对话框,点击完成,如图4所示。武汉理工大学《专业课程设计2》课程设计说明书5图4基本对话框这样,MFCAppWizard就建立了一个基于对话窗口的程序框架,如图5所示。图5新建的对话框3.2界面设计1、创建控件在图5所示的ResoureView选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包武汉理工大学《专业课程设计2》课程设计说明书6括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图5中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图6所示,在该对话框中输入ID属性。图6Edit属性对话框2)在图3中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出PushButton属性对话框,如图7所示,在该对话框中输入控件的ID值和标题属性。图7PushButton属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。武汉理工大学《专业课程设计2》课程设计说明书7表1各按钮和编辑框等对象的属性对象ID标题或说明编辑框IDC_xianshi结果显示按钮IDC_BUTTON00按钮IDC_BUTTON11按钮IDC_BUTTON22按钮IDC_BUTTON33按钮IDC_BUTTON44按钮IDC_BUTTON55按钮IDC_BUTTON66按钮IDC_BUTTON77按钮IDC_BUTTON88按钮IDC_BUTTON99按钮IDC_change+/-按钮IDC_point.按钮IDC_add+按钮IDC_difference-按钮IDC_multiply*按钮IDC_devide/按钮IDC_sqrtsqrt按钮IDC_daoshu1/x按钮IDC_jiechengn!按钮IDC_lnln按钮IDC_sinsin按钮IDC_coscos按钮IDC_powx^y按钮IDC_Onequal=按钮IDC_backspaceBackspace按钮IDC_OnclearClear完成后界面如图8所示。图8计算器界面2、连接变量和代码武汉理工大学《专业课程设计2》课程设计说明书81)给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard菜单项,弹出MFCClassWizard对话框,选择MemberVariables选项卡,如图9所示。图9MFCClassWizard对话框中的MenberVariable选项卡在ControlIDs列表框中选择IDC_xianshi,单击AddVariables按钮,在弹出的对话框中连接变量m_num。变量类型设定为doubel型。如图10所示。图10m_num属性设置2)给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择MessagesMaps选项卡,然后在ObjectIDs列表框中选择IDC_ADD_BUTTON,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图11所示。武汉理工大学《专业课程设计2》课程设计说明书9图11“1”按钮链接代码对话框3、菜单的设计选择插入/资源命令,将显示插入资源对话框。如图12所示。选择Menu,点击新建即可。图12插入资源对话框ResoureView选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的ID值与相应的按钮的一致。如图13所示。武汉理工大学《专业课程设计2》课程设计说明书10图13菜单属性对话框在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择Properties命令,弹出DialogProperties对话框,如图14。在对话框中的菜单组合框中选择IDR_MENU1。图14对话属性对话框最终的得到的界面如图15。图15计算器完整界面武汉理工大学《专业课程设计2》课程设计说明书113.3关键功能的实现1)操作数的输入编辑框所关联的变量为m_num,程序开始时为零。每按下一个数字键按钮,就把它累加到m_num里并刷新显示。BOOL型变量ele来判断是否有小数点和一个整型数dint来表示小数点后的数据的位数。当ele=TRUE时,表示有小数点,否则则表示无小数点。按下小数点按钮后执行ele=TRUE。当按下一个数字键时,首先根据ele判断是否按下小数点,若有则把小数点后数的位数加1,dint则为此次键入的数所处的位数,将键入的数除以dint个10然后累加到编辑框所关联的变量m_num上,若没有则把m_num乘以10,然后累加到编辑框所关联的变量m_num上。2)单目运算符功能的实现由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如m_num=sqrt(m_num).按下按钮即可实现其功能。为实现连续运算,程序有所改动,参见(6)。3)双目运算符功能的实现双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代码中,要把m_num中的值保存到变量num2中,然后把m_num清零。这样即可保存第一个操作数。另外先定义了一个整形变量addt,在不同的双目运算符中给addt赋不同的值,然后在等号中用switch语句来匹配addt值来判断需要执行何种双目运算。为实现连续运算,程序有所改动,参见(6)。4)退格键功能的实现当按下一次退格按钮时,若m_num为整数,只需对其中数据除以10再取整即可,若按下一次退格按钮为小数,则根据小数点后数据的位数dint进行操作,先对m_num执行(dint-1)次乘以10运算,

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功