菜鸟的博客

纵有疾风起,人生不言弃。

导航

2023.4.27

 1 //实验六任务2
 2 //定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),
 3 //在Animal类中定义虚函数,输出“My name is Animal”,在派生类中
 4 //分别重新定义该函数,显示“My name is  **”,其中**为各自类名
 5 #include <iostream>
 6 #include <string>
 7 using namespace std;
 8 class Animal
 9 {
10 public:
11     virtual void name()
12     {
13         cout<<"My name is Animal"<<endl;
14     }
15 };
16 class Cat:public Animal
17 {
18 public:
19     void name()
20     {
21         cout<<"My name is Cat"<<endl;
22     }
23 };
24 class Leopard:public Animal
25 {
26 public:
27     void name()
28     {
29         cout<<"My name is Leopard"<<endl;
30     }
31 };
32 void test()
33 {
34     Cat c;
35     Leopard l;
36     c.name();
37     l.name();
38 }
39 int main()
40 {
41     test();
42     return 0; 
43 }

 

 1 //实验六任务4
 2 #include <iostream>
 3 #include <string>
 4 using namespace std;
 5 class Shape
 6 {
 7     virtual void setvalues() = 0;
 8     virtual void floatarea() = 0;
 9 };
10 class rectangle:public Shape
11 {
12 public:
13     void setvalues()
14     {
15         cout<<"请输入矩形的底和高:"<<endl;
16         cin>>x>>y;
17     }
18     void floatarea()
19     {
20         cout<<"矩形的面积为:"<<x*y<<endl;
21     }
22     float x;
23     float y;
24 };
25 class arctangle:public Shape
26 {
27 public:
28     void setvalues()
29     {
30         cout<<"请输入三角形的底和高:"<<endl;
31         cin>>x>>y;
32     }
33     void floatarea()
34     {
35         cout<<"三角形的面积为:"<<x*y/2<<endl;
36     }
37     float x;
38     float y;
39 };
40 class square:public Shape
41 {
42 public:
43     void setvalues()
44     {
45         cout<<"请输入正方形的边长:"<<endl;
46         cin>>x;
47     }
48     void floatarea()
49     {
50         cout<<"正方形的面积为:"<<x*x<<endl;
51     }
52     float x;
53 };
54 class circle:public Shape
55 {
56 public:
57     void setvalues()
58     {
59         cout<<"请输入圆形的半径:"<<endl;
60         cin>>r;
61     }
62     void floatarea()
63     {
64         cout<<"圆形的面积为:"<<3.1415*r*r<<endl;
65     }
66     float r;
67 };
68 void test()
69 {
70     rectangle r;
71     arctangle a;
72     square s;
73     circle c;
74     r.setvalues();
75     a.setvalues();
76     s.setvalues();
77     c.setvalues();
78     if(r.x<=0||r.y<=0||a.x<=0||a.y<=0||s.x<=0||c.r<=0)
79     {
80         cout<<"Set Value Error!"<<endl;
81         exit(0);
82     }
83     r.floatarea();
84     a.floatarea();
85     s.floatarea();
86     c.floatarea();
87 }
88 int main()
89 {
90     test();
91     return 0;
92 }

 

posted on 2023-04-27 23:06  hhmzd233  阅读(52)  评论(0)    收藏  举报