《c++习题解析123.ppt》由会员分享,可在线阅读,更多相关《c++习题解析123.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题解析习题解析1、定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。思路:设计类包括3个成员变量,成员函数有设置器,获取器,另有构造函数等#includeusingnamespacestd;classtimepublic:time();/声明无参的构造函数time(inth,intm,ints)/定义有参的构造函数hour=h;minute=m;second=s;/上面带参的构造函数也可以写成这样:time(inth,intm,ints):hour(h),minute(m),second(s);voidset_time(
2、);voiddisplay_time();private:inthour;intminute;intsecond;time:time()/在类外定义无参的构造函数hour=0;minute=0;second=0;voidtime:set_time()cinhour;cinminute;cinsecond;voidtime:display_time()couthour:minute:secondendl;intmain()timeT1;timeT2;coutInputthecurrenttime:=0&T1.hour=0&T1.minute=0&T1.second=59)T1.display_t
3、ime();elsecoutInputerror!Systemwilldisplaythedefaulttiem:endl;T2.display_time();return(0);另一种解法另一种解法classtimeprivate:inthour;intminute;intsecond;inttim3;public:voidsettime(inth,intm,ints);int*gettime();voidouttime();time();time();voidtime:settime(inth,intm,ints)hour=h;minute=m;second=s;int*time:gett
4、ime()tim0=hour;tim1=minute;tim2=second;returntim;voidtime:outtime()couthour:minute:secondx=x;this-y=y;intgetX()returnthis-x;voidsetX(intx)this-x=x;intgetY()returnthis-y;voidsetY(inty)this-y=y;classCircleprivate:Pointdot;/圆心坐标doubleradius;/半径public:Circle()dot=Point();Circle(Pointdot,doubleradius)thi
5、s-dot=Point(dot.getX(),dot.getY();this-radius=radius;/移动圆,新的圆心为dotvoidmove(Pointdot)this-dot.setX(dot.getX();this-dot.setY(dot.getY();/设置圆的大小,新的半径为radiusvoidsetRadius(doubleradius)this-radius=radius;/计算圆的面积doublearea()return3.14159*radius*radius;/计算圆的周长doublegirth()return2*3.14159*radius;/描述圆的基本信息vo
6、iddescribe()cout圆心坐标:dot.getX(),dot.getY()endl;cout圆的半径:radiusendl;voidmain()Pointdot=Point(3,4);doubleradius=3;Circlec=Circle(dot,radius);cout移动前endl;c.describe();cout圆的面积:c.area()endl;cout圆的周长:c.girth()endl;dot=Point(5,2);c.move(dot);coutendl移动后endl;c.describe();cout圆的面积:c.area()endl;cout圆的周长:c.gi
7、rth()endl;3定义一个描述学生通讯录的类,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。4、设计程序:提示用户输入学生姓名和分数。设计程序:提示用户输入学生姓名和分数。(假定每个班级最多(假定每个班级最多30个学生个学生.)输出以下部输出以下部分数据分数据1.班级平均分2.考试分数低于班级平均分的学生的姓名。3.最高分以及最高分学生的姓名。ClassStudentstringname;floatmark;staticfloatsum;staticintn;public:Student()voidinput()coutmark;coutname;floatgetAver()sum=sum+mark;coutaverageis:sum/nendl;returnsum/num;voidbAver(intaver)/找平均分低于班级平均分的coutinferiorpersons:endl;floataver=getAver();if(markaver)coutname;coutendl;voidtop(students)stringlname;/最高分学生的姓名if(marks.mark)lname=s.name;cout最高分以及最高分学生的姓名:endl;coutlnameendl;