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<<"请输入半径:"
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<<"请输入第一个复数的实部和虚部:"
cout<<"请输入第二个复数的实部和虚部:"
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 ...