ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:137.19KB ,
资源ID:4454885      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4454885.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象程序设计大作业报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象程序设计大作业报告.docx

1、面向对象程序设计大作业报告面向对象程序设计大作业-计算器类学 院 名 称 (四号宋体居中)填写全称 专业班级 (四号宋体居中)填写全称 学生姓名 (四号宋体居中) 学 号 (四号宋体居中) 指 导 教 师 (四号宋体居中) 完成时间: 年 月 日计算器类1.编程目的2.系统简介本计算器程序可以进行加减乘除平方的基本运算,及二进制,十进制,八进制,十六进制之间的转换,三角函数的计算。程序是用类实现的,采用多文件结构。3.编程思路将程序分成三个模块,分别是:加减乘除平方基本运算模块;进制转换模块;三角函数计算模块;然后设计一个menu()函数将对三个模块进行调用,该函数通过主函数进行调用。程序分成

2、三个文件,分别是:calculator.h 、caculator.cpp main.cpp;4.总体设计(附类图)(1)加减乘除平方进本运算模块: 该功能主要是利用运算符重载,对+ - * / 进行重载,使其完成相应的计算;用户首先输入要计算的表达式,然后从表达式中提取出运算数和运算符,如果输入有误则对用户进行提示,让其重新进行输入;利用构造函数构造三个变量,分别对应运算数和结果,判断运算符的类型,调用重载函数进行计算通过构造函数将计算结果进行保存,最后调用类中的show()函数将结果显示出来;特别的,对于除法运算,应该判断除数是否为0,然后进行计算,由于计算结果可能不是整数,所以增加对dou

3、ble类型的构造函数,显示结果时调用的是show2()函数进行显示。(2)进制转换模块: 本程序不光可以进行2,4,8,16进制之间的转换,可以进行任意进制之间的转换。用户首先输入需要进行进制转换的数和该数的进制,然后输入想要转换的进制。通过构造函数产生两个变量,然后调用scalechange()函数进行进制转换。并将结果进行输出。(3)三角函数模块: 程序可对8种三角函数进行计算,用户首先输入三角函数表达式,然后程序从表达式中提取出想用的三角函数和运算数,然后判断三角函数的类型,通过构造函数定义类的变量,调用TriFunction()进行计算,同样的因为计算的三角函数的数比一定为整数,所以设

4、置flaot类型的构造函数;在类中分别实现8中三角函数的功能,判断用户要计算的函数进行调用。(4)菜单函数: 设置4个选项,分别为:加减乘除平方基本运算;进制转换;三角函数实现;退出程序。用户首先进行选择,如果输入正确,则根据选择调用相应的函数,否则提示用户重新进行输入,直到输入正确。(5)主程序: 主程序比较简单,只是调用了menu()函数。(6)程序中用到的其他函数 system(“pause”);表示按任意键继续; system(“cls”);表示将屏幕上的所有内容清除,为了让界面整洁。5.关键技术说明(1)加减乘除平方进本运算模块对于字符串和整数之间的转化利用了c语言中的函数atoi(

5、);通过调用类中的getnum()函数来判断除数是否为0。(2)进制转换模块:在进行进制转换时用到了栈,直接运用STL中的stack,包含在头文件stack中。具体方法是:首先将要进行转换的数转化成10进制,然后将10进制转化成目的进制。转化成10进制的代码:基本思想是:对于n进制数abcdefg,转换成10进制数为:a*n6 + b*n5 + c*n4 + d*n3 +e*n2 + f*n1 + g*n0将十进制数m转换成n进制的思想是:不断将m%n放入栈中,直到m=0,然后依次输出栈的栈顶元素,直到栈为空。考虑到对于16进制的数,数中可能会输入ABCDEF或者abcdef,所以将输入的数字

6、转换成字符串形式,并进行判断转换。(3)三角函数模块:首先定义:char a86=log,log10,sin,asin,cos,acos,tan,atan;数组中包含的是三角函数。对数组进行遍历,同时通过函数strcmp()判断要计算的函数是否在其中,有的话调用函数直接进行计算,否则,提示用户重新进行输入。类中三角函数的实现直接调用了C语言中math.h头文件中的函数。通过函数atof()将字符串转化为flaot类型的数。6.源代码calculator.h#ifndef CALCULATOR_H#define CALCULATOR_Hclass calculatorprivate: int n

7、um; double num2; int scal;/几进制 char tri10;/三角函数 float ang;/弧度public: calculator(int a);/加减乘除 calculator(double a);/计算除法 calculator(int a,int b);/进制转换 calculator(float a,char *s);/三角函数 void show(); void show2();/除法输出 int getnum(); calculator operator +(const calculator &c2);/加 calculator operator -(c

8、onst calculator &c2);/减 calculator operator *(const calculator &c2);/乘 calculator operator /(const calculator &c2);/除 calculator operator (const calculator &c2);/平方 void scalechange();/进制转换 void TriFunction();/三角函数 void Cos(); void Sin(); void Log(); void Log10(); void Asin(); void Acos(); void Tan(

9、); void Atan();#endifcalculator.cpp#include#include#include#include#include#include#include calculator.husing namespace std;void menu();calculator:calculator(int a) num=a;calculator:calculator(double a) num2=a;calculator:calculator(int a,int b) num=a; scal=b;calculator:calculator(float a,char *s) an

