------计算器设计类_第1页
------计算器设计类_第2页
------计算器设计类_第3页
------计算器设计类_第4页
------计算器设计类_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计大作业-字符串类(或计算器类)学 院 名 称 专业班级 班 学生姓名 学 号 指 导 教 师 完成时间: 2013年 5 月 20 日 计算器类1. 编程目的2. 系统简介3. 编程思路4. 总体设计(附类图)5. 关键技术说明6. 源代码7. 测试(主界面及各功能模块的运行图及说明)8. 系统评价及展望1、 编程目的当今社会是信息社会,科技经济高速发展的社会,为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活的必备品。因此此次课程设计我选择了计算器类的设计与使用,它能即时准确地获得需要的计算的

2、结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。编程实现计算器类,使其能进行整数及实数的加、减、乘、除、平方、开方等基本运算,能进行二进制,十进制,八进制,十六进制数值之间的转换,以及能进行三角函数的计算。在本次实验中尽最大努力完成计算器类设计的基本功能,进一步掌握与应用C+语言进行面向对象程序设计。在实践编程中训练总体设计思维能力,模仿并体验软件设计过程,加强动手能力、思考能力、逻辑思维能力等。2、 系统简介 在本次的课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C+6.0。vc+是Windows平台上的C+编程环境。VC+应用程序的开发

3、主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,vc6.0的优点是界面简洁,占用资源少,操作方便。计算器类的设计与实现是在VC+6.0环境下设计与实现的,总体要求是:通过该软件实现计算器的基本功能,主要实现的功能有: 计算器类的创建。 该计算器类可以进行加、减、乘、除、平方、开方,以及进制间的互相转换的操作。 可以用括号输入表达式,每次可运算多个表达式。 实现数据的输入,输出,计算,显示及程序退出等功能。 排错,当用户输入错误的表达式时提示用户。3、 编

4、程思路 建立名为jisuanqi的工程,工程内包含四个.cpp文件和六个.h文件要实现计算器的各类简单功能,首先采用类的设计思想,将计算器功能封装成类以实现计算器的功能。运行程序时首先向用户提示“请选择需要的运算!”提供“1、2、3”三个程序接口,分别进行计算器简单运算,三角函数运算和进制转换运算,根据用户指令,调用相应的函数文件。用户输入要计算的数值后按回车键即可的运算结果。为实现功能,先定义两个头文件,及两个文件,在中编写计算器主函数,通过建立工程将各个文件联系在一起。1、实现计算器的基本功能为实现加、减、乘、除、开方、平方基本运算,建立文件。创建calculator类,实现封装。在该模块

5、中,首先提示用户进入计算器简单运算状态“欢迎使用计算器运算数据!”按回车后提示用户输入数据,“输入你想运算的两个数和运算符!”继续运行则提示用户选择运算符的位置,具体形式如下:“1 运算符中缀”“2 运算符后缀”“3 运算符前缀” 按“回车键”后即可显示正确的结果 2、实现三角函数运算建立文件,定义Function函数,为让用户明确使用,提示用户选择要使用的函数,根据指令,通过swith-case语句,实现用户要使用的函数功能。但要注意的是在调用tan函数时,pi/2的倍数是在tan函数的定义域之外的,所以必须提示用户不要输入pi/2的倍数。 同样使用swhitch函数,来实现不同三角函数的功

6、能。3、实现进制转换运算 本程序提供六种进制转换,分别是: 十进制转换为十进制 ,十进制转换为二进制 , 十进制转换为八进制 , 十进制转换为十六进制 , 八进制转换为十进制, 十六进制转换为十进制。同样用switch语句控制执行用户需要的进制转换运算。最后输出程序运行结果。四、总体设计 主程序main()定义一个calculator类对象型调用eval_exp(expstr)表达式空?输出错误信息Y寻找对应接口,调用相应函数N调用完毕 返回主程序EndBegin 系统流程图clculate+compute():void类图5、 源代码/calculator.h#ifndef CALCULAT

7、OR_H#define CALCULATOR_H#include#include#includeusing namespace std;class calculatorprivate:public:void compute();void calculator :compute() double a,b; char s;cout欢迎使用计算器运算数据!endl;cout本计算器能计算的简单运算有:+,-,*,/,sendl;/s为开方运算符cout输入你想要运算的两个数和运算符。endl;cout 1 运算符中缀 endl;cout 2 运算符后缀 endl;cout 3 运算符前缀 n; sw

8、itch(n) case 1:cina;cins;cinb; break; case 2:cina;cinb;cins; break; case 3:cins;cina;cinb; break; switch(s) case +:cout=(a+b)endl;/加法运算 break; case -:cout=(a-b)endl; break; case *:cout=(a*b)endl;/乘法运算 break; case /: if(b!=0) cout=(a/b)endl; elsecerrError!endl; break;/除法运算 case :cout=pow(a,2)endl;/调用

