
C课程设计【简单计算器】【样本,NAU】.docx
23页C++程序设计课程设计报告题目:简单计算器学生姓名: 学 号: 院(系): 专 业: 目录1 基本功能描述 12 设计思路 13 软件设计 43.1 设计步骤 43.2 界面设计 53.3 关键功能的实现 1..1.4 结论与心得体会 125 参考文献 136 思考题 137 附录 147.1 调试报告 147.2 测试结果 157.3 关键源代码 16简单计算器1 基本功能描述简单计算器包括双目运算和单目运算功能双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算出现错误会给出相应提示,同时包含清除,退格,退出功能以及有与所有按钮相对应的菜单项2 设计思路如图是整个计算器的流程图,打开计算器程序,输入数据,调用输入数据子程序子程序开始时m_nun*j零按下数字按钮后,判断 m_num勺正负号,对其进行相关处理,然 后在判断是否有小数点,处理后输出结果回到总流程图中,输完第一个操作数后,若按下双目运算符,则把 m_num¥入num2按下输入第二个操作数并算出结果。
若按下的是单目运算符,则直接对其处理得出结果若按下清零,则m_nun^于0.在运算中还要判断运算是否合法, 以及结果是否超出显示范围,以做出相关提示,按下清零算出后把结果保存至 num2若需用算出的结果继续运算则回到输入完第一个操作数后,若不需要则判断试否需要开始新一轮的运算,不需要则结 束输入数据子函数图1输入数据子函数流程图图2简单计算器总流程图3软件设计3.1 设计步骤打开 Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择 MFCAppWizard[exe]工程,输入工程名 zhoutong及其所在位置,点击确定,如图 3所示图 3 新建 MFC AppWizard[exe]工程将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图 4所示HFt应用程序向导-交,1您要仓U建的应用程序类型是:「单文档围「多重文档M后慈本静话画惬您的资源使用的语言是中国]IAPPWZCHS.DLL]《上一步下一推>完成取消图4基本对话框这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图 5所示- _j zhoiirtongt resource&-Dialog23 IDD.ABOUTBOX三 IDD_ZHOUTOhlG1_OI^■ J Icon+ Siring Table+ _J Version短年摩'*螭 Aa tU H a 因值 国ES 丽@fl-日■:隹a日 生用盍叵6回口囿息’璃' HCZhuul口闻小。
t | |Alh cias^ niembe r^| ▼ | * CZiiouilan>gi1 Dig目文件口扇盘।口吏卷的ttA®工程03但海电一局U工具工।可口改J相的M气 jdhwtwigl - HRzeoH 聃MC++ 7出仙(Eg - IDD.ZHOUTOKI.OIMOG (DwI9aJ]121 ! 11zTJI * r■纲能l黄小青在文件1中查拨k在则£中查找因站闻k &3L 口 1 | | t弓 卷口就绪 勺 •0 史款口 X 2口"图5新建的对话框3.2 界面设计1、创建控件在图5所示的 Resoure View 选项卡中打开 Dialog 资源组,双击 IDD_ZHOUTONG_DIALOG ,在右边的窗口中显示出待编辑的对话框开始摆放控件,包括编辑框和按钮的创建按钮的创建以“1为例进行介绍,其他按钮的创建可参照此进行操 作1)在图5中Controls的 编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位 置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框在编辑框上单击鼠标右键,在弹 出的快捷莱单中选择属性选项,此时弹出 Edit属性对话框,如图6所示,在该对话框中输 入ID属性。
Edit属性争蹩常规|样式|扩展样式|]D: IDCxIansiii ▼9可见但] 厂组但] 「帮助ID(H)「已禁用回 *制表站回图6 Edit属性对话框2)在图3中Controls的“Buttons钮上单击鼠标左键,在对话框上的合适的位置上按 下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮在按钮上单击鼠标右键,在弹出 的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图7所示,在该对话 框中输入控件的ID值和标题属性Pus-h Button 用性3皆常规|样式|扩展样式|ID: [iDClBUTTONI 二J 标题(fl: 1|7可见凶 厂组回 r帮助ID(H]r已禁用囿 v制表站圜图 7 Push Button 属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性表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+/-按钮 1IDC_point.按钮IDC_add+按钮IDC_difference-按钮 nIDC_multiply*按钮IDC_devide/按钮IDC_sqrtsqrt按钮 ]IDC_daoshu1/x按钮IDC_jiechengn!按钮IDC_lnln按钮IDC_sinsin按钮IDC_coscos按钮IDC_powxAy按钮IDC_Onequal=按钮IDC_backspaceBackspace按钮IDC_OnclearClear完成后界面如图8所小图8计算器界面2、连接变量和代码1)给编辑框连接变量。
在编辑框上单击鼠标右键,在弹出菜单中选择 ClassWizard菜单项,弹出 MFC ClassWizard对话框,选择 Member Variables选项卡,如图9所示图 9 MFC ClassWizard对话框中的 Menber Variable选项卡在Control IDs列表框中选择IDC_xianshi,单击Add Variables按钮,在弹出的对话框 中连接变量m num变量类型设定为doubel型如图10所示图10 m_num属性设置2)给“1按钮连接代码在“1按钮上单击鼠标右键,选择 ClassWizard菜单项,在弹 出的对话框中选择 Messages Maps选项卡,然后在 Object IDs列表框中选择 IDC_ADD_BUTTON ,在Messages歹U表框中选择BN_CLICKED项,即选择单击按钮事件, 如图11所示MFC CkwWnniMrsszigc: Mzipszhoulong 』 |cZhoutongDlg JC :\zh d mtongljzho ulongDIg .Il C4zhoutomg\z houtongDIg .cppObject ID5: Messages:IlDC BUTTONOi -BN CLICKEDIDC_BliTTONI IOC EUTT0N2 idcIgutton? IOC BUTTONS IDC1HUTTON5 IDC QUTTONG -Meinber (uncUons:BN_DOUBLECLICKEDV DoDalflExcharigeW OnBulluail ON IDC BUTTON1:BN COCKEDMember VariahlrsAutnunatiDnClass name;Delete FunctionPiroject:W OnlnifOialog ON_WM_INITDIALOGW OnPainl Ohl WM PAINTW OnQueivDraglcon ON_WM_QUERYDRAGICONAdd Qa&5皿▼EdiiCodcDusniptiun: 1ndi匚壮Ies Ihe user clicked a button确定取消图11 “1”按钮链接代码对话框3、菜单的设计选择 插入/资源命令,将显示插入资源对话框。
如图 12所示选择Menu,点击新建即可插入资费资源类型田:事 Accelerator 的 Bitmap+ 汾 Cursor十 3 DiMog 国 HTML□ Icon画 String Table 也 Toolbar 回 Version图12插入资源对话框Resoure View选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的 标题,并把每个菜单对应的ID值与相应的按钮的一致如图13所示 zhnulong re source 5- ^1 Dialogm IDD_ABOUTBOXn IDD ZHOUTONG + /J Icon- Menu苜 I DR MENU!),j Siring Table- _| VersionU1 交伴帮助; ■:也自运算符卜1 双目运甘特卜 + 教手按钿,OIALCK dear /r«—L. -图13菜单属性对话框在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择 Properties命令,弹出Dialog Properties对话框,如图14在对话框中的菜单组合框中选择IDR_MENU1对话.屈性常规 样式|更多样式|扩展样式|更多扩展样式|字体名称:字体大小:字体⑼…宋体9菜单 M 二 IDR_MEMU1位置K o 位置工oID: | IDD_ZHOUfONG_DIALOG •标题©; |简单计算器图15计算器完整界面图14对话属性对话框最终的得到的界面如图15。
3.3 关键功能的实现1)操作数的输入编辑框所关联的变量为m_num,程序开始时为零每按下一个数字键按钮,就把它累加到 m_num 里并刷新显示 BOOL 型变量 ele 来判断是否有小数点和一个整型数 dint 来表示小数点后的数据的位数当 ele=TRUE 时,表示有小数点,否则则表示无小数点按下小数点按钮后执行ele=TRUE当按下一个数字键时,首先根据 ele判断是否按下小数点,若有则把小数点后数的位数加 1, dint 则为此次键入的数所处的位数, 将键入的数除以 dint个 10 然后累加到编辑框所关联的变量 m_num 上,若没有则把 m_num 乘以 1。
