超级多功能运算器

这是一个实现包括四则运算、次方、开方、按位与或异或、二进制移位、加密和解密等功能的超级运算器程序。用户可以选择不同运算类型并输入相应参数进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

超级多功能运算器1.0

功能:

1,四则运算

2,次方

3,开方

4,按位与,或,异或

5,二进制移位

6,加密

7,解密

8,退出

废话不多说,直接上代码:

#include <iostream>
#include <cmath>
#include <cstring>
char choice,n;
int a,b;
double c;
char str[1001] = {};
bool judge = false,num = false,flag = false;
using namespace std;
int main(){
    string s;
    while(true){
        if(num == false){
            while(true){
                if(judge == false){
                    cout<<"欢迎使用运算器"<<endl;
                    cout<<"请问您要使用什么运算器?"<<endl;
                    cout<<"A,多功能运算器"<<endl;
                    cout<<"B,按位运算器"<<endl;
                    cout<<"C,移位运算器"<<endl;
                    cout<<"D,加密"<<endl;
                    cout<<"E,解密"<<endl;
                    cout<<"F,退出"<<endl;
                    cout<<endl;
                    cin>>choice;
                    cout<<endl;
                    switch (choice) {
                    case 'A':
                        cout<<"请输入:"<<endl;
                        cout<<"加 ,减 ,乘 ,除或次幂(^),开方(&)"<<endl;
                        cout<<"如要开方第二个数字为1"<<endl;
                        cout<<endl;
                        cin>>a>>n>>b;
                        while(true){
                            if(flag == false){
                                switch(n){
                                case '+':
                                    cout<<a<<"+"<<b<<" = "<<a+b<<endl;
                                    cout<<endl;
                                    break;
                                case '-':
                                    cout<<a<<"-"<<b<<" = "<<a-b<<endl;
                                    cout<<endl;
                                    break;
                                case '*':
                                    cout<<a<<"*"<<b<<" = "<<a*b<<endl;
                                    cout<<endl;
                                    break;
                                case '/':
                                    if(b == 0){
                                        cout<<"除数不能为0!"<<endl;
                                        cout<<endl;
                                        flag = true;
                                        break;
                                    }
                                    c = double(a) / double(b);
                                    cout<<a<<"/"<<b<<" = "<<c<<endl;
                                    cout<<endl;
                                    break;
                                case '^':
                                    cout<<a<<"^"<<b<<" = "<<pow(a,b)<<endl;
                                    cout<<endl;
                                    break;
                                case '&':
                                    if(b != 1){
                                        cout<<"请您注意规则!"<<endl;
                                        cout<<endl;
                                    }else{
                                        cout<<a<<"&"<<b<<" = "<<sqrt(double(a))<<endl;
                                        cout<<endl;
                                    }
                                    break;
                                    default:
                                        cout<<"请输入:"<<endl;
                                        cout<<"加 ,减 ,乘 ,除或次幂(^),开方(&)"<<endl;
                                        cout<<endl;
                                        flag = true;
                                        break;
                                }
                                break;
                            }else{
                                flag = false;
                                cin>>a>>n>>b;
                            }
                        }
                        break;
                    case 'B':
                        cout<<"请输入按位运算符:"<<endl;
                        cout<<"按位运算符:与& , 或| , 异或^"<<endl;
                        cout<<endl;
                        cin>>a>>n>>b;
                        while(true){
                            if(flag == false){
                                switch (n) {
                                    
                                case '&':
                                    cout<<a<<"&"<<b<<" = "<<(a & b)<<endl;
                                    cout<<endl;
                                    break;
                                case '^':
                                    cout<<a<<"^"<<b<<" = "<<(a ^ b)<<endl;
                                    cout<<endl;
                                    break;
                                case '|':
                                    cout<<a<<"|"<<b<<" = "<<(a | b)<<endl;
                                    cout<<endl;
                                    break;
                                    default:
                                        cout<<"请输入按位运算符:"<<endl;
                                        cout<<"按位运算符:与& , 或| , 异或^"<<endl;
                                        cout<<endl;
                                        flag = true;
                                        continue;
                                }
                                if(flag == false){
                                    break;
                                }
                            }else{
                                flag = false;
                                cin>>a>>n>>b;
                            }
                        }
                        break;
                    case 'C':
                        cout<<"请输入:"<<endl;
                        cout<<"左移(<<)或右移(>>)"<<endl;
                        cout<<endl;
                        cin>>a>>s>>b;
                        if(s[0] == '>' && s[1] == '>'){
                            cout<<a<<">>"<<b<<" = "<<(a >> b)<<endl;
                            cout<<endl;
                        }else if(s[0] == '<' && s[1] == '<'){
                            cout<<a<<"<<"<<b<<" = "<<(a << b)<<endl;
                            cout<<endl;
                        }else{
                            cout<<"请输入:"<<endl;
                            cout<<"左移(<<)或右移(>>)"<<endl;
                            cout<<endl;
                        }
                        break;
                    case 'D':
                        cout<<"请输入加密内容(英文,内容后加空格!):"<<endl;
                        cin>>str;
                        for(int i = 0;i < strlen(str);i++){
                            str[i] = str[i] + 75;
                        }
                        cout<<str<<endl;
                        cout<<endl;
                        flag = true;
                        break;
                    case 'E':
                        cout<<"请输入解密内容:"<<endl;
                        cin>>str;
                        for(int i = 0;i < strlen(str);i++){
                            str[i] = str[i] - 75;
                        }
                        cout<<str<<endl;
                        cout<<endl;
                        flag = true;
                    break;
                    case 'F':
                        num = true;
                        break;
                    default:
                        cout<<"请输入大写的A,B,C,D,E,F"<<endl;
                        cout<<endl;
                        num = true;
                        break;
                    }
                    if(judge == false){
                        break;
                    }
                }else{
                    judge = false;
                    cin>>a>>n>>b;
                }
            }
        }else{
            break;
        }
    }
    return 0;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值