C++ 四则运算简单设计
2018-06-17 23:54:05来源:未知 阅读 ()
如果说要用C++写一个简单的四则运算的程序,相信难不到人,这还不简单吗?然后用不了五分钟,三下五除二,就出了下面的代码,一调试,没问题。。。。。
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 double a = 0.0, b = 0.0; 6 double result = 0.0; 7 char oper; 8 cout << "请输入两个数:" ; 9 cin >> a >> b; 10 cout << "请输入运算符:"; 11 cin >> oper; 12 switch (oper) 13 { 14 case '+':result = a + b; break; 15 case '-':result = a - b; break; 16 case '*':result = a * b; break; 17 case '/':result = a / b; break; 18 default: 19 cout << "没有此运算符" << endl; 20 break; 21 } 22 cout << "运算结果是: " << result << endl; 23 system("pause"); 24 return 0; 25 }
的确,上面的代码没什么问题,相信细心的朋友都会在除法运算中加上一个对分母是否为零的判断。。。
那么,问题来了,如果程序都成了这个样子,那C++和其它语言有什么区别呢?如此强大的C++,让一个四则算法简单成这样子,还真对不起它的灵活性与复杂性。
如此说来,是不是应该让程序看上去更加的复杂才有意思呢?当然,说的是看上去复杂。。。。。
既然要复杂点,就还弄一个类出来好了。
#ifndef MYCALC_H_ #define MYCALC_H_ class MyCalc { public: /* * 返回值:运算结果 * 参数: 操作符 */ double getResult(const char& oper); /* * 函数作用:返回运算数A */ double getNumberA() const; /* * 函数作用:返回运算数B */ double getNumberB() const; /* * 函数作用:设置运算数A的值 */ void setNumberA(const double& a); /* * 函数作用:设置运算数B的值 */ void setNumberB(const double& b); MyCalc(); MyCalc(double a, double b) :m_numA(a), m_numB(b){} //// 初始化列表,初始化两数 virtual ~MyCalc(); private: double m_numA; //// 运算数A double m_numB; //// 运算数B }; #endif
既然类已经出来了,实现肯定是跑不掉的,所以继续下去
1 #include "myCalc.h" 2 #include <iostream> 3 4 double MyCalc::getResult(const char& oper) 5 { 6 switch (oper) 7 { 8 case '+': 9 return getNumberA() + getNumberB(); 10 break; 11 case '-': 12 return getNumberA() - getNumberB(); 13 break; 14 case '*': 15 return getNumberA() * getNumberB(); 16 break; 17 case '/': 18 if (0.0 == getNumberB()) 19 { 20 std::cerr << "divsion by zero" << std::endl; 21 return 0; 22 } 23 return getNumberA() / getNumberB(); 24 break; 25 26 default: 27 std::cerr << "There is no operator \'" << oper << "\'" << std::endl; 28 break; 29 } 30 return 0; 31 } 32 33 double MyCalc::getNumberA() const 34 { 35 return m_numA; 36 } 37 double MyCalc::getNumberB() const 38 { 39 return m_numB; 40 } 41 42 43 void MyCalc::setNumberA(const double& a) 44 { 45 m_numA = a; 46 } 47 48 void MyCalc::setNumberB(const double& b) 49 { 50 m_numB = b; 51 } 52 53 MyCalc::MyCalc() 54 { 55 } 56 MyCalc::~MyCalc() 57 { 58 }
好了,类已经写好,这样看上去是不是更加"高大上"呢?
任务完成了,那来试试这段代码吧
1 #include <iostream> 2 #include "myCalc.h" 3 using namespace std; 4 int main() 5 { 6 double numA = 0.0, numB = 0.0; 7 char oper = 0; 8 cout << "Enter two numbers: "; 9 cin >> numA >> numB; 10 cout << endl; 11 cout << "Enter an operator: "; 12 cin >> oper; 13 MyCalc myCalc(numA, numB); 14 cout << "Result is: " << myCalc.getResult(oper) << endl; 15 system("pause"); 16 return 0; 17 }
程序到此为止,仅使用到了C++冰山一角的知识点,而且程序还有不少地方值得改善。欢迎大家交流。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:c/c++笔记--3
下一篇:Token的设计(2)
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash