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

上传人:X** 文档编号:55884757 上传时间:2022-10-31 格式:PDF 页数:20 大小:1.04MB
返回 下载 相关 举报
c++实现计算器课程设计报告.pdf_第1页
第1页 / 共20页
c++实现计算器课程设计报告.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《c++实现计算器课程设计报告.pdf》由会员分享,可在线阅读,更多相关《c++实现计算器课程设计报告.pdf(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。顾炎武我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。白居易 得分:信电工程学院 课程设计报告 基于 VC 的表达式计算器软件设计 课程:程序设计综合训练 1 班级:12 软嵌 2 班 学号:223 姓名:谢文靖 指导教师:朱丽 2013 年 6 月 28 日 人不知而不愠,不亦君子乎?论语忍一句,息一怒,饶一着,退一步。增广贤文目 录 1引言-1 课题背景-2 课程设计目的-3 2需求分析-5 系统功能模块-5 设计要求-6 3系统实现-好学近乎知,力行近乎仁,知耻近乎勇。中庸老当益壮,宁移白首之

2、心;穷且益坚,不坠青云之志。唐王勃-8 对话框界面设计-8 数值计算功能的实现-10 4程序关键代码及运行结果-12 5总结与体会 -15 吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?论语以家为家,以乡为乡,以国为国,以天下为天下。管子牧民1 引言 课题背景 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用 VC+的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用.课程设计目的 本

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

4、入;8)计算器计算结果的输出方式:在计算器窗口的输出行显示 9)算数运算的数据类型:整数和浮点数;10)特殊情况的计算;云路鹏程九万里,雪窗萤火二十年。王实甫丹青不知老将至,贫贱于我如浮云。杜甫11)以上所有的运算都是在 10 进制下进行.1)输入的符号,数字从右向左显示。先输入“8”8 再输入“”8*点击“=”输出结果,在输出行显示.2)支持加减乘除运算.a.乘法计算:8*3 b.加法计算 1+0 c.减法计算 8-3 d.除法运算(特殊情况见)9/4 2)支持求次方(x y)运算。求次方(x y)运算:“”为次方(x y)在输入行中的显示符号 4 2 输出行 输入行 一寸光阴一寸金,寸金难

5、买寸光阴。增广贤文宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。洪应明 4)“(”“)”的使用。(括号的使用)要使用“(”“)”的时候,先点击“(”,再输入数字或符号,内容输入完毕以后,点击“)”,完成“(”“)”的所有功能。例如:2(2+2)=2 2*(2*(2+2 2*(2+2)2*(2+2)5)支持混合运算。附:运算符的优先级表 优先级 功能键 显示 结合律 从 高 到 低(、)(、)自左向右 x y、1/x 、自左向右、*、/自左向右 自左向右 非淡泊无以明志,非宁静无以致远。诸葛亮以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。旧唐书魏征列传例如:(5+2)5

6、=(5+2)*5 6)功能键“CLEAR”及“BACKSPACE”的使用。a“CLEAR”为清 0 键。只要按下“CLEAR”键,输入行所有字符清 0,输出行回到原始状态。输入前:(5+2)*5 输入后:0 b.“BACKSPACE”为退格键。当输入任何数字或运算符,只要按下“BACKSPACE”键,字符位自右向左消去一位。(注:初始的“0”不能被删除)输入前:(5+2)*5 输入后:(5+2)*C.“ANS”为变量储存器。当一次结果被清除后,只要按下“ANS”键就会显示这个结果。如:5+2 按“CLEAR”键后,再按“ANS”键就会这样 7)计算器的输入方式:只支持鼠标点击计算器键输入;混合

7、运算则按优先级表中的运 老当益壮,宁移白首之心;穷且益坚,不坠青云之志。唐王勃穷则独善其身,达则兼善天下。孟子8)计算器计算结果的输出方式:在计算器窗口的输出行显示。9)算数运算的数据类型:整数和浮点数。a.输入行最大显示的字符数 32 位,每个运算符算一位;b.“(”,“)”各占一个字符位;c.输出行最大显示的字符数为 32 位;d.纯小数显示的最大字符数为小数点后 30 位,整数及小数点各占一位;若纯小数为负数,则显示最大字符数为小数点后 29 位,“-”占一位;e.输入行在未输入任何数字的时候,显示“0”,只占一个字符位;当输入任何数字时。“0”消失,输入的的数字取代“0”;当输入任何运

