第二次实验报告_第1页
第二次实验报告_第2页
第二次实验报告_第3页
第二次实验报告_第4页
第二次实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

深圳大学实验报告课程名称:面向对象程序设计实验项目名称:类与对象的基本概念学院:信息工程学院专业:电子信息工程指导教师:张力报告人:边圳学号:2012130140班级:2实验时间:2014年11月26日星期三实验报告提交时间:2014年12月24日星期三教务处制实验目的与要求:1.实践教程P27范例:

集合是具有同一属性(共性)而又能互相区别(个性)的多个成员汇集起来的整体,构成集合的每个成员称为集合的元素,元素间没有顺序关系。例如,所有的大写英文字母是一个集合,它包括26个元素:A、B、…、Z。不包含任何元素的集合称为空集合。[实验要求]

自定义一个集合类set,采用数组存放集合的元素。自定义集合运算包括:1)

判断元素elem是否为集合set的元素。2)

为集合添加一个元素elem。3)

从集合中删除一个元素elem。4)

复制一个集合,其元素与原集合完全一样。5)

显示集合中的所有元素。6)

求两个集合中相同的元素,即求两个集合的交集。7)

求两个集合中所有的元素,即求两个集合的并集。8)

判断两集合包含的元素是否完全相同。9)

判断一个集合是否被包含在另一个集合之中,即是否为另一个集合的子集。本实验教程中有源码,请自行运行,体会和熟悉面向对象的基本概念和类的定义方法,类成员的访问权限及访问类成员的方法等。2.实践教程P31编程:建立一个分数类。分数类的数据成员包括分子和分母,操作包括显示、输入、约分、通分、比较、加、减、乘、除、求相反数。分数类的定义如下:classfraction{

intabove;

//分子

intbelow;

//分母

voidreduction();

//约分

fractionmakeCommond(fraction);//通分public:

fraction(inta=0,intb=1){

//构造函数

above=a;below=b;

}

fractionadd(fraction);

//两分数相加

fractionsub(fraction);

//本分数减去实参分数

fractionmul(fraction);

//两分数相乘

fractiondiv(fraction);

//本分数除以实参分数

fractionreciprocal();

//求倒数

boolequal(fraction);

//等于运算

boolgreaterThan(fraction);

//大于运算

boollessThan(fraction);

//小于运算

voiddisplay();

//显示分数

voidinput();

//输入分数};请编写所有完整的成员函数,并编写主函数进行验证。实验报告要求:要求提交纸质实验报告,按报告模板完成实验目的、实验内容等各部分,其中:1.范例:可以在报告中总结类的定义,类成员的访问权限,成员函数的使用方法等,也可加上自己的体会。不需要拷贝源代码到报告中。2.编程:要求提供完整的代码并加适当注释,并调试通过,有各种符合条件的测试数据及程序执行结果截图。方法、步骤:实验二:#include<iostream>usingnamespacestd;classfraction{ intabove; //分子 intbelow; //分母 voidreduction(); //约分 fractionmakeCommond(fraction); //通分public: fraction(inta=0,intb=1) //构造函数 { above=a; below=b; } fractionadd(fraction); //两分数相加 fractionsub(fraction); //本分数减去实参分数 fractionmul(fraction); //两分数相乘 fractiondiv(fraction); //本分数除以实参分数 fractionreciprocal(); //求倒数 boolequal(fraction); //等于运算 boolgreaterThan(fraction); //大于运算 boollessThan(fraction); //小于运算 voiddisplay(); //显示分数 voidinput(); //输入分数};voidfraction::reduction() //约分{ intmax=1; for(inti=1;i<=above;i++) { if(above%i==0) { if(below%i==0) { max=i; above=above/max; below=below/max; } } }}fractionfraction::makeCommond(fractionf1) //通分{ f1.reduction(); intb1=below,b2=f1.below,m,s; if(b1>b2) { m=b1%b2; s=b2; } else{ m=b2%b1; s=b1; } while(m>0) { intres=s%m; s=m,m=res; } intsmall=(b1*b2)/s; above=above*(small/below); f1.above=f1.above*(small/f1.below); below=small; f1.below=small; returnf1;}fractionfraction::add(fractionf1) //两分数相加{ fractionf2; f1=makeCommond(f1); f2.above=above+f1.above; f2.below=below; f2.reduction(); returnf2;}fractionfraction::sub(fractionf1) //本分数减去实参分数{ fractionf2; f1=makeCommond(f1); f2.above=above-f1.above; f2.below=f1.below; f2.reduction(); returnf2;}fractionfraction::mul(fractionf1) //两分数相乘{ fractionf2; f2.above=above*f1.above; f2.below=below*f1.below; f2.reduction(); returnf2;}fractionfraction::div(fractionf1) //本分数除以实参分数{ fractionf2; f2.above=above*f1.below; f2.below=below*f1.above; f2.reduction(); returnf2;}fractionfraction::reciprocal() //求倒数{ fractionf1; f1.above=below; f1.below=above; f1.reduction(); returnf1;}boolfraction::equal(fractionf1) //等于运算{ f1=makeCommond(f1); if(f1.above==above) { returntrue; } else returnfalse; }boolfraction::greaterThan(fractionf1) //大于运算{ f1=makeCommond(f1); if(f1.above>above) { returntrue; } else returnfalse; }boolfraction::lessThan(fractionf1) //小于运算{ f1=makeCommond(f1); if(f1.above<above) { returntrue; } else returnfalse; }voidfraction::display() //显示分数{ cout<<"分子:"<<above<<endl; cout<<"分母:"<<below<<endl;}voidfraction::input() //输入分数{ cout<<"请输入分子:"; cin>>above; cout<<"请输入分母:"; cin>>below;}intmain(){ fractionf(2,4),f1,f2; f1.input(); f1.display(); f2=f.add(f1); cout<<"两分数相加分母、分子为:"<<endl; f2.display(); f2=f.sub(f1); cout<<"两分数相减分母、分子为:"<<endl; f2.display(); f2=f.mul(f1); cout<<"两分数相乘分母、分子为:"<<endl; f2.display(); f2=f.div(f1); cout<<"两分数相除分母、分子为:"<<endl; f2.display(); f1=f1.reciprocal(); cout<<"求倒数后分母、分子为:"<<endl; f1.display(); return0;}}实验结果如下图:实验结果:实验结论:通过这次实验,我掌握了面向对象的基本概念和类的定义方法。掌握了类成员的访问权限以及访问类成员的方法。知道了在类外可以直接调用公有成员函数,但是私有成员函数不能在类外直接调用,而要通过公有成员函数间接调用私有成员函数(这一点我在一开始的编程中

温馨提示

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

评论

0/150

提交评论