c++面向对象实例题集锦_第1页
c++面向对象实例题集锦_第2页
c++面向对象实例题集锦_第3页
c++面向对象实例题集锦_第4页
c++面向对象实例题集锦_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、C + 面向对象实例C+面向对象类的实例题目二题目描述:编写一个程序,设计一个产品类Product,其定义如下:cpp view plaincopyprint?1.class Product2.3.public:4.Product(char *n,int p,int q); /构造函数5.Product();/析构函数6.void buy(int money);/购买产品7.void get() const;/显示剩余产品数量8.private:9.char * name; /产品名称10.int price; /产品单价11.int quantity; /剩余产品数量12.;并用数据进行测试

2、。code :cpp view plaincopyprint?1. #include<iostream>2. #include<cstring>3. using namespace std;4. class Product5. 6. char *name;7. int price;8. int quantity;9. public:10. Product(char *n,intp,int q);11. Product();12. void buy(int money);13. void get()const;14. ;15. Product:Product(char *

3、n,int p,int q)16. 18. price = p;19. quantity = q;20. 21. Product:Product()22. 23. 24. void Product:buy(int money)25. 26. int r,n;27. n = money/price;28. r = money%price;29. if(n > quantity)30. 31. cout<<"数量不够"<<endl;32. 33. else34. 35. quantity -= n;36. cout<<"名称:

4、"<<name<<",单价:"<<price<<"元"<<endl;37. cout<<"顾客使用"<<money<<"元,购买"<<n<<"台,剩余"<<r<<"元"<<endl;38. 39. 40. void Product:get()const41. 42. cout<<" 产品:&

