




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成都信息工程学院面向对象程序设计开发文档题目:计算器和进制转换工具学院:控制工程学院班级:自动化学生姓名:学号:2011指导教师:姚禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站! ! !一二年十二月十三日课程名称:面向对象的程序设计学院: 控制工程学院班级: 自动化学生姓名: 学号:2011指导教师: 一、题目计算器与进制转换工具(编程实现将任意的十进制整数转换成R进制数(R在2-16之间)二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析 与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。三、要求(包括原始数据、技术参数、
2、设计要求、图纸量、工作量要求等)采用面向对象程序设计语言 C+进行程序开发选用一种C+语言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试四、工作内容、进度安排 主要内容使用C+程序设计语言及其开发环境实现简单的计算器与进制转换工具(编程实现将任意的十进制整数转换成R进制数(R在2-16之间),完成程序的编写和调试。摘要本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还 实现了三角函数计算功能,而且具有简洁大方的图文外观。此设计按照软件工程的方 法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作, 充分降低了数字计算的难度和节约了时间。编写
3、一个简单的DOS窗 口运行的工具,实现将任意的十进制整数转换成 R进制数 (R在2-16之间)。本系统开发平台为 Windows 7,程序设计语言采用 C+在程序 设计中,采用了结构化与面向对象两种解决问题的方法。关键词:程序设计;计算器;MFC按钮控件;进制转换目录引 言 1第一章概述 21.1 可行性分析 21.2 需求分析 2第二章总体设计 22.1功能说明 2第三章软件设计 33.1计算器工程创建 33.2 计算器开发步骤 53.3 进制转换工具设计步骤 13结 论 18引言计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平 方等简单运算的工具。要实现计算功能,可以
4、用 VC+勺知识编写程序来解决此问题。 用。在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语 义分析原理的理解,并实现对命令语句的灵活应用。本课程设计主要在运算过程中, 如果通过计算器来完成, 就会减少计算量, 该程 序即可以在简单计算器键面下进行简单运算。在日常工作中, 有时会需要对数字进行进制的转换, 但是笔算往往速度慢, 而且 有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。15第一章 概述在运算过程中, 如果通过计算器来完成, 就会减少计算量, 该程序即可以在简单 计算器键面下进行简单运算,也可以一些进行高级的科学计算。编程实现将任意的十进制整数
5、转换成 R进制数(R在2-16之间),使得进制转换 避免笔算的失误。1.1 可行性分析本设计第一是简单计算器, 日常计算机使用中, 常常涉及到一些有关计算的问题, 一个小型的计算器软件变得非常有用, 该校型计算器需要空间资源较少, 对电脑其他 程序的应用影响较小。它的设计按软件工程的方法进行 , 系统具有良好的界面、必要 的交互信息和较好的健壮性; 醒目美观的软件封面。 使用人员能快捷简单地进行操作。 即时准确地获得需要的计算的结果, 充分降低了数字计算的难度和节约了时间, 对人 们的生活有一定的帮助。本设计第二是编程实现将任意的十进制整数转换成 R进制数(R在2-16之间), 使得进制转换避
6、免笔算的失误。1.2 需求分析本软件主要用于计算机 win dowsXP以上版本的用户的使用,这次课程设计一般是 实现简单计算器的功能。包含正余弦,平方,开方,三角函数等运算。可对输入任意 操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。 包含清除, 退格,退出功能以及有与所有按钮相对应的菜单项。第二章 总体设计2.1 功能说明它的设计按软件工程的方法进行 , 系统具有良好的界面;必要的交互信息;简约美观 的效果。即时准确地获得需要的计算的结果, 充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。(1) 包含的功能有:加、减、乘、除运算,开方、平方,三角函数等功
7、能(2) 给对话框添加菜单。(3) 计算功能基本上是用系统内部函数。0开头程序可以能自动判断输入数据的正确性,不出现多于一个小数点、以 等不正常现象。(5) “ AC'按钮可以清除所有已输入的数据从头计算。第三章软件设计3.1计算器工程创建MFC所示。(1)打开 Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择AppWizardexe工程,输入工程名02exam62及其所在位置点击确定,如图3-1图3-1新建MFC AppWizard工程(2)将弹出MFC AppWizard-step 1对话框,选择基本对话框点击完成,如图3-2所示。图3-2基本对话框
8、(3)这样,MFCAppWizard就建立了一个基于对话窗口的程序框架,如图3-3所示图3-3基本对话窗口3.2计算器开发步骤1创建控件在资源视图 ResourceView中,选择 Dialog中ID为IDD_MY_DIALOG 的对话框,删除对话框上已有的控件。然后利用控件工具箱,按照图3-4所示在该对话框上添加控件Ij) 02exam62123+45617*0-/开万平方sincssIs图3-4 Edit属性对话框(2),各个控件的属性设置如表Capti onID1IDC BUTTON12IDC_BUTTON20IDC BUTTON10IDC BUTTON DOT+IDC BUTTON A
9、DD-IDC BUTTON SUB*IDC BUTTON MUL/IDC BUTTON DIV=IDC BUTTON QEUALACIDC BUTTON AC开方IDC_BUTTON_KF平方IDC BUTTON PFsinIDC BUTTON SINcosIDC BUTTON COStanIDC BUTTON TAN退格IDC BUTTON BACK图 3-5 Push Butt on 属性(3)计算器界面布局完成之后,双击各个按钮,添加消息响应函数,如按钮1的消息函数添加如图3-6所示双击按钮1即可图3-6添加消息函数(4)修改编辑框 Edit 的 ID 为:IDC_EDIT_INPUT。
10、按下“ Ctrl+W ”弹出 ClassWizard 对话 框,在该对话框属性页Membervariables上,选择IDC_EDIT_INPUT 控件,利用 Add Variables增加两个变量如图3-7所示:图3-7添加变量(5) 在CMyDIg的头文件中定义变量,代码如下:public:en um CACU_TYPE ADD=0,SUB,MUL,DIV,NOTYPE;CACU_TYPE m_curType;bool m_bNextNumber;/判断是否是参与运算的第二个数float m_PreData;保存参与运算的第一个数(6) 一在ClassView中,利用鼠标选中"C
11、MyDlg ”,按下鼠标右键弹出如图4所示对话框,点击Add Member Function增加成员函数,函数具体声明如图3-9所示:0罰计算器classesSCAboutDIg+CMyApp£ _ Global Go to DefinitionGo To Dialog EditorAdd Member Function.Add Member Variable,.Add Virtual Function.Add Windows Message Handler . 库 References.A Derived Classes.暮 Base Classes. t.Add to Gafer
12、 New Foldar.图3-8选择增加成员函数Add Member FunctionFunction Type:voidFunction Declaration:Setl nfochar c|Accessa PublicProtectedPrivateStaticVirtual图3-9添加函数(7) 为刚增加的Setlnfo函数添加函数定义,代码如下:void CMyDlg:Setl nfo(char c)if(m_bNextNumber)m_editCurData.SetWi ndowText("");m_bNextNumber = false;CStri ng str
13、;m_editCurData.GetWindowText(str); / 得到的是字符串类型if(str="0")/单独只有一个零时,要先把零去掉str=""str+=c;m_editCurData.SetWi ndowText(str);(8) 、为函数 OnButton1()OnButton9()依次添加代码,如下所示:(数字1-9) void CMyDlg:O nButto n1()SetI nfo('1'); void CMyDlg:O nButto n9()SetI nfo('9');九、为函数 OnButton
14、10()添加代码如下:void CMyDlg:O nButt on 10()if(m_bNextNumber)m_editCurData.SetWi ndowText("");m_bNextNumber = false;CStri ng str;m_editCurData.GetWi ndowText(str);if(str!="0")不是单个零的时候,即前面有数字,则在后面加零;否则是单个零时,就不变化,保持单个零str+='0' m_editCurData.SetWindowText(str);十、为函数 OnButtonDot 添加
15、代码如下: (小数点)void CMyDlg:OnButtonDot()CString str; m_editCurData.GetWindowText(str);if(str.Find('.')=-1) / 输入数中,没有找到小数点,可以加入一个小数点,如果有小数点, 就不能再加了。str+='.' m_editCurData.SetWindowText(str);十一、为函数 OnButtonAc ()添加代码如下: (清零)void CMyDlg:OnButtonAc()m_CurData=0;m_PreData=0; m_curType = NOTYPE
16、; UpdateData(FALSE);十二、为函数 OnButtonAdd( ) 添加代码如下。 (加)void CMyDlg:OnButtonAdd()UpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_curData; m_bNextNumber = TRUE; m_curType = ADD;十三、为函数 OnButtonSub( ) 添加代码如下。 (减)void CMy02exam62Dlg:OnButtonSub()/ TODO: Add your control notification handler code hereUpdateData(T
17、RUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = SUB;十四、为函数 OnButtonMul( ) 添加代码如下。 (乘)void CMy02exam62Dlg:OnButtonMul()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_CurData; m_bNextNumber = TRUE; m_curType = MUL;十五、为函数 OnButton
18、Div( ) 添加代码如下。 (除) void CMy02exam62Dlg:OnButtonDiv()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_CurData; m_bNextNumber = TRUE; m_curType = DIV;十六、为函数 OnButtonSin( ) 添加代码如下。 (正弦) void CMy02exam62Dlg:OnButtonSin()/ TODO: Add your control notificati
19、on handler code here UpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_CurData; m_bNextNumber = TRUE; m_curType = SIN;十七、为函数 OnButtonCos( ) 添加代码如下。 (余弦) void CMy02exam62Dlg:OnButtonCos()/ TODO: Add your control notification handler code hereUpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_CurData; m_bNextNumber =
20、TRUE; m_curType = COS;十八、为函数 OnButtonTan( ) 添加代码如下。 (正切) void CMy02exam62Dlg:OnButtonXy()/ TODO: Add your control notification handler code hereUpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_CurData; m_bNextNumber = TRUE; m_curType = TAN;十九、为函数 OnButtonKf( ) 添加代码如下。 (开方) void CMy02exam62Dlg:OnButtonKf()/
21、 TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData; m_bNextNumber = TRUE;m_curType = KF;二十、为函数 OnButtonPF( ) 添加代码如下。 (平方) void CMy02exam62Dlg:OnButtonPf()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData
22、= m_CurData; m_bNextNumber = TRUE;m_curType = PF; 二十一、为函数 OnButtonBack( ) 添加代码如下。 (退格) void CMy02exam62Dlg:OnButtonBack()/ TODO: Add your control notification handler code here if(m_bNextNumber)m_editCurData.SetWindowText(""); m_bNextNumber = false;CString str; m_editCurData.GetWindowText(
23、str); str = str.Left(str.GetLength() - 1); if(str = "")str ='0' m_editCurData.SetWindowText(str);二十二、为函数 OnButtonEqual ( ) 添加代码如下。 (等于) void CMy02exam62Dlg:OnButtonQueal()/ TODO: Add your control notification handler code hereUpdateData(TRUE);/ 取回参与运算的第二个变量 switch(m_curType)case AD
24、D: m_CurData = m_PreData + m_CurData; break;case SUB:m_CurData = m_PreData - m_CurData; break;case MUL:m_CurData = m_PreData * m_CurData; break;case DIV:m_CurData = m_PreData / m_CurData; break;case KF:m_CurData = m_CurData * m_CurData; break;case PF:m_CurData = sqrt(m_CurData); break;case SIN:m_Cur
25、Data = m_CurData * 3.1415926/180; m_CurData = sin(m_CurData);break;case COS:m_CurData = m_CurData * 3.1415926/180; m_CurData = cos(m_CurData);break;case TAN:m_CurData = m_CurData * 3.1415926/180; m_CurData = tan(m_CurData);break;UpdateData(FALSE);(9) 、编译运行程序,实现加法,减法、乘法及除法,正弦,余弦,正切,开方,平方,退格, 清零功能,完成简
26、易计算器QQ 02e)cam62Win32如图3.3进制转换工具设计步骤(1)打开Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择Con sole Applicati on工程,输入工程名 02exam62及其所在位置点击确定,3-10所示。文非 工趕 工隹区 其它文将应 ATL COM AppWuardNCluster Resource Type WizardCustom AppWizrd Database Project DevSludlo Add-in Wizard Extended Stored Proc Wizard £ ISAPI Exte
27、nsion Wizard Makelile 箱MFC ActiveX ControlWizard BMFC AppWizard (dllMFC AppWizard (extTf Utility Project TlWinlg ApplicationIWin3? Console Application工程名祢叨:04exam62检置Q: FiS0iexam62F刨建新的工作空间凹厂脈加到当前工作空阎回 厂从属于回: oSfxamiz-平台旧:iWini?-Win32 Dynamic-Link Library 霸 Win32 Static Library确筮fefil图3-10选择工程(2)将弹出
28、 Win 32 Con sole Applicati on 1 对话框,选择 Hello Word 点击完成, 如图3-11所示。完成取悄15图3-11选择类型(3)、新建源文件与头文件,新建方式如图3-12、创彌工作区*0exam62,: 1工程 - O 0exam62 files-!已 Source Files 固 04exam62.cpp 圍 StdAfx上pp Bl zhuanhuancpp-:Header Files_g shuzhi.h g StdAfx.h I Resource Files司 RtadMetxtWin32 ConsoEe Application -步骤 1 英 1
29、 歩4# | Tfi 工惟区|崔它丈昏'.gdActiivr Server Page TH Binary Flic Q C/C + + Header Hie R3 Ci* Source File 朝 HTML Pafle'Macro Flic SQL Script HiejMhtfrffl t*T*耳密融底RB|C):忙:潇三世怛4uK(jn屁图3-12新建文件建后如图3-13 。丈件名(M:心*加到工程回: | OCKame?您担要创建什么类型的控制台程序?£上一步广一个空匸程E一个櫛单的程序同*个"HeMo, WorldP"程序W 厂一个支持MFC的核序同图 3-13 创建后(4)、在头文件 shuzhi.h 中添加代码。void zhuanh(int numa, int numb);(5)、修改 04exam62.cpp 内的代码如下。 #include "stdafx.h"#include"shuzhi.h"int main(int argc, char* argv)int num, shu, i;n");printf(" 请输入一位十进制数(空格)想要得到的进制 scanf("%d%d", &am
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3月是故乡明教学设计-2023-2024学年五年级下册语文统编版
- 5《铺满金色巴掌的水泥道》(教学设计)-2024-2025学年语文三年级上册统编版
- 2023四年级数学上册 1 大数的认识第12课时 计算工具的认识配套教学设计 新人教版
- 《口语交际:说新闻》教学设计-2023-2024学年统编版语文四年级下册
- 糖尿病肾病饮食健康教育
- 肝恶性肿瘤的护理
- 软件项目管理经验分享
- 一年级下册道德与法治教学设计(苏教版)
- 九年级语文下册 第三单元《课外古诗词四首》教学设计 新人教版
- 6 我家的好邻居 第二课时 教学设计-2023-2024学年道德与法治三年级下册统编版
- 四年级语文下册《口语交际说新闻》同步练习题
- 如何提高基层干部群众工作能力课件
- 感染相关性血液学改变课件
- 呼吸困难 教学课件
- 环网柜基础知识培训课程完整版课件
- 广大灯饰制造公司-灯具生产作业指导书
- 新人教版八年级音乐下册《英雄凯旋歌》课件
- T∕TAF 090-2021 移动终端适老化技术要求
- 施工质量保证措施方案(市政管线、排水、道路等)
- 类文阅读-11 宇宙生命之谜
- 建设项目对海洋生物资源影响评价技术规程
评论
0/150
提交评论