9、pow函数,将第二个形参设置为2以计算平方 break;/平方运算 cases:cout=sqrt(a)endl;/开方运算 break; #endif/Function.cpp#includeFunction.h#include#include#includeusing namespace std;void Function:count()cout欢迎使用三角函数运算程序!endl;cout请输入所要计算的函数 sin,cos,tan,本计算器只支持这三种三角函数运算。endl;cout并输入所要计算的度数,如60,50。但在运算tan时请不要输入/2的倍数。endl;cout1 sinen

10、dl;cout2 cosendl;cout3 tans;cout请输入度数:degree; switch(s) case 1:coutsindegree=sin(degree)endl;/sin函数 break; case 2:coutcosdegree=cos(degree)endl;/cos函数 break; case 3:couttandegree=tan(degree)endl;/tan函数 break; /Function.h#ifndef FUNCTION_H#define FUNCTION_Hclass Functionprivate:public:void count();#e

11、ndif/translate.cpp(进制转换函数)#includetranslate.h#include #include using namespace std;void p(int num);void translate:f(int x,int y)cout欢迎使用进制转换程序!endl;cout 1. 十进制转换为十进制 endl;cout 2. 十进制转换为二进制 endl;cout 3. 十进制转换为八进制 endl;cout 4. 十进制转换为十六进制 endl;cout 5. 八进制转换为十进制endl;cout 6. 十六进制转换为十进制endl;cout请选择输入数据的进制

12、:c; switch(c) case 1:cout请输入十进制数据:n;cout转换结果:endl;coutnendl; break; case 2:cout请输入十进制数据:n;cout转换结果:endl; p(n); break; case 3:cout请输入十进制数据:n;cout转换结果:endl;coutoctnendl; break; case 4:cout请输入十进制数据:n;cout转换结果:endl;couthexnendl; break; case 5:cout请输入八进制数据:octn;cout转换结果:endl;coutdecnendl; break; case 6:c

13、out请输入十六进制数据:hexn;cout转换结果:endl;coutdecn=0;num-) /if(ai) / break; /for(num=i-1;i=0;i-)coutanum;coutendl;/translate.h#ifndef TRANSLATE_H#define TRANSLATE_Hclass translateprivate:public:void f(int x,int y);#endif/计算器.cpp(计算器主函数)#includecalculator.h#includeFunction.h#includeFunction.cpp#includetranslat

14、e.h#includetranslate.cpp#include#includeusing namespace std;int main()int x,y;coutendl;cout 请选择需要的运算! endl;cout 1 简单运算! endl;cout 2 三角运算! endl;cout 3 进制转换! endl;couts; switch(s) case 1: calculator a;pute(); break; case 2: Function b;b.count(); break; case 3: translate c;c.f(x ,y); break; return 0;6、

15、 测试 计算器主程序界面1、简单计算器基本运算加法运算输入简单运算代码“1”,输入运算符位置形式“1”即运算符中缀,输入“5+2”回车,得到结果“7”乘法运算输入简单运算代码“1”,输入运算符位置形式“1”即运算符中缀,输入“2*2”回车,得到结果“4”平方运算 输入简单运算代码“1”,输入运算符位置形式“1”即运算符中缀,输入“29”回车,得到结果“4”。此处调用pow函数,需要输入两个实参,因为只需计算平方,故将第二个形参设定为2,用户可以输入任何有效数值,计算结果均为平方的结果。此例计算2的平方,输入“29”得到结果“4”开方运算 输入简单运算代码“1”,输入运算符位置形式“1”即运算符

16、中缀,输入“9s。”回车,得到结果“3”减法与除法运行情况相同,此处不再列举。2、 三角函数运算 cos函数 输入三角函数代码“2”,输入“cos”函数代码“2”输入度数“58”得到结果“0.11918”。 Sin函数和tan函数的运行与cos函数类似,只是当调用tan函数时,若输入pi/2的倍 数则输出有误信息3、 进制转换 输入“进制转换”的代码“3”,输入“4”,选择“十进制转换为十六进制运算”输入十进制数“10”得到转换结果“a” 其他进制间的转换与其类似,在此不再列举。7、 系统评价及展望 此次大作业,首先巩固了C+课程所学的基础知识,掌握了类的定义及模块的封装等 ,但是在本次设计中,类的运用还是比较少的。本设计系统的最大特点是简单明了,一看就懂,便于运用。此次作业设计的最大收获就是真正理解了各类计

温馨提示

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

评论

0/150

提交评论