类与对象的基本概念(1).doc_第1页
类与对象的基本概念(1).doc_第2页
类与对象的基本概念(1).doc_第3页
类与对象的基本概念(1).doc_第4页
类与对象的基本概念(1).doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

深 圳 大 学 实 验 报 告 课程名称: C+程序设计 实验项目名称: 类与对象的基本概念 学院: 信息工程学院 专业: 通信工程 指导教师: 张力 报告人: 学号: 2011130151 班级: 2班 实验时间: 2013年11月21日 实验报告提交时间: 2013年12月5日 教务处制实验目的与要求:1.练习实践教程P27范例,自定义一个集合类set,采用数组存放集合的元素。体会和熟悉面向对象的基本概念和类的定义方法,类成员的访问权限及访问类成员的方法。2. 实践教程P31编程:建立一个分数类。分数类的数据成员包括分子和分母,操作包括显示、输入、约分、通分、比较、加、减、乘、除、求相反数。方法、步骤:1.打开VC+,选择file|new 菜单,单击project标签,打开其选项卡,选择win32 console application 工程类型,在project name 文本框中输入工程名4_1,在location 文本框中输入工程路径,单击OK按钮,在弹出的对话框中选择an empty project,单击finish按钮。2.选择file|new 菜单,单击files选项卡,选择C+ source file,在file文本框中输入文件名4_1.cpp,选中add to project 复选框,单击OK按钮。3. 打开源文件编辑窗口,按要求画出的流程图进行编写代码。编写完成后,保存,编译。若编译无错误,则链接,执行。若出现错误,则根据error框显示的错误逐行进行修正。执行过程中,若产生死循环,则应回到源程序找出错误,直至符合要求为止。实验过程及内容:实验代码:#include#includeusing namespace std;class fractionint above; /分子int below; /分母void reduction(); /约分void makeCommond(fraction&); /通分public:fraction(int a=0,int b=1)above=a;below=b; /构造函数fraction add(fraction); /两分数相加fraction sub(fraction); /本分数减去实参分数fraction mul(fraction); /两分数相乘fraction div(fraction); /本分数除以实参分数fraction reciprocal(); /求倒数bool equal(fraction); /等于运算bool greaterThan(fraction); /大于运算bool lessThan(fraction); /小于运算void display(); /显示分数void input(); /输入分数;void fraction:reduction()/约分先求最大公约数int a,b,temp;if(below0)below=-below;above=-above;a=abs(above); /abs 求绝对值函数b=abs(below);while(a%b)temp=a;a=b; b=temp%b;above/=b;below/=b;void fraction:makeCommond(fraction& b) /通分int temp;reduction();b.reduction();above*=b.below;b.above*=below;temp=below*b.below;below=b.below=temp;fraction fraction:add(fraction b) /两分数相加 fraction temp;makeCommond(b); /通分temp.above=above+b.above;temp.below=below;temp.reduction(); /约分return temp;fraction fraction:sub(fraction b) /本分数减去实参分数fraction temp;makeCommond(b); /通分temp.above=above-b.above;temp.below=below;temp.reduction(); /约分return temp;fraction fraction:mul(fraction b) /两分数相乘fraction temp;temp.above=above*b.above;temp.below=below*b.below;temp.reduction(); /约分return temp;fraction fraction:div(fraction b) /本分数除以实参分数fraction temp;if(b.above=0)cout零不能作除数!b.above);bool fraction:lessThan(fraction b) makeCommond(b); /通分 return(aboveb.above);void fraction:display()/显示reduction(); /约分cout=above/belowendl;void fraction:input()/输入cout请顺序输入分子和分母(整数):abovebelow;if(below=0) cout分母不可为零!endl;elsereduction();/主函数void main()fraction f1(-3,-4),f2(-3,4),f3(2,5),f4(0,1),f5(0,1),f6(0,1);coutf1; f1.display();coutf2; f2.display();coutf3; f3.display();coutf4; f4.display();coutf5; f5.display();if(f1.greaterThan(f2) coutf2?tureendl;if(f2.lessThan(f3) coutf2f3?tureendl;if(f1.equal(f1) coutf1=f1?trueendl;f4=f1.add(f3);coutf4=f1+f3; f4.display();f4=f1.sub(f2);coutf4=f1-f2; f4.display();f4=f1.mul(f3);coutf4=f1*f3; f4.display();f4=f2.div(f3);coutf4=f1/f3; f4.display();f4=f2.reciprocal();coutf4=1/f2; f4.display();while(1)f4.input(); f5.input();coutf4; f4.display();coutf5; f5.display();coutf6=f4+f5;f6=f4.add(f5);f6.display();coutf6=f4-f5;f6=f4.sub(f5);f6.display();coutf6=f4*f5;f6=f4.mul(f5);f6.display();coutf6=f4/f5;f6=f4.div(f5);f6.display();coutf6=1/f4;f6=f4.reciprocal();f6.display();coutf6=1/f5;f6=f5.reciprocal();f6.display();数据处理分析:实验结论:1.虽然P27的范例很长,输入的过程很繁琐,不过也正好借助这繁琐的输入,让我对类和对象有了一个初步的认识,不再仅是课本上列出来的那样简单。我们可以把类近似的看成是一个枚举类型,里面可以有变量,也可以有函数。在里面进行函数的声明,然后再逐个实现它们。运用“.”和“:”让代码的输入更加方便,一目了然。虽然一开始我遇到了一些困难,但在老师和同学的帮助下,我慢慢地完成了实验。2.要创建出来这样的一个分数类是件很不容易的事,而且相当的繁琐。一开始完全不知道该如何下手。不过有前面范例的基础,也大概明白了些关于类和对象相关的写法及其实现方式。一步步的下来,发现要真正的学会使用类,是蛮困难的。不过学习的过程,有郁闷也有开心。当看着一大堆的错误一个个的被更正过来直到后来编译链接都没有问题时,真的挺有成就感的。在类里,无参数无返回值的该怎么实现,如约分,再如有参数而无返回值的,又该如何运用在后面的程序中,如通分。一开

温馨提示

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

评论

0/150

提交评论