c++类与对象习题答案(2)

2020-04-14 01:06

b=mm;

c=ss; }

void Timedate::putdate(YR a,MT b,int c){ year=a;

month=b; date=c;

}

void Timedate::puttime(int a,int b,int c){

hh=a; mm=b; ss=c;

}

void Timedate::list(){//成员函数 }

cout<<\switch(year){

case Y2000:cout<<\case Y2001:cout<<\case Y2002:cout<<\case Y2003:cout<<\case Y2004:cout<<\case Y2005:cout<<\}

switch(month){//,,,,,,,,

case Jan:cout<<'/'<<\case Feb:cout<<'/'<<\case Mar:cout<<'/'<<\case Apr:cout<<'/'<<\case May:cout<<'/'<<\case Jun:cout<<'/'<<\case Jul:cout<<'/'<<\case Aug:cout<<'/'<<\case Sep:cout<<'/'<<\case Oct:cout<<'/'<<\case Nov:cout<<'/'<<\case Dec:cout<<'/'<<\}

cout<<'/'<

cout<<\cout<

void show(Timedate &td){//普通函数,体会两者的不同

YR year; MT month;

int date,hh,mm,ss;

td.getdate(year,month,date); td.gettime(hh,mm,ss);

cout<<\switch(year){

case Y2000:cout<<\case Y2001:cout<<\case Y2002:cout<<\case Y2003:cout<<\case Y2004:cout<<\case Y2005:cout<<\}

switch(month){//,,,,,,,,

case Jan:cout<<'/'<<\case Feb:cout<<'/'<<\case Mar:cout<<'/'<<\case Apr:cout<<'/'<<\case May:cout<<'/'<<\case Jun:cout<<'/'<<\case Jul:cout<<'/'<<\case Aug:cout<<'/'<<\case Sep:cout<<'/'<<\case Oct:cout<<'/'<<\case Nov:cout<<'/'<<\case Dec:cout<<'/'<<\}

cout<<'/'<

cout<<\

cout<

}

int main(int argc, char* argv[]){ }

Timedate A(Y2004,Mar,3),B; A.list(); B.list();

B.putdate(Y2005,Oct,18); B.puttime(17,30,00); B.list(); show(B); return 0;

5.2 定义一个日期类Date,具有年月日等数据成员,显示日期、加减天数等函数成员。注意需要考虑闰年。 #include using namespace std; class Date{

int year,month,day; static const int days[]; bool LeapYear(); bool EndofMonth();

public: Date(int=1900,int=1,int =1);

void Increment(int ); void Decrement(int); void SetDate(int,int,int); void Print();

};

const int Date::days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

Date::Date(int y,int m,int d){

SetDate(y,m,d); }

void Date::SetDate(int y,int m,int d){ year=(y>=1900 && y<=9999)?y:1900; }

bool Date::LeapYear(){ return ((year@0 == 0) || (year%4==0 && year0!=0))? true:false; }

bool Date::EndofMonth(){ }

void Date::Increment(int n){ int i; for(i=1;i<=n;i++)

if(month==2 && LeapYear()) return day==29;

else

return day==days[month]; month=(m>=1 &&m<=12)?m:1; if(month==2 && LeapYear())

day=(d>=1 && d<=29)?d:1; else day=(d>=1 && d<=days[month])?d:1;

} }

if(EndofMonth() && month==12){ year++; month=day=1; }

else if(EndofMonth()){ month++;day=1; } else

day++;

void Date::Decrement(int n){

int i;

for(i=1;i<=n;i++) if(day==1){ if(month==1){

}

year--; month=12; day=31;

else if(month==3){ day=LeapYear()?29:28; month=2; } else

day=days[--month];

} else day--;

void Date::Print(){ }

cout<

void main(){ Date d1(2005,1,4),d2(2004,12,27);

d1.Print();

d1.Decrement(4); d1.Print(); d2.Print(); d2.Increment(70); d2.Print();

}

5.3 定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,默认值为0,周长和面积在构造函数中生成)和复制构造函数。 #include

const double PI=3.1415; using namespace std; class Circle{ double radius,length,area; public:

Circle(double r=0){ }

Circle(Circle& c){ radius=c.radius ;

length=c.length ; area=c.area ; setr(r);

length=2*PI*radius; area=PI*radius*radius;

}

void print(){ }

void setr(double r){

cout<<\cout<<\cout<<\

radius=r; } };

int main(){

Circle c1(10),c2(c1); c1.print();

c2.print(); return 0; }

5.4 设计一个学校在册人员类(Person)。数据成员包括身份证号(IdPerson)、姓名(Name)、性别(Sex)、生日(Birth-day)和家庭住址(HomeAddress)。成员函数包括人员信息的录入和显示,还包括构造函数与复制构造函数。设计一个合适的初始值。 #include #include

const double PI=3.1415; using namespace std; struct date{ int year,month,day; };

class Person{

char ID[12]; char Name[10]; char Sex[3];


c++类与对象习题答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京林业大学17年 MTI 考研经验贴分享-致18学子

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: