c++编程题.docx

上传人:b****5 文档编号:7503141 上传时间:2023-01-24 格式:DOCX 页数:12 大小:19.48KB
下载 相关 举报
c++编程题.docx_第1页
第1页 / 共12页
c++编程题.docx_第2页
第2页 / 共12页
c++编程题.docx_第3页
第3页 / 共12页
c++编程题.docx_第4页
第4页 / 共12页
c++编程题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

c++编程题.docx

《c++编程题.docx》由会员分享,可在线阅读,更多相关《c++编程题.docx(12页珍藏版)》请在冰豆网上搜索。

c++编程题.docx

c++编程题

4.1测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。

解:

源程序:

#include

classRectangle

{

public:

Rectangle(inttop,intleft,intbottom,intright);

~Rectangle(){}

intGetTop()const{returnitsTop;}

intGetLeft()const{returnitsLeft;}

intGetBottom()const{returnitsBottom;}

intGetRight()const{returnitsRight;}

voidSetTop(inttop){itsTop=top;}

voidSetLeft(intleft){itsLeft=left;}

voidSetBottom(intbottom){itsBottom=bottom;}

voidSetRight(intright){itsRight=right;}

intGetArea()const;

private:

intitsTop;

intitsLeft;

intitsBottom;

intitsRight;

};

Rectangle:

:

Rectangle(inttop,intleft,intbottom,intright)

{

itsTop=top;

itsLeft=left;

itsBottom=bottom;

itsRight=right;

}

intRectangle:

:

GetArea()const

{

intWidth=itsRight-itsLeft;

intHeight=itsTop-itsBottom;

return(Width*Height);

}

intmain()

{

RectangleMyRectangle(100,20,50,80);

intArea=MyRectangle.GetArea();

cout<<"Area:

"<

return0;

}

程序运行输出:

Area:

3000

UpperLeftXCoordinate:

20

4.2设计一个程序。

设计一个立方体类Box,它能计算并输出立方体的体积和表面积。

#include 

using namespace std;   

class Box 

 {public:

 

 float L; 

float getBMJ(){return L*L*6;}

  float getTJ(){return L*L;} 

 Box(float in){L=in;} 

 };   

 void main() 

 {  

  Box r(10); 

  cout<<"边长:

10\n表面积:

"<

"<

 }

4.3设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。

小车类car是它的派生类,其中包含载人数passenger_load。

每个类都有相关数据的输出方法。

在主程序中定义一个car类对象,对其车轮个数、车重、载人数进行设置并显示。

#include

#include

classvehicle  //汽车类,包含车轮数和车重

{

 public:

  vehicle(int,float);

  intget_wheels();

  floatget_weight();

  voidshow();

 protected:

  intwheels;    //车轮数

  floatweight;   //车重量,单位吨

};

classcar:

privatevehicle  //小车类是汽车类的私有派生类,包含载客数

{

 public:

  car(intwheels,floatweight,intpassengers);

  intget_passengers();

  voidshow();

 private:

  intpassenger_load;  //额定载客数

};

classtruck:

privatevehicle  //卡车类是汽车类的私有派生类,包含载人数和载重量

{

 public:

  truck(intwheels,floatweight,intpassengers,floatmax_load);

  intget_passengers();

  voidshow();

 private:

  intpassenger_load;  //额定载人数

  floatpayload;   //额定载重量,单位吨

};

vehicle:

:

vehicle(intwl,floatwt)

{

 wheels=wl;

 weight=wt;

}

intvehicle:

:

get_wheels()

{

 returnwheels;

}

floatvehicle:

:

get_weight()

{

 returnweight;

}

voidvehicle:

:

show()

{

 cout<<"车轮数:

"<

"<

}

car:

:

car(intwheels,floatweight,intpassengers):

vehicle(wheels,weight)

{

 passenger_load=passengers;

}

intcar:

:

get_passengers()

{

 returnpassenger_load;

}

voidcar:

:

show()

{

 cout<<"车 型:

小汽车\n";

 vehicle:

:

show();

 cout<<"载客数:

"<

}

truck:

:

truck(intwheels,floatweight,intpassengers,floatmax_load):

vehicle(wheels,weight)

{

 passenger_load=passengers;

 payload=max_load;

}

inttruck:

:

get_passengers()

{

 returnpassenger_load;

}

voidtruck:

:

show()

{

 cout<<"车 型:

大卡车\n";

 vehicle:

:

show();

 cout<<"载人数:

"<

 cout<<"载重量:

"<

}

voidmain()

{

 cout<<"私有派生类相关验证程序 MicrosoftVisualC++构建\n"

  <

 carcar(4,3.6,5);     //小车类参数分别为“车轮数、车身重以及额定载客数”

 trucktru(10,10.0,3,35);   //卡车类参数分别为“车轮数、车身重、载人数以及额定载重量”

 cout<<"数据验证结果如下:

\n";

 car.show();

 tru.show();

}

4.4定义一个日期类Date,包含年、月、日三个数据成员,以及一个求第二天日期的成员函数和输出日期的成员函数。

#include

classDate

