当前位置:文档之家› VC6_C++计算器与进制转换工具设计步骤加代码

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

成都信息工程学院面向对象程序设计开发文档题目:计算器和进制转换工具学院:控制工程学院班级:自动化学生姓名:学号:2011指导教师:姚禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站!!!二〇一二年十二月十三日课程名称:面向对象的程序设计学院:控制工程学院班级:自动化学生姓名:学号: 2011 指导教师:摘要本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还实现了三角函数计算功能,而且具有简洁大方的图文外观。

此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,充分降低了数字计算的难度和节约了时间。

编写一个简单的DOS窗口运行的工具,实现将任意的十进制整数转换成R进制数(R在2-16之间)。

本系统开发平台为Windows 7,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。

关键词:程序设计;计算器;MFC;按钮控件;进制转换目录引言 (1)第一章概述 (2)1.1 可行性分析 (2)1.2 需求分析 (2)第二章总体设计 (2)2.1 功能说明 (2)第三章软件设计 (3)3.1 计算器工程创建 (3)3.2 计算器开发步骤 (5)3.3 进制转换工具设计步骤 (13)结论 (18)引言计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平方等简单运算的工具。

要实现计算功能,可以用VC++的知识编写程序来解决此问题。

用。

在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。

本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算。

在日常工作中,有时会需要对数字进行进制的转换,但是笔算往往速度慢,而且有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。

第一章概述在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以一些进行高级的科学计算。

编程实现将任意的十进制整数转换成R进制数(R在2-16之间),使得进制转换避免笔算的失误。

1.1 可行性分析本设计第一是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。

它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。

使用人员能快捷简单地进行操作。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

本设计第二是编程实现将任意的十进制整数转换成R进制数(R在2-16之间),使得进制转换避免笔算的失误。

1.2 需求分析本软件主要用于计算机windowsXP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。

包含正余弦,平方,开方,三角函数等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。

包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。

第二章总体设计2.1 功能说明它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

(1)包含的功能有:加、减、乘、除运算,开方、平方,三角函数等功能。

(2)给对话框添加菜单。

(3)计算功能基本上是用系统内部函数。

(4)程序可以能自动判断输入数据的正确性,不出现多于一个小数点、以0开头等不正常现象。

(5)“A C”按钮可以清除所有已输入的数据从头计算。

第三章软件设计3.1 计算器工程创建(1)打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名02exam62及其所在位置点击确定,如图3-1所示。

图3-1 新建MFC AppWizard工程(2)将弹出MFC AppWizard-step 1对话框,选择基本对话框点击完成,如图3-2所示。

图3-2 基本对话框(3)这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图3-3所示。

图3-3 基本对话窗口3.2 计算器开发步骤1、创建控件在资源视图ResourceView中,选择Dialog中ID为IDD_MY_DIALOG的对话框,删除对话框上已有的控件。

然后利用控件工具箱,按照图3-4所示在该对话框上添加控件图3-4 Edit属性对话框(2)图3-5 Push Button属性(3)计算器界面布局完成之后,双击各个按钮,添加消息响应函数,如按钮1的消息函数添加如图3-6所示双击按钮1即可图3-6添加消息函数(4)修改编辑框Edit的ID为:IDC_EDIT_INPUT。

按下“Ctrl+W”弹出ClassWizard对话框,在该对话框属性页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 Function 增加成员函数,函数具体声明如图3-9所示:图3-8选择增加成员函数图3-9添加函数(7)为刚增加的SetInfo函数添加函数定义,代码如下:void CMyDlg::SetInfo(char c){if(m_bNextNumber)m_editCurData.SetWindowText("");m_bNextNumber = false;CString str;m_editCurData.GetWindowText(str); //得到的是字符串类型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_bNextNumber = 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) //输入数中,没有找到小数点,可以加入一个小数点,如果有小数点,就不能再加了。

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;m_curType = ADD;}十三、为函数OnButtonSub( )添加代码如下。

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

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

(除)void CMy02exam62Dlg::OnButtonDiv(){// TODO: Add your control notification handler code hereUpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = DIV;}十六、为函数OnButtonSin( )添加代码如下。

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

相关主题