ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:2.19MB ,
资源ID:3800863      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3800863.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于visual c++的数字键盘式简单计算器课程设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于visual c++的数字键盘式简单计算器课程设计.docx

1、基于visual c+的数字键盘式简单计算器课程设计大作业课程名称: 软件技术基础 题 目: 简单计算器 院 (系): 信息与控制工程学院 专业班级: 电子信息工程0801 姓 名: 李芃博 学 号: 080640116 指导教师: 周方晓 2011 年 7 月 6 日西安建筑科技大学大作业设计(论文)任务书专业班级: 电子0801 学生姓名: 李芃博 指导教师(签名): 一、大作业题目 简单计算器二、本次大作业应达到的目的具有简单计算功能的计算器,输入被计算的数据及运算操作,输出正确计算结果。 三、本次大作业任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 系统的主要功能有: 窗口

2、界面的计算器; 通过按钮键输入数据; 能够完成加、减、乘、除、求倒数、开方等一般运算; 输出结果具有一定精度四、应收集的资料及主要参考文献: 1 宋金珂编著, VC+程序设计基础教程,清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3 辛长安编著.VC+编程技术与难点剖析.清华大学出版社4 陈恭和编著.数据库Access 2002应用教程.清华大学出版社5 王瑞编著.Visual C+数据库系统开发完全手册.人民邮电出版社6 王春才编著.Visual Basic数据库系统开发完全手册.人民邮电出版社7 高春艳.Visual Basic数据库系统开发案例精选.人民邮电出版社8 李晓黎编著

3、.Visual Basic +SQL Server数据库应用系统开发与实例. 人民邮电出版社9 启明工作室编著.Visual Basic+Access数据库应用系统开发与实例. 人民邮电出版社10 启明工作室编著.Visual C+ + SQL Server数据库应用系统开发与实例. 人民邮电出版社五、审核批准意见教研室主任(签字) 一、需求分析1.1开发背景41.2项目目标41.3运行环境41.4项目任务书5二、技术路线2.1制作界面52.2总体方案52.3详细设计8三、编程实现3.1核心代码193.2运行结果29四、测试分析30五、个人总结34六、参考文献35简单计算器1 需求分析1.1开

4、发背景软件不同于硬件的最主要特点就在于它的不确定性,软件产品很难满足用户的需要,所以就需要不断的进行更新.随着科技的发展,人们在很多地方都要用到计算器来进行工程和商业上的运算,计算器在日常生活中的重要地位已经举足轻重.计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用VC+的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。1.2项目目标在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对

5、语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是面向对象程序设计方法。由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为C+程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。1.3运行环境硬件::计算机(CPU 主频 1.81GHz、512MB内存)软件:Windows XP 操作系统,Visual C+6.0 是Microsoft公司在1998年推出的基于Windows 9X和Windo

6、ws NT的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问C+源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。Visual C+6.0不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在Visual C+6.0集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项工作。VC+6.0是Windows 95/98、XP或Windows NT下的一个应用程序,本身对软硬件没有特殊要求。就是说它对环境的要求与Windows 95/98、Windows NT要求是一致的。硬件要求:一般在586以上的

7、处理器、16MB以上内存、100MB以上的硬盘。软件要求:Windows 95/98或Windows NT3.51以上版本。VC+ 6.0系统可以在一张CD盘上,也可以在“Visual Studio( Visual C+、Visual Foxpro)”等产品的第一张CD盘上。一般都有一个VC的自动安装程序,也可以执行VC6目录下的setup.exe,在安装包的提示下进行,对初学者可采用“典型安装”方式。在安装好VC 6.0系统后,有时根据需要添加或删除某些部件,可插入CD盘重新执行setup.exe安装程序,安装程序会检测当前系统安装VC6的足件,用户单击“添加删除”按钮后,在“安装维护”对话

8、框中选定要添加的部件或撤消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1)通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C+ 6.0 中文版”程序。(2)用户也可以使用命令行启动VC。单击“开始”按钮后选择“运行”命令,在“运行”对话框中输入c:Program FilesMicrosoft Visual StudioVC98VC6.exe(按默认盘符和路径安装)即可。1.4项目任务书(1).软件功能描述:系统的主要功能有: 窗口界面的计算器; 通过按钮键输入数据; 能够

9、完成加、减、乘、除、求倒数、开方等一般运算; 输出结果具有一定精度。(2)工程进度安排如下:第一周:系统框架设计;编码和单元测试;第二周:集成系统将个子系统组合起来;测试阶段;2 技术路线2.1制作界面我们采用了当前最流行的VC+6.0 作为开发工具,运行平台是WINDOW 2000/XP。通过C+提供的MFC类库,各成员按照分工和进度完成各自任务。最后再将各功能模块集成起来。2.2总体方案2.2.1窗体设计2.2.2编辑对话框及控件资源按钮控件资源清单按钮名称按钮ID用途0IDC_0_BUTTON按键01IDC_1_BUTTON按键12IDC_2_BUTTON按键23IDC_3_BUTTON

10、按键34IDC_4_BUTTON按键45IDC_5_BUTTON按键56IDC_6_BUTTON按键67IDC_7_BUTTON按键78IDC_8_BUTTON按键89IDC_9_BUTTON按键9.IDC_DECIMAL_BUTTON小数点=IDC_EQUAL_BUTTON求值2.2.3功能模块图2.3详细设计2.3.1利用appwizard建立对话框工程建立新工程,选中MFCAPPWizardexe,输入工程名字并保存路径。选中工程类型为对话框工程单击OK键完成新工程建立2.3.2设计计算器窗口新建编辑框和数字键编辑列选框“操作类型”2.3.3设置数字键盘上按钮的名称和属性2.3.4添加变

