您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第07-09章_习题课
2020/3/600杨琦西安交通大学计算机教学实验中心2012.10第7章习题计算机程序设计(C++)2020/3/611.定义并实现Dog类,包含name、age、sex、weight等属性以及初始化和显示属性的方法,要求用一般成员函数和构造函数两种方法实现初始化操作。样例输入输出Ahuang3m2.5Dog'sname:AhuangDog'sage:3Dog'ssex:mDog'sweight:2.52020/3/62classDog{charname[20];intage;charsex;floatweight;public:Dog(char*Name=a,intAge=0,charSex='m',floatWeight=0){strcpy(name,Name);age=Age;sex=Sex;weight=Weight;}2020/3/63voidInit(){cinnameagesexweight;}voidShowDog(){coutDog'sname:nameendl;coutDog'sage:ageendl;coutDog'ssex:sexendl;coutDog'sweight:weightendl;}};2020/3/64intmain(){Dogdog1;dog1.Init();dog1.ShowDog();return0;}2020/3/652.定义并实现Circle类,采用左上角和右下角坐标表示圆,具有计算面积和周长等函数,要求使用构造函数初始化。(π取3.1415926)样例输入输出1123Theareaofe1:1.5708Theperimeterofe1:5.141592020/3/66constdoublepi=3.1415926;classEllipse{doublex1,y1,x2,y2;public:Ellipse(inta,intb,intc,intd):x1(a),y1(b),x2(c),y2(d){}doublePerimeter(){doublea=fabs(x1-x2)/2;doubleb=fabs(y1-y2)/2;if(a=b)return2*pi*b+4*(a-b);elsereturn2*pi*a+4*(b-a);}2020/3/67doubleArea(){return(double)fabs((x1-x2)*(y1-y2))/4*pi;}};intmain(){intx1,y1,x2,y2;cinx1y1x2y2;Ellipsee1(x1,y1,x2,y2);coutTheareaofe1:e1.Area()endl;coutTheperimeterofe1:e1.Perimeter()endl;return0;}2020/3/683.定义并实现三角形类,其成员变量包括三个边长变量,成员函数包括判断是否合法、计算面积,以及是否构成直角三角形、锐角三角形的钝角三角形等函数。样例输入输出345直角三角形2020/3/69classtriangle{doublef1,f2,f3;public:triangle(doublea,doubleb,doublec){f1=a;f2=b;f3=c;}boollegal(){if((f1f2+f3)&&(f2f1+f3)&&(f3f1+f2))returntrue;elsereturnfalse;}2020/3/610inttype(){doublea,b,c,d;a=f1;b=f2;c=f3;if(ab){d=a;a=b;b=d;}if(bc){d=b;b=c;c=d;}if(a*a+b*b==c*c)return0;//直角elseif(a*a+b*bc*c)return1;//钝角elsereturn-1;//锐角}};2020/3/611intmain(){doublea,b,c;cinabc;triangletr1(a,b,c);if(tr1.legal()){switch(tr1.type()){case0:cout直角三角形endl;break;case1:cout钝角三角形endl;break;case-1:cout锐角三角形endl;break;2020/3/612}}elsecout不能构成三角形endl;return0;}2020/3/6134.定义并实现地址类Address,包括姓名、所居住的街道地址、城市和邮编等属性以及改变对象姓名的Changename函数、显示地址信息的Display函数。样例输入输出张山咸宁西路28号西安710049张山address:710049西安咸宁西路28号李四李四address:710049西安咸宁西路28号2020/3/614classAddress{charName[30];charStreetAddress[30];charCity[30];charPostcode[30];public:Address(char*a,char*b,char*c,char*d){strcpy(Name,a);strcpy(StreetAddress,b);strcpy(City,c);strcpy(Postcode,d);}2020/3/615voidChangename(char*a){strcpy(Name,a);}voidDisplay(){coutNameaddress:endl;coutPostcodeCityStreetAddressendl;}};2020/3/616intmain(){charname[30];charstreetaddress[30];charcity[30];charpostcode[30];cinnamestreetaddresscitypostcode;Addressx(name,streetaddress,city,postcode);x.Display();cinname;x.Changename(name);x.Display();return0;}2020/3/6175.定义并实现三维空间的Point3D类,包括x、y、z三个成员变量,一个计算空间中两个点之间的距离的成员函数,并编写合适的构造函数和析构函数。样例输入输出样例输入输出3451233.46412020/3/618classPoint3D{doublex,y,z;public:Point3D(double_x,double_y,double_z){x=_x;y=_y;z=_z;}~Point3D(){}doubleDistance(Point3D&p){doublea=p.x;doubleb=p.y;doublec=p.z;returnsqrt((x-a)*(x-a)+(y-b)*(y-b)+(z-c)*(z-c));}};2020/3/619intmain(){doublex,y,z,a,b,c;cinxyzabc;Point3Dpoint1(x,y,z);Point3Dpoint2(a,b,c);coutpoint1.Distance(point2)endl;return0;}2020/3/62020杨琦西安交通大学计算机教学实验中心2012.10第8章习题计算机程序设计(C++)2020/3/6211.设计一个点类Point和其派生类彩色点类ColorPoint。样例输入输出11345[x,y]=1,1r*256*256+g*256+b=1976372020/3/622#includeiostreamusingnamespacestd;classPoint{public:intx,y;Point(inta=0,intb=0){x=a;y=b;}};classColorPoint:publicPoint{intr,g,b;2020/3/623public:ColorPoint(inta,intbb,intc,intd,inte):Point(a,bb){r=c;g=d;b=e;}voidPrint(){cout[x,y]=x,yendl;coutr*256*256+g*256+b=r*256*256+g*256+bendl;}};intmain(){inta,b,c,d,e;cinabcde;ColorPointx(a,b,c,d,e);x.Print();return0;}2020/3/6242.设计一个Person类和其派生类教师teacher,新增的属性有专业、职称和主讲课程,并为这些属性定义相应的方法。样例输入输出11050632Jackmale32mathprofmathapp身份证号:11050632姓名:Jack性别:male年龄:32专业:math职称:prof主讲课程:mathapp2020/3/625classPerson{stringID;//身份证号stringName;//姓名stringSex;//性别intAge;//年龄public:Person(stringid,stringname,stringsex,intage){ID=id;Name=name;Sex=sex;Age=age;}2020/3/626virtualvoiddisplay(){cout身份证号:IDendl;cout姓名:Nameendl;cout性别:Sexendl;cout年龄:Ageendl;}};2020/3/627classteacher:publicPerson{stringMajor;//专业stringTitle;//职称stringCourse;//主讲课程public:teacher(stringid,stringname,stringsex,intage,stringmajor,stringtitle,stringcourse):Person(id,name,sex,age){Major=major;Title=title;Course=course;}2020/3/628virtualvoiddisplay(){Person::display();cout专业:Majorendl;cout职称:Titleendl;cout主讲课程:Courseendl;}};2020/3/629intmain(){stringid,name,sex,major,title,course;intage;cinidnamesexagemajortitlecourse;teacherx(id,name,sex,age,major,title,course);x.display();return0;}2020/3/6303.设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的私有子类其中包含载人数passenger_load。卡车类truck是vehicle的私有子类其中包含载人数passenger_load和载重量payload,每个类都有相关数据的输出方法。样例输入输出输入小车参数43.210车轮数:4车重:3.2载人数:10输入卡车参数127.8432.5车轮数:12车重:7.8载人数:4载重量:32.52020/3/631classvehicle{doubleWheels;//车轮数doubleWeight;//车重public:vehicle(doublewheels,doubleweight){Wheels=wheels;Weight=weight;}virtualvoidDispl
本文标题:第07-09章_习题课
链接地址:https://www.777doc.com/doc-4193627 .html