8、算符时。默认之前输入数字“0”;f.点击“=”键后方可显示数字或字母或汉字。10)特殊情况的运算 A.运算结果整数部分超出 32 位,显示 Infinity(无穷大);出现运算异常!*B.除数为 0 的情况,提示用户被除数不能为零!1/0 除 零 C在运算时,若结果为纯小数,小数位超过 30 位,则超出的字符舍弃。2/3 0.6 若舍弃超出部位后,结果全为 0,则结果为 0 1/9999 D在运算时,若结果的整数位不为 0 a总位数在最大字符位内,则直接显示;勿以恶小而为之,勿以善小而不为。刘备穷则独善其身,达则兼善天下。孟子b总位数在最大字符位以外,整数部分在最大字符位以内,则只优先显示整数

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

10、计算器应用程序,实现基本的加、减、乘、除等四则运算,且支持包括括号的表达式运算功能。3 系统实现 对话框界面设计 谋事在人,成事在天!增广贤文百学须先立志。朱熹 数值计算实现 例如:2(2+2)=2 2*(2*(2+2 2*(2+2)2*(2+2)8 百川东到海,何时复西归?少壮不尽力,老大徒伤悲。汉乐府长歌行云路鹏程九万里,雪窗萤火二十年。王实甫 4 程序关键代码及运行结果#include#include#include#include using namespace std;bool jisuan(double a,double b,char c,double&d)switch(c)cas

11、e+:d=a+b;using namespace std;#ifdef _DEBUG#define new DEBUG_NEW#endif void CCompuetrDlg:OnPaint()if(IsIconic()CPaintDC dc(this);/用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND,reinterpret_cast(),0);勿以恶小而为之,勿以善小而不为。刘备天行健,君子以自强不息。地势坤,君子以厚德载物。易经 /使图标在工作矩形中居中 int cxIcon=GetSystemMetrics(SM_CXICON);int cyIcon=

12、GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x=()-cxIcon+1)/2;int y=()-cyIcon+1)/2;/绘制图标 (x,y,m_hIcon);else CRect rect;CPaintDC dc(this);GetClientRect(rect);(rect,RGB(255,0,0);/设置背景颜色 CDialog:OnPaint();CDialog:OnPaint();/:定义应用程序的类行为。/#include#include#include 穷则独善其身,达则兼善天下。孟子百川东到海,

13、何时复西归?少壮不尽力,老大徒伤悲。汉乐府长歌行#ifdef _DEBUG#define new DEBUG_NEW#endif /CCompuetrApp BEGIN_MESSAGE_MAP(CCompuetrApp,CWinApp)ON_COMMAND(ID_HELP,CWinApp:OnHelp)END_MESSAGE_MAP()/CCompuetrApp 构造 CCompuetrApp:CCompuetrApp()/TODO:在此处添加构造代码,/将所有重要的初始化放置在 InitInstance 中 /唯一的一个 CCompuetrApp 对象 CCompuetrApp theApp

14、;/CCompuetrApp 初始化 BOOL CCompuetrApp:InitInstance()/如果一个运行在 Windows XP 上的应用程序清单指定要 /使用 版本 6 或更高版本来启用可视化方式,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。苏轼丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。顾炎武/则需要 InitCommonControls()。否则,将无法创建窗口。InitCommonControls();CWinApp:InitInstance();/标准初始化 /如果未使用这些功能并希望减小 /最终可执行文件的大小,则应移除下列 /不需要的特定初始化例程 /更改用

15、于存储设置的注册表项 /TODO:应适当修改该字符串,/例如修改为公司或组织名 SetRegistryKey(_T(应用程序向导生成的本地应用程序);CCompuetrDlg dlg;m_pMainWnd=&dlg;INT_PTR nResponse=();if(nResponse=IDOK)/TODO:在此放置处理何时用“确定”来关闭 /对话框的代码 else if(nResponse=IDCANCEL)/TODO:在此放置处理何时用“取消”来关闭 /对话框的代码 吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?论语万两黄金容易得,知心一个也难求。曹雪芹 /由于对话框已关闭,所以

16、将返回 FALSE 以便退出应用程序,/而不是启动应用程序的消息泵。return FALSE;/stack#include#include#include using namespace std;template class LinkedStack;template class Node friend LinkedStack;private:T data;Node*link;template class LinkedStack 好学近乎知,力行近乎仁,知耻近乎勇。中庸勿以恶小而为之,勿以善小而不为。刘备 public:LinkedStack()top=0;length=0;LinkedStac

17、k();bool isEmpty()const return 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;delete top;top=next;好学近乎知,力行近乎仁,知耻近乎勇。中庸人不知而不愠,不亦君子乎?论语

18、 template bool LinkedStack:isFull()const try Node*p=new Node;delete p;return false;catch(bad_alloc&e)return true;template T LinkedStack:Top()const if(isEmpty()throw CString(堆栈空异常!);return top-data;template LinkedStack&LinkedStack:Add(const T&x)Node*p=new Node;p-data=x;一寸光阴一寸金,寸金难买寸光阴。增广贤文志不强者智不达,言不信

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

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

当前位置:首页 > 研究报告 > 其他报告

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com