首页 > 其他分享 >2023 4 27

2023 4 27

时间:2023-04-27 22:12:24浏览次数:31  
标签:10 27 Num1 Num2 int void 2023 public

 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 }
 1 #include <iostream>
 2 using namespace std;
 3 //利用多态,实现计算器
 4 //多态的好处
 5 //1、组织结构清晰
 6 //2、可读性强
 7 //3、对于前期和后期扩展以及维护性高
 8 class AbstractCalculator
 9 {
10 public:
11     int m_Num1;
12     int m_Num2;
13     virtual int getResult()
14     {
15         return 0;
16     }
17 };
18 class AddCalculate : public AbstractCalculator
19 {
20     int getResult()
21     {
22         return m_Num1 + m_Num2;
23     }
24 };
25 class SubCalculate : public AbstractCalculator
26 {
27     int getResult()
28     {
29         return m_Num1 - m_Num2;
30     }
31 };
32 class MulCalculate : public AbstractCalculator
33 {
34     int getResult()
35     {
36         return m_Num1 * m_Num2;
37     }
38 };
39 void test()
40 {
41     //创建加法计算器
42     AbstractCalculator *abc = new AddCalculate;
43     abc->m_Num1 = 10;
44     abc->m_Num2 = 10;
45     cout<<abc->m_Num1<<" + "<<abc->m_Num2<<" = "<<abc->getResult()<<endl;
46     delete abc;
47     //创建加法计算器
48     abc = new SubCalculate;
49     abc->m_Num1 = 10;
50     abc->m_Num2 = 10;
51     cout<<abc->m_Num1<<" - "<<abc->m_Num2<<" = "<<abc->getResult()<<endl;
52     //创建乘法计算器
53     abc = new MulCalculate;
54     abc->m_Num1 = 10;
55     abc->m_Num2 = 10;
56     cout<<abc->m_Num1<<" * "<<abc->m_Num2<<" = "<<abc->getResult()<<endl;
57 }
58 int main()
59 {
60     test();
61     return 0;
62 }

 

标签:10,27,Num1,Num2,int,void,2023,public
From: https://www.cnblogs.com/xuxingkai/p/17360373.html

相关文章

  • SYN5202-0277同期装置 ABB
    ① ⑧ 0 ③0 ① ⑦  77 ⑤ 9 同期装置SYN5202-0271  SYN5202-0277  SYN5202A  SYN5201A-ZV2773BHB006714R0277  SYN5201A-Z V2173BHB006714R0217 SYN5200a-Z,V217SYNCHROTACT53BHB006713R0217 器和具有自动转换功能的电源监控。伍德......
  • 4/27打卡 stl初识vector
    1#include<iostream>2#include<vector>3usingnamespacestd;456voidtest()7{8vector<vector<int>>v;9vector<int>v1;10vector<int>v2;11vector<int>v3;12vector<in......
  • 2022-04-27:用go语言重写ffmpeg的remuxing.c示例。
    2022-04-27:用go语言重写ffmpeg的remuxing.c示例。答案2022-04-27:ffmpeg的remuxing.c是一个用于将多媒体文件从一种容器格式转换为另一种容器格式的命令行工具。它可以将音频、视频和字幕等元素从源文件中提取出来,并按照用户指定的方式重新封装到目标文件中。在本篇文章中,我将对ffmp......
  • 4.27打卡
     #include<bits/stdc++.h>usingnamespacestd;classTime{private:intminute;inthour;public:voidset(inth,intm){minute=m;hour=h;}friendintoperator-(Time,Time);};intoperator-(......
  • 【考后总结】NOI 统一省选 2023
    文化课补完了,但是考试考炸了,所以来补题。D1T1火车站station实际上只需要判断从\(x\)能否一直向一个方向移动且每个位置能不能作为这个方向的终点站。区间覆盖差分一下即可。提交记录:Submission-QOJD1T2城市建造cities一个连通块中只能有一个点被选中。由于连通块大......
  • 2023.4.27
     1//实验六任务22#include<iostream>3#include<string>4usingnamespacestd;5classPeople6{7public:8People(){}9~People(){}10voidsetValue(intm,stringstr)11{12age=m;13name=str;......
  • 2023/4/27
    L1-007念数字分数 10全屏浏览题目作者 翁恺单位 浙江大学输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0:ling1:yi2:er3:san4:si5:wu6:liu7:qi8:ba9:jiu 输入格式:输入在一行中给......
  • 4月27日打卡
    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3≤N≤21)和......
  • 2023.4.27编程一小时打卡
    一、问题描述:建立一个向量容器的实例s,不断对s调用push_back向其中增加新的元素,观察在此过程中s.capacity()的变化。二、解题思路:首先,编写一个向量容器vector<int>s,利用循环对其进行不断调用push_back,再输出它的capacity()函数观察它向量容器的容量的变化。三、代码实现:1#in......
  • 2023冲刺清北营7
    由于题目名称非常简洁,并且没有任何新意,所以……T1Apj考虑如何判断一个区间是否合法,首先找到区间内所有奇数的位置,显然这些位置需要通过\(2\)操作变为\(0\),因此一个比较显然的条件是这些位置的个数必须为偶数,考虑将区间变为\(0\)的过程,简单模拟不难发现相邻两个奇数位置两......