收藏 分销(赏)

模拟计算器程序C++.doc

上传人:二*** 文档编号:4512176 上传时间:2024-09-26 格式:DOC 页数:31 大小:308KB
下载 相关 举报
模拟计算器程序C++.doc_第1页
第1页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. -课程设计课程名称C+程序设计课程设计题目名称模拟计算器程序专业班级2016级软件工程3班学生齐佳宁、江亮亮、余唐丽、小云学 号51602043027、51602043028、51602043008、51602043016指导教师华文立二一七年十二月二十五日. . word.zl-. -学院计算机工程学院本科课程设计成绩评定表工程权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规化要求,用A4复

2、印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语:等级: 指导教师:年月日. . word.zl-. -学院计算机工程学院课程设计任务书课 程C+程序设计课程设计班级2016级软件工程3班指导教师华文立题 目模拟计算器运行程序完成时间2017年12月20日至2017年1月15日主要容要求完成以下功能:1 程序支持算数运算+、-、*、/、=,以及C清楚、A全清楚2 程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入“

3、=符号后,窗口显示出结果设计报告要求1封面: 2课程设计任务书3课程设计报告: 系统总体方案设计思路和主要步骤各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整可以打印,文字不少于5000 字,并装订成册。版面要求1 题目用黑体三号,段后距18磅或1行,居中对齐;2 标题用黑体四号,段前、段后距6磅或0.3行;3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一、“、“1、“顺序编号。上机时间安排2016级软件工程3班10-18周, 周三1-2节指导地点实验室B523. . word.zl-. -分工协作说明课题名称学

4、生学号所做的工作文件加解密系统江亮亮51602043028工程框架总体设计、整体工程指导、综合设计文档编写齐佳宁51602043027需求分析、C+编码余唐丽51602043008后台代码测试、整理资料、打印小云51602043016局部代码编写、分模块测试. . word.zl-. -摘 要计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用VC+的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和准确度。该计算器使用非常简单和方便,对广阔中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用.

5、本课程设计将实现一个简单计算器。其类似于Windows附件中自带的计算器。这个计算器不仅实现了简单的四那么运算功能,还实现了高级的科学计算功能,而且具有简洁大方的图文外观。它的设计按软件工程的方法进展,系统具有良好的界面、必要的交互信息和较好的强健性使用人员能快捷简单地进展操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。在课程设计中,系统开发平台为Windows2000XP,程序设计设计语言采用VisualC+,在程序设计中,采用了构造化与面向对象两种解决问题的方法。关键词:程序设计,计算器,MFC,按钮控件SummaryCalculato

6、r is a very convenient and effective tool in daily life, which can add, subtract, multiply, divide, root, and calculate the simple operation of the reciprocal.To implement the calculation function, you can use the knowledge ofVC + +to write a program to solve this problem.The calculator greatly redu

7、ces the difficulty of the numerical calculation and improves the accuracy and accuracy of the calculation.The calculator is very simple and easy to use, for the majority of primary and secondary school students to learn a great help, but also for the work of the staff a little Help.This course desig

8、n will implement a simple calculator.It is similar to a calculator that is included with theWindowsattachment.This calculator not only realizes the simple operations function, but also realizes the advanced scientific putation function, and has the concise and elegant picture and text appearance.It

9、is designed according to the method of software engineering,the system has a good interface, necessary interaction information and good robustness of the user can quickly and easily operate.The real-time and accurate calculation results can reduce the difficulty of digital calculation and save time,

10、 which will help peoples life.In the course design, the system development platform isWindows 2000XP, the programming language adoptsVisual C + +, and in the programming, it adopts structured and object-oriented two kinds of problem solving methods.Tags: programming, calculator,MFC, button controls目

11、录摘要 81.选题意义1.1设计任务 12 1.2设计目标 12 1.3关于visual C+ 13 1.4可行性及需求分析 14二、系统功能与设计 2.1系统功能15 2.2对话框界面设计18 2.3数值计算设计19三、主要成员函数关系图四、源代码20五、结语 30参考文献 31选题意义1.1设计任务此题选择意义在于引导学生学会设计简单的科学计算器,进一步掌握Visual C+应用程序。统地学习面向对象编程思想,了解 MFC架构,逐步熟悉可视化编程环境 Visual C+,并在此环境下设计并实现一个简单计算器系统。该计算器应能实现如下功能:1)、数的加、减、乘、除、乘方等简单计算2)、科学计