5、quot;<<name<<",单价:"<<price<<", 剩余:"<<quantity<<" 台 "<<endl;43. 44. int main()45. 46. Product p("Iphone6”,100,20);47. p.buy(10);48. p.get();49. cout<<"n=n"<<endl;50. p.buy(1000);51. p.get();52. return 0

6、;53. 输出:C+面向对象类的实例题目三编写一个程序,设计一个满足如下要求的CData 类。(1)用下面的格式输出日期:日 /月/年(2)输出在当前日期上加一天后的日期(3)设置日期code:cpp view plaincopyprint?1. #include<iostream>2. using namespace std;3. class CData4. 5. public:6. CData(inty,intm,intd);7. void setdate(int y, int m,int d);8. void display();9. void add();10. priva

7、te:11. int day;12. int month;13. int year;14. ;15. CData:CData(inty,intm,intd)16. 17. day = d;18. month = m;19. year = y;20. 21. void CData:setdate(int y,int m,int d)22. 23. day = d;24. month = m;25. year = y;26. 27. void CData:display()28. 29. cout<<day<<"/"<<month<&l

8、t;"/"<<year<<endl;30. 31. void CData:add()32. 33. int a212=34. 31,28,31,30,31,30,31,31,30,31,30,31,35. 31,29,31,30,31,30,31,31,30,31,30,3136. ;37. if(year%400 = 0)|(year%100 !=0 && year%4 =0)闰年的情况38. 39. if(a1month-1>day)day+;40. else41. 42. month+;43. if(month>12

9、)44. 45. year+;46. month = 1;47. 48. day = 1;49. 50. 平年的情况51. else/52. 53. if(a0month-1>day)day+;54. else55. 56. month+;57. if(month>12)58. 59. year+;60. month = 1;61. 62. day = 1;63. 64. 65. 66. int main()67. 68. CDatadate(2013,12,31);69. date.display();70. date.add();71. date.display();72. d

10、ate.setdate(2014,11,11);73. date.display();74. date.add();75. date.display();76. return 0;77. 结果输出:cpp view plaincopyprint?1.31/12/20133.11/11/20144.12/11/2014C+面向对象类的实例题目四题目描述:以面向对象的概念设计一个类,此类包含3个私有数据:unlead、lead (无铅汽油和有铅汽油)以及total (当天总收入,无铅汽油的价格是17元/升,有铅汽油的加个是 16元/升),请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列

11、出加油当天的总收入。程序代码:cpp view plaincopyprint?1. #include<iostream>2. using namespace std;3. class Gas4. 5. public:6. Gas(double ulp,double lp)7. 8. unprice = ulp;9. price = lp;10. 11. void show()12. 13. total = unlead*unprice+ lead*price;14. cout<<"无铅汽油的价格为17元/升,有铅汽油的价格为16元/升"<<

12、;endl;15. cout<<"total:"<<total<<endl;16. 17. voidgetdata()18. 19. cout<<"请输入当天无铅汽油的总量:"20. cin>>unlead;21. cout<<"请输入当天有铅汽油的总量:"22. cin>>lead;23. 24. private:25. double unprice;26. doubleprice;27. doublelead;28. doubleunlead;31

13、. int main()32. 33. Gas g1(17,16);34. g1.getdata();35. g1.show();36. return 0;37. 程序输出:cpp view plaincopyprint?1 .请输入当天无铅汽油的总量:102 .请输入当天有铅汽油的总量:203 .无铅汽油的价格为17元/升,有铅汽油的价格为16元/升4 . total:490C+面向对象类的实例题目五题目描述:编写一个程序,采用一个类求n!,并输出5!的值。程序代码:cpp view plaincopyprint?1. #include<iostream>2. using nam

14、espace std;3. class CFactorial4. 5. public:6. CFactorial(int n)7. 8. num = n;9. total = 1;10. 11. void calculate。12. 13. int n=num;14. while(n>0)15. 16. total *= n-;17. 18. 20. 21. cout<<num<<"! = "<<total<<endl;22. 23. private:24. int num;25. long total;26. ;27.

15、 int main()28. 29. CFactorial f(5);30. f.calculate();31. f.display();32. return 0;33. 程序输出:cpp view plaincopyprint?1. 5! = 120C+面向对象类的实例题目六问题描述:(用于计算两个编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea()长方形的总面积)时使用对象作为参数。程序代码:cpp view plaincopyprint?2. #include<iostream>3. using namespace std;4. class Recta

16、ngular5. 6. public:7. Rectangular(double w,double l)8. 9. width = w;10. length = l;11. 12. double getc()13. 14. circumference= width + length;15. return circumference;16. 17. doubleadddata(Rectangular &r)18. 19. return (circumference + r.getc();20. 21. private:22. doublewidth;23. doublelength;24

17、. doublecircumference;25. ;26. int main()27. 28. Rectangular r1(2,3);29. cout<<"Circumference of r1 ="<<r1.getc()<<endl;30. Rectangular r2(3,4);31. cout<<"Circumference of r2 ="<<r2.getc()<<endl;32. cout<<"Circumference of r1+r2 =&qu

18、ot;<<r1.adddata(r2)<<endl;33. return 0;34. 结果输出:cpp view plaincopyprint?1. Circumferenceof r1 =62. Circumferenceof r2 =123. Circumferenceof r1+r2 =18C+面向对象类的实例题目七题目描述:编写两个有意义的类,使一个类嵌套在另一个类中。分析:本题涉及两个类 student和cdegree ,前者为学生类,包含学生的学号(nubner),姓名(name ) 和成绩(degree),而成绩 degree 是类cdegree 的对象。

19、cdegree 类有3个数据成员,分别 为数学(math),英语(english) 和物理(phy)分数。程序代码:cpp view plaincopyprint?1 . #include<iostream>2 . #include<string>3 . using namespace std;4 class Student5 6 public:7 void getdata();8 void showdata();9 private:10 string number;11 string name;12 class Cdegree13 14 public:15 doubl

20、e math;16 doubleenglish;17 double phy;18 degree;19 ;20 void Student:getdata()21 22 cout<<"Input number:"23 cin>>number;24 cout<<"Input name:"25 cin>>name;26 cout<<"Input degree of math:"27 cin>>degree math;28 cout<<"Input d

21、egree of english:"29 cin>>degree english;30 cout<<"Input degree of physics:"31 cin>>degree phy;32 33 void Student:showdata()34 35cout<<"= 分割线 ="<<endl;36cout<<"Number:"<<number<<endl;37cout<<"Name:"<

22、;<name<<endl;38cout<<"Math"<<degree math<<endl;39cout<<"English:"<<degree english<<endl;40cout<<"Physics:"<<degree phy<<endl;41 42 int main()43 44 Student s1;45 s1 getdata();46 s1 showdata();47 return 0;48 .

23、 结果输出:cpp view plaincopyprint?1. Input number:0072. Input name:qianshou3. Input degree of math:894. Input degree of english:995. Input degree of physics:1006. =分割线=7. Number:0078. Name:qianshou9. Math8910. English:9911. Physics:100C+面向对象类的实例题目八题目描述:编写一个程序输入 3个学生的英语和计算机成绩,并按照总分从高到低排序。要求设计一个学 生类Studen

24、t ,其定义如下:程序代码:cpp view plaincopyprint?1. #include<iostream>2. using namespace std;3. class Student4. 5. public:获取一个学生成绩显示一个学生成绩将若干个学生按总分从高到低排序6. voidgetscore();/7. voiddisplay。;/8. voidsort( Student *); /9. private:10. int english;11. int computer;12. int total;13. ;14. void Student:getscore()

25、15. 16. cout<<"请输入该学生的英语成绩:17. cin>>english;18. cout<<" 请输入该学生的计算机成绩:"19. cin>>computer;20. total = english + computer;21. 22. void Student:display()23. 24. cout<<" 该学生的英语成绩为:"<<english<<", 计算机成绩为:"<<computer<<&

26、quot;,总分为:"<<total<<endl;25. 26. void Student:sort(Student *p)27. 28. if(p->total > total) /p指向的对象比该对象大的时候,则交换对象的值29. 30. int t1,t2,t3;31. t1 = p->english;32. p->english = english;33. english = t1;34. t2 = p->computer;35. p->computer = computer;36. computer = t2;37

27、. t3 = p->total;38. p->total = total;39. total = t3;40. 41. 42. int main()43. 44. Student st3;45. for(int i = 0; i < 3;i+)46. 47. sti.getscore();48. sti.display();49. 50. st0.sort(&st1);51. st0.sort(&st2);52. st1.sort(&st2);53. cout<<"="<<endl;54. cout<&

28、lt;" 排序结果如下:"<<endl;55. for(int i =0; i < 3; i+)56. 57. sti.display();58. 输出结果:cpp view plaincopyprint?1 .请输入该学生的英语成绩:802 .请输入该学生的计算机成绩:903 .该学生的英语成绩为:80,计算机成绩为:90,总分为:1704 .请输入该学生的英语成绩:705 .请输入该学生的计算机成绩:606 .该学生的英语成绩为:70,计算机成绩为:60,总分为:1307 .请输入该学生的英语成绩:998 .请输入该学生的计算机成绩:879 .该学生的

29、英语成绩为:99,计算机成绩为:87,总分为:18610 .=11 .排序结果如下:12 .该学生的英语成绩为:99,计算机成绩为:87,总分为:18613 .该学生的英语成绩为:80,计算机成绩为:90,总分为:17014 .该学生的英语成绩为:70,计算机成绩为:60,总分为:130C+面向对象类的实例题目九题目描述:编写一个学生和老师数据输入和显示程序,学生数据有编号、姓名、 班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名、输入和显示设计成一个类person ,并作为学生数据操作类student和教师数据操作类teacher的基类。程序代码:cpp view plainc

30、opyprint?1. #include<iostream>2. #include<string>3. using namespace std;4. class Person5. 6. public:7. void get()8. 9. cout<<"请输入编号:10. cin>>number;11. cout<<"请输入姓名:"12. cin>>name;13. 14. void show()15. 16. cout<<"NO."<<number&

31、lt;<endl;17. cout<<"name:"<<name<<endl;18. 19. private:20. stringnumber;21. stringname;22. ;23. class Student:public Person24. 25. public:26. void get()27. 28. Person:get();29. cout<<"请输入班级编号:"30. cin>>class_number;31. cout<<"请输入成绩:&quo

32、t;32. cin>>grade;33. 34. void show()35. 36. Person:show();37. cout<<"class_number:"<<class_number<<endl;38. cout<<"grade:"<<grade<<endl;39. 40. private:41. string class_number;42. float grade;43. ;44. class Teacher:public Person45. 46. pu

33、blic:47. void get()48. 49. Person:get();50. cout<<"请输入职称:"51. cin>>title;52. cout<<"请输入部门:"53. cin>>department;54. 55. void show()56. 57. Person:show();58. cout<<"title:"<<title<<endl;59. cout<<"department:"<&

34、lt;department<<endl;60. 61. private:62. stringtitle;63. stringdepartment;64. ;65. int main()66. 67.Student s1;68.Teacher t1;69.cout<<"输入一个学生数据:"<<endl;70.s1.get();71.cout<<"输出一个学生数据:"<<endl;72.73.s1.show();cout<<"<<endl;74.cout<&l

35、t;"输入一个老师数据:"<<endl;75.t1.get();76.cout<<"输出一个老师数据:"<<endl;77.t1.show();78.return 0;79.结果输出:cpp view plaincopyprint?1 .输入一个学生数据:2 .请输入编号:0013 . 请输入姓名:qianshou4 .请输入班级编号:0035 . 请输入成绩:87.56 .输出一个学生数据:7 .NO.0018 . name:qianshou9 . class_number:00310 . grade:87.511

36、.=12 .输入一个老师数据:13 .请输入编号:00714 .请输入姓名:kkx15 .请输入职称:professor16 .请输入部门:seventh17 .输出一个老师数据:18 . NO.00719 . name:kkx20 . title:professor21 . departmentseventhC+面向对象类的实例题目十题目描述:编写一个程序,其中有一个汽车类vehicle ,它具有一个需要传递参数的构造函数,类中的数据成员:车轮个数 wheels和车重weight 放在保护段中;小车类 car是它的私有派生类,其中包含载人数 passager_load ;卡车类truck 是

37、vehicle 的私有派生类,其中包 含载人数passager_load 和载重量payload 。每个类都用相关数据 的输出方法。程序代码:cpp view plaincopyprint?1. #include<iostream>2. using namespace std;3. class Vehicle4. 5. public:6. Vehicle(int wl,double wh):wheels(wl),weight(wh);7. void show()8. 9. cout<<"wheels:"<<wheels<<&q

38、uot;,weight:"<<weight<<endl;10. 11. protected:12. int wheels;13. double weight;14. ;15. class Car:private Vehicle16. 17. public:18. Car(int wl,double wh,int pl):Vehicle(wl,wh),passager_load(pl);19. void show()20. 21. Vehicle:show();22. cout<<"passager_load:"<<p

39、assager_load<<endl;23. 24. private:25. int passager_load;26. ;27. class Truck:private Vehicle28. 29. public:30. Truck(int wl,double wh,int pl,double psl):Vehicle(wl,wh),passager_lo ad(pl),payload(psl);31. void show()32. 33. Vehicle:show();34. cout<<"passager_load:"<<passa

40、ger_load<<endl;35. cout<<"payload:"<<payload<<endl;36. 37. private:38. int passager_load;39. double payload;40. ;41. int main()42. 43. Vehiclev1(4,200);44. v1.show();45. cout<<"="<<endl;46. Carc1(4,290,10);47. c1.show();48. cout<<"=&

41、quot;<<endl;49. Truckt1(4,500,50,200);50. t1.show();51. return 0;52. 结果输出:cpp view plaincopyprint?1. wheels:4,weight:2002. =3. wheels:4,weight:2904. passager_load:105. =6. wheels:4,weight:5007. passager_load:508. payload:200C+面向对象类的实例题目H一题目描述:写一个程序计算三角形,正方形和圆形3种图形的面积程序代码:cpp view plaincopyprin

42、t?1. #include<iostream>2. #include<cmath>3. #define PAI 3.14154. using namespace std;5. class Shape6. 7. public:8. virtual float area() /定义一个求面积的成员函数9. 10. return 0;11. 12. virtual voidShapeName() = 0;/定义一个纯虚函数13. ;14. class Triangle:public Shape15. 16. public:17. Triangle(float x,float

43、y,float z):a(x),b(y),c(z);18. void ShapeName()19. 20. cout<<"Triangle:"<<endl;21. 22. float area()23. 24. float p = (a+b+c)/2;25. float s = sqrt(p*(p-a)*(p-b)*(p-c);27 28 private:29 float a,b,c;30 ;31 class Square:public Shape32 33 public:34 Square(float l):length(l);35 voidSha

44、peName()36 37 cout<<"Square:"<<endl;38 39 floatarea()40 41 float s = length * length;42 return s;43 44 private:45 float length;46 ;47 class Circle:public Shape48 49 public:50 Circle(float r):radius(r);51 voidShapeName()52 53 cout<<"Square:"<<endl;54 55 flo

45、atarea()56 57 float s = PAI*radius*radius;58 return s;59 60 private:61 float radius;62 ;63 int main()64 65Shape *pt;66pt = new Triangle(3,4,5);67pt->ShapeName();68 cout<<"Area:"<<pt->area()<<endl;69cout<<"="<<endl;70. pt = new Square(2 5);71. p

46、t->ShapeName();72. cout<<"Area:"<<pt->area()<<endl;73. cout<<"="<<endl;74. pt = new Circle(2.5);75. pt->ShapeName();76. cout<<"Area:"<<pt->area()<<endl;77. return 0;78. 结果输出:cpp view plaincopyprint?1. Triangle:

47、2. Area:63. =4. Square:5. Area:6.256. =7. Square:8. Area:19.6344C+面向对象类的实例题目十二题目描述:写一个程序计算正方体、球体和圆柱体的表面积和体积程序代码:cpp view plaincopyprint?1. #include<iostream>2. #define PAI 3.14153. using namespace std;4. class Shape5. 6. public:7. virtualvoidShapeName()=0;8. virtualvoidarea()9. 10. return ;12

48、virtualvoid volume()13 14 return ;15 16 ;17 class Cube:public Shape18 19 public:20 Cube(float len):length(len);21 void ShapeName()22 23 cout<<"Cube:"<<endl;24 25 void area()26 27 double s = 6*length*length;28 cout<<"Area:"<<s<<endl;29 30 void volume(

49、)31 32 double v = length*length*length;33cout<<"Volume:"<<v<<endl;34 35 private:36 float length;37 ;38 class Sphere:public Shape39 40 public:41 Sphere(float r):radius(r);42 void ShapeName()43 44 cout<<"Sphere:"<<endl;45 46 void area()47 48 double s =

50、 4*radius*radius*PAI;49 cout<<"Area:"<<s<<endl;50 51 void volume()52 53 double v = (4*radius*radius*radius*PAI)/3;54cout<<"Volume:"<<v<<endl;56. private:57. float radius;58. ;59. class Cylinderpublic Shape60. 61. public:62. Cylinder(float r,flo

51、at h):radius(r),length(h);63. voidShapeName()64. 65. cout«"Cylinder:"«endl;66. 67. voidarea()68. 69. double s = radius*radius*PAI +2*PAI*radius*length;70. cout«"Area:"«s«endl;71. )72. voidvolume()73. (74. double v = radius*radius*PAI*length;75. cout«

52、"Volume:"«v«endl;76. )77. private:78. float radius;79. float length;80. ;81. int main()82. 83. Shape * pt;84. pt = new Cube(2);85. pt->ShapeName();86. pt->area();87. pt->volume();88. cout«"="«endl;89. pt = new Sphere(2);90. pt->ShapeName();91. pt->area();92. pt->volume();93. cout«"="«endl;94. pt = new Cylinder(2,2);95. pt->ShapeName();96. pt->area();97. pt->volume();98.

温馨提示

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

评论

0/150

提交评论