C++各套试题答案.docx_第1页
C++各套试题答案.docx_第2页
C++各套试题答案.docx_第3页
C++各套试题答案.docx_第4页
C++各套试题答案.docx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一套设计并测试一个矩形类(Rectangle),属性为矩形的左上与右下角的坐标,矩形水平放置。操作为计算矩形周长与面积。输出见样张-*/#include #include using namespace std;/*Program*/class Rectangleprivate:double left,top,right,bottom,area,perimeter;public:Rectangle(double l=0,double t=0,double r=0,double b=0);Rectangle();void Assign(double l,double t,double r,double b);void Show();double getLeft()return left;double getTop()return top;double getRight()return right;double getBottom()return bottom;double Area()return fabs(left-right)*(top-bottom);double Perimeter()return 2*fabs(left-right)+(top-bottom);Rectangle:Rectangle(double l,double t,double r,double b)left=l;top=t;right=r;bottom=b;void Rectangle:Assign(double l,double t,double r,double b)left=l;top=t;right=r;bottom=b;void Rectangle:Show()coutleft-top point is (left,top)n;coutright-bottom point is (right,bottom)n;/* End */int main() Rectangle rect; rect.Show(); rect.Assign(100,200,300,400); rect.Show(); Rectangle rect1(0,0,200,200); rect1.Show(); Rectangle rect2(rect1); rect2.Show(); coutleft-top point is (rect.getLeft(),rect.getTop()n; coutright-bottom point is (rect.getRight(),rect.getBottom()n; cout面积rect.Area()t周长rect.Perimeter()endl; return 0;设计一个学校在册人员类(Person)。数据成员包括:身份证号(IdPerson),姓名(Name),性别(Sex),生日(Birthday)和家庭住址(HomeAddress)。成员函数包括人员信息的录入和显示。还包括构造函数与拷贝构造函数。设计一个合适的初始值。运行结果见样张。-*/#include#includeusing namespace std;class Person char IdPerson19; /身份证号,18位数字 char Name20; /姓名 char Sex; /性别 int Birthday; /生日,格式1986年8月18日写作19860818 char HomeAddress50; /家庭地址public: Person(char a19,char b20,char c,int d,char e50); Person(Person &); Person(); Person(); void PrintPersonInfo(); /输出人员信息 void inputPerson(); /输入人员信息 ;/*Program*/Person:Person(Person &Ps) strcpy(IdPerson,Ps.IdPerson);strcpy(Name,Ps.Name);Sex=Ps.Sex;Birthday=Ps.Birthday;strcpy(HomeAddress,Ps.HomeAddress);Person:Person(char*id,char*name,char sex,int birthday,char*homeadd)strcpy(IdPerson,id);strcpy(Name,name);Sex=sex;Birthday=birthday;strcpy(HomeAddress,homeadd);Person:Person()IdPerson0=0;Name0=0;Sex=m;Birthday=0;HomeAddress0=0;Person:Person();/* End */void Person:inputPerson() cout请输入身份证号,18位数字:endl; cin.getline(IdPerson,19); cout请输入姓名:endl; cin.getline(Name,20); cout请输入性别m或w:Sex; cout请输入生日,格式1986年8月18日写作19860818:Birthday; cin.get(); /吸收回车符,否则地址输不进去 cout请输入地址:endl; cin.getline(HomeAddress,50);void Person:PrintPersonInfo() int i; cout身份证号:IdPersonn姓名:Namen性别:; if(Sex=m |Sex=M)cout男n; else if(Sex=w |Sex=M)cout女n; else cout n; cout出生年月日:; i=Birthday; couti/10000年; i=i%10000; couti/100月i%100日n家庭住址:HomeAddressn;int main()Person Ps1(320102811226161,朱海鹏,m,19811226,南京市黄浦路1号),Ps2(Ps1),Ps3; Ps1.PrintPersonInfo(); Ps2.PrintPersonInfo(); Ps3.inputPerson(); Ps3.PrintPersonInfo(); return 0;补充构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用整型,并完成测试。输出见样张。注意:自己写的代码中不能有cout-*/#include #include using namespace std;/*Program*/class Timedateprivate:int hh,mm,ss,year,month,date;public:Timedate(int y,int m,int d);Timedate();Timedate();void list(); void putdate(int y,int m,int d); void puttime(int hh,int mm,int ss);Timedate:Timedate(int y,int m,int d)year=y;month=m;date=d;hh=0;mm=0;ss=0;Timedate:Timedate()year=0;month=0;date=0;hh=0;mm=0;ss=0;void Timedate:putdate(int y,int m,int d)year=y;month=m;date=d;void Timedate:puttime(int h,int m,int s)hh=h;mm=m;ss=s;/* End */void Timedate:list()/成员函数,直接访问私有的数据成员 coutyear/month/date :; switch(year) case 2000:cout2000;break; case 2001:cout2001;break; case 2002:cout2002;break; case 2003:cout2003;break; case 2004:cout2004;break; case 2005:cout2005;break; switch(month) case 1:cout/Jan;break; case 2:cout/Feb;break; case 3:cout/Mar;break; case 4:cout/Apr;break; case 5:cout/May;break; case 6:cout/Jun;break; case 7:cout/Jul;break; case 8:cout/Aug;break; case 9:cout/Sep;break; case 10:cout/Oct;break; case 11:cout/Nov;break; case 12:cout/Dec;break; cout/dateendl; couthour:minite:second :; couthh:mm:ssendl;int main() Timedate A(2004,3,3),B; A.list(); /输出A的日期和时间 B.list(); /输出B的日期和时间 B.putdate(2005,10,18); /更新B的日期 B.puttime(17,30,00); /更新B的时间 B.list(); /输出B的日期和时间 return 0;定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷贝构造函数。注意:类中不能有cout运行结果见样张。-*/#include#includeusing namespace std;const double PI=3.14159265;/*Program*/class Circleprivate:float radius,area,circumference;public:Circle(float=0); Cirlce(Circle&); void SetR(float Radius);float GetR()return radius;float GetCircumference()return circumference;float GetAreaCircle()return area;Circle:Circle(float Radius)radius=Radius;area=PI*radius*radius;circumference=PI*2*radius;Circle:Cirlce(Circle&cl)radius=cl.radius;area=cl.area;circumference=cl.circumference;void Circle:SetR(float Radius)radius=Radius;area=PI*radius*radius;circumference=PI*2*radius;/* End */int main() Circle cl1(2),cl2,cl3=cl1; cout圆半径:cl3.GetR()t圆周长:cl3.GetCircumference() t圆面积:cl3.GetAreaCircle()endl; cl2.SetR(4); cout圆半径:cl2.GetR()t圆周长:cl2.GetCircumference() t圆面积:cl2.GetAreaCircle()endl; return 0;#include#includeusing namespace std;const double PI=3.14159265;/*Program*/class Circledouble radius,area,perimeter;public:Circle(double r=0);Circle() void SetR(double r);double GetR(); double GetAreaCircle();double GetCircumference();Circle:Circle(double r) radius=r; area=PI*radius*radius; perimeter=2*PI*radius;void Circle:SetR(double r) radius=r;double Circle:GetR()return radius;double Circle:GetAreaCircle()return PI*radius*radius;double Circle:GetCircumference()return 2*PI*radius;/* End */int main() Circle cl1(2),cl2,cl3=cl1; cout圆半径:cl3.GetR()t圆周长:cl3.GetCircumference() t圆面积:cl3.GetAreaCircle()endl; cl2.SetR(4); cout圆半径:cl2.GetR()t圆周长:cl2.GetCircumference() t圆面积:cl2.GetAreaCircle()endl; return 0;第二套题目:定义一个圆形类,属性有半径和相应的成员函数。然后定义一个正方形类,属性有边长和相应的成员函数。再编写一个如下图所示的组合类,由一个正方型和一个圆形组成,要求该组合类能求出阴影部分面积和周长。通过主函数测试该类。组合图形见图:组合.JPG 输出结果见图:样张.JPG-*/#include #include using namespace std;const double PI=3.1416;/*Program*/class Circleprivate:double radius,area,circumference;public:Circle(double r=0);Circle();void Set(double r);double S()return PI*radius*radius;double L()return 2*PI*radius;Circle:Circle(double r)radius=r;void Circle:Set(double r)radius=r;class Boxprivate:double bian,area,circumference;public:Box(double b=0);Box();void Set(double b);double S()return bian*bian;double L()return 4*bian;Box:Box(double b)bian=b;void Box:Set(double b)bian=b;class NewStylepublic:Circle a;Box b;NewStyle(Circle a1,Box b1);NewStyle();void Set(Circle a2,Box b2);double S()return (a.S()-b.S();double L()return (a.L()+b.L();NewStyle:NewStyle(Circle a1,Box b1)a=a1;b=b1;void NewStyle:Set(Circle a2,Box b2)a=a2;b=b2;/* End */ int main() Circle A(4); /圆的半径为4 Box B(1); /正方形的边长为1 NewStyle C(A,B); cout自定义图形的面积C.S()endl; cout自定义图形的周长C.L()endl; A.Set(6); /圆的半径变为6 B.Set(2); /正方形的边长变为2 C.Set(A,B); cout自定义图形的面积C.S()endl; cout自定义图形的周长C.L()endl; return 0; 题目:请补足date类和card的成员函数定义。输出结果见图:样张.JPG-*/#include#include using namespace std;class date 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;return_day.setdate(borrow_day.get_year(),borrow_day.get_month(),borrow_day.get_day()+expiry);int i=return_day.get_month(),a;int year=return_day.get_year();int day=return_day.get_day();if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) a= 31; else if(i!=2) a =30; else if(year%4=0&year%100!=0)|(year%400=0) a=29; else a=28; while(daya) i+; day-=a; if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) a= 31; else if(i!=2) a =30; else if(year%4=0&year%100!=0)|(year%400=0) a=29; else a=28; while(i12) year+; i-=12; return_day.setdate(year,i,day);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: endl;cout-endl;coutsetw(10)*图书号: c1.get_book()endl;coutsetw(10)*借书人: c1.get_reader()endl;coutsetw(10)*借阅期限: c1.get_expiry()endl;coutsetw(10)*出借日期: c1.get_borrow_day().get_year():c1.get_borrow_day().get_month():c1.get_borrow_day().get_day()endl;coutsetw(10)*归还日期: c1.get_return_day().get_year():c1.get_return_day().get_month():c1.get_return_day().get_day()endl;cout-endl;day.setdate(2012,12,6);/设置借书日期cbook=100077;/图书者编号card c2(cbook,stu,day,30);/创建card对象c2 /以下打印借书卡c2信息cout借书卡c2: endl;cout-endl;coutsetw(10)*图书号: c2.get_book()endl;coutsetw(10)*借书人: c2.get_reader()endl;coutsetw(10)*借阅期限: c2.get_expiry()endl;coutsetw(10)*出借日期: c2.get_borrow_day().get_year():c2.get_borrow_day().get_month():c2.get_borrow_day().get_day()endl;coutsetw(10)*归还日期: c2.get_return_day().get_year():c2.get_return_day().get_month():c2.get_return_day().get_day()endl;cout-endl;#include#include using namespace std;class date 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.setdate(Borrow_day.get_year(),Borrow_day.get_month(),Borrow_day.get_day();expiry=Expiry;date card:get_borrow_day()return borrow_day;date card:get_return_day() int A11=31,28,31,30,31,30,31,31,30,31,30; int y,d,m;y=borrow_day.get_year(),d=borrow_day.get_day(),m=borrow_day.get_month(); for(int i=0,dd=0;i2)dd+;d=dd+d+expiry;if(y%4=0)if(d366)y+,d=d-366;m=1;else if(d365)y+;d=d-365;m=1;while(dAm-1)d-=Am-1;m+;if(y%4=0&y%100!=0|y%400=0)if(m2&d=1)m-;d=Am;if(y%4=0&y%100!=0|y%400=0)if(m2&d!=1)d-=1;date a(y,m,d);return a;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: endl;cout-endl;coutsetw(10)*图书号: c1.get_book()endl;coutsetw(10)*借书人: c1.get_reader()endl;coutsetw(10)*借阅期限: c1.get_expiry()endl;coutsetw(10)*出借日期: c1.get_borrow_day().get_year():c1.get_borrow_day().get_month():c1.get_borrow_day().get_day()endl;coutsetw(10)*归还日期: c1.get_return_day().get_year():c1.get_return_day().get_month():c1.get_return_day().get_day()endl;cout-endl;day.setdate(2012,12,6);/设置借书日期cbook=100077;/图书者编号card c2(cbook,stu,day,30);/创建card对象c2 /以下打印借书卡c2信息cout借书卡c2: endl;cout-endl;coutsetw(10)*图书号: c2.get_book()endl;coutsetw(10)*借书人: c2.get_reader()endl;coutsetw(10)*借阅期限: c2.get_expiry()endl;coutsetw(10)*出借日期: c2.get_borrow_day().get_year():c2.get_borrow_day().get_month():c2.get_borrow_day().get_day()endl;coutsetw(10)*归还日期: c2.get_return_day().get_year():c2.get_return_day().get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论