12、算函数,包括正弦、余弦、正切、余切、开方、对数、指数等函数运算3)、具备历史计算的记忆功能。1.2设计目标(1)了解Windows编程的根底知识,掌握MFC应用程序的根本知识。(2)理解需求分析过程,掌握需求分析文档编写。(3)理解面向对象程序设计的根本思路和方法。(4)掌握用VC+开发MFC应用程序的一般步骤和方法。(5)掌握基于对话框的应用程序的编写,主要包括文本框和按钮等。(6)掌握后缀表达式算法。(7)掌握VC+开发工具的使用。包括资源管理,工程创立,运行调试等。(8)完成表达式的计算器应用程序,实现根本的加、减、乘、除等四那么运算,且支持包括括号的表达式运算功能。1.3关于 visu

13、alc+Visual C+6.0 是 Microsoft 公司在 1998年推出的基Windows 9X和 WindowsN T 的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境, 程序员可以里利用该开发环境轻松地访问 C+源代码编辑器,资源编辑器和使用部调试器,并且可以创立工程文件。 Visual C+6.0 不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在 Visual C+6.0 集成环境中轻松地完成创立源文件, 编辑资源,以及对程序的编译,连接和调试等各项工作。VC+6.0是 Windows 9598、XP或 Windows NT下的一个应用程序,本身

14、对软硬件没有特殊要求。就是说它对环境的要求与 Windows 9598、Windows NT要一致的。硬件要求:一般在 586以上的处理器、16MB以上存、100MB以上的硬盘。软件要求:Windows 9598 或 Windows NT3.51 以上版本。VC+6 .0 系统可以在一 CD盘上,也可以在“Visual Studio( Visual C+、Visual Foxpro) 等产品的第一 CD盘上。一般都有一个 VC的自动安装程序,也可以执行 VC6目录下的 setup.exe ,在安装包的提示下进展,对初学者可采用“典型安装方式。在安装好 VC 6.0 系统后,有时根据需要添加或删

15、除某些部件,可插入 CD盘重新执setup.exe 安装程序,安装程序会检测当前系统安装 VC6的足件,用户单击“添加删除 按钮后,在“安装维护对话框中选定要添加的部件或取消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1)通过“开场按钮,选择“程序菜单,然后翻开“ Microsoft Visual studio 6.0 中文版子菜单中的“ Microsoft Visual C+ 6.0 中文版程序。(2)用户也可以使用命令行启动 VC。单击“开场按钮后选择“运行命令,在“运行 对话框中输入 c:Program FilesMicrosoft Visual StudioVC98V

16、C6.exe 按默认盘符和路径安装即可。1.4可行性及需求分析本设计是简单计算器。日常计算机使用中,常常涉及到一些有计算的问题,一个小型的计算器软件变得非常有用, 该校型计算器需要空间资源较少, 对电脑其他程序的应用影响较小。它的设计按软件工程的方法进展 , 系统具有良好的界面、必要的交互信息和较好的强健性;醒目美观的软件封面。使用人员能快捷简单地进展操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间, 对人们的生活有一定的帮助。本软件主要用于计算机 windows 2000XP 以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。 要程序能实现:加,减,乘,

17、除,开方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等等。系统功能与设计2.1系统功能1输入的符号,数字从右向左显示。先输入“88再输入“8*点击“=输出结果,在输出行显示.2)支持加减乘除运算.输入行a.乘法计算:8*3 24输出行 b. 加法计算1+01 c. 减法计算8-3 5d.除法运算特殊情况见10.B9/4 2.253)支持求次方(x y)运算。求次方(x y)运算:“为次方(x y)在输入行中的显示符号42 164“的使用。括号的使用要使用“的时候,先点击“,再输入

