良心出品c++编程题.docx
- 文档编号:25557713
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:14
- 大小:18.47KB
良心出品c++编程题.docx
《良心出品c++编程题.docx》由会员分享,可在线阅读,更多相关《良心出品c++编程题.docx(14页珍藏版)》请在冰豆网上搜索。
良心出品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; };
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 良心 出品 c+ 编程