用面向对象语言实现一个计算器控制台程序
来源:互联网 发布:软件管家360官方下载 编辑:程序博客网 时间:2024/05/16 16:17
1#include <iostream>
2using namespace std;
3//Operation 运算类
4class Operation{
5 double m_numberA;
6 double m_numberB;
7public:
8 void SetNumA(double numA) { m_numberA = numA;}
9 void SetNumB(double numB) { m_numberB = numB;}
10 double GetNumA(void) const { return m_numberA;}
11 double GetNumB(void) const { return m_numberB;}
12 virtual double GetResult() = 0;
13};
14class OperationAdd:public Operation{
15public:
16 double GetResult(){
17 return GetNumA() + GetNumB();
18 }
19};
20class OperationSub:public Operation{
21public:
22 double GetResult(){
23 return GetNumA() - GetNumB();
24 }
25};
26class OperationMul:public Operation{
27public:
28 double GetResult(){
29 return GetNumA() * GetNumB();
30 }
31};
32class OperationDiv:public Operation{
33public:
34 double GetResult(){
35 if (GetNumB() == 0)
36 throw "numB cannot be zero!";
37 return GetNumA() / GetNumB();
38 }
39};
40class OperationFactory{
41public:
42 static Operation* CreateOperate(char oper){
43 Operation *poper = NULL;
44 switch (oper){
45 case '+':
46 poper = new OperationAdd;
47 break;
48 case '-':
49 poper = new OperationSub;
50 break;
51 case '*':
52 poper = new OperationMul;
53 break;
54 case '/':
55 poper = new OperationDiv;
56 break;
57 }
58 return poper;
59 }
60};
61int main()
62{
63 cout<<"input A:";
64 double numA;
65 cin>>numA;
66 cout<<"input operator:";
67 char oper;
68 cin>>oper;
69 cout<<"input B:";
70 double numB;
71 cin>>numB;
72 Operation *poper = OperationFactory::CreateOperate(oper);
73 poper->SetNumA(numA);
74 poper->SetNumB(numB);
75 cout<<poper->GetNumA()<<' '<<oper<<' '<<poper->GetNumB()<<" = "<<poper->GetResult()<<endl;
76 system("pause");
77 return 0;
78}
2using namespace std;
3//Operation 运算类
4class Operation{
5 double m_numberA;
6 double m_numberB;
7public:
8 void SetNumA(double numA) { m_numberA = numA;}
9 void SetNumB(double numB) { m_numberB = numB;}
10 double GetNumA(void) const { return m_numberA;}
11 double GetNumB(void) const { return m_numberB;}
12 virtual double GetResult() = 0;
13};
14class OperationAdd:public Operation{
15public:
16 double GetResult(){
17 return GetNumA() + GetNumB();
18 }
19};
20class OperationSub:public Operation{
21public:
22 double GetResult(){
23 return GetNumA() - GetNumB();
24 }
25};
26class OperationMul:public Operation{
27public:
28 double GetResult(){
29 return GetNumA() * GetNumB();
30 }
31};
32class OperationDiv:public Operation{
33public:
34 double GetResult(){
35 if (GetNumB() == 0)
36 throw "numB cannot be zero!";
37 return GetNumA() / GetNumB();
38 }
39};
40class OperationFactory{
41public:
42 static Operation* CreateOperate(char oper){
43 Operation *poper = NULL;
44 switch (oper){
45 case '+':
46 poper = new OperationAdd;
47 break;
48 case '-':
49 poper = new OperationSub;
50 break;
51 case '*':
52 poper = new OperationMul;
53 break;
54 case '/':
55 poper = new OperationDiv;
56 break;
57 }
58 return poper;
59 }
60};
61int main()
62{
63 cout<<"input A:";
64 double numA;
65 cin>>numA;
66 cout<<"input operator:";
67 char oper;
68 cin>>oper;
69 cout<<"input B:";
70 double numB;
71 cin>>numB;
72 Operation *poper = OperationFactory::CreateOperate(oper);
73 poper->SetNumA(numA);
74 poper->SetNumB(numB);
75 cout<<poper->GetNumA()<<' '<<oper<<' '<<poper->GetNumB()<<" = "<<poper->GetResult()<<endl;
76 system("pause");
77 return 0;
78}
阅读全文
0 0
- 用面向对象语言实现一个计算器控制台程序
- 利用面向对象实现的控制台计算器
- 使用面向对象的编程思想写一个简单的控制台计算器程序,放松一下
- 用控制台实现简单的计算器程序
- 用C语言实现一个计算器
- c#,用面向对象思想写一个计算器
- 用面向对象的思想写一个计算器
- 一个面向对象的简单计算器
- 面向对象下计算器的编码实现
- 面向对象思想实现简易计算器
- java运用面向对象的思想实现计算器的小程序
- 一个科学计算器的面向对象实现,完成多年的心愿
- 用C语言实现面向对象编程
- 用C语言实现面向对象
- 用 C 语言实现面向对象编程
- 用C语言实现面向对象
- 用 C 语言实现面向对象编程
- 用C语言实现一个简单的计算器代码
- Oracle的rollup、cube、grouping sets函数
- Collections和Collection
- kubernetes应用类型
- 手动部署QtSylixOS的方法
- 十大Intellij IDEA快捷键
- 用面向对象语言实现一个计算器控制台程序
- UVA 10533
- java复习笔记3
- go语言string、int、int64互相转换
- STM32-F407看门狗(3)
- 187. Repeated DNA Sequences
- hdu 5536 Chip Factory 01trie+可删除
- Java 内存管理
- C++构造函数