您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C++程序设计11-14及模拟考题参考答案
11-14及模拟考题参考答案/*C11-1.P207~2094.定义并实现Cat类,包含name、age、sex、weight等属性以及初始化和显示属性的方法,要求用一般成员函数和构造函数两种方法实现初始化操作。*/#includeiostream#includecmath#includecstringusingnamespacestd;classCat{private:charname[20];intage;charsex;doubleweight;public:voidinit(char*name,intage,charsex,doubleweight){strcpy(this-name,name);this-age=age;this-sex=sex;this-weight=weight;}Cat(){init(Jim,11,'f',12.3);}Cat(char*name,intage,charsex,doubleweight){init(name,age,sex,weight);}voidshow(){coutname,age,sex,weightendl;}~Cat(){}};intmain(){Catm1;m1.init(Jim,11,'f',12.3);m1.show();Catm2(Jim,11,'f',12.3);m2.show();return1;}/*C11-2.P207~2095.定义并实现Circle类,采用左上角和右下角坐标表示圆,具有计算面积和周长等函数,要求使用构造函数初始化。*/#includeiostream#includecmath#includecstringusingnamespacestd;#definePI3.14159classCircle{private:doublelefttop_x;doublelefttop_y;doublerightbottom_x;doublerightbottom_y;public:Circle(){this-lefttop_x=0;this-lefttop_y=0;this-rightbottom_x=0;this-rightbottom_y=0;}Circle(doublelefttop_x,doublelefttop_y,doublerightbottom_x,doublerightbottom_y){this-lefttop_x=lefttop_x;this-lefttop_y=lefttop_y;this-rightbottom_x=rightbottom_x;this-rightbottom_y=rightbottom_y;}doublearea(){doubled=(rightbottom_x-lefttop_x)*(rightbottom_x-lefttop_x)+(rightbottom_y-lefttop_y)*(rightbottom_y-lefttop_y);d=d/4;returnPI*d;}doublelength(){doubled=(rightbottom_x-lefttop_x)*(rightbottom_x-lefttop_x)+(rightbottom_y-lefttop_y)*(rightbottom_y-lefttop_y);d=sqrt(d);returnPI*d;}~Circle(){}};intmain(){Circlem1(100,100,300,300);cout圆的面积为:m1.area()endl;cout圆的周长为:m1.length()endl;return1;}/*C11-3.P207~2096.定义并实现Triangle(三角形)类,其成员变量包括三个边长变量,成员函数包括判断是否合法、计算面积,以及是否构成直角三角形、锐角三角形和钝角三角形等函数。*/#includeiostream#includecstring#includecmathusingnamespacestd;classTriangle{private:doubleA;doubleB;doubleC;public:Triangle(){A=B=C=0;}Triangle(doublea,doubleb,doublec){A=a;B=b;C=c;}voidiflegal(doublea,doubleb,doublec);doublearea();voidjudge();voidshowme();~Triangle(){}};voidTriangle::iflegal(doublea,doubleb,doublec){intj=0;A=a;B=b;C=c;if(a+b=c||a+c=b||c+b=a){cout不合法endl;j=1;exit(0);}elsecout合法endl;}doubleTriangle::area(){doublep;p=0.5*(A+B+C);doubleS=sqrt(p*(p-A)*(p-B)*(p-C));returnS;}voidTriangle::judge(){if(A*A+B*B==C*C||A*A+C*C==B*B||B*B+C*C==A*A)cout是直角三角形endl;elseif(A*A+B*BC*C||A*A+C*CB*B||B*B+C*CA*A)cout是钝角角三角形endl;elseif(A*A+B*BC*C||A*A+C*CB*B||B*B+C*CA*A)cout是锐角三角形endl;}voidTriangle::showme(){cout面积是area()endl;}intmain(){inta,b,c;cout请输入三角形三边endl;cinabc;Triangletr1;tr1.iflegal(a,b,c);tr1.judge();tr1.showme();return0;}/*C11-4.P207~2097.定义并实现Time类,包括设置时间、进行时间的加减、按照各种可能的格式输出时间,要求设计多个重载的构造函数。*/#includeiostream#includecstring#includecmathusingnamespacestd;classTime{private:intH;intM;intS;public:Time();//不带参数Time(inth,intm,ints);//带参数voidtime_1(inth,intm,ints);voidprint_1();voidprint_2();doubleminus(Time&a);~Time(){}};Time::Time(){H=12;M=11;S=11;}Time::Time(inth,intm,ints){H=h;M=m;S=s;}voidTime::time_1(inth,intm,ints){H=h;M=m;S=s;}voidTime::print_1(){cout((H10)==1?0:)H:((M10)==1?0:)M:((S10)==1?0:)Sendl;}voidTime::print_2(){cout((H10)==1?H:H-12):M:S;cout((H=12)==1?PM:AM)endl;}doubleTime::minus(Time&a){intsum;sum=H*3600+M*60+S-a.H*3600-a.M*60-a.S;sum=(sum0?(-sum):sum);S=sum%60;M=((sum-S)%3600)/60;H=(sum-S-M*60)/3600;cout相差:H时M分S秒endl;return0;}intmain(){inth1,m1,s1;inth2,m2,s2;cout请输入时、分、秒endl;cinh1m1s1;cout请输入时、分、秒endl;cinh2m2s2;Timetime1,time2;time1.print_1();time1.print_1();time1.time_1(h1,m1,s1);coutt1的两种输出:endl;time1.print_1();time1.print_2();coutt2的两种输出:endl;time2.time_1(h2,m2,s2);time2.print_1();time2.print_2();time1.minus(time2);return0;}/*C11-5.P207~2098.定义并实现地址类Address,包括姓名、所居住的街道地址、城市和邮编等属性以及改变对象姓名的Changename函数、显示地址信息的Display函数。*/#includeiostream#includecstring#includecmathusingnamespacestd;classAddress{private:charname[10000];charstreetaddress[10000];charcity[10000];charpostcode[10000];public:Address(){}Address(char*name1,char*streetaddress1,char*postcode1,char*city1){init(name1,streetaddress1,postcode1,city1);}voidinit(char*name1,char*streetaddress1,char*postcode1,char*city1);voidChangename(char*name2);voidDisplay();~Address(){}};voidAddress::init(char*name1,char*streetaddress1,char*postcode1,char*city1){strcpy(this-name,name1);strcpy(this-streetaddress,streetaddress1);strcpy(this-postcode,postcode1);strcpy(this-city,city1);}voidAddress::Changename(char*name2){strcpy(name,name2);}voidAddress::Display(){cout姓名:nameendl;cout所居住的街道地址:streetaddressendl;cout城市:cityendl;cout邮编:postcodeendl;}intmain(){Addressaddress1;charname1[10000];charstreetaddress1[10000];charpostcode1[10000];charcity1[10000];cout请依次输入姓名、所居住的街道地址、城市和邮编endl;cinname1streetaddress1postcode1city1;address1.init(name1,streetaddress1,postcode1,city1);cout更改前信息:endl;address1.Display();charname2[10000];cout请输入要改变的名字endl;cinname2;address1.Changename(name2);cout更改后信息:endl;address1.Display();return0;
本文标题:C++程序设计11-14及模拟考题参考答案
链接地址:https://www.777doc.com/doc-5274983 .html