C++题目x答案_第1页
C++题目x答案_第2页
C++题目x答案_第3页
C++题目x答案_第4页
C++题目x答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、1、设计一个程序:定义一个圆类,有数据成员半径radis(半径),计算圆的面积和周长,写出主函数测试你编写的类。2、3、4、5、6、7、8、9、#in clude using<iostream>namespace std ;float class public : floatradis ;floatgetMJ () returnpi = 3.14 ; R10、f loat getZC () return11、R( float in ) radis =in ;12、;13、14、void main ()15、16、17、18、19、radis * radis *pi ;radis *

2、2* pi;R r (10);cout <<"半径:10n 周长:"<<r. getZC ()<< "n 面积:"<<r. getMJ ();2编写一个程序。用名为 max的函数模板计算三个参数中的最大值,用整数、字符和浮点数测试所编写的程序。20、21、22、23、24、25、26、27、28、29、30、31、#i nclude<iostream>using namespace std ;tempi ate vtypen ame O>O Max(O a, O b, O c ) retu

3、rn a >b?a>c?a: c: b>c?b: c;void main () cout <<Max( 9, 1, 8)vv endl ;cout <<Max( 7.0,3.2 , 9.9 )<< endl ;cout <<Max( 'a' , 'z' , 'b');32、设计一个立方体类 Box ,它能计算并输出立方体的体积和表面积。33、34、35、36、37、38、39、#i nclude<iostream>using namespace std ;40、41、4

4、2、43、44、45、46、47、48、class Boxpublic :f loatf loat getBMJ () return f loat getTJ () return Box (float in ) L=in ; ;L;L*L*6;L*L;void main () Box r (10);cout <<"边长:10n表面积:"vvr. getBMJ()vv "n 体积:"<<r.getTJ ();..4、编写一个程序计算“三角形、正方形、圆形”三种图形的面积。要求:a)抽象出一个基类 base

5、 ;b)在其中说明一个虚函数用来求面积;C)利用派生类定义“三角形、正方形、圆形”d)编写主函数并测试。#i nclude<iostream>using namespace std ;class basepublic :virtual float getMJ () return H*W float H, W;1.class R: public basepublic :float getMJ () returnR( float in ) H=in ;class A: public basepublic :floa

6、t getMJ () returnA (float in_H , float in; "H*H*3.14 ;(H*W/ 2;i_w ) H=in_H ; W=in_w ;4.35.36.voidmain ()R r(10);A a(10,5);S s(10);cout<<"圆:class S : public basepublic :float getMJ () return H*H;S (float in ) H=in ;边长:10n 面积:"<<r .getMJ

7、()<< endl<<"n 三角:高:10,底:5n 面积:"<<a. getMJ()<< endl <<"n 正方形:边长:10n 面积:"vvs.getMJO;5、定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year 和若干个公有成员函数,并实现如F要求:构造函数重载;成员函数设置缺省参数;定义一个友元函数来打印日期;定义一个非静态成员函数设置日期;可使用不同的构造函数来创建不同的对象。..2.13.14.in el

8、ude using<iostream>namespace std ;classpublicTDate (): Year (1900), Month( 1), Day( 1);TDate (i nt Y, int M=1, int D=1) Mo nth =M Day=D; Year =Y;void set (i nt Y =1990, int M=1, int D=1) Mo nth =M Day=D Year =Y; friend void show (TDate & in );p rivate :int;TDateMonth, Day, Year;8

9、.8.voidshow (TDate& in ) cout win . Yearw"年"<<in . Monthw"月"win . Day<<"日n" ;voidTDateTDateTDatemaint1t2t3()(2014);(2015,6,5);show (t1 ); show (t2 ); show (t3 );t3 . set ( 1999); show (t3 );,Employee有数据成员姓名 name和工号ID ,6、编程实现抽象

10、类 Emp loyee,派生类 Man ger 和HourlyWorkerMan ger有数据成员sal,代表经理的月工资,HourlyWorker 有 wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。.#i nclude#i nclude using namespace std ;<iostream> <stri ng>.8.19.2

11、2.33.class Empio yeepublic :stri ng n ame;int id ;virtual int getSal () return 0;Employee (): name("未命名"),id (0);Employee () cout <<"析构n" ;void set (string N , int I ) id =I ; name=N; void showSal ()cout <<"n 姓名:"wname<

12、<endl<<"工号:"<<id <<endl<<"工资:"<<getSal ()<< endl ;classpublic :Manger( int S) sal =S;int getSal () return sal ;int sal ;class HourlyWorker : publicEmpioyeepublic :HourlyWorker (int W, int H) wage=VV hours =H; int getSal () return wage * hour

13、s ; int wage , hours ;Man ger: p ublicEmpio yee34.35.36.;3.44.45.void main ()HourlyWorker h (10, 20); h . set ("小时工 A", 777);h . showSal ();Ma nger m(999);m. set ("经理 A", 888);m. showSal ();1.回答下面问题。F面列出了由三个文件 main.cpp、MyClass.h和MyClass.cpp 组成的一个程序。文件 main.cpp

14、中实现了主 函数;文件MyClass.h中定义了类MyClass ;文件MyClass.cpp 中实现了类MyClass的成员函数。题中没有给出MyClass.h和文件MyClass.cpp 的内容。要求:三个文件的完整实现。仔细阅读所给的程序,根据题意补充文件a.将成员变量定义为私有的;b.不要增加题中没有用到的类成员。2./ 文件 ma in .c pp3.#i nclude<iostream.h>4.#i nclude"MyClass.h"5.voidmain ()6.7.MyClass obj(3.3);8.cout<< obj.GetMem

15、ber()<< endl ;9.obj .SetMember( 5.6 );10.cout<< obj.GetMember()<< endl ;11.12./*1.*/*/0.41./ 文件 MyClass . cpp#i nclude float return void MyClass : member=member /在这里写出构造函数的实现函数"MyClass.h"MyC

16、lass : GetMember()member;MyClass : SetMember( float member)MyClass: MyClass (float in )Membe=in ;/*/ 文件 MyClass.h/类MyClass的定义class MyClass /在下面写出类的定义体MyClass ( float in )floatGetMember();voidSetMember( float member);privatefloatmember;10、某公司雇员(employee )包括经理(manager ),技术人员(technician )和销售员(salesman

17、)。开发部经理(developermanger),既是经理也是技术人员。销售部经理( salesmanager ),既是经理也是销售员。employ类为虚基类派生出manager,technician禾Rsalesman类;再进一步派生出developermanager禾Rsalesma nager 类。empi oyee 类的属性包括姓名、职工号、工资级别,月薪(实发基本工资加业绩工资)。操作包括月薪计算函数(Pay(),该函数要求输入请假天数,扣去应扣工资后,得出实发基本工资。tech nician 类派生的属性有每小时附加酬金和当月工作时数,及研究完成进度系数。业绩工资为三者之积。也包括

18、同名的pay()函数,工资总额为基本工资加业绩工资。salesman 类派生的属性有当月销售额和酬金提取百分比,业绩工资为两者之积。也包括同名的 Pay()函数,工资总额为基本工资加业绩工资。manager类派生属性有固定奖金额和业绩系数,业绩工资为两者之积。工资总额也为基本工资加业绩工资。而 developermanager类,pay()函数是将作为经理和作为技术人员业绩工资之和的一半作为业绩工资。salesamanager 类,pay()函数则是经理的固定奖金编程实现工资管理。特别注意Pay()的定义和调额的一半,加上部门总销售额与提成比例之积,这是业绩工资。用方法:先用同名覆盖,再用运行

19、时多态。由左下方的顶点和长宽同第6题9、以点(point )类为基类,重新定义矩形类和圆类。点为直角坐标点,矩形水平放置, 定义。圆由圆心和半径定义。派生类操作判断任一坐标点是在图形内,还是在图形的边缘上,还是在图形外。缺省初始化图形退化为点。要求包括拷贝构造函数。编程测试类设计是否正确。1.#i nclud? <iostream>2.#in clude<cmath>3.us ingnamespace std ;4.con stdouble PI =3.1415926535 ;5.classPoint 6.p rivate:7.doubleJ x , y;8. publ

20、ic :9.Point () x = 0; y = 0; 10.Point (double xv , double yv ) x =:xv ; y = yv ;11.Point (Point & pt ) x = pt . x; y=pt . y; 12.double getx () return x ;13.double gety () return y ;14.double Area () return 0;15.16void Show) cout <<"x=" <<x<<'' ;<<"y

21、=" <<y<<endl ;1 u.17.;class Circle : publicPoint 18.double radius ;19.public :20.Circle () radius =0;21.Circle (double xv , double yv , double vv ): Point (xv,yv) radius = vv ;22.Circle ( Circle & cc ): Point ( cc) radius = cc . radius ;/ 拷贝构造函数23.double Area () return PI * radi

22、us*radius ;24.void Show)/注意怎样访冋基类的数据成员25.cout <<"x=" <<getx ()<< 't'<<"y="<<gety ()<< 't' <<"radius=" << position(Point &pt)28.double distanee= sqrt ( getx ()-pt . getx ()*( getx ()- pt.

23、getx ()29.+(gety ()-pt. gety ()*( gety ()- pt. gety ();30.double s =distanee - radius ;31.if ( s=0) return 0;/在圆上32.else if ( s<0) return-1;/在圆内33.else return 1;/在圆外34.35.;36.class Rectangle : publicPoint 37.double width , length ;38.public :39.Rectangle () width =0; length =0;40.Rectangle (doubl

24、e xv , double yv ,double wv , double lv ): Point (xv , xv)41.width = wv ;42.length = lv ;43.44.Rectangle ( Rectangle & rr ): Point(rr )45.width = rr . width ;46.length = rr . length ;<<endl ;9.50.double Area () return width void Show)cout <<"x=" <<getx ()<

25、;< 't' cout <<"width=" <<width <<'t' *length ;<<"y=" <<gety ()<< 't' <<"length=" <<length <<endl ;

26、4.95.96.gety ();s2=0| s2=length )&&s1 <=width )/O在矩形上,-1在矩形内/1在矩形外0: cout <<"在矩形上"<<endl ; break ; -1: cout <<"在矩形内"<<endl ; break ; 1: cout <<"在矩形外"<<endl ; break ;0: cout <<"

27、在圆上"<<endl ; break ; -1: cout <<"在圆内"<<endl ; break ; 1: cout <<"在圆外"<<endl ; break ;0: cout <<"在矩形上"<<endl ; break ; -1: cout <<"在矩形内"<<endl ; break ; 1: cout <<"在矩形外"<<endl ; br

28、eak ;int position(Point &pt);int Recta ngle : p ositi on (Point &pt)double s1 ,s2;s1 = (pt . getx ()- getx (); s2 =( pt. gety ()-)11(if ( s1=0| s1=width )&&s2<=lengthreturn 0;-1;else if ( s1 <width &&32 viength ) returnelse return 1; int main ()Circle cc1 (3, 4, 5), cc2

29、, cc3 ( cc1););Rectangle rt1 (0, 0, 6, 8), rt2 , rt3 (rt1Point p1 (0,0), p2(6,8), p3(3,3), p4(8,4), p5(8, 8); cc1 . Show(); cc2 . Show(); rt1 . Show(); rt2 . Show();cout vv"点 p 1:"p1 . Show();cout vv"矩形 rt3:" vv't'rt3 . Show();switch (rt3 .position(p 1)casecasecasecout vv

30、"圆 cc3:" vv't'cc3 . Show();switch ( cc3 . position(p 1)casecasecasecout vv"点 p2:"p2 . Show();cout vv"矩形 rt3:" vv't'rt3 . Show();switch (rt3 . position (p2)casecasecase cout vv"圆 cc3:" vv't'cc3 . Show();switch ( cc3 . position(p2)97.98.9

31、00041.142.casecase casecout <<"点 p3:"p3. Show<);cout <<"矩形 rt3:" vv't' rt3 . Show<);switch

32、 (rt3 . position ( p3) case case casecout <<"圆 cc3:" <<'t'cc3. Show();switch (cc3 . position( p3)case case casecout <<"点 p4:"p4. Show);cout <<"矩形 rt3:"<<'t'rt3 . ShowD;switch (rt3 . position ( p4) case case casecout <<

33、"圆 cc3:" <<'t'cc3. Show;);switch (cc3 . position( p4)case case casecout <<"点 p5:"p5. Show);cout <<"矩形 rt3:"<<'t'rt3 . Show;);switch (rt3 . position( p5)case case case0: cout <<"在圆上"<<endl ; break ; -1: cout <<"在圆内"<<endl ; break ; 1: cout <<"在圆外"<<endl ; break ;0: cout <<

温馨提示

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

评论

0/150

提交评论