用面向对象语言实现一个计算器控制台程序
2017-09-12 00:07
357 查看
1
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
#include <iostream>
2
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
using namespace std;
3
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
//Operation 运算类
4
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class Operation{
5
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double m_numberA;
6
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double m_numberB;
7
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
8
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
void SetNumA(double numA) { m_numberA = numA;}
9
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
void SetNumB(double numB) { m_numberB = numB;}
10
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetNumA(void) const { return m_numberA;}
11
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetNumB(void) const { return m_numberB;}
12
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
virtual double GetResult() = 0;
13
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
14
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationAdd:public Operation{
15
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
16
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
17
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() + GetNumB();
18
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
19
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
20
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationSub:public Operation{
21
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
22
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
23
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() - GetNumB();
24
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
25
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
26
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationMul:public Operation{
27
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
28
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
29
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() * GetNumB();
30
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
31
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
32
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationDiv:public Operation{
33
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
34
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
35
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
if (GetNumB() == 0)
36
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
throw "numB cannot be zero!";
37
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() / GetNumB();
38
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
39
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
40
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationFactory{
41
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
42
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
static Operation* CreateOperate(char oper){
43
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
Operation *poper = NULL;
44
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
switch (oper){
45
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '+':
46
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationAdd;
47
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
48
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '-':
49
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationSub;
50
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
51
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '*':
52
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationMul;
53
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
54
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '/':
55
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationDiv;
56
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
57
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
58
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return poper;
59
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
60
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
61
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
int main()
62
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
63
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input A:";
64
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double numA;
65
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>numA;
66
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input operator:";
67
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
char oper;
68
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>oper;
69
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input B:";
70
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double numB;
71
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>numB;
72
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
Operation *poper = OperationFactory::CreateOperate(oper);
73
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper->SetNumA(numA);
74
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper->SetNumB(numB);
75
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<poper->GetNumA()<<' '<<oper<<' '<<poper->GetNumB()<<" = "<<poper->GetResult()<<endl;
76
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
system("pause");
77
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return 0;
78
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
#include <iostream>
2
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
using namespace std;
3
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
//Operation 运算类
4
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class Operation{
5
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double m_numberA;
6
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double m_numberB;
7
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
8
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
void SetNumA(double numA) { m_numberA = numA;}
9
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
void SetNumB(double numB) { m_numberB = numB;}
10
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetNumA(void) const { return m_numberA;}
11
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetNumB(void) const { return m_numberB;}
12
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
virtual double GetResult() = 0;
13
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
14
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationAdd:public Operation{
15
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
16
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
17
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() + GetNumB();
18
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
19
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
20
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationSub:public Operation{
21
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
22
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
23
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() - GetNumB();
24
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
25
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
26
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationMul:public Operation{
27
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
28
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
29
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() * GetNumB();
30
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
31
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
32
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationDiv:public Operation{
33
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
34
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
double GetResult(){
35
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
if (GetNumB() == 0)
36
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
throw "numB cannot be zero!";
37
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return GetNumA() / GetNumB();
38
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
39
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
40
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
class OperationFactory{
41
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
public:
42
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
static Operation* CreateOperate(char oper){
43
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
Operation *poper = NULL;
44
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
switch (oper){
45
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '+':
46
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationAdd;
47
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
48
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '-':
49
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationSub;
50
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
51
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '*':
52
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationMul;
53
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
54
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
case '/':
55
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper = new OperationDiv;
56
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
break;
57
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
58
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return poper;
59
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
60
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
};
61
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
int main()
62
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
63
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input A:";
64
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double numA;
65
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>numA;
66
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input operator:";
67
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
char oper;
68
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>oper;
69
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<"input B:";
70
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
double numB;
71
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cin>>numB;
72
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
Operation *poper = OperationFactory::CreateOperate(oper);
73
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper->SetNumA(numA);
74
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
poper->SetNumB(numB);
75
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
cout<<poper->GetNumA()<<' '<<oper<<' '<<poper->GetNumB()<<" = "<<poper->GetResult()<<endl;
76
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
system("pause");
77
![](http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif)
return 0;
78
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- 1. 请用C#的面向对象语言 实现 一个计算器控制台程序,要求输入两个数和运算符号,得到结果
- 使用面向对象的编程思想写一个简单的控制台计算器程序,放松一下
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数
- 编写一个控制台程序,实现以下功能
- 实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:输入t
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 用控制台实现简单的计算器程序
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 一个控制台下的秒表程序实现
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 编写Applet程序实现一个计算器,包括10个数字(0~9)按钮和4个运算符(加、减、乘、除)按钮,以及等号和清空两个辅助按钮,还有一个显示输入输出的文本框。试用GridLayout实现之
- JAVA实现计算器控制台程序
- 编写一个计算器程序,要求用函数指针来实现两个浮点值的加减乘除
- 编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序;