11、量给编辑框添加的变量名字为“m_result”,类型为“Cstring”;给列表框添加的变量名字为“m_Operatorbox”类型为“ClistBox”;除此之外定义全局变量如下:int math_i;double count=10;char buffer10;double input_int=0,input_dec=0;double input1=0,input2=0;double value=0;bool decimal=FALSE;2.3.5给数字键按钮添加处理函数各个处理函数列表如下:按钮名称函数0On0Button1On1Button2On2Button3On3Button4On4

12、Button5On5Button6On6Button7On7Button8On8Button9On9Button.OnDecimalButton=OnEqualButton2.3.6为按钮添加代码为数字键0添加代码如下:void CMyDlg:On0Button() / TODO: Add your control notification handler code here if(decimal) input_dec=input_dec+0/count; count=count*10; else input_int=input_int*10+0; value=input_int+input_

13、dec; _gcvt(value,10,buffer); m_ResultEdit=(LPCTSTR)buffer; UpdateData(FALSE);为数字键1填加代码如下:void CMyDlg:On1Button() / TODO: Add your control notification handler code hereif(decimal) input_dec=input_dec+1/count; count=count*10; else input_int=input_int*10+1; value=input_int+input_dec; _gcvt(value,10,bu

14、ffer); m_ResultEdit=(LPCTSTR)buffer; UpdateData(FALSE); 其余数字键代码基本相同,本文省略。为小数点代码添加代码在OnInitDialog 中添加代码如下:m_Operatorbox.AddString(乘); m_Operatorbox.AddString(除); m_Operatorbox.AddString(加); m_Operatorbox.AddString(减); m_Operatorbox.AddString(求倒数); m_Operatorbox.AddString(开方);在函数OnSelchangeOperatorLis

15、t()代码如下:void CMyDlg:OnSelchangeOperatorList() / TODO: Add your control notification handler code hereinput1=input_int+input_dec;decimal=FALSE;input_int=0;input_dec=0;count=10;math_i=m_Operatorbox.GetCurSel(); 填加等于键的运算代码如下:void CMyDlg:OnEqualButton() / TODO: Add your control notification handler code

16、 hereinput2=input_int+input_dec;decimal=FALSE;input_int=0;input_dec=0;count=10;switch(math_i)case 2: value=input1+input2; break;case 3: value=input1-input2; break;case 0: value=input1*input2; break;case 1: value=input1/input2; break;case 5: value=1/input1; break;case 4: value=sqrt(input1); break;_gc

17、vt(value,10,buffer);m_ResultEdit=(LPCTSTR)buffer;UpdateData(FALSE);2.3.7保存完成的工程2.3.8编译与运行编译界面运行界面3 编程实现3.1核心代码本设计的简单计算器的全部如下:/ 数字键盘式计算器Dlg.cpp : implementation file/#include stdafx.h#include 数字键盘式计算器.h#include 数字键盘式计算器Dlg.h#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_F

18、ILE = _FILE_;#endifint math_i;double count=10;char buffer10;double input_int=0,input_dec=0;double input1=0,input2=0;double value=0;bool decimal=FALSE;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic: CAboutDlg();/ Dialog Data /AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ;

19、/AFX_DATA / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected: /AFX_MSG(CAboutDlg) /AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)

20、/AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CAboutDlg) /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog) /AFX_MSG_MAP(CAboutDlg) / No message handlers /AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(C

21、Wnd* pParent /*=NULL*/) : CDialog(CMyDlg:IDD, pParent) /AFX_DATA_INIT(CMyDlg) m_ResultEdit = _T(); /AFX_DATA_INIT / Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchang

22、e(pDX); /AFX_DATA_MAP(CMyDlg) DDX_Control(pDX, IDC_OPERATOR_LIST, m_Operatorbox); DDX_Text(pDX, IDC_RESULT_EDIT, m_ResultEdit); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog) /AFX_MSG_MAP(CMyDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_0_BUTTON, On0Button) ON_BN_CLI

23、CKED(IDC_1_BUTTON, On1Button) ON_BN_CLICKED(IDC_2_BUTTON, On2Button) ON_BN_CLICKED(IDC_3_BUTTON, On3Button) ON_BN_CLICKED(IDC_4_BUTTON, On4Button) ON_BN_CLICKED(IDC_5_BUTTON, On5Button) ON_BN_CLICKED(IDC_6_BUTTON, On6Button) ON_BN_CLICKED(IDC_7_BUTTON, On7Button) ON_BN_CLICKED(IDC_8_BUTTON, On8Butto

24、n) ON_BN_CLICKED(IDC_9_BUTTON, On9Button) ON_BN_CLICKED(IDC_DECIMAL_BUTTON, OnDecimalButton) ON_LBN_SELCHANGE(IDC_OPERATOR_LIST, OnSelchangeOperatorList) ON_BN_CLICKED(IDC_EQUAL_BUTTON, OnEqualButton) /AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog() CDialog:OnInitDial

25、og(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does

26、 this automatically / when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon / TODO: Add extra initialization here m_Operatorbox.AddString(乘); m_Operatorbox.AddString(除); m_Operatorbox.AddString(加); m_Operatorbox.AddString(减

27、); m_Operatorbox.AddString(求倒数); m_Operatorbox.AddString(开方); return TRUE; / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialog:OnSysCommand(nID, lParam); / If you add a minimize button to your dialog, you will need the code below/ to draw the i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1