程序设计(2)
3.下列程序通过把函数Distance定义为类Point的友元来实现计算两点之间距离的功能,请完成程序(6分)
class Point { public:
friend float Dis(Point &p,Point &q) ; Point( float a, float b ) { X = a;Y = b;} void Print()
{cout << \
cout << \private:
float X, Y;
};
float Dis(Point &p, Point &q) { float result;
result=sqrt((q.X-p.X)*(q.X-p.X)+(q.Y-p.Y)*(q.Y-p.Y)) ; cout << result << endl; return result; }
int main()
{ Point p(1,1), q(10,10); Dis(p,q); }
4. (8分)在空中补上语句使得输出结果为 class data 5 class a class data 5 class b class c
class data{
int x; public:
data(int x){
data::x=x;
cout<<\ ; } };
第 11 页 共 14页
程序设计(2)
class a{
data d1; public:
a(int x):d1(x)
{ cout<<\ ;} };
class b:public a{
data d2; public:
b(int x):a(x),d2(x) { cout<<\ ;} };
class c:public b{
public:
c(int x):b(x) { cout<<\ ;} }; int main()
{ c object(5); return 0; }
5. (6分)补充函数max使得程序结果为
The max of i,j is: 56
The max of x1,x2 is: 56.56 The max of y1,y2 is: 673.365
template
{ int i = 10, j = 56;
float x1 = 50.3, x2 = 56.56;
double y1 = 673.365, y2 = 465.972;
cout<<\
cout<<\cout<<\return 0; }
第 12 页 共 14页
程序设计(2)
四. 编程题(20分)
1.编写一个出租车收费类,创建该类对象时告知路程,该对象能告知该收多少费。计费方
式是起价11元,其中含3公里费用,以后每半公里1元。(10分) 参考答案:
class calfee{ public: };
int calfee::calfun(double dis) const { }
int sum=11; double start=3; if(dis>start)
sum=(dis-start)/0.5+sum+1; return sum;
calfee(double DIS=3):dis(DIS){ }
int calfun(double dis) const; int fee; double dis;
fee=calfun(dis);
cout<<\< private: 第 13 页 共 14页 程序设计(2) 2.设计一个小型公司的人员信息管理系统。该公司主要有四类人员:老板(Boss)、销售人员(Salesman)、兼职技术人员(technician)。人员基本信息包括:姓名(name)、编号(no)。具体要求:(10分) (1)人员编号的起始值为8000,每增加一个人员信息,编号顺序加1。 (2)月薪计算方法:老板拿固定月薪10000元;销售人员月薪为底薪1000元加当月销 售额的5%提成;兼职技术人员按每小时100元领取月薪,如果月工作时间超过30小时,超出部分按每小时150元计算。 (3)对每个成员变量必须完成相应的get和set函数。 (4)编写全局函数input完成输入一个人员信息的功能。 (5)编写全局函数display,显示所有员工的全部信息以及当月月薪总额。 (6)尽可能多地用到面向对象设计各种特性(虚函数、抽象类、const等)。 第 14 页 共 14页