综合编程题及解答_第1页
综合编程题及解答_第2页
综合编程题及解答_第3页
综合编程题及解答_第4页
综合编程题及解答_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上 综合编程题及解答1设计一个类Rect,要求如下:(1)该类中的私有数据成员length,width存放它的长和宽,并且设置它们的默认值是0。(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。 (3)实现求周长函数GetPerimeter()。解:编程如下: #include<iostream>using namespace std;class Rectprivate:float length,width;public:Rect(float l=0,float w=0):length(l),width(w) Rect(Rect&

2、R):length(R.length),width(R.width)Rect()Rect input();float GetPerimeter();void show();Rect Rect:input()float L,W;cout<<"输入该长方形的长(Length)和宽(Width):"<<endl;docout<<"Length="cin>>L;if(L<=0|L>=50)cout<<"输入的数据不在区间(0,50)内,请重新输入!"<<end

3、l;while(L<=0|L>=50);docout<<"Width="cin>>W;if(W<=0|W>=50) cout<<"输入的数据不在区间(0,50)内,请重新输入!"<<endl;while(W<=0|W>=50);return Rect(L,W);void Rect:show()cout<<"Length"<<length<<","<<"Width="

4、<<width<<endl;cout<<"Perimeter="<<GetPerimeter()<<endl;float Rect:GetPerimeter()return 2*(length+width);int main()Rect R;R=R.input();R.show();return 0;2定义一个二维座标类Vector2d, 二个数据成员为double型x, y 为private属性。定义代二个参数的构造函数和一个Show( ) 函数用以输出x, y的值, 另外作为成员函数重载的运算苻”+”的功能是将

5、此类二个对象的数据成员x和y对应相加。这些成员函数的属性均为public. 请用C+编写此程序, 并编写测试程序进行测试 解:程序如下: #include<iostream>using namespace std;class Vector2dprivate:double x;double y;public:Vector2d(double x=0,double y=0):x(x),y(y)Vector2d(Vector2d&v):x(v.x),y(v.y)void show();Vector2d operator+(Vector2d v);Vector2d();void Ve

6、ctor2d:show()cout<<"X="<<x<<","<<"Y="<<y<<endl;Vector2d Vector2d:operator+(Vector2d v)return Vector2d(x+v.x,y+v.y);int main()Vector2d v1(1,3);Vector2d v2(2,5);(v1+v2).show();return 0;3. 编程实现抽象类Employee,派生类Manger和HourlyWorker,Employee有

7、数据成员姓名name和工号ID,Manger有数据成员sal,代表经理的月工资,HourlyWorker有wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。 解:编程如下: #include<iostream>#include<string>using namespace std;class Employeeprivate:string name;string ID;public:Employee(string n,s

8、tring id):name(n),ID(id)Employee()Employee()virtual float CountPays()return 0;virtual void show()string GetName()return name;string GetID()return ID;void changen(string n)name=n;void changei(string id)ID=id;Employee input();Employee set();Employee Employee:input()string n,id;cout<<"输入员工的姓

9、名与工号:"<<endl;cin>>n>>id;return Employee(n,id);Employee Employee:set()string n,id;cout<<"输入要修改后的信息:"<<endl;cin>>n>>id;return Employee(n,id);class Manger:public Employeeprivate:float sal;public:Manger(string name,string id, float s):Employee(nam

10、e,id),sal(s)Manger():Employee()Manger()float CountPays();void show();Manger input();Manger set();float Manger:CountPays() return sal; void Manger:show()cout<<"姓名:"<<GetName()<<endl;cout<<"工号:"<<GetID()<<endl;cout<<"工资:"<<s

11、al<<endl;Manger Manger:input()string n,id;float s;cout<<"输入员工的姓名与工号,工资:"<<endl;cin>>n>>id>>s;return Manger(n,id,s);Manger Manger:set()cout<<"输入要修改后的信息:姓名,工号,工资:"<<endl;string n,id;float w;cin>>n>>id>>w;return Mange

12、r(n,id,w);class HourlyWorker:public Employeeprivate:float wages,hours;public:HourlyWorker(string name,string id ,float w,float h):Employee(name,id),wages(w),hours(h)HourlyWorker():Employee()HourlyWorker()float CountPays();void show();HourlyWorker input();HourlyWorker set();float HourlyWorker:CountPa

13、ys()return wages*hours;void HourlyWorker:show()cout<<"姓名:"<<GetName()<<endl;cout<<"工号:"<<GetID()<<endl;cout<<"工资:"<<CountPays()<<endl;HourlyWorker HourlyWorker:input()string n,id;float w,h;cout<<"输入员工的姓名与工

14、号,单位时间工资,工作时间:"<<endl;cin>>n>>id>>w>>h;return HourlyWorker(n,id,w,h);HourlyWorker HourlyWorker:set()cout<<"输入要修改后的信息:姓名,工号,单位时间工资,工作时间:"<<endl;string n,id;float s,h;return HourlyWorker(n,id,s,h);int main() Manger m; m=m.input(); m=m.set(); m.s

15、how(); HourlyWorker h; h=h.input(); h.show(); return 0;4. 编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。解:编程如下: #include<iostream>using namespace std;template<class T>T abs(T x)return x<0?-x:x;int main()int n=-3;float m=4.5;double j=-34;cout<<abs(n)<<endl;cout<<abs(m)<<endl;c

16、out<<abs(j)<<endl;5. 设计一个类DateInfo,要求其满足下述要求: (1)要求有一个无参的构造函数,其初始的年、月、日分别为:2010,8,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。 请用C+编写此程序, 并编写测试程序进行测试。 解:编程如下: #include<iostream>#include<iomanip>using namespace std;class DateInfoprivate:int year;i

17、nt month;int day;public:DateInfo():year(2008),month(8),day(8)DateInfo(int y,int m,int d):year(y),month(m),day(d)DateInfo(DateInfo&D):year(D.year),month(D.month),day(D.day)DateInfo()DateInfo set();void show();DateInfo DateInfo:set()int y,m,d;cout<<"输入要设定的日期:"<<endl; cout<<"年份:"cin>>y;cout<<"月份:"cin>>m;cout<<"日期:"cin>>d;return DateInfo(y,m,d);void DateInfo:show()cout<<"显示的日期如下:

温馨提示

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

评论

0/150

提交评论