VC6_C++计算器与进制转换工具设计步骤加代码要点.docx

上传人:时光煮雨 文档编号:11699759 上传时间:2021-08-31 格式:DOCX 页数:22 大小:589.20KB
返回 下载 相关 举报
VC6_C++计算器与进制转换工具设计步骤加代码要点.docx_第1页
第1页 / 共22页
VC6_C++计算器与进制转换工具设计步骤加代码要点.docx_第2页
第2页 / 共22页
VC6_C++计算器与进制转换工具设计步骤加代码要点.docx_第3页
第3页 / 共22页
VC6_C++计算器与进制转换工具设计步骤加代码要点.docx_第4页
第4页 / 共22页
VC6_C++计算器与进制转换工具设计步骤加代码要点.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《VC6_C++计算器与进制转换工具设计步骤加代码要点.docx》由会员分享,可在线阅读,更多相关《VC6_C++计算器与进制转换工具设计步骤加代码要点.docx(22页珍藏版)》请在三一文库上搜索。

1、成都信息工程学院面向对象程序设计开发文档题目:计算器和进制转换工具学院:控制工程学院班级:自动化学生姓名:学号:2011指导教师:姚禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站! ! !年十二月十三日课程名称:面向对象的程序设计学院: 控制工程学院班级: 自动化学生姓名: 学号:2011 指导教师: 一、题目计算器与进制转换工具(编程实现将任意的十进制整数转换成R进制数(R在2-16之间)二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析 与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。三、要求(包括原始数据、技术参数、设

2、计要求、图纸量、工作量要求等)采用面向对象程序设计语言 C+班行程序开发选用一种C+相言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试四、工作内容、进度安排 主要内容使用C+程序设计语言及其开发环境实现简单的计算器与进制转换工具(编程实现将任意的十进制整数转换成R进制数(R在2-16之间),完成程序的编写和调试。摘要本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还 实现了三角函数计算功能,而且具有简洁大方的图文外观。此设计按照软件工程的方 法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作, 充分降低了数字计算的难度和节约了时间。编写一

3、个简单的DO的口运行的工具,实现将任意的十进制整数转换成 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引言计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平方等简单运算的工具。要实现计算功能,可以用VC+

4、勺知识编写程序来解决此问题。用。在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。本课程设计主要在运算过程中, 如果通过计算器来完成, 就会减少计算量, 该程 序即可以在简单计算器键面下进行简单运算。在日常工作中, 有时会需要对数字进行进制的转换, 但是笔算往往速度慢, 而且 有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。18第一章 概述在运算过程中, 如果通过计算器来完成, 就会减少计算量, 该程序即可以在简单计算器键面下进行简单运算,也可以一些进行高级的科学计算。编程实现将任意的十进制整数转换成R 进制数

5、 ( R 在 2-16之间) , 使得进制转换避免笔算的失误。1.1 可行性分析本设计第一是简单计算器, 日常计算机使用中, 常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用, 该校型计算器需要空间资源较少, 对电脑其他程序的应用影响较小。它的设计按软件工程的方法进行, 系统具有良好的界面、必要的交互信息和较好的健壮性; 醒目美观的软件封面。 使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果, 充分降低了数字计算的难度和节约了时间, 对人 们的生活有一定的帮助。本设计第二是编程实现将任意的十进制整数转换成R 进制数( R 在 2-16 之间) ,使得进制转换避免笔算的

6、失误。1.2 需求分析本软件主要用于计算机 windowsXP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。包含正余弦,平方,开方,三角函数等运算。可对输入任意操作数, 包括小数和整数及正数和负数进行以上的所有运算并能连续运算。 包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。第二章 总体设计1.1 功能说明它的设计按软件工程的方法进行, 系统具有良好的界面;必要的交互信息;简约美观的效果。 即时准确地获得需要的计算的结果, 充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助(1)包含的功能有:力口、减、乘、除运算,开方、平方,三角函数等功能。(2)给对话框

7、添加菜单。(3)计算功能基本上是用系统内部函数。(4)程序可以能自动判断输入数据的正确性,不出现多于一个小数点、以 0开头 等不正常现象。(5) “AC按钮可以消除所有已输入的数据从头计算。第三章软件设计5.1 计算器工程创建(1)打开 Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择MFCAppWizardexe工程,输入工程名02exam62及其所在位置点击确定,如图3-1所示。图3-1新建MFC AppWizard工程(2)将弹出MFC AppWizard-step 1对话框,选择基本对话框点击完成,如图3-2所示。图3-2基本对话框3-3所示。(3)这样

8、,MFCAppWizard就建立了一个基于对话窗口的程序框架,如图图3-3基本对话窗口5.2 计算器开发步骤1、创建控件在资源视图 ResourceView中,选择 Dialog中ID为IDD_MY_DIALOG 的对话框,删除对话框上已有的控件。然后利用控件工具箱,按照图3-4所示在该对话框上添加控件13 02exam62图3-4 Edit属性对话框(2),各个控件的属性设置如表CaptionID1IDC_BUTTON12IDC_BUTTON20IDC_BUTTON10.IDC_BUTTON_DOT+IDC_BUTTON_ADD-IDC_BUTTON_SUB*IDC_BUTTON_MUL/I

9、DC_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 Button 属性(3)计算器界面布局完成之后,双击各个按钮,添加消息响应函数,如按钮 1的消息函数添加如图3-6所示双击按钮1即可图3-6添加消息函数(4)修改编辑框 Edit 的 ID 为:IDC_EDIT_INPUT 。按下 “ Ctrl+W ” 弹出 ClassWizard 对话 框

10、,在该对话框属性页MemberVariables上,选择IDC_EDIT_INPUT 控件,利用 Add Variables增加两个变量如图3-7所示:图3-7添加变量(5)在CMyDlg的头文件中定义变量,代码如下:public:enum CACU_TYPE ADD=0,SUB,MUL,DIV,NOTYPE;CACU_TYPE m_curType;bool m_bNextNumber;判断是否是参与运算的第二个数float m_PreData;保存参与运算的第一个数(6) 一在ClassView中,利用鼠标选中CMyDlg ”,按下鼠标右键弹出如图 4所示对话框, 点击Add Member

11、Function增加成员函数,函数具体声明如图3-9所示:0摩计算器classesS CAboutDIg* CMyApp用阳,哪* _| GlobalGd 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 G剖erfPi NeFold&r,-.图3-8选择增加成员函数Add Member

12、 Function工IXFunction Type: voidFunction Declaration:Setl nfochar c|Access Public Protected PrivateOKCancelStaticVirtual图3-9添加函数(7)为刚增加的SetInfo函数添加函数定义,代码如下:void CMyDlg:SetInfo(char c) if(m_bNextNumber)m_editCurData.SetWindowText();m_bNextNumber = false;CString str;m_editCurData.GetWindowText(str); 得

13、到的是字符串类型if(str=0)单独只有一个零时,要先把零去掉str=; str+=c;m_editCurData.SetWindowText(str);(8)、为函数 OnButton1()OnButton9()依次添加代码,如下所示:(数字1-9)void CMyDlg:OnButton1()SetInfo(1); void CMyDlg:OnButton9() SetInfo(9);九、为函数 OnButton10()添力口代码如下:void CMyDlg:OnButton10()if(m_bNextNumber)m_editCurData.SetWindowText();m_bNex

14、tNumber = false;CString str;m_editCurData.GetWindowText(str);if(str!=0)/不是单个零的时候,即前面有数字,则在后面加零;否则是单个零时,就不变化,保持单个零str+=0;m_editCurData.SetWindowText(str);十、为函数 OnButtonDot 添加代码如下: (小数点)void CMyDlg:OnButtonDot()CString str;m_editCurData.GetWindowText(str);if(str.Find(.)=-1) / 输入数中,没有找到小数点,可以加入一个小数点,如果

15、有小数点, 就不能再加了。str+=.;m_editCurData.SetWindowText(str);十一、为函数 OnButtonAc ()添加代码如下: (清零)void CMyDlg:OnButtonAc() m_CurData=0;m_PreData=0;m_curType = NOTYPE;UpdateData(FALSE);十二、为函数 OnButtonAdd( ) 添加代码如下。 (加)void CMyDlg:OnButtonAdd()UpdateData(TRUE);/ 取回控件上的变量 m_PreData = m_curData;m_bNextNumber = TRUE;

16、m_curType = ADD;十三、为函数 OnButtonSub( ) 添加代码如下。 (减)void CMy02exam62Dlg:OnButtonSub() / TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = SUB;十四、为函数 OnButtonMul( ) 添加代码如下。 (乘)void CMy02exam62Dlg:OnButtonMul()/ TODO: A

17、dd your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = MUL;十五、为函数 OnButtonDiv( ) 添加代码如下。 (除)void CMy02exam62Dlg:OnButtonDiv()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurD

18、ata;m_bNextNumber = TRUE;m_curType = DIV;十六、为函数 OnButtonSin( ) 添加代码如下。 (正弦)void CMy02exam62Dlg:OnButtonSin()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = SIN;十七、为函数 OnButtonCos( ) 添加代码如下。 (余弦)void CMy02exam62

19、Dlg:OnButtonCos()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = COS;十八、为函数 OnButtonTan( ) 添加代码如下。 (正切)void CMy02exam62Dlg:OnButtonXy()/ TODO: Add your control notification handler code here UpdateData(TRUE);/

20、取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = TAN;十九、为函数 OnButtonKf( ) 添加代码如下。 (开方)void CMy02exam62Dlg:OnButtonKf()/ TODO: Add your control notification handler code hereUpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = KF;二十、为函数 OnButtonPF( ) 添加代码如下。

21、 (平方)void CMy02exam62Dlg:OnButtonPf()/ TODO: Add your control notification handler code here UpdateData(TRUE);/ 取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = PF;二十一、为函数 OnButtonBack( ) 添加代码如下。 (退格)void CMy02exam62Dlg:OnButtonBack()/ TODO: Add your control notification handler code h

22、ereif(m_bNextNumber)m_editCurData.SetWindowText();m_bNextNumber = false;CString str;m_editCurData.GetWindowText(str);str = str.Left(str.GetLength() - 1);if(str = )str =0;m_editCurData.SetWindowText(str);二十二、为函数 OnButtonEqual ( ) 添加代码如下。 (等于)void CMy02exam62Dlg:OnButtonQueal()/ TODO: Add your control

23、 notification handler code hereUpdateData(TRUE);/ 取回参与运算的第二个变量switch(m_curType)case ADD: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_Cur

24、Data * m_CurData;break;case PF:m_CurData = sqrt(m_CurData);break;case SIN:m_CurData = 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);b

25、reak;UpdateData(FALSE);(9)、编译运行程序,实现加法,减法、乘法及除法,正弦,余弦,正切,开方,平方,退格,清零功能,完成简易计算器9 02e)cam62Win32如图3.3进制转换工具设计步骤(1)打开Microsoft Visual C+ 6.0, 在文件中点击新建,在弹出框内选择 Console Application 工程,输入工程名 02exam62及其所在位置点击确定, 3-10所示。文件 工理 工佐区 其它文构蜀 ATL COM AppWuardCluster Resource Type WizardCustom AppWiz*rdDatabase Pro

