c++实现计算器课程设计报告

上传人:文*** 文档编号:47678862 上传时间:2021-12-25 格式:DOCX 页数:22 大小:151.36KB
收藏 版权申诉 举报 下载
c++实现计算器课程设计报告_第1页
第1页 / 共22页
c++实现计算器课程设计报告_第2页
第2页 / 共22页
c++实现计算器课程设计报告_第3页
第3页 / 共22页
资源描述:

《c++实现计算器课程设计报告》由会员分享,可在线阅读,更多相关《c++实现计算器课程设计报告(22页珍藏版)》请在装配图网上搜索。

1、得分:信电工程学院课程设计报告基于VC的表达式计算器软件设计课程:程序设计综合训练1班级: 12 软嵌2班学号: 223姓名:谢文靖指导教师:朱丽2013年6月28日1引言1课题背景2课程设计目的32需求分析5系统功能模块5设计要求63系统实现8对话框界面设计8数值计算功能的实现104程序关键代码及运行结果125总结与体会151 引言课题背景 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用VC+勺知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便, 对广大中小学生

2、的学习有巨大帮助作用, 也对在职人员的工作有点帮助作用 .课程设计目的本课程是一门实践性很强的课程,既要熟练掌握相关概念,又要动手编程, 还要上机调试运行。 同时, 本课程也注重提高学生编写技术文档和技术文档阅读的能力。 学生通过本课程的学习实践, 将学习和强化软件开发的能力、 文档写作能力、英语阅读能力、软件使用能力等。为今后计算机编程的学习和工作打下良好、 扎实的理论实践基础。2 需求分析系统功能模块1)输入的符号,数字从左向右显示; 点击“=”输出结果,在输出行显示2)支持加减乘除运算;3)支持“x? y”的运算;4) 括号“ (” “) ”的使用 ;5)支持混合运算;6)功能键 ”AN

3、S , CLEAR , “BACKSPACE勺使用;7)计算器的输入方式:支持鼠标点击计算器键输入;8) 计算器计算结果的输出方式:在计算器窗口的输出行显示9) 算数运算的数据类型:整数和浮点数;10) 特殊情况的计算;11)以上所有的运算都是在10进制下进行.1)输入的符号,数字从右向左显示点击“二”输出结果,在输出行显示.2)支持加减乘除运算.b.c.d.除法运算(特殊情况见)9/42)支持求次方(x ? y)运算。求次方(x ? y)运算:为次方(x ? y)在输入行中的显示符号4? 24)的使用。(括号的使用)要使用的时候,先点击“(”,再输入数字或符号,内容输入完毕 以后,点击“)”

4、,完成的所有功能。例如:2 X (2+2)=22*(2*(2+22*(2+2)2* (2+2)5)支持混合运算。附:运算符的优先级表优先级功能键显示结合律从(、)( 、 )自左向右高1x? v、1/x?、自左向右到X、+*、/自左向右低自左向右例如:(5+2) X5=混合运算则按优先级表中的运6)功能键 CLEAR及“ BACKSPACE勺使用。(5+2) *5a . “CLEAR为清0键。只要按下“ CLEAR键,输入行所有字符清0,输出行回到原始状态(5+2) *5输入前:输入后:b. ”BACKSPAC的退格键。当输入任何数字或运算符,只要按下“BACKSPACE键,字符位自右向左消去一

5、位。(注:初始的“ 0”不能被删除)输入前:(5+2) *5输入后:(5+2) *ANS键就会显示C. ANS为变量储存器。当一次结果被清除后,只要按下这个结果如:7)计算器的输入方式:只支持鼠标点击计算器键输入8)计算器计算结果的输出方式:在计算器窗口的输出行显示。9)算数运算的数据类型:整数和浮点数。a.输入行最大显示的字符数32位,每个运算符算一位;b.,(,“),各占一个字符位;c.输出行最大显示的字符数为32位;d.纯小数显示的最大字符数为小数点后 30位,整数及小数点各占一位;若纯小数为负数,则显示最大字符数为小数点后29位,“-”占一位;e.输入行在未输入任何数字的时候,显示“

6、0”,只占一个字符位;当输入任何 数字时。“0”消失,输入的的数字取代“ 0”;当输入任何运算符时。默认之前输 入数字“ 0” ;f.点击“二”键后方可显示数字或字母或汉字。10)特殊情况的运算A.运算结果整数部分超出32位,显示Infinity(无穷大);出现运算异常!B.除数为0的情况,提示用户被除数不能为零!1/0 C.在运算时,若结果为纯小数,小数位超过 30位,则超出的字符舍弃 皿-06若舍弃超出部位后,结果全为 0,则结果为01/99A99D.在运算时,若结果的整数位不为 0a.总位数在最大字符位内,则直接显示;b.总位数在最大字符位以外,整数部分在最大字符位以内,则只优先显示整数

