C++课程设计——计算器.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计语言
--课程设计
题目计算器设计
院系航空宇航学院
专业飞行器设计与工程
学生姓名张权
学号*********
指导教师张德平
二零一二年六月九日
计算器设计
(一)、目的与要求:
1、目的:
通过开发计算器程序,进一步熟悉C++中类和对象的定义与使用,掌握程序控制的方法,掌握C++程序设计的基本知识。
2、基本要求:
(1)设计计算器程序,可对实数操作;
(2)可对多个基数操作的四则运算;
(3)增加函数如:正弦、余弦、正切、对数、平方和平方根、完成四则混合运算,注意考虑优先级,对应增加主菜单选项;
(4)根据程序的提示,可以进行正弦运算进行余弦运算、正切运算、对数运算、求平方运算、混合运算、华氏温度转化为摄氏温度的运算、摄氏温度转化为华氏温度的运算、求平方根运算。使四则运算能够具有测试功能,即计算机能够自动出题,并要求用户计算,同时计算机判断用户的对错并打分,要求十题为一个单元,加减运算时最高为两位数的运算,乘法为两位数乘以一位数,除法是两位数或者三位数除以一位数,要求没有余数。
(二)、设计方法和基本原理:
1、问题描述(功能要求):
实数间的计算很复杂,它包括:相加、相减、相乘、相除、求三角函数、求对数、四则混合运算等。试设计计算器,使之能提供以下功能:
1).可以连续输入运算,对于输入的表达式能够按算符优先级进行处理。
如:
输入4+5*3时,应该输出60,而不是27。
2).可以处理包含括号的表达式。
如:
输入2*(3+2)时,应该输出10,而不是8。
3).可以计算三角函数、对数函数、平方根以及平方。
4).能够实现华氏温度与摄氏温度之间的转换。
5).四则运算能够具有测试功能,即计算机能够自动出题,并要求用户计算,
同时计算机判断用户的对错并打分。
6).系统以菜单方式工作。(所谓菜单指用户可以自由选择所要执行的功能)
7).当使用者输入错误时要有错误提示。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
目录
1. 系统需求分析 (1)
2. 总体设计 (1)
3. 详细设计 (2)
4. 系统调试 (6)
5. 结果分析............................................................ 错误!未定义书签。
6. 总结.................................................................... 错误!未定义书签。附录:源程序清单
1.系统需求分析
实数间的计算很复杂,它包括:相加、相减、相乘、相除、求三角函数、求对数、四则混合运算等。试设计计算器,使之能提供以下功能:
1).可以连续输入运算,对于输入的表达式能够按算符优先级进行处理。
如:
输入4+5*3时,应该输出60,而不是27。
2).可以处理包含括号的表达式。
如:
输入2*(3+2)时,应该输出10,而不是8。
3).可以计算三角函数、对数函数、平方根以及平方。
4).能够实现华氏温度与摄氏温度之间的转换。
5).四则运算能够具有测试功能,即计算机能够自动出题,并要求用户计算,
同时计算机判断用户的对错并打分。
6).系统以菜单方式工作。(所谓菜单指用户可以自由选择所要执行的功能)
7).当使用者输入错误时要有错误提示。
学生可以通过以上功能计算实数间的加、减、乘、除、求三角函数、求平方、求平方根、求对数以及实现华氏温度和摄氏温度间的转换,除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便,在使用的过程中保持一个愉快的心情。计算器系统有广大的用户群,这其中有老师、学生、有公司办公人员,也可以供给一般用户使用。总之,该系统可以满足用户需求,实现对实数的计算。
2.总体设计
计算器系统包含六个大的功能,分别是:四则混合运算、三角函数运算、对数运算、平方和平方根运算、摄氏温度和华氏温度的转换、测试功能。
在上述六大功能中最难的是四则混合运算的实现,特别是优先级的判断,不但有加减乘除之间的优先级判断,而且还有括号夹杂其中,使得实现起来非常困难。于是,我考虑用栈和二叉树来实现。
系统弹出主菜单来提示用户输入其想要实现的运算类型,然后根据用户所选的类型来调用相关的函数计算并返回结果。当系统完成运算后,会再次跳出主菜单让用户选择,用户可以选择推出或者继续。
当用户输入出错时,系统会提示用户。总之,用户可以方便的在系统提示下进行使用。
本系统还具有测试功能,系统出题,用户输入答案,系统会判断对错并给出用户的得分。
计算器系统中功能模块图:
3. 详细设计
系统通过主菜单提示用户选择相应的功能。
该计算器的功能主要为下列6个:
(1).四则混合运算模块
用户选择功能,输入要进行的多项式(不能输入空格符),实现实数的四则混合运算。
混合运算流程图: