类提高一
题目:定义一个圆形类,属性有半径和相应的成员函数。 然后定义一个正方形类,属性有边长和相应的成员函数。
再编写一个如下图所示的组合类,由一个正方型和一个圆形组成, 要求该组合类能求出阴影部分面积和周长。通过主函数测试该类。 -------------------------------------------------------*/ #include
/**********Program**********/ class Circle{ double r; public: Circle(double r1=0){r=r1;} void Set(double r1){r=r1;} double L(){return 2*PI*r;} double S(){return PI*r*r;} };
class Box{ double bian; public: Box(double b1=0){bian=b1;} void Set(double b1){bian=b1;} double S(){return bian*bian;} double L(){return 4*bian;} };
class NewStyle{ Circle A; Box B; public:
NewStyle(Circle A1,Box B1):A(A1),B(B1){} double S(){return A.S()-B.S();} double L(){return A.L()+B.L();} void Set(Circle A1,Box B1){A=A1;B=B1;} };
/********** End **********/ int main(){
Circle A(4); //圆的半径为4
Box B(1); //正方形的边长为1 NewStyle C(A,B);
cout<<\自定义图形的面积\
cout<<\自定义图形的周长\ A.Set(6); //圆的半径变为6 B.Set(2); //正方形的边长变为2 C.Set(A,B);
cout<<\自定义图形的面积\
cout<<\自定义图形的周长\ return 0; }
类提高二
题目:请补足date类和card的成员函数定义。 -------------------------------------------------------*/ #include
int year; int month; int day; public:
date(int Year=0,int Month=0,int Day=0);//构造函数,给出初始的年月日 void setdate(int Year,int Month,int Day);//设置年月日 int get_year();//获取年份 int get_month();//获取月份 int get_day();//获取日期 };
class card {
int book;//图书编号 int reader;//借阅者编号
date borrow_day;//出借日期 int expiry;//借阅期限 public:
card(int Book, int Reader,date Borrow_day,int Expiry=60);//构造函数 date get_borrow_day();//获取出借日期
date get_return_day();//获取归还日期,归还日期=出借日期+借阅期限 int get_book();//获取图书编号 int get_reader();//获取借阅者编号 int get_expiry();// 获取借阅期限 };
/**********Program**********/ date::date(int Year,int Month,int Day)
{ year=Year;month=Month;day=Day; }
void date::setdate(int Year,int Month,int Day) {
year=Year;month=Month;day=Day; }
int date::get_year()//获取年份 { return year; }
int date::get_month()//获取月份 { return month; }
int date::get_day()//获取日期 { return day; }
card::card(int Book, int Reader,date Borrow_day,int Expiry)//构造函数 {
book=Book;reader=Reader;borrow_day=Borrow_day;expiry=Expiry; }
date card::get_borrow_day()//获取出借日期 { return borrow_day; }
date card::get_return_day()//获取归还日期,归还日期=出借日期+借阅期限 { date return_day; int y,m,d,t; int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; y=borrow_day.get_year(); m=borrow_day.get_month(); d=borrow_day.get_day(); t=d+expiry;
if(y%4==0&&y0!=0||y@0==0) a[2]=29; if(t<=a[m]) { return_day.setdate(y,m,t); return return_day; } while(t>a[m])
}
{ t-=a[m]; m++; if(m>12) { y++; m=1; } }
return_day.setdate(y,m,t); return return_day;
int card::get_book()//获取图书编号 { return book; }
int card::get_reader()//获取借阅者编号 { return reader; }
int card::get_expiry()// 获取借阅期限 { return expiry; }
/********** End **********/ void main(){
int stu=2012678;//借阅者编号 int cbook=100034;//图书编号 date day(2012,1,31);//出借日期
card c1(cbook,stu,day);//创建card对象c1 //以下打印借书卡c1信息 cout<<\借书卡c1: \
cout<<\cout< cout<<\ day.setdate(2012,12,6);//设置借书日期 cbook=100077;//图书者编号 card c2(cbook,stu,day,30);//创建card对象c2 //以下打印借书卡c2信息 cout<<\借书卡c2: \ cout<<\cout< cout< cout<<\}