10、g=a; strcpy(tri,s);void calculator:show() cout结果为:numendl;void calculator:show2() cout结果为:setprecision(3)num2endl;calculator calculator:operator +(const calculator &c2) return calculator(num+c2.num);calculator calculator:operator -(const calculator &c2) return calculator(num-c2.num);calculator calcu

11、lator:operator *(const calculator &c2) return calculator(num*c2.num);calculator calculator:operator /(const calculator &c2) return calculator(1.0*num/c2.num);calculator calculator:operator (const calculator &c2) return calculator(num*num);int calculator:getnum() return num;void calculator:scalechang

12、e() int a,b,i,j=1,n;i=1;a=0; coutn; if(scal=16)/转换成十进制 for(i=strlen(num3)-1;i=0;i-) if(num3i=A & num3i=a & num3i=0;i-) a+=j*(num3i-0); j*=scal; stacks; while(a) s.push(a%n); a/=n; coutscal 进制数 num3转换成 n 进制数为: ; while(!s.empty() couts.top() ; s.pop(); coutendl; system(pause); system(cls); menu();void

13、 calculator:Cos() cout计算结果为:cos(ang)endl;void calculator:Sin() cout计算结果为:sin(ang)endl;void calculator:Log() cout计算结果为:log(ang)endl;void calculator:Log10() cout计算结果为:log10(ang)endl;void calculator:Asin() cout计算结果为:asin(ang)endl;void calculator:Acos() cout计算结果为:acos(ang)endl;void calculator:Tan() cout

14、计算结果为:tan(ang)endl;void calculator:Atan() cout计算结果为:atan(ang)endl;void calculator:TriFunction() int i,j=0; char a86=log,log10,sin,asin,cos,acos,tan,atan; for(i=0;i8;i+) if(strcmp(ai,tri)=0) j=1; break; if(j=0) cout您输入的三角函数表达式有误!请重新进行输入!endl; system(pause); system(cls); menu(); else switch(i) case 0:

15、 Log(); break; case 1: Log10(); break; case 2: Sin(); break; case 3: Asin(); break; case 4: Cos(); break; case 5: Acos(); break; case 6: Tan(); break; case 7: Atan(); break; system(pause); system(cls); menu(); main.cpp#include#include#include#include#include#include#include calculator.husing namespa

16、ce std;void menu() int n; coutendl 欢迎使用本计算器,请根据提示选择相应的功能endl; cout endl; cout 1、加减乘除平方基本运算。endl; cout 2、进制转换。endl; cout 3、三角函数实现。endl; cout 0、退出程序。endlendl; coutn; switch(n) case 1: char express100; char a100,b100; char c; int i,count;cout请输入加减乘除表达式(表达式形式为ab= 代表加减乘除平方,以回车表示结束)endl;cout示例:(1)23+45 (2

17、)23-22 (3)4*4 (4)12/3 (5)42endl; cout注:本计算器计算的是整数的基本运算。endl; cout请输入你的表达式:express; count=0; for(i=0;istrlen(express);i+) if(expressi=+ | expressi=- | expressi=* | expressi=/ | expressi=) break; else acount+=expressi; c=expressi; i+; count=0; for(;istrlen(express);i+) bcount+=expressi; calculator c1(

18、atoi(a); calculator c2(atoi(b); switch(c) case +: calculator c3(c1+c2); c3.show(); system(pause); system(cls); menu(); break; case -: calculator c3(c1-c2); c3.show(); system(pause); system(cls); menu(); break; case *: calculator c3(c1*c2); c3.show(); system(pause); system(cls); menu(); break; case /

19、: if(c2.getnum()=0) cout除数为0!endl; system(pause); system(cls); menu(); break; calculator c3(c1/c2); c3.show2(); system(pause); system(cls); menu(); break; case : calculator c3(c1c2); c3.show(); system(pause); system(cls); menu(); break; default:cout您输入的运算符有误!请重新进行输入!endl; system(pause); system(cls);

20、 menu(); break; case 2: int m,mm;cout请输入需要进制转换的数和转换成的几进制的数:endl;cout注:本计算器针对的是整数之间的进制转换。endl; coutmmm; calculator c(m,mm); c.scalechange(); break; case 3: int i,j; char exp100;cout请输入三角函数表达式(示例:sin(0),cos(0),tan(0),log(0)等):endl;cout注:本计算器计算的类型是弧度的三角函数。exp; char a10,b10; memset(a,0,sizeof(a); memset

21、(b,0,sizeof(b); j=0; for(i=0;istrlen(exp);i+) if(expi=() break; aj+=expi; i+; j=0; for(;istrlen(exp);i+) if(expi=) break; bj+=expi; calculator c(atof(b),a); c.TriFunction(); break; case 0: cout谢谢使用本计算器,程序作者:韩邵杰endl; exit(0); break; default: cout您的选择有误!请重新进行选择!endl; system(pause); system(cls); menu(); break; int main() menu(); return 0;7.测试(主界面及各功能模块的运行图及说明)(1)程序运行后的界面:(2)选择1进行加减乘除平方运算:(3)按任意键继续之后回到界面(1),然后减输入乘除平方进行测试: (4)除法运算除数为0时:(5)进制转换:10进制转换成16进制:十进制转换成2进制:8进制转换成2进制:2进制转换成16进制:16进制转换成8进制:(6)三角函数测试:(7)选择0退出程序:8.系统评价及展望

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1