C++实验报告46542.docx
- 文档编号:15297319
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:17
- 大小:61.25KB
C++实验报告46542.docx
《C++实验报告46542.docx》由会员分享,可在线阅读,更多相关《C++实验报告46542.docx(17页珍藏版)》请在冰点文库上搜索。
C++实验报告46542
实验报告
1、定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。
#include
constdoublePI=3.1415;
classCircle{
doubleradius,length,area;
public:
Circle(doubler=0){
setr(r);
length=2*PI*radius;
area=PI*radius*radius;
}
voidprint(){
cout<<"radius="< cout<<"length="< cout<<"area="< } voidsetr(doubler){ radius=r; } }; voidmain(){ Circlec1(10),c2(c1); c1.print(); c2.print(); } 2、定义一个Point类表示平面上的一个点,再定义一个Rectangle类表示平面上的矩形,用Point类的对象作为Rectangle类的成员描述平面上矩形的顶点坐标。 要求类Point中有相应的成员函数可以读取点的坐标值,类Rectangle中含有一个函数,用以计算并输出矩形的面积及顶点坐标。 在主函数中对类Rectangle进行测试。 #include #include classPoint{ intx,y; public: Point(inta=0,intb=0) { x=a; y=b; } intgetx(){returnx;} intgety(){returny;} voidprint() { cout<<'('< } }; classRectangle{ Pointp1,p2,p3,p4; public: Rectangle(inta,intb,intc,intd): p1(a,b),p2(c,b),p3(a,d),p4(c,d) { } voidf() { cout<<"矩形顶点坐标: "< p1.print();cout<<'\t';p2.print();cout< p3.print();cout<<'\t';p4.print();cout< ints=abs(p1.getx()-p2.getx())*abs(p1.gety()-p3.gety()); cout<<"矩形面积: "< } }; voidmain() { Rectangler(2,6,8,10); r.f(); } 3、定义一个类,用于删除字符串中多余的字符,使其中的字符互不相同,具体要求如下: (1)类的数据成员(字符串)用指针表示,并在构造函数中根据参数的实际情况为该成员指针申请类存空间。 (2)删除多余字符串时,只能在原字符串空间中进行,不得借助其他辅助空间。 #include #include classS{ char*str; public: S(char*s) { str=newchar[strlen(s)+1]; strcpy(str,s); } voidf() { char*p1=str,*p2,*p3; while(*p1) { p2=p1+1; while(*p2) if(*p1==*p2) { p3=p2; while(*p3) { *p3=*(p3+1); p3++; } } elsep2++; p1++; } } voidprint() { cout< } ~S() { delete[]str; } }; voidmain() { chars[100]; cin.getline(s,100); St(s); cout<<"原字符串为: \n"; t.print(); t.f(); cout<<"删除后的字符串为: \n"; t.print(); } 4、定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排序。 要求用一个专门的函数求数组元素的各位数字之和。 #include #include classArray{ inta[4][3]; public: Array(intp[][3],intn) { for(inti=0;i for(intj=0;j<3;j++) a[i][j]=p[i][j]; } intf(intn) { ints=0; while(n){ s+=n%10; n/=10; } returns; } voidfun() { for(inti=0;i<3;i++){ for(intj=0;j<3;j++) for(intk=j+1;k<4;k++) if((f(a[j][i]))>f(a[k][i])){ intt=a[j][i]; a[j][i]=a[k][i]; a[k][i]=t; } } } voidshow() { for(inti=0;i<4;i++){ for(intj=0;j<3;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告 46542
![提示](https://static.bingdoc.com/images/bang_tan.gif)