c++计算器类.doc

上传人:laozhun 文档编号:2384413 上传时间:2023-02-17 格式:DOC 页数:18 大小:590.50KB
返回 下载 相关 举报
c++计算器类.doc_第1页
第1页 / 共18页
c++计算器类.doc_第2页
第2页 / 共18页
c++计算器类.doc_第3页
第3页 / 共18页
c++计算器类.doc_第4页
第4页 / 共18页
c++计算器类.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《c++计算器类.doc》由会员分享,可在线阅读,更多相关《c++计算器类.doc(18页珍藏版)》请在三一办公上搜索。

1、面向对象程序设计大作业-计算器类 学 院 名 称 专 业 班 级 学生姓名 学 号 指 导 教 师 完成时间:2013 年 5 月25 日计算器类一、 编程目的 1.巩固对面向对象程序设计的学习。 2.设计实现计算器类, 能进行整数及实数的加、减、乘、除、平方、开方等基本运算,及能进行二进制,十进制,八进制,十六进制数值之间的转换,以及能进行三角函数的计算。二、 系统简介功能: 1.能进行十进制的加、减、乘、除、平方以及开方的运算。 2.能进行二进制、八进制、十进制、十六进制之间的转换。 3.能进行三角函数以及反三角函数的计算。开发环境: Windows操作系统、VC+6.0、WPS三、 编程

2、思路 打开程序后根据简要的提示说明输入数据,对输入的数据进行判断,然后具体决定操作,最后输出结果。四、 总体设计(附类图)计算器类Trigonometric类Radix类 Calculator类五、 关键技术说明 1.单目运算符功能的实现 在头文件中必须加入math.h,因为单目运算符中必须由执行运算的函数。 2.双目运算符功能的实现 双目运算符需要两个操作数才能运算,所以在不同的双目运算符中给addt赋不同的值,然后用if语句来匹配值来判断需要进行那种双目运算符的运算。 3.三个类的建立 class Calculator、class Radix、class Trigonometric为此计算

3、机程序的实现关键。六、源代码#include#include#include#include#include#includeusing std:cin;using std:cout;using std:endl;using std:setprecision;class Calculatorprivate: double x; double y;public: Calculator(); Calculator(double a):x(a) Calculator(double a,double b):x(a),y(b) double add() return x+y; double subtrac

4、t() return x-y; double multiply() return x*y; double divide() return x/y; double square() return x*x; double evolution() return sqrt(x);class Radixprivate: int radix; int n; char x100;public: Radix() ; Radix(int a):radix(a) Radix(int a,char *b):radix(a)strcpy(x,b); int getn()return n; int getradix()

5、return radix; char *getx()return x; int powl(int sum,int n) if(!n) return 1; int w=sum; for(int i=1; i=0; i-) n+=powl(radix,strlen(x)-i-1)*(xi-0); return n; void swich(int t) int m=ten(); memset(x,0,sizeof(x); for(int i=0;i9) xi=m%t-10+a; else xi=m%t+0; m/=t; if(!m) break; for(int j=0; jn; getchar()

6、; if(n=1) printf(请输入您要进行的运算方式,n加减乘除平方开方分别为“+、-、*、/、sqrt”:n); char a5; gets(a); if(*a=+|*a=-|*a=*|*a=/) printf(请输入两个需要计算的数:n); double first,second;loop1: cinfirstsecond; Calculator calculator(first,second); if(*a=+) coutsetprecision(10)calculator.add()endl; else if(*a=-) coutsetprecision(10)calculato

7、r.subtract()endl; else if(*a=*) coutsetprecision(10)calculator.multiply()endl; else if(!second) cout错误,除数不能为0,请重新输入:endl; goto loop1; else coutsetprecision(10)calculator.divide()num; Calculator calculator(num); coutsetprecision(10)calculator.square()num; Calculator calculator(num); coutsetprecision(

8、10)calculator.evolution()endl; else printf(输入错误,请重新输入.n); for(int i=0; itab; if(tab=y) system (cls); goto loop; else if(n=2) int radix1,radix2; char a100; printf(请输入你想要转换进制的数:n); cina; printf(请输入你所输入的数的进制:n); cinradix1; printf(请输入你想得到的进制:n); cinradix2; Radix radix(radix1,a); radix.swich(radix2); cou

9、tradix.getx()tab; if(tab=y) system (cls); goto loop; else if(n=3) char a10; double b;loop2: printf(输入格式:n例:三角函数“sin x”,反三角函数“arcsin x”.n注意:x为弧度数.n); cinab; Trigonometric trigonometric(b); if(!strcmp(a,sin) coutsetprecision(10)trigonometric.sina()endl; else if(!strcmp(a,cos) coutsetprecision(10)trigo

10、nometric.cosa()endl; else if(!strcmp(a,tan) coutsetprecision(10)trigonometric.tana()endl; else if(!strcmp(a,arcsin) coutsetprecision(10)trigonometric.arcsin()endl; else if(!strcmp(a,arccos) coutsetprecision(10)trigonometric.arccos()endl; else if(!strcmp(a,arctan) coutsetprecision(10)trigonometric.arctan()tab; if(tab=y) system (cls); goto loop; else if(!n) return 0; else printf(输入错误,请重新输入:n); goto loop3; return 0;七、测试(主界面及各功能模块的运行图及说明)1加、减、乘、除、平方、开方的实现1. 二进制,十进制,八进制,十六进制数值之间的转换的实现3. 三角函数的计算的实现 八、 系统评价及展望 本系统实现了计算器的要求,能进行四则运算、平方、开方、进制转换、(反)三角函数的运算。但是操作起来不是最简便的。所以本系统还有待改进以实现更加简便的操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号