C 第4次作业

发布 2022-09-05 20:05:28 阅读 5393

1. 设计并测试一个名为rectangle的矩形类,其属性为矩形的左上角与右下角两个点的坐标,根据坐标能计算矩形的面积。

1) 实验目的:根据坐标求矩形的面积。

2) 实验分析:类的基础题,题目的主要难点在于函数的调用。

3) 程序**:

#include

using namespace std;

class rectangle

double getarea();

double circle::getarea()

return pi*radius*radius;

void main()

double i;

cout<<"请输入半径:">i;

circle c(i);

double area=

cout<<"面积为:"<

3) 运行结果:

3. 设计一个类sample,实现两个复数的加法和减法运算。

1) 实验分析:题目不难,将复数的实部和虚部分开加减即可。

2) 程序**:

#include <>

class sample

private:

double real;

double imag;

public:

sample(double r=0.0,double i=0.0);

void print();

sample sample::operator+(sample s);

sample sample::operator-(sample m);

sample::sample(double r,double i)

real=r;

imag=i;

sample sample::operator+(sample s)

sample a;

return a;

sample sample::operator-(sample m)

sample a;

return a;

void sample::print()

cout< if(imag>0)cout<<"

if(imag!=0)cout<}

int main()

double r1,i1,r2,i2;

cout<<"请输入第一个复数的实部和虚部:">r1>>i1;

cout<<"请输入第二个复数的实部和虚部:">r2>>i2;

sample s1=sample(r1,i1),s2=sample(r2,i2);

sample s3=s1+s2;

cout<<"两复数的和为:";

cout< sample m1=sample(r1,i1),m2=sample(r2,i2);

sample m3=m1-m2;

cout<<"两复数的差为:";

cout< return 0;

3) 运行结果:

4. 设计一个字符串类mystring,具有构造函数、析构函数、拷贝构造函数等,尽可能的完善它,使之能满足各种需要。

5. 参照下例:“小程序:看看你活了多少天?”编写如下程序:

(1)用oop方法改写上述程序,(编写类date实现)。

(2)编写一个时间类,它包含date和clock类对象;

(3)求到现在你总共活了多少小时?

例:小程序:看看你活了多少天。

#include

int dayspass(int y,int m,int d);/求y年m月d日这年过了多少天。

int daysofyear(int y); 求y年共有多少天。

int daysleft(int y,int m,int d);/求y年m月d日这年还剩多少天。

void main()

int y1,m1,d1,y2,m2,d2,days;

cout<<"your birthday is:";

cin>>y1>>m1>>d1;

cout<<"today is:";

cin>>y2>>m2>>d2;

days=daysleft(y1,m1,d1);

for(int y=y1+1;ydays+=daysofyear(y);

days+=dayspass(y2,m2,d2);

cout<<"you h**e lived "<

int dayspass(int y,int m,int d)

int i,leap=0,md[2][12]=,31,29,31,30,31,30,31,31,30,31,30,31}};

if(y%4==0&&y%100!=0||y%400==0)leap=1;

for(i=0;ireturn(d);

int daysofyear(int y)

if(y%4==0&&y%100!=0||y%400==0)return(366);

return(365);

int daysleft(int y,int m,int d)

return(daysofyear(y)-dayspass(y,m,d));

1) 实验分析:首先需要考虑闰年、平年,然后算出日期之间的年数,闰年乘以366,平年乘以355,再考虑出生那年的天数和现在这年的天数,最后乘以24就是所活的小时数。

2) 程序**:

#include

using namespace std;

class date

public:

int year;

int month;

int day;

bool istrue(int y, int m, int d);

date()

date(int y, int m, int d)

void display()

void set(int x,int y,int z)

void next()

else{if (month==2)

if(day==28)

day = 1;

month = 3;

else day++;

else if(month==4 ||month==6 ||month==9 ||month==11)

if(day==30)

day = 1;

month++;

else day++;

elseif(day==31)

day = 1;

if(month==12)

month = 1;

C 第5次作业

1.定义一个cat类,拥有静态数据成员howmanycats,记录cat的个体数目 静态成员函数gethowmany 存取howmanycats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。1 实验分析 本题的难点就是静态数据成员和静态成员函数的定义和使用。2 程序 include i...

C 第7次作业

实验七 继承与派生 一 1.定义一个shape基类,在此基础上派生出rectangle和circle,二者都有getarea 函数计算对象的面积。使用rectangle类创建一个派生类square。实验分析 首先定义出shape类,然后定义getarea函数,然后派生出rectangle和circl...

C 第6次作业

1.编写一个函数,统计一个英文句子中字母的个数,在主程序中实现输入 输出。实验分析 利用getline函数输入字符串,然后用循环语句依次取出字符,并判断是否为字母,若是字母,就将count加1,最后输出count的值即可。程序 include include using namespace std ...