18、数字或符号,容输入完毕以后,点击“,完成“的所有功能。例如:22+2=?22*(2*(2+22*(2+2)2*2+2 85)支持混合运算。附:运算符的优先级表优先级功能键显示结合律从高到低( 、 ) 、自左向右xy、1/x、自左向右、*、/自左向右自左向右例如:5+25=?混合运算那么按优先级表中的运算符优先顺序从左向右计算5+2*5 356)功能键“CLEAR及“BACKSPACE的使用。 a“CLEAR为清0键。只要按下“CLEAR键,输入行所有字符清0,输出行回到原始状态。输入前:5+2*5输入后:0b.“BACKSPACE为退格键。当输入任何数字或运算符,只要按下“BACKSPACE键

19、,字符位自右向左消去一位。注:初始的“0不能被删除输入前:5+2*5输入后:5+2*C.“ANS为变量储存器。当一次结果被去除后,只要按下“ANS键就会显示这个结果。如:5+27按“CLEAR键后,再按“ANS键就会这样 7777)计算器的输入方式:只支持鼠标点击计算器键输入;8)计算器计算结果的输出方式:在计算器窗口的输出行显示。9)算数运算的数据类型:整数和浮点数。a.输入行最大显示的字符数32位,每个运算符算一位;b.“,“各占一个字符位;c.输出行最大显示的字符数为32位;d.纯小数显示的最大字符数为小数点后30位,整数及小数点各占一位;假设纯小数为负数,那么显示最大字符数为小数点后2

20、9位,“-占一位;e.输入行在未输入任何数字的时候,显示“0,只占一个字符位;当输入任何数字时。“0消失,输入的的数字取代“0;当输入任何运算符时。默认之前输入数字“0;f.点击“=键前方可显示数字或字母或汉字。10)特殊情况的运算A.运算结果整数局部超出32位,显示Infinity无穷大;出现运算异常! 9999999999999999*99999999 InfinityB.除数为0的情况,提示用户被除数不能为零!1/0除零错误C在运算时,假设结果为纯小数,小数位超过30位,那么超出的字符舍弃。2/30 .6666666666666666666666666假设舍弃超出部位后,结果全为0,那么