7、部位,弃掉32位以后的字符5/3E.当用户输入“八0”时,若“八0”之前的算式或数字的值为0,点击“二”后, 输出界面显示“底数不能为0”11)以上所有的运算都是在10进制下进行设计要求(1) 了解Windows编程的基础知识,掌握 MFCS用程序的基本知识。(2)理解需求分析过程,掌握需求分析文档编写。(3)理解面向对象程序设计的基本思路和方法。(4)掌握用VC+秆发MFCS用程序的一般步骤和方法。(5)掌握基于对话框的应用程序的编写,主要包括文本框和按钮等。(6)掌握后缀表达式算法。(7)掌握VC+钎发工具的使用。包括资源管理,项目创建,运行调试等。(8)完成表达式的计算器应用程序,实现基

8、本的加、减、乘、除等四则运算,且支持包括括号的表达式运算功能。3系统实现对话框界面设计显示框乘方退格键等于导E括号运售港零键BackS-pace数值计算实现例如:2 X (2+2)=csssED软国际山口2*(2+22*(2+2)2* (2+2)4 程序关键代码及运行结果#include #include #include #include using namespace std;bool jisuan(double a,double b,char c,double& d)switch (c)case +:d=a+b;using namespace std;#ifdef _DEBUG#defi

9、ne new DEBUG_NEW#endifvoid CCompuetrDlg:OnPaint()if (IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(), 0);/ 使图标在工作矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = () - cxIcon + 1)

10、/ 2;int y = () - cyIcon + 1) / 2;/ 绘制图标(x, y, m_hIcon);elseCRect rect;CPaintDC dc(this);GetClientRect(rect);(rect,RGB(255,0,0);/ 设置背景颜色CDialog:OnPaint();CDialog:OnPaint();/ : 定义应用程序的类行为。/#include #include #include #ifdef _DEBUG #define new DEBUG_NEW#endif/ CCompuetrAppBEGIN_MESSAGE_MAP(CCompuetrApp,

11、 CWinApp)ON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CCompuetrApp 构造CCompuetrApp:CCompuetrApp()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在 InitInstance 中/ 唯一的一个CCompuetrApp 对象CCompuetrApp theApp;/ CCompuetrApp 初始化BOOL CCompuetrApp:InitInstance()/ 如果一个运行在 Windows XP 上的应用程序清单指定要/ 使用 版本 6 或更高版本来启用可视化方式,

12、/ 则需要 InitCommonControls() 。否则,将无法创建窗口。InitCommonControls();CWinApp:InitInstance();/ 标准初始化/ 如果未使用这些功能并希望减小/ 最终可执行文件的大小,则应移除下列/ 不需要的特定初始化例程/ 更改用于存储设置的注册表项/ TODO: 应适当修改该字符串,/ 例如修改为公司或组织名SetRegistryKey(_T( 应用程序向导生成的本地应用程序);CCompuetrDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = ();if (nResponse = IDOK)/

13、 TODO: 在此放置处理何时用“确定”来关闭/ 对话框的代码else if (nResponse = IDCANCEL)/ TODO: 在此放置处理何时用“取消”来关闭/ 对话框的代码/FALSE 以便退出应用程序,/ 而不是启动应用程序的消息泵。return FALSE;/stack#include#include#include using namespace std;template class LinkedStack;template class Nodefriend LinkedStack;private:T data;Node *link;template class Linke

14、dStackpublic: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 LinkedStack:LinkedStack()Node *next;while(top)next=top-link;

15、delete top;top=next;template bool LinkedStack:isFull()consttryNode *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:Add(const T& x)Node *p=new Node;p-data=x;p-link=to

16、p;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;5总结与体会计算器虽然是我们生活中常见的一样工具, 但不知道实现这样一个工具,说 实话不是很简单,对于我这个学习一般的人来说,很难! !计算器虽小,但包含 了一些简单却又重要的功能,包括加减乘除,次方,括号等一些基本功能,它方 便了大众的日常生活中遇到的计算问题。完成这个任务,说实话很艰难,但挺了过来,坚持了过来,所谓凡事贵在坚持,所以要学会坚持,坚持就是胜利。一个 人的力量是有限的,学会与人合作, 积极请教他人谦虚学习是必要的,它只会让 你更加的进步,会更好。所以这个任务让我学到了很多,坚持,努力,合作,进 取,积极向上,天下无难事,只要肯用心! !

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!