C++初学(1) 简单的加减乘除取余运算代码

  1 //---------------+-*/%算法----------------------------------------------------------
  2 #include <iostream>
  3 using namespace std;
  4 // 函数原型声明
  5 int Add(int e1, int e2);
  6 int Sub(const int*pe1, const int*pe2);
  7 int Mul(const int&re1, const int&re2);
  8 int Div(int e1, int e2)throw(int); // 分母不能为0,否则抛出除0错
  9 int Mod(int e1,int e2)throw(int,long); //分子 分母不能为0,否则抛出无意义错或除0错
 10 
 11 void main() {
 12     int e1, e2, result;
 13     char optr;
 14 
 15     while (true) {
 16         cout <<
 17         "Please type in an expression which likes a @b,type 'q' to quit" << endl;
 18         cin >> optr;
 19         if (optr == 'q' || optr == 'Q')
 20             break; // 结束循环
 21         cin.putback(optr); // 将读入的字符退回到流中,让它可以被重新读入
 22         cin >> e1;
 23         cin >> optr;
 24         cin >> e2;
 25 
 26         switch(optr) {
 27         case '+':
 28             result = Add(e1, e2);
 29             break;
 30         case '-':
 31             result = Sub(&e1, &e2);
 32             break;
 33         case '*':
 34             result = Mul(e1, e2);
 35             break;
 36         case '/':
 37             result = Div(e1, e2);
 38             break;
 39         case '%':
 40             result = Mod(e1, e2);
 41             break;
 42         }
 43     }
 44     system("pause");
 45 }
 46 
 47 int Add(int e1, int e2) {
 48     int result = e1 + e2;
 49     cout << '=' << result << endl;
 50     return result;
 51 }
 52 
 53 int Sub(const int *pe1, const int *pe2) {
 54     int result = *pe1 - *pe2; // 指针指向的内存地址里面存的数值相减
 55     cout << '=' << result << endl;
 56     return result;
 57 }
 58 
 59 int Mul(const int &re1, const int &re2) {
 60     int result = re1 * re2;
 61     cout << '=' << result << endl;
 62     return result;
 63 }
 64 
 65 int Div(int e1, int e2)throw(int) {
 66     try {
 67         if (e2 == 0)
 68             throw 0;
 69         int result = e1 / e2;
 70         cout << '=' << result << endl;
 71         return result;
 72     }
 73     catch(int) {
 74         cout << "Denominator cannot be zero" << endl;
 75     }
 76 
 77 }
 78 
 79  int Mod(int e1,int e2)throw(int,long)
 80 {
 81     try
 82     {
 83         if(e1==0)
 84             throw int(0);
 85         if(e2==0)
 86             throw long(0);
 87 
 88         int result=e1%e2;
 89         cout << '=' << result << endl;
 90         return result;
 91     }
 92         catch(int)
 93         {
 94         cout<<"It doesn't make sense when numerator is zero"<<endl;
 95         }
 96         catch(long)
 97         {
 98         cout<<"Denominator cannot be zero"<<endl;
 99         }
100 }

 

posted @ 2017-06-30 15:35  小雨滴答  阅读(5723)  评论(0编辑  收藏  举报