




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、 设计一个程序: 定义一个圆类,有数据成员半径radis(半径),计算圆的面积和周长,写出主函数测试你编写的类。2、 #include <iostream>3、 using namespace std;4、5、 float pi = 3.14;6、 class R7、 public:8、 float radis;9、 float getMJ()return radis*radis*pi;10、 float getZC()return radis*2*pi;11、 R(float in)radis=in;12、 ;13、14、 void main()15、 16、 R r(10)
2、;17、 cout<<"半径:10n周长:"<<r.getZC()<<"n面积:"<<r.getMJ();18、 19、2编写一个程序。用名为max的函数模板计算三个参数中的最大值,用整数、字符和浮点数测试所编写的程序。20、 #include <iostream>21、 using namespace std;22、 23、 template <typename O>24、 O Max(O a,O b, O c)return a>b?a>c?a:c:b>
3、;c?b:c;25、 26、 void main()27、 28、 cout<<Max(9,1,8)<<endl;29、 cout<<Max(7.0,3.2,9.9)<<endl;30、 cout<<Max('a','z','b');31、 32、 设计一个立方体类Box,它能计算并输出立方体的体积和表面积。33、 #include <iostream>34、 using namespace std;35、36、 class Box37、 public:38、 f
4、loat L;39、 float getBMJ()return L*L*6;40、 float getTJ()return L*L;41、 Box(float in)L=in;42、 ;43、44、 void main()45、 46、 Box r(10);47、 cout<<"边长:10n表面积:"<<r.getBMJ()<<"n体积:"<<r.getTJ();48、 4、编写一个程序计算“三角形、正方形、圆形”三种图形的面积。要求:a)抽象出一个基类base;b)在其中说明一个虚函数用来求面积;c)利用
5、派生类定义“三角形、正方形、圆形”;d)编写主函数并测试。1. #include <iostream>2. using namespace std;3.4. class base5. public:6. virtual float getMJ()return H*W;7. float H,W;8. ;9.10. class R:public base11. public:12. float getMJ()return H*H*3.14;13. R(float in)H=in;14. ;15.16. class A:public base17. public:18. float ge
6、tMJ()return (H*W)/2;19. A(float in_H,float in_w)H=in_H;W=in_w;20. ;21.22. class S:public base23. public:24. float getMJ()return H*H;25. S(float in)H=in;26. ;27.28. void main()29. 30. R r(10);31. A a(10,5);32. S s(10);33. cout<<"圆:边长:10n面积:"<<r.getMJ()<<endl34. <<&qu
7、ot;n三角:高:10,底:5n面积:"<<a.getMJ()<<endl35. <<"n正方形:边长:10n面积:"<<s.getMJ();36. 5、定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,并实现如下要求:构造函数重载;成员函数设置缺省参数;定义一个友元函数来打印日期;定义一个非静态成员函数设置日期;可使用不同的构造函数来创建不同的对象。1. include <iostream>2. using namespace std;3.4. cl
8、ass TDate 5. 6. public:7. TDate():Year(1900),Month(1),Day(1);8. TDate(int Y, int M=1, int D=1)Month=M;Day=D;Year=Y;9. void set(int Y=1990, int M=1, int D=1)Month=M;Day=D;Year=Y;10. friend void show(TDate& in);11. private:12. int Month,Day,Year;13. ;14.15. void show(TDate& in)cout<<in.Y
9、ear<<"年"<<in.Month<<"月"<<in.Day<<"日n"16.17. void main()18. 19. TDate t1;20. TDate t2(2014);21. TDate t3(2015,6,5);22. show(t1);23. show(t2);24. show(t3);25.26. t3.set(1999);27. show(t3);28. 6、编程实现抽象类Employee,派生类Manger和HourlyWorker,Employee有
10、数据成员姓名name和工号ID,Manger有数据成员sal,代表经理的月工资,HourlyWorker有wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。1. #include <iostream>2. #include <string>3. using namespace std;4.5. class Employee 6. public:7. string name;8. int id;9. virtual in
11、t getSal()return 0;10. Employee():name("未命名"),id(0);11. Employee()cout<<"析构n"12. void set(string N,int I)id=I; name=N; 13. void showSal()14. 15. cout<<"n姓名:"<<name<<endl16. <<"工号:"<<id<<endl17. <<"工资:"&
12、lt;<getSal()<<endl;18. 19. ;20.21. class Manger:public Employee22. 23. public:24. Manger(int S)sal=S;25. int getSal()return sal;26. int sal;27. ;28. class HourlyWorker:public Employee29. 30. public:31. HourlyWorker(int W,int H)wage=W;hours=H;32. int getSal()return wage*hours;33. int wage,ho
13、urs;34. ;35.36.37. void main()38. 39. HourlyWorker h(10,20);40. h.set("小时工A",777);41. h.showSal();42. Manger m(999);43. m.set("经理A",888);44. m.showSal();45. 1. 8、 回答下面问题。下面列出了由三个文件main.cpp、MyClass.h和MyClass.cpp组成的一个程序。文件main.cpp中实现了主函数;文件MyClass.h中定义了类MyClass;文件MyClass.cpp中实现了类My
14、Class的成员函数。题中没有给出三个文件的完整实现。仔细阅读所给的程序,根据题意补充文件MyClass.h和文件MyClass.cpp的内容。要求: a.将成员变量定义为私有的;b.不要增加题中没有用到的类成员。 1. /*/2. /文件main.cpp3. #include <iostream.h>4. #include "MyClass.h"5. void main()6. 7. MyClass obj(3.3); 8. cout << obj.GetMember() << endl; 9. obj.SetMember(5.6);1
15、0. cout << obj.GetMember() << endl; 11. 12. /*/13. /文件 MyClass.cpp14. #include "MyClass.h"15. float MyClass:GetMember()16. 17. return member;18. 19. void MyClass:SetMember(float member)20. 21. MyClass:member=member;22. 23. /在这里写出构造函数的实现函数24. 25. MyClass:MyClass(float in)26. 27.
16、 Member=in; 28. 29.30. /*/31. /文件 MyClass.h32. /类MyClass的定义33. class MyClass 34. /在下面写出类的定义体35. public: 36. MyClass(float in) 37. float GetMember(); 38. void SetMember(float member); 39. private: 40. float member; 41. ; 10、某公司雇员(employee)包括经理(manager),技术人员(technician)和销售员(salesman)。开发部经理(developerma
17、nger),既是经理也是技术人员。销售部经理(salesmanager),既是经理也是销售员。 以employ类为虚基类派生出manager,technician和salesman类;再进一步派生出developermanager和salesmanager类。 employee类的属性包括姓名、职工号、工资级别,月薪(实发基本工资加业绩工资)。操作包括月薪计算函数(pay()),该函数要求输入请假天数,扣去应扣工资后,得出实发基本工资。 technician类派生的属性有每小时附加酬金和当月工作时数,及研究完成进度系数。业绩工资为三者之积。也包括同名的pay()函数,工资总额为基本工资加业绩工
18、资。 salesman类派生的属性有当月销售额和酬金提取百分比,业绩工资为两者之积。也包括同名的pay()函数,工资总额为基本工资加业绩工资。 manager类派生属性有固定奖金额和业绩系数,业绩工资为两者之积。工资总额也为基本工资加业绩工资。 而developermanager类,pay()函数是将作为经理和作为技术人员业绩工资之和的一半作为业绩工资。 salesamanager类,pay()函数则是经理的固定奖金额的一半,加上部门总销售额与提成比例之积,这是业绩工资。 编程实现工资管理。特别注意pay()的定义和调用方法:先用同名覆盖,再用运行时多态。同第6 题9、 以点(point)类为
19、基类,重新定义矩形类和圆类。点为直角坐标点,矩形水平放置, 由左下方的顶点和长宽定义。圆由圆心和半径定义。派生类操作判断任一坐标点是在图形内,还是在图形的边缘上,还是在图形外。缺省初始化图形退化为点。要求包括拷贝构造函数。编程测试类设计是否正确。1. #include <iostream>2. #include <cmath>3. using namespace std;4. const double PI=3.1415926535;5. class Point6. private:7. double x,y;8. public:9. Point()x = 0; y =
20、 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. void Show()cout<<"x="<<x<<' '<<"y="<<y<<endl;16. ;17. class C
21、ircle :public Point18. 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*radius*radius;24. void Show()/注意怎样访问基类的数据成员25. cout<<"x="
22、<<getx()<<'t'<<"y="<<gety()<<'t'<<"radius="<<radius<<endl; 26. 27. int position(Point &pt)28. double distance = sqrt(getx()-pt.getx()*(getx()-pt.getx()29. +(gety()-pt.gety()*(gety()-pt.gety();30. double s=distanc
23、e-radius;31. if(s=0) return 0; /在圆上32. else if(s<0) return -1;/在圆内33. else return 1;/在圆外34. 35. ;36. class Rectangle:public Point37. double width,length;38. public:39. Rectangle()width=0; length=0; 40. Rectangle(double xv,double yv,double wv,double lv):Point(xv,xv)41. width = wv;42. length= lv;43
24、. 44. Rectangle(Rectangle& rr):Point(rr)45. width = rr.width;46. length = rr.length;47. 48. double Area()return width*length;49. void Show()50. cout<<"x="<<getx()<<'t'<<"y="<<gety()<<'t'cout<<"width="<<
25、width<<'t'<<"length="<<length<<endl;51. 52. int position(Point &pt);53. ;54. int Rectangle:position(Point &pt)55. double s1,s2;56. s1 = (pt.getx()-getx(); s2=(pt.gety()-gety();57. if(s1=0|s1=width)&&s2<=length)|(s2=0|s2=length)&&s1
26、<=width) return 0; 58. else if(s1<width&&s2<length) return -1;/0在矩形上,-1在矩形内59. else return 1;/1在矩形外60. 61. int main()62. Circle cc1(3,4,5),cc2,cc3(cc1);63. Rectangle rt1(0,0,6,8),rt2,rt3(rt1);64. Point p1(0,0),p2(6,8),p3(3,3),p4(8,4),p5(8,8);65. cc1.Show();66. cc2.Show();67. rt1.Sho
27、w();68. rt2.Show();69. cout<<"点p1:"70. p1.Show();71. cout<<"矩形rt3:"<<'t'72. rt3.Show();73. switch(rt3.position(p1)74. case 0:cout<<"在矩形上"<<endl;break;75. case -1:cout<<"在矩形内"<<endl;break;76. case 1:cout<<
28、"在矩形外"<<endl;break;77. 78. cout<<"圆cc3:"<<'t'79. cc3.Show();80. switch(cc3.position(p1)81. case 0:cout<<"在圆上"<<endl;break;82. case -1:cout<<"在圆内"<<endl;break;83. case 1:cout<<"在圆外"<<endl;b
29、reak;84. 85. cout<<"点p2:"86. p2.Show();87. cout<<"矩形rt3:"<<'t'88. rt3.Show();89. switch(rt3.position(p2)90. case 0:cout<<"在矩形上"<<endl;break;91. case -1:cout<<"在矩形内"<<endl;break;92. case 1:cout<<"在矩形外
30、"<<endl;break;93. 94. cout<<"圆cc3:"<<'t'95. cc3.Show();96. switch(cc3.position(p2)97. case 0:cout<<"在圆上"<<endl;break;98. case -1:cout<<"在圆内"<<endl;break;99. case 1:cout<<"在圆外"<<endl;break;100.
31、101. cout<<"点p3:"102. p3.Show();103. cout<<"矩形rt3:"<<'t'104. rt3.Show();105. switch(rt3.position(p3)106. case 0:cout<<"在矩形上"<<endl;break;107. case -1:cout<<"在矩形内"<<endl;break;108. case 1:cout<<"在矩形外&
32、quot;<<endl;break;109. 110. cout<<"圆cc3:"<<'t'111. cc3.Show();112. switch(cc3.position(p3)113. case 0:cout<<"在圆上"<<endl;break;114. case -1:cout<<"在圆内"<<endl;break;115. case 1:cout<<"在圆外"<<endl;break;116. 117. cout<<"点p4:"118. p4.Show();119. cout<<"矩形rt3:"<<'t'120. rt3.Show();121. switch(rt3.position(p4)122.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有机合成中生物转化技术的应用考核试卷
- 照明设备结构强度分析与优化设计考核试卷
- 自动扶梯入口过渡桥板设计考核试卷
- 玻璃仪器喷涂与涂装工艺考核试卷
- 智能家居电气系统集成项目施工合同
- 5G通信技术试验项目补充协议
- 直播节目内容审核与平台风险控制补充协议
- 电商平台移动端性能优化补充协议
- 异性员工恋爱关系忠诚度监督与交往准则协议
- 夫妻道德约束与忠诚责任履行协议
- 水泵房设施设备巡检标准记录表
- 2024年浙江省中考科学试卷
- 无人机组装与调试课件:无人机概述
- 医学教材 《疟疾》课件
- 比较思想政治教育智慧树知到期末考试答案章节答案2024年西南大学
- JG-T+100-1999塔式起重机操作使用规程
- 山东省济南市高新区2023-2024学年八年级下学期期末物理试题
- DLT 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
- 中国兔子行业上下游产业链全景、发展历程回顾及市场前景预测
- 急产分娩应急演练方案
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
评论
0/150
提交评论