程序设计实验报告_第1页
程序设计实验报告_第2页
程序设计实验报告_第3页
程序设计实验报告_第4页
程序设计实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

《程序设计》试验汇报类与对象一、名称:类与对象试验设计汇报二、问题描述定义一个基类和多个派生类,像基本类型那样利用这些类。三、试验目标和基本要求1、掌握类与对象关系。2、最少定义一个基类。如有理数rational或点形状类型shape。3、最少定义两个派生类。如圆类型,三角形类型或四边形类型等。4、类定义中包含结构函数,析构函数,重载函数,重载运算符,虚函数等。5、类定义为头文件,组员函数由源程序文件实现。6、像基本类型那样应用这些类编写应用程序。四、试验内容1、写一个C++程序,定义抽象基类Shape,由它派生出一个基类Point,再由Point派生出2个派生类:Circle(圆形),Rectangle(矩形)。2、用一个函数Area分别输出以上二者面积,2个图形数据在定义对象时给定。3、用+运算符对矩形长度,宽度重载,得到两个矩形长度和与宽度和。五、程序代码及运行结果1、代码:#include<iostream.h>#include<cmath>constdoublepi=3.14;classShape//抽象基类{public:virtualvoiddisplay()=0;};classPoint:publicShape{public:voiddisplay(){};};classCircle:publicPoint{private:doubler;public:voidset(doubler){r=r;}doublearea(doubler){returnpi*r*r;}voiddisplay(){cout<<"圆面积是:"<<area(r)<<endl;}};classTectangle:publicPoint{private:doubletemp[2];doublelength;doublewidth;public:voiddisplay();doublearea(doublel,doublew){returnl*w;}voidset(doublel=0,doubler=0){temp[0]=length=l;temp[1]=width=r;}Tectangleoperator+(constTectangle&other);//函数重载voidcalculate();//输出两个矩形长度和与宽度};voidTectangle::calculate(){for(inti=0;i<2;i++)cout<<temp[i]<<"\t";}voidTectangle::display(){cout<<"矩形面积:"<<area(length,width)<<endl;}TectangleTectangle::operator+(constTectangle&other){Tectangletect;tect.temp[0]=temp[0]+other.temp[0];tect.temp[1]=temp[1]+other.temp[1];returntect;}voidmain(){doubler,length,width;Circlecir;Tectangletect1,tect2,tect3;cout<<"请输入圆形半径r:"<<endl;cin>>r;cir.set(r);cir.display();cout<<"请输入1矩形长、宽:"<<endl;cin>>length>>width;tect1.set(length,width);tect1.display();cout<<"请输入2矩形长、宽:"<<endl;cin>>length>>width;tect2.set(length,width);tect2.display();tect3=tect1+tect2;cout<<"两个矩形长度和与宽度和分别是:"<<endl;tect3.calculate();}2、运行结果:六、总结1、什么类和对象?类与对象关系?答:类是现实世界或思维世界中实体在计算机中反应,它将数据以及这些数据上操作封装在一起。对象是具备类类型变量。类是对象模板,也是对象类型,而对象是类详细实例。类是抽象,不占用内存,而对象是详细,占用存放空间。2、在试验中大大小小碰到了很多问题,让我明白自己上机能力还是有所欠缺,这些问题处理,提升了自己操作能力。经过此次试验,加深了对类与对象了解与掌握,收获了很多。函数应用一、名称:函数应用试验设计汇报二、问题描述问题一:利用快速弦截法求解一元三次方程根,并与弦截法进行比较分析。问题二:利用迭代法求解一元n次方程P(x)=QUOTE根。三、试验目标1、熟悉函数使用。2、掌握弦截法和快速弦截法使用方法。3、分析弦截法和快速弦截法区分和联络。4、掌握迭代法,用迭代法求解一元数次方程根。四、试验内容1、用快速弦截法求解一元三次方程f(x)=QUOTE根。并与弦截法进行比较分析。2、用迭代法求解一元三次方程f(x)=QUOTE根。五、程序代码及结果问题一:1、代码:#include<iostream.h>#include<math.h>doublef(doublex){returnx*x*x-5*x*x+16*x-80;}voidKuaiSuXieJie(doublex,doubley,doublee){cout<<'\t'<<"k\t"<<"x\t"<<"x前-x后\n";doublet1,t2,z;cout<<'\t'<<"0\t"<<x<<'\n';for(intk=1;;k++){cout<<'\t'<<k<<'\t'<<y<<'\t'<<y-x<<'\n';if(fabs(y-x)<e){cout<<"结果为:"<<y<<'\n';break;}else{t1=f(x);t2=f(y);z=y-(y-x)*t2/(t2-t1);x=y;y=z;}}}voidmain(void){doublex,y,e;cout<<"输入初始值:";cin>>x;cout<<"输入另一个初始值:";cin>>y;cout<<"输入精度:";cin>>e;KuaiSuXieJie(x,y,e);}2、运行结果:问题二:1、代码:#include<stdio.h>#include<math.h>doublef(doublex){ doubley;y=x*x*x-5*x*x+16*x-80;//输入方程式return(y);}voidmain(){intn=0,i=2;printf("kf(x(k))\n");while(i<=100){doublea[100];n;a[0]=6;a[1]=2;a[i]=5-16/a[i-1]+80/(a[i-1]*a[i-1]);//将方程转化为等价x=φ(x)形式if(fabs(a[i-1]-a[i-2])/a[i-1]<1e-4)break;//误差循环条件elseprintf("%d\t%.6f\n",n++,a[i]);i++;}}2、运行结果:六、总结1、弦截法原理是什么?弦截法与快速弦截法有什么区分答:1)、取两个不一样初始点x1,x2,使得f(x1)*f(x2)<0,这时,区间(x1,x2)内有一个根。2)、连接(x1,f(x1))与(x2,f(x2))两点,与X轴交点为x*.x*值可由以下公式求出:x*=QUOTE3)、若f(x*)f(x2)<0,则区间(

温馨提示

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

评论

0/150

提交评论