{

private:

intyear,month,day;

public:

Date(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

voidnextday();

voiddisplay()

{

cout<

}

};

voidDate:

:

nextday()

{

inttotaldays[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};

day++;

intleap=(year%400==0||year%4==0&&year%100!

=0);

if(day>totaldays[leap][month-1])

{

day=1;month++;

if(month>12)

{

month=1;year++;

}

}

}

voidmain()

{

intd,m,y;

cout<<"请输入年、月、日:

\n";

cin>>y>>m>>d;

Dated1(y,m,d);

cout<<"今天是:

";

d1.display();

d1.nextday();

cout<<"明天是:

";

d1.display();

}

4.5设计一个程序。

定义一个圆类,有数据成员半径radis(半径),计算圆的面积和周长,写出主函数测试你编写的类。

#include  

 using namespace std;  

float pi = 3.14; 

 class R  

{public:

 

float radis; 

 float getMJ(){return radis*radis*pi;}

  float getZC(){return radis*2*pi;} 

 R(float in){radis=in;} 

 };

  

 void main() 

 {  

  R r(10); 

  cout<<"半径:

10\n周长:

"<

"<

 }

4.6编写一个程序。

用名为max的函数模板计算三个参数中的最大值,用整数、字符和浮点数测试所编写的程序。

 #include  

 using namespace std;  

template  

 O Max(O a,O b, O c){return a>b?

a>c?

a:

c:

b>c?

b:

c;}   

void main() 

 { 

  cout<

  cout<

  cout<

 }

4.7编写一个程序计算“三角形、正方形、圆形”三种图形的面积。

要求:

a)抽象出一个基类base;

b)在其中说明一个虚函数用来求面积;

c)利用派生类定义“三角形、正方形、圆形”;

d)编写主函数并测试。

#include  

 using namespace std; 

class base 

{public:

 

virtual float getMJ(){return H*W;} 

float H,W; 

 }; 

class R:

public base 

 {public:

 

 float getMJ(){return H*H*3.14;} 

R(float in){H=in;} 

}; 

 

 class A:

public base 

{public:

 

 float getMJ(){return (H*W)/2;} 

A(float in_H,float in_w){H=in_H;W=in_w;} 

 }; 

   class S:

public base 

 {public:

 

float getMJ(){return H*H;} 

 S(float in){H=in;} 

 };   

void main()

 { 

  R r(10); 

  A a(10,5); 

 S s(10); 

 cout<<"圆:

边长:

10\n面积:

"<

 <<"\n三角:

高:

10,底:

5\n面积:

"<

边长:

10\n面积:

"<

}

4.8编程实现抽象类Employee,派生类Manger和HourlyWorker,Employee有数据成员姓名name和工号ID,Manger有数据成员sal,代表经理的月工资,HourlyWorker有wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。

#include  

#include  

using namespace std; 

 

class Employee  

 {public:

 

 string name; 

 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姓名:

"<

   <<"工号:

"<

   <<"工资:

"<

 } 

 }; 

  

 class Manger:

public Employee 

public:

 

Manger(int S){sal=S;} 

 int getSal(){return sal;} 

 int sal; 

}; 

 class HourlyWorker:

public Employee 

 public:

 

 HourlyWorker(int W,int H){wage=W;hours=H;}

 int getSal(){return wage*hours;} 

int wage,hours; 

}; 

  

 void main() 

 HourlyWorker h(10,20); 

 h.set("小时工A",777); 

 h.showSal(); 

  Manger m(999);

 m.set("经理A",888); 

m.showSal(); 

}

4.9定义一个处理日期的类TDate,它有3个私有数据成员:

Month,Day,Year和若干个公有成员函数,并实现如下要求:

①构造函数重载;②成员函数设置缺省参数;③定义一个友元函数来打印日期;④定义一个非静态成员函数设置日期;⑤可使用不同的构造函数来创建不同的对象。

include 

 using namespace std;  

 class TDate  

public:

 

TDate():

Year(1900),Month

(1),Day

(1){;} 

TDate(int Y, int M=1, int D=1){Month=M;Day=D;Year=Y;}

void set(int Y=1990, int M=1, int D=1){Month=M;Day=D;Year=Y;} 

riend void show(TDate& in); 

private:

  

int Month,Day,Year; 

}; 

  

void show(TDate& in){cout<

  

void main() 

TDate t1; 

TDate t2(2014);

TDate t3(2015,6,5);

show(t1); 

show(t2);

show(t3);

 

t3.set(1999); 

show(t3); 

}

4.10回答下面问题。

下面列出了由三个文件main.cpp、MyClass.h和MyClass.cpp组成的一个程序。

文件main.cpp中实现了主函数;文件MyClass.h中定义了类MyClass;文件MyClass.cpp中实现了类MyClass的成员函数。

题中没有给出三个文件的完整实现。

仔细阅读所给的程序,根据题意补充文件MyClass.h和文件MyClass.cpp的内容。

要求:

a.将成员变量定义为私有的;

b.不要增加题中没有用到的类成员。

/********************************************************/

//文件main.cpp

#include

#include"MyClass.h"

voidmain()

{

  MyClassobj(3.3);

  cout<

  obj.SetMember(5.6);

  cout<

}

/***********************************************************************/

//文件MyClass.cpp

#include"MyClass.h"

floatMyClass:

:

GetMember()

{

returnmember;

}

voidMyClass:

:

SetMember(floatmember)

{

MyClass:

:

member=member;

}

//在这里写出构造函数的实现函数

MyClass:

:

MyClass(floatin)

{

Member=in;

}

/***********************************************************************/

//文件MyClass.h

//类MyClass的定义

classMyClass{

//在下面写出类的定义体

Public:

MyClass(floatin)

FloatGetMember();

VoidSetMember(floatmember);

Private:

Floatmember;

};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1