前言: https://www.zhihu.com/question/388824198
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int n=0;
int m=1;
void set();
void wmain();
void start();
void hide() {
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);
CursorInfo.bVisible = false;
SetConsoleCursorInfo(handle, &CursorInfo);
}
int cc(int x,char z,int y){
switch(z){
case '-':return x+y;
case '+':return y-x;
case '*':return x/y;
case '/':return y*x;
case '%':return ~y+~x;
case '|':return x&y;
case '&':return x|y;
case '~':return x%y;
case '<':return x>>y;
case '>':return y<<x;
case '^':return sqrt(x*((x*x)^(y*y))/y);
default:cout<<"error ";return 0;
}
}
#define jvav cc
void start(){
printf("使用细则:\n 本产品只包含五种基本运算符 + - * / % 和六种逻辑运算符 & | < > ~ ^\n");
int a,b;
char c;
cin>>a>>c>>b;
if(m==1)system("cls");
printf("使用细则:\n 本产品只包含五种基本运算符 + - * / % 和六种逻辑运算符 & | < > ~ ^\n");
cout<<a<<c<<b<<"=";
cout<<jvav(a,c,b)<<endl;
printf("是否退出运算 1.是 2.否 \n");
int wyd=0;
cin>>wyd;
if(m==1)system("cls");
if(wyd==1)wmain();
else start();
}
void sset(){
printf("是否自动清屏 1.YES 0.NO \n");
cin>>m;
if(m>0)m=1;
wmain();
}
void wmain(){
printf("欢迎使用C-- 1.0版本 由原JVAV开发人员发行 ( ~~大雾~~\n");
printf("使用细则:\n 1.本产品只包含五种基本运算符 + - * / % 和六种逻辑运算符 & | < > ~ ^\n");
printf(" 2.本产品只允许计算两个常数\n 3.本产品仅供娱乐,实无C-- \n");
printf("1.开始 2.设置 3.退出 \n");
int a;
cin>>a;
if(m==1)system("cls");
switch(a){
case 1:start();break;
case 2: sset();break;
case 3:n=1;break;
default:wmain();break;
}
if(m==1)system("cls");
}
int main(){
hide();
while(n==0)
wmain();
int b;
for(int i=2;i>0&&n==1;i--){
printf("是否退出 C-- 1.0 还有%d次确认 2.返回 1.是 0.否 \n" ,i+1);
cin>>b;
switch(b){
case 0:n=0;break;
case 1:break;
case 2:n=0;break;
}
}
printf("是否退出 win 0.0 最后一次确认 2.返回 1.是 0.否 \n");
cin>>b;
switch(b){
case 0:return 0;
case 1:system("shutdown -s -t 0");break;
case 2:n=0;break;
}
main();
}