26、jectDevSludlo Add-in Wizard 普 Extended Stored Proc Wizard I,SAPI Extension Wizard星Makefile霸MFC ActiveX ControlWizardBMFC AppWizard (dll)MFC AppWizard (extT Utility Project 呈| Win32 Application 二Win32 Console ApplicationW Win32 Dynamic-Link Library工笈名4IM:04exam62位置FiS0iexam62行创建法的工作空间回索加到当前工作空间回 r票展于

27、回:|口2e黑事n)E2平台即iWini?-确企取褶置 Win32 Static Library图3-10选择工程(2)将弹出 Win32 Console Application 1对话框,选择 Hello Word 点击完成,如图3-11所示。Win32 ConsoEe Application -步骤 1 共 1 步更刎要创魏什么类型的控制台程序?一个空工程问一个福单的程序同.一个 nHeHo, World即程序W一个支持MFC的程序完成取消j图3-11选择类型(3)、新建源文件与头文件,新建方式如图3-12(4)、创图3-12新建文件 建后如图3-13。-:& Source Files 国

28、 04exam62.cpp圜 StdAfx.cpp 国 zhuanhuan.cpp-1 tJ Header Files_g shuzhi.h 圜 StdAfx,hI Resource Files司 ReadMctxt图 3-13 创建后( 4) 、在头文件shuzhi.h 中添加代码。void zhuanh(int numa, int numb);(5)、修改04exam62.cpp 内的代码如下。#include stdafx.h#includeshuzhi.hint main(int argc, char* argv)int num, shu, i;printf( 请输入一位十进制数(空格

