计算器的设计与实现

上传人:mg****85 文档编号:34389286 上传时间:2018-02-23 格式:DOC 页数:16 大小:2.04MB
返回 下载 相关 举报
计算器的设计与实现_第1页
第1页 / 共16页
计算器的设计与实现_第2页
第2页 / 共16页
计算器的设计与实现_第3页
第3页 / 共16页
计算器的设计与实现_第4页
第4页 / 共16页
计算器的设计与实现_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算器的设计与实现》由会员分享,可在线阅读,更多相关《计算器的设计与实现(16页珍藏版)》请在金锄头文库上搜索。

1、Windows 程序设计报告书(2013)J I A N G S U U N I V E R S I T Y科学计算器的的设计windows 窗体应用程序学 院:计算机科学与通信工程专业班级:计算机科学与技术 1102 班姓 名:戴桂明学 号: 3110602041指导老师:曹汉青日期:2013 年 12 月 20日Windows 程序设计报告书(2013)目 录1 选题原因及理由 .32 设计思想及框架 .3一. 主体功能 .3二. 开发环境 .33 相关表格和流程图 .4一. 系统功能表 .4二. 系统流程图 .54 设计特点及关键算法 .55 测试结果及测试分析.66设计总结.77 附录

2、(源代码).8Windows 程序设计报告书(2013)2计算器的设计与实现 1 选题原因及理由我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器, 所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,求幂,求 e 的指数次方,求平方根,求 Sin,求 Cos,求 Tan 及其反函数等。也可达到以下目的:1、巩固并加深学生对 C+语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用 VC+ 2008 集成开发环境;4、提高运用 C+语言解决

3、实际问题的能力; 5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的窗体应用系统;6、掌握书写程序设计开发文档的能力。2 设计思想及框架课题名称:高级计算器的实现说明:实现一个计算器。要求: 1)用“计算器”的标准视图执行简单的计算。2)用其科学型视图执行高级的科学计算。一主体功能1、十进制数的加、减、乘、除、乘方、取模等简单计算。2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运算。3、以角度、弧度两种方式实现上述部分函数。二 开发环境VC+ 2008Windows 程序设计报告书(2013)33 相关表格和流程图一 系统功能表表 3-1 系

4、统功能表1) 假设执行操作“+” ,先输入一个数,再输入“+” ,再输入另一个数,最后输入“+” 。整个功能“+”就执行完毕。2)执行操作“Sin”,先输入一个数,在输入“Sin” ,整个功能“Sin”就执行完毕。序号 文件名 主要功能 备注1 + 加法求和 两个操作数2 - 减法求差 两个操作数3 * 乘法求积 两个操作数4 / 除法求商 两个操作数5 x 求 x 次方根 两个操作数6 求 x 的 y 次幂 两个操作数7 . 小数点8 Sin 求正弦 一个操作数9 Cos 求余弦 一个操作数10 Tan 求正切 一个操作数11 acsin 反正弦 一个操作数12 accos 反余弦 一个操作

5、数13 actan 反正切 一个操作数14 ln 求对数 一个操作数15 C 清除当前操作数16 = 等于17 CE 寄存器清零18 x-y 科学计数法 一个操作数Windows 程序设计报告书(2013)4二 系统流程图图 3-1 系统流程图4 设计特点及关键算法此次的高级计算器设计利用了 windows 窗体程序的多样性和程序实现的实用性,巧妙地展现了 c+程序语言的面向对象性,程序简洁但却功能齐全。关键算法为实现加减乘除等算法以及各种正弦余弦函数和科学计数法等,最主要是本计算器可以以角度和弧度两种度量方法进行计算。加法减法乘法除法求幂求x次方根寄存器清零开方正弦余弦对数输入第二个操作数显

6、示结果结束开始输入第一个操作数选择一种计算方法Windows 程序设计报告书(2013)55 程序结果及测试分析经测试标准型计算器,进行简单的四则运算,结果均正确,如图 5-1 所示。图 5-1 四则运算测试结果图测试科学型计算器,进行 sin,cos,tan,log,ln,等运算,结果均正确,求sin90(如图 5-2 所示)。图 5-2 求 sin90 测试结果图Windows 程序设计报告书(2013)66 设计总结通过几个星期的准备,总算把程序设计给完成了。刚开始,可以说是完全没有头绪,于是上网查,觉得计算器这个题目不错。找到了些与我选定的题目相关的资料,再对照书本进行编写,测试,最后

7、得到我这次课程设计所需要的代码.通过科学计算器的设计这一课题的设计和实现,我对简单的 C+语言编程有了进一步的认识,对 windows 窗体应用程序更加熟练了,也对 Microsoft Visual C+ 2008 这个软件的操作更加熟练了一些。回顾此次的课题设计,我学到了很多东西不仅巩固了书本的知识并且与实践相结合提高具体操作能力,在设计的过程中发现自己的不足,有些知识掌握的不够牢靠,通过这次的课题设计之后我把前面所学的知识又重新温故了一遍。同时,在老师和同学身上我学到了很多非常实用的知识,在此对给过我帮助的同学和老师表示由衷的感谢! Windows 程序设计报告书(2013)7附 录 源程

8、序清单 #include stdafx.h#include Calculator.h#include CalculatorDlg.h#include ExpressionSolver.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于应用程序“关于” 菜单项的CAboutDlg 对话框class CAboutDlg : public CDialogpublic:CAboutDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* p

9、DX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()/ CCalculatorDlg 对话框CCalculatorDlg:CCalculatorDlg(CWnd* pParent /*=NUL

10、L*/): CDialog(CCalculatorDlg:IDD, pParent), m_IsScientific(0), m_IsRad(FALSE), m_nIndex(-2)m_Font.CreatePointFont(15,_T(微软雅黑);m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);for (UINT i = 0; iAppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ 设置此对话框的图标。当应用程序主窗口不是对话框时

11、,框架将自动/ 执行此操作SetIcon(m_hIcon, TRUE); / 设置大图标SetIcon(m_hIcon, FALSE); / 设置小图标/ TODO: 在此添加额外的初始化代码return TRUE; / 除非将焦点设置到控件,否则返回TRUEvoid CCalculatorDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ 如果

12、向对话框添加最小化按钮,则需要下面的代码/ 来绘制该图标。对于使用文档/视图模型的MFC 应用程序,/ 这将由框架自动完成。void CCalculatorDlg:OnPaint()if (IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);

13、CRect rect;GetClientRect(int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ 绘制图标dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();Windows 程序设计报告书(2013)10/当用户拖动最小化窗口时系统调用此函数取得光标/显示。HCURSOR CCalculatorDlg:OnQueryDragIcon()return static_cast(m_hIcon);void CCalculatorDlg:O

14、nOK()/ TODO: 在此添加专用代码和/或调用基类OnBnClickedEqual(); /按回车时自动执行计算,等同于点击Button1/CDialog:OnOK();void CCalculatorDlg:OnBnClickedEqual()/ TODO: 在此添加控件通知处理程序代码m_IsScientific = 0; / 按下“=” ,默认不用科学计数法CString str_in;UpdateData(TRUE);EditBox1.GetWindowText(str_in);m_nIndex = -1;for( int i = 19; i = 1; i- )m_PreviousExpressioni = m_PreviousExpression i - 1 ;m_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号