C++实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

1、定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。

#include<>

const double PI=;

class Circle{

double radius,length,area;

public:

Circle(double r=0){

setr(r);

length=2*PI*radius;

area=PI*radius*radius;

}

void print(){

cout<<"radius="<

cout<<"length="<

cout<<"area="<

}

void setr(double r){

radius=r;

}

};

void main(){

Circle c1(10),c2(c1);

();

();

}

2、定义一个Point类表示平面上的一个点,再定义一个Rectangle类表示平面上的矩形,用Point类的对象作为Rectangle类的成员描述平面上矩形的顶点坐标。要求类Point中有相应的成员函数可以读取点的坐标值,类Rectangle中含有一个函数,用以计算并输出矩形的面积及顶点坐标。在主函数

中对类Rectangle进行测试。

#include<>

#include<>

class Point{

int 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<<'('<

}

};

class Rectangle{

Point 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<<"矩形顶点坐标:"<

();cout<<'\t';();cout<

();cout<<'\t';();cout<

int s=abs()())*abs()());

cout<<"矩形面积:"<

}

};

void main()

{

Rectangle r(2,6,8,10);

();

}

3、定义一个类,用于删除字符串中多余的字符,使其中的字符互不相同,具体要求如下:

(1)类的数据成员(字符串)用指针表示,并在构造函数中根据参数的实际情况为该成员指针申请类存空间。

(2)删除多余字符串时,只能在原字符串空间中进行,不得借助其他辅助空间。

#include<>

#include<>

class S{

char *str;

public:

S(char *s)

{

str=new char[strlen(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()

{

cout<

}

~S()

{

delete []str;

}

};

void main()

{

char s[100];

(s,100);

S t(s);

cout<<"原字符串为:\n";

();

();

cout<<"删除后的字符串为:\n";

();

}

4、定义一个类Array,实现二维数组每列元素按各元素的各位数字之和从小到大排序。要求用一个专门的函数求数组元素的各位数字之和。

#include<>

#include<>

class Array{

int a[4][3];

public:

Array(int p[][3],int n)

{

for(int i=0;i

for(int j=0;j<3;j++)

a[i][j]=p[i][j];

}

int f(int n)

{

int s=0;

while(n){

s+=n%10;

n/=10;

}

return s;

}

void fun()

{

for(int i=0;i<3;i++){

for(int j=0;j<3;j++)

for(int k=j+1;k<4;k++)

if((f(a[j][i]))>f(a[k][i])){

int t=a[j][i];

相关文档
最新文档