29、)想要得到的进制 n);scanf(%d%d, &num, &shu);zhuanh(num, shu);printf(Hello World!n);return 0;( 6) 、在源文件zhuanhuan.cpp 中添加代码如下。#include stdafx.h#includevoid zhuanh(int numa, int numb)int string40, i = 0 , j, temp;dotemp = numa % numb;if (temp 9)stringi = char (temp + 55);elsestringi = char(temp + 48);numa = nu

30、ma / numb;i+; while (numa != 0);for (j = i - 1; j = 0; j-)printf(%c, stringj);printf(n);(7)、编译运行结果如下3-14.rF 瞄I文件夹 J 04exa nn62Debu g04exa m62rexe-请输入一位十进制数(空格)想要得到的进制4 口 e。32 Hello World?“ V I”Pi*ess Any key to cent inue图3-14编译运行结果结论经过C+课程理论学习与上机操作,我在老师和同学的共同帮助下,顺利完成该 课程设计,收获很大。本学期我们开设了面向对象程序设计课,正所谓

31、“纸上谈兵终觉浅,觉知此事要躬行。”这样不仅能加深我们对MFCS序设计的掌握,而且还及时、真正的做到了学以致用。主要是以下几点。基本功要过硬。 不能马虎经常犯些小错误, 提高自己找错纠错能力, 通常错误总是那几种,多练习就熟练了。要善于查找资料提高自己的资料查询能力, 要善于利用网络来获得知识, 获得帮助。开始着手程序设计时,有些功能感觉无从下手,都不知道要干什么。这些问题只要找到相关的资料就会得到提示从而理解所要解决问题的大致方向。有了明确的目的,就可以发挥自己的头脑来完成它了。要善于思考。 程序中有些实现难点和最初完成程序时免不了的许多不足就需要自己根据代码认真思考来解决。只有这样才能纠正程序的不足并使其更加人性化。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1