




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;.实验报告1、定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。#includeconst double PI=3.1415;class Circledouble radius,length,area;public:Circle(double r=0)setr(r);length=2*PI*radius;area=PI*radius*radius;void print()coutradius=radiusendl;coutlength=lengthendl;coutarea=areaendl;void setr(double r)radius=r;void main()Circle c1(10),c2(c1);c1.print();c2.print();2、定义一个Point类表示平面上的一个点,再定义一个Rectangle类表示平面上的矩形,用Point类的对象作为Rectangle类的成员描述平面上矩形的顶点坐标。要求类Point中有相应的成员函数可以读取点的坐标值,类Rectangle中含有一个函数,用以计算并输出矩形的面积及顶点坐标。在主函数中对类Rectangle进行测试。#include#includeclass Pointint x,y;public:Point(int a=0,int b=0)x=a;y=b;int getx()return x;int gety()return y;void print()cout(x,y);class RectanglePoint p1,p2,p3,p4;public:Rectangle(int a,int b,int c,int d):p1(a,b),p2(c,b),p3(a,d),p4(c,d)void f()cout矩形顶点坐标:endl;p1.print();coutt;p2.print();coutendl;p3.print();coutt;p4.print();coutendl;int s=abs(p1.getx()-p2.getx()*abs(p1.gety()-p3.gety();cout矩形面积:sendl;void main()Rectangle r(2,6,8,10);r.f();3、定义一个类,用于删除字符串中多余的字符,使其中的字符互不相同,具体要求如下: (1)类的数据成员(字符串)用指针表示,并在构造函数中根据参数的实际情况为该成员指针申请类存空间。 (2)删除多余字符串时,只能在原字符串空间中进行,不得借助其他辅助空间。#include#includeclass Schar *str;public:S(char *s)str=new charstrlen(s)+1;strcpy(str,s);void f()char *p1=str,*p2,*p3;while(*p1) p2=p1+1;while(*p2)if(*p1=*p2) p3=p2;while(*p3) *p3=*(p3+1);p3+;else p2+;p1+;void print()coutstrendl;S()delete str;void main()char s100;cin.getline(s,100);S t(s);cout原字符串为:n;t.print();t.f();cout删除后的字符串为:n;t.print();4、定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排序。要求用一个专门的函数求数组元素的各位数字之和。#include#includeclass Arrayint a43;public:Array(int p3,int n)for(int i=0;in;i+)for(int j=0;j3;j+)aij=pij;int f(int n)int s=0;while(n)s+=n%10;n/=10;return s;void fun()for(int i=0;i3;i+)for(int j=0;j3;j+)for(int k=j+1;kf(aki)int t=aji;aji=aki;aki=t;void show()for(int i=0;i4;i+)for(int j=0;j3;j+)coutaijt;coutendl;void main()int a43;for(int i=0;i4;i+)for(int j=0;j3;j+)aij=rand()%1000;Array t(a,4);cout原数组为:endl;t.show();cout排序后的数组为:endl;t.fun();t.show();5、定义一个求n!的类,要求其成员数据包括n和n!,成员函数分别实现设定n的值、计算n!以及输出成员数据。编写一个完整的程序对类进行测试。#includeclass Aint n,nn; public: A(int x=0) n=x; void set(int x) n=x; void fun() nn=1; for(int i=1;i=n;i+) nn*=i; void print() coutn=nendl; coutnn=nnendl; ;void main()A a1;a1.fun();a1.print();a1.set(5);a1.fun();a1.print();6、建立分数类函数fraction,用于表示最简分数。最简分数为分子和分母没有公约数的分数。具体要求如下:(1)私有数据成员。1)int m; /分子2)int n; /分母(2)公有成员函数。1)fraction(int im ,int in); /构造函数,用im和in分别初始化数据成员m和n。2)int gcd(int x,int y); /求x和y的最大公约数,结果为正数。3)void cj(); /对当前分数进行约解,使其成为最简分数。4)viod show(); /输出分数,格式为m/n。3)在主函数中对该类进行测试。定义分数a,其初值3/12,约简分数后再输出。程序运行的结果是:3/121/4 #include class fractionint m;int n;public:fraction(int im,int in);int gcd(int x,int y);void cj();void show();fraction:fraction(int im,int in)m=im;n=in;int fraction:gcd(int x,int y)for(int i=x; ;i-)if(x%i=0&y%i=0)return i;void fraction:cj()int t=gcd(m,n);m=m/t;n=n/t;void fraction:show()coutm/nn;void main()fraction a(3,12);a.show();a.cj();a.show();7、 计算直角三角形的面积。#include#includeclass TRIint a,b,c;public:void Set(int a1,int b1,int c1)a=a1;b=b1;c=c1;if(ab)swap(a,b);if(ac)swap(a,c);cout三角形的边长:a,b,cendl;if(a*a!=b*b+c*c)cout不能够成直角三角形,以下面积计算错误!n;void swap(int&t1,int&t2)int t=t1;t1=t2;t2=t;void ShowArea()double s=b*c/2.0;cout三角形的面积:sendl;void main()TRI t1;t1.Set(3,4,5);t1.ShowArea();t1.Set(3,4,7);t1.ShowArea();81215396810512164181098、定义一个类DataTower求数塔各层极大值数字的和。 对于右图所示的5层数塔其和为8+15+9+12+18=62。 具体要求如下:(1)私有数据成员l int d55;/用二维数组的下三角存储数塔l int index5;/存储各层极大值元素的位置l int maxsum;/极大值元素的和(2)公有成员函数l DataTower(int t5,int n);/用行指针t所指 二维数组的前n行初始化数塔l void f();/求各层极大值元素的位置, 即index0为第1层极大值的列下标0, index1为第2层极大值的列下标1, index2为第3层极大值的列下标1,以此类推。l void fun();/根据成员index中的元素值(极大值元素的列下标)求maxsuml void print();输出各数据成员,包括数塔及其极大值元素的和,极大值元素及其位置(3)在主函数中用给定的数据对定义的类进行测试。#includeclass DataTowerint data55;int index5;int maxsum;public:DataTower(int t5,int n)for(int i=0;in;i+)for(int j=0;j=i;j+)dataij=tij;void f()for(int i=0;i5;i+)indexi=0;for(int j=1;jdataiindexi)indexi=j;void fun()maxsum=0;for(int i=0;i5;i+)maxsum+=dataiindexi;void print()int i,j;cout数塔为:n;for(i=0;i5;i+)for(j=0;j=i;j+)coutdataijt;coutendl;cout极大值和为maxsum,极大值元素为:n;for(i=0;i5;i+)coutdataiindexi(第i+1层列标为indexi)n;void main()int d55=8,12,15,3,9,6,8,10,5,12,16,4,18,10,9;DataTower t(d,5);t.f();t.fun();t.print(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新冠疫情公司封闭应急预案(3篇)
- 商业街安全应急预案模板(3篇)
- 明沟施工方案(3篇)
- 2025-2030铝合金材料应用领域拓展及消费需求预测研究报告
- 街道讨薪的应急处置预案(3篇)
- 模板及高支模施工方案(3篇)
- 直播电商中直播电商的场景营销案例对GMV增长研究
- 直播电商中文化元素融入的差异化竞争对GMV增长研究
- 直播电商中商品定价不合理的调整策略对GMV增长研究
- 养殖场断电应急预案演练(3篇)
- 2024年重庆永川区招聘社区工作者后备人选笔试真题
- 医学技术专业讲解
- 唯奋斗最青春+课件-2026届跨入高三第一课主题班会
- 2025民办中学教师劳务合同模板
- 2025年南康面试题目及答案
- 2025年事业单位考试贵州省毕节地区纳雍县《公共基础知识》考前冲刺试题含解析
- 高中喀斯特地貌说课课件
- 黄冈初一上数学试卷
- 2025年中国花盆人参行业市场发展前景及发展趋势与投资战略研究报告
- QGDW11337-2023输变电工程工程量清单计价规范
- 航天飞行器模型设计教学
评论
0/150
提交评论