21、结果为01/9999 0 D在运算时,假设结果的整数位不为0a总位数在最大字符位,那么直接显示;b总位数在最大字符位以外,整数局部在最大字符位以,那么只优先显示整数部位,弃掉32位以后的字符5/3 1.6666E当用户输入“0时,假设“0之前的算式或数字的值为0,点击“=后,输出界面显示“底数不能为011) 以上所有的运算都是在10进制下进展2.2对话框界面设计2.3数值计算实现例如:22+2=?22*(2*(2+22*(2+2)2*2+2 8源代码源代码#include #include #include Stack.h#include using namespace std;bool ji

22、suan(double a,double b,char c,double& d) switch (c) case +: d=a+b;/couta+bendl;return true; case -: d=a-b;/couta-bendl;return true; case *: d=a*b;/couta*bendl;return true; case /:if(b=0)throw CString(除零错误!);/couta/bendl; d=a/b;return true;case ,: /couta,b0)/将符号压栈op.Add(char)num);elsechar mid;while(a

23、rraynum-40pre-400)int MyCheck=(int)name.at(i-1);if(MyCheck=48|MyCheck=41)break;else throw CString(括号中的表达式不合法);elsethrow CString(出现未匹配的);tryop.Delete(mid);catch(CString e)throw CString(出现未匹配的);double data1,data2; trydata.Delete(data2); data.Delete(data1);catch(CString e)throw CString(缺少操作数); if(!jisu

24、an(data1,data2,mid,data1) result=0; throw CString(表达式异常); data.Add(data1);pre=(int)op.Top();/ puetrDlg.cpp : 实现文件/#include stdafx.h#include puetr.h#include puetrDlg.h#include counter.h#include #include .puetrdlg.husing namespace std;#ifdef _DEBUG#define new DEBUG_NEW#endifvoid CpuetrDlg:OnPaint() if

25、 (IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height()

26、 - cyIcon + 1) / 2;/ 绘制图标dc.DrawIcon(x, y, m_hIcon);else CRect rect; CPaintDC dc(this); GetClientRect(rect); dc.FillSolidRect(rect,RGB(255,0,0);/设置背景颜色 CDialog:OnPaint();CDialog:OnPaint();/ puetr.cpp : 定义应用程序的类行为。/#include stdafx.h#include puetr.h#include puetrDlg.h#ifdef _DEBUG#define new DEBUG_NEW

27、#endif/ CpuetrAppBEGIN_MESSAGE_MAP(CpuetrApp, CWinApp)ON_MAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CpuetrApp 构造CpuetrApp:CpuetrApp()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在 InitInstance 中/ 唯一的一个 CpuetrApp 对象CpuetrApp theApp;/ CpuetrApp 初始化BOOL CpuetrApp:InitInstance()/ 如果一个运行在 Windows XP 上的应用程序清单指定要/

28、使用 Ctl32.dll 版本 6 或更高版本来启用可视化方式,/那么需要 InitmonControls()。否那么,将无法创立窗口。InitmonControls();CWinApp:InitInstance();/ 标准初始化/ 如果未使用这些功能并希望减小/ 最终可执行文件的大小,那么应移除以下/ 不需要的特定初始化例程/ 更改用于存储设置的注册表项/ TODO: 应适当修改该字符串,/ 例如修改为公司或组织名SetRegistryKey(_T(应用程序向导生成的本地应用程序);CpuetrDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dl

29、g.DoModal();if (nResponse = IDOK)/ TODO: 在此放置处理何时用“确定来关闭/对话框的代码else if (nResponse = IDCANCEL)/ TODO: 在此放置处理何时用“取消来关闭/对话框的代码 / 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,/ 而不是启动应用程序的消息泵。return FALSE;/stack#include#include#includeusing namespace std;template class LinkedStack;template class Node friend LinkedStack

30、;private:T data;Node *link;template class LinkedStackpublic:LinkedStack()top=0;length=0;LinkedStack();bool isEmpty()constreturn top=0;bool isFull()const;T Top() const; LinkedStack&Add(const T& x); LinkedStack&Delete(T& x);int getLength()return length; private:Node *top;int length;template LinkedStac

31、k:LinkedStack()Node *next;while(top)next=top-link;delete top;top=next;template bool LinkedStack:isFull()consttry Node *p=new Node;delete p;return false;catch(bad_alloc& e) return true;template T LinkedStack:Top()constif(isEmpty()throw CString(堆栈空异常!);return top-data;template LinkedStack& LinkedStack

32、:Add(const T& x) Node *p=new Node;p-data=x;p-link=top;top=p;length+;return *this;template LinkedStack& LinkedStack:Delete(T& x) if(isEmpty()throw CString(堆栈空异常!);x=top-data;Node *p=top;top=top-link;delete p;length-;return *this;结语课程设计到此已告一段落,经过团队的努力,在将近一个月的实践中课程设计根本完成了。从中学到很多有用的知识,也积累了不少珍贵的经历。从一开场对M

33、FC这样一个陌生的类库名词,在不断的翻阅书籍学习中开场渐渐的有所了解,虽然在此次课程设计我们只是针对性的去学习对对话框应用程序的编程模式,但也体会到了MFC这类库的博大精深。想全部了解这样一个类库,今后还需多下功夫。本次课程设计我们完成了一个简易计算器应用软件,在此期间,遇上了不少的技术难题,但是经过努力,通过查找资料,难题还是一个个被解决了,从中学到了许多课堂上没学到的东西,这是很值得快乐的。经过设计的各个环节,从中学到了很多,锻炼了系统的设计的能力,培养了团队分工合作精神。这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定根底。在本次实践期间对简易计算器的设计虽然大体实现各个控件的功能,但仍存在许多的缺乏与漏洞,还待以后的不断学习进一步完善。参考文献:1?Visual C+ 7.0 起步进阶?,国防工业 武装 等编著2?Visual C+ 根底教程?,电子科技大学,2006.6开发环境:Microsoft Visual C+ 6.0Microsoft Visual C+ 7.0. . word.zl-

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服