社区讨论
本人自制简易计算器V4.3版本
灌水区参与者 4已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @m3bgnrbb
- 此快照首次捕获于
- 2024/11/10 18:37 去年
- 此快照最后确认于
- 2025/11/04 14:57 4 个月前
==更新内容==
==1.优化了UI==
==2.增加了“石头剪刀布”功能==
==3.修复了一些已知bug==
注:如果发现有bug请在评论区说明,我将第一时间修改,谢谢配合
CPP#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void check(int n,int i){//小小显示器
switch(n){
case '1':{//显示1
if(i==1||i==4||i==7)cout<<" ";
if(i==2||i==3||i==5||i==6)cout<<" | ";
break;
}
case '2':{//显示2
if(i==1||i==4||i==7)cout<<" -- ";
if(i==2||i==3)cout<<" | ";
if(i==5||i==6)cout<<"| ";
break;
}
case '3':{//显示3
if(i==1||i==4||i==7)cout<<" -- ";
if(i==2||i==3||i==5||i==6)cout<<" | ";
break;
}
case '4':{//显示4
if(i==1||i==7)cout<<" ";
if(i==2||i==3)cout<<"| | ";
if(i==4)cout<<" -- ";
if(i==5||i==6)cout<<" | ";
break;
}
case '5':{//显示5
if(i==1)cout<<"┌-- ";
if(i==4||i==7)cout<<" -- ";
if(i==2||i==3)cout<<"| ";
if(i==5||i==6)cout<<" | ";
break;
}
case '6':{//显示6
if(i==1||i==4||i==7)cout<<" -- ";
if(i==2||i==3)cout<<"| ";
if(i==5||i==6)cout<<"| | ";
break;
}
case '7':{//显示7
if(i==1)cout<<"--- ";
else cout<<" | ";
break;
}
case '8':{//显示8
if(i==1||i==4||i==7)cout<<" -- ";
else cout<<"| | ";
break;
}
case '9':{//显示9
if(i==1||i==4||i==7)cout<<" -- ";
if(i==2||i==3)cout<<"| | ";
if(i==5||i==6)cout<<" | ";
break;
}
case '0':{//显示0
if(i==1||i==7)cout<<" -- ";
else if(i==3)cout<<"| /| ";
else if(i==4)cout<<"|/ | ";
else cout<<"| | ";
break;
}
case 'A':{
if(i==1)cout<<" /\\ ";
if(i==2)cout<<"/ \\ ";
if(i==3||i==5||i==6||i==7)cout<<"| | ";
if(i==4)cout<<"|---| ";
break;
}
case 'B':{
if(i==1)cout<<"┌-- ";
if(i==2||i==5||i==6)cout<<"| | ";
if(i==3)cout<<"| | ";
if(i==4)cout<<"|-- ";
if(i==7)cout<<"└-- ";
break;
}
case 'C':{
if(i==1||i==7)cout<<" --- ";
else cout<<"| ";
break;
}
case 'D':{
if(i==1)cout<<"┌--- ";
else if(i==7)cout<<"└--- ";
else cout<<"| | ";
break;
}
case 'E':{
if(i==1)cout<<"┌--- ";
else if(i==4)cout<<"|--- ";
else if(i==7)cout<<"└--- ";
else cout<<"| ";
break;
}
case 'F':{
if(i==1)cout<<"┌--- ";
else if(i==4)cout<<"|--- ";
else if(i==7)cout<<"| ";
else cout<<"| ";
break;
}
case 'G':{
if(i==1||i==7)cout<<" -- ";
if(i==2||i==3)cout<<"| ";
if(i==4)cout<<"| -- ";
if(i==5||i==6)cout<<"| | ";
break;
}
case 'H':{
if(i==4)cout<<"|--| ";
else cout<<"| | ";
break;
}
case 'I':{
if(i==1||i==7)cout<<" --- ";
else cout<<" | ";
break;
}
case 'J':{
if(i==1)cout<<" --- ";
else if(i==7)cout<<"└-┘ ";
else cout<<" | ";
break;
}
case 'K':{
if(i==3)cout<<"|| ";
else if(i==2||i==4)cout<<"| | ";
else cout<<"| | ";
break;
}
case 'L':{
if(i==7)cout<<"└--- ";
else cout<<"| ";
break;
}
case 'M':{
if(i==1)cout<<"|\\ /| ";
else if(i==2)cout<<"| \\/ | ";
else cout<<"| | ";
break;
}
case 'N':{
if(i==1)cout<<"|\\ | ";
else if(i==2)cout<<"| \\ | ";
else if(i==3)cout<<"| \\ | ";
else if(i==4)cout<<"| \\| ";
else cout<<"| | ";
break;
}
case 'O':{
if(i==1||i==7)cout<<" --- ";
else cout<<"| | ";
break;
}
case 'P':{
if(i==1||i==4)cout<<"┌--- ";
else if(i==2||i==3)cout<<"| | ";
else cout<<"| ";
break;
}
case 'Q':{
if(i==1)cout<<" --- ";
else if(i==6)cout<<"| \\| ";
else if(i==7)cout<<" ---\\ ";
else cout<<"| | ";
break;
}
case 'R':{
if(i==1)cout<<"┌-- ";
if(i==2||i==3)cout<<"| | ";
if(i==4)cout<<"|-- ";
if(i==5)cout<<"|\\ ";
if(i==6)cout<<"| \\ ";
if(i==7)cout<<"| \\ ";
break;
}
case 'S':{
if(i==1||i==4||i==7)cout<<" -- ";
if(i==2||i==3)cout<<"| ";
if(i==5||i==6)cout<<" | ";
break;
}
case 'T':{
if(i==1)cout<<"--- ";
else cout<<" | ";
break;
}
case 'U':{
if(i==7)cout<<" -- ";
else cout<<"| | ";
break;
}
case 'V':{
if(i==6)cout<<"\\ / ";
else if(i==7)cout<<" \\/ ";
else cout<<"| | ";
break;
}
case 'W':{
if(i==7)cout<<"|/ \\| ";
else if(i==6)cout<<"| /\\ | ";
else cout<<"| | ";
break;
}
case 'X':{
if(i==1)cout<<"\\ / ";
if(i==2)cout<<" \\ / ";
if(i==3)cout<<" \\ / ";
if(i==4)cout<<" X ";
if(i==5)cout<<" / \\ ";
if(i==6)cout<<" / \\ ";
if(i==7)cout<<"/ \\ ";
break;
}
case 'Y':{
if(i==1)cout<<"\\ / ";
else if(i==2)cout<<" \\/ ";
else cout<<" | ";
break;
}
case 'Z':{
if(i==1)cout<<"----- ";
if(i==2)cout<<" / ";
if(i==3)cout<<" / ";
if(i==4)cout<<" / ";
if(i==5)cout<<" / ";
if(i==6)cout<<"/ ";
if(i==7)cout<<"----- ";
break;
}
default:{
if(i==1||i==2||i==7)cout<<" ";
if(i==3)cout<<"┌--┐ ";
if(i==6)cout<<"└--┘ ";
if(i==4)cout<<"|\\/| ";
if(i==5)cout<<"|/\\| ";
break;
}
}
}
int main(){
while(true){
SetConsoleTitle("简易计算器[V4.3]");
cout<<"欢迎使用简易计算器[V4.3],(Made By ";
color(14);
cout<<"Tenmoretime";
color(7);
cout<<")\n"<<endl;
char s;
cout<<"请选择运算方式\n";
cout<<"1.加法\n"<<"2.减法\n"<<"3.乘法\n"<<"4.除法\n"<<"5.计算幂\n"<<"6.其他\n"<<endl; //输出提示
int a; //定义变量“a” (运算符号)
cin>>a; //输入运算符号
switch(a){
case 1:{
cout<<"您选择了加法,请输入加数的个数然后再第二行写加数,中间用空格隔开"<<endl;
int n,k=1;//加数的个数
double js[186],sum=0; //定义数组和求和变量
cout<<"加数的个数:";cin>>n;
cout<<"加数:";
for(int i=1;i<=n;i++)cin>>js[i]; //输入
cout<<"结果:";
for(int i=1;i<=n;i++){
if(k){//判断是不是第一个数,第一个数前面不用加加号
cout<<js[i];
k=0;
}
else cout<<"+"<<js[i];
sum+=js[i];
}
cout<<"="<<sum;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 2:{
cout<<"您选择了减法,请输入被减数然后在第二行输入减数的个数然后在第三行输入减数,中间用空格隔开"<<endl;
int n,k=1;//减数的个数
double bjs,js[186]; //定义被减数和减数数组
cout<<"被减数:";cin>>bjs;cout<<"减数的个数:";cin>>n;
cout<<"减数:";
for(int i=1;i<=n;i++)cin>>js[i];
cout<<"结果:";
cout<<bjs<<"-";
for(int i=1;i<=n;i++){
if(k){//判断是不是第一个数,第一个数前面不用加减号
cout<<js[i];
k=0;
}
else cout<<"-"<<js[i];
bjs-=js[i];
}
cout<<"="<<bjs;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 3:{
cout<<"您选择了乘法,请输入因数的个数然后再第二行输入因数,中间用空格隔开"<<endl;
int n,k=1;//因数的个数
double ys[186],sum=1; //定义“因数1”和“因数2”
cout<<"因数的个数:";cin>>n;
cout<<"因数:";
for(int i=1;i<=n;i++)cin>>ys[i]; //输入
cout<<"结果:";
for(int i=1;i<=n;i++){
if(k){//判断是不是第一个数,第一个数前面不用加*号
cout<<ys[i];
k=0;
}
else cout<<"*"<<ys[i];
sum*=ys[i];
}
cout<<"="<<sum;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 4:{
cout<<"您选择了除法,请输入被除数然后再第二行输入除数的个数然后在第三行输入除数,中间用空格隔开"<<endl;
int n,k=1;
double bcs,cs[186];
cout<<"被除数:";cin>>bcs;cout<<"除数的个数:";cin>>n;
cout<<"除数:";
for(int i=1;i<=n;i++)cin>>cs[i];
cout<<"结果:";
cout<<bcs<<"/";
for(int i=1;i<=n;i++){
if(k){
cout<<cs[i];
k=0;
}
else cout<<"/"<<cs[i];
bcs/=cs[i];
}
cout<<"="<<bcs;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 5:{
cout<<"您选择了计算幂,请输入原数(最好别是小数)和要计算多少次幂,中间用空格隔开"<<endl;
long long n,x,s=1;
cin>>n>>x;
for(int i=1;i<=x;i++)s*=n;
cout<<s;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
/////////////////分割线/////////////////
case 6:{
int b;
system("cls");
cout<<"你选择了其他,请继续选择\n";
cout<<"1.计算面积\n";
cout<<"2.计算体积\n";
cout<<"3.计算表面积\n";
cout<<"4.猜数游戏\n";
cout<<"5.鸡兔同笼\n";
cout<<"6.进制转换\n";
cout<<"7.小小显示器\n";
cout<<"8.石头剪刀布\n"<<endl;
cin>>b;
switch(b){
case 1:{
int c;
cout<<"你选择了计算面积,请问你要算什么图形的面积?\n";
cout<<"1.正方形\n"<<"2.长方形\n"<<"3.圆形\n"<<endl;
cin>>c;
switch(c){
case 1:{
double bianchang;
cout<<"您选择的是正方形,请输入正方形的边长"<<endl;
cin>>bianchang;
printf("它的面积是:%.3lf",bianchang*bianchang);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 2:{
double chang,kuan;
cout<<"您选择的是长方形,请输入长方形的长和宽,中间用空格隔开"<<endl;
cin>>chang>>kuan;
printf("它的面积是:%.3lf",chang*kuan);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 3:{
double banjing;
cout<<"您选择的是圆形,请输入圆形的半径(半径等于直径除以2)"<<endl;
cin>>banjing;
printf("它的面积是:%.3lf",3.14*banjing*banjing);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
default:{
cout<<endl<<"输入错误,是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
}
break;
}
case 2:{
int tiji;
cout<<"你选择了计算体积,请问你要算什么的体积?\n";
cout<<"1.正方体\n"<<"2.长方体\n"<<"3.圆柱\n"<<"4.圆锥\n"<<endl;
cin>>tiji;
switch(tiji){
case 1:{
double bc;
cout<<"您选择了正方体,请输入它的边长。"<<endl;
cin>>bc;
printf("它的体积是:%.3lf",bc*bc*bc);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 2:{
double c,k,g;
cout<<"您选择了长方体,请输入它的长、宽、高,中间用空格隔开。"<<endl;
cin>>c>>k>>g;
printf("它的体积是:%.3lf",c*k*g);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 3:{
double r,h;
cout<<"您选择了圆柱,请输入他的半径(直径/2)和高,中间用空格隔开。"<<endl;
cin>>r>>h;
printf("它的体积是:%.3lf",3.14*r*r*h);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 4:{
double r,h;
cout<<"您选择了圆锥,请输入他的半径(直径/2)和高,中间用空格隔开。"<<endl;
cin>>r>>h;
printf("它的体积是:%.3lf",(3.14*r*r*h)/3);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
default:{
cout<<endl<<"输入错误,是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
}
break;
}
case 3:{
int bmj;
cout<<"您选择了计算表面积,请问您要算什么的表面积?\n";
cout<<"1.正方体\n"<<"2.长方体\n"<<"3.圆柱体\n"<<"4.圆锥\n"<<endl;
cin>>bmj;
switch (bmj){
case 1:{
double bc;
cout<<"您选择了正方形,请输入他的边长"<<endl;
cin>>bc;
printf("它的表面积是:%.3lf",bc*bc*6);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 2:{
double c,k,g;
cout<<"您选择了长方形,请输入他的长宽高"<<endl;
cin>>c>>k>>g;
printf("它的表面积是:%.3lf",2*(c*k+c*g+k*g));
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 3:{
double r,h;
cout<<"您选择了圆柱体,请输入它的半径(直径/2)和高"<<endl;
cin>>r>>h;
printf("它的表面积是:%.3lf",2*(3.14*r*r)+2*(3.14*r*h));
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 4:{
double r,l;
cout<<"您选择了圆锥,请输入它的半径和母线(圆锥顶点到底部的长度)"<<endl;
cin>>r>>l;
printf("它的表面积是:%.3lf",3.14*r*l+3.14*r*r);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
}
break;
}
case 4:{
cout<<"您选择了猜数游戏,请猜一个1~100的数" <<endl;
srand(time(0));
int number=rand()%101;
int count=0;
while(true){
count+=1;
int guess;
cin>>guess;
if(guess==number){
cout<<"恭喜你,猜中了!";
cout<<"你猜的次数为:"<<count;
break;
}
else{
if(guess>number)cout<<"你猜得太大了!"<<endl;
else cout<<"你猜的太小了!"<<endl;
}
}
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 5:{
int rabbit,chicken,head,leg;
cout<<"您选择了鸡兔同笼,请输入头和腿的数量,中间用空格隔开"<<endl;
cin>>head>>leg;
rabbit=(leg-2*head)/2;
chicken=head-rabbit;
cout<<"鸡有"<<chicken<<"只,"<<"兔有"<<rabbit<<"只"<<endl;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 6:{
cout<<"您选择了进制转换,请问你选择什么模式?\n";
cout<<"1.十进制转任何进制\n"<<"2.任何进制转十进制\n"<<endl;
int jz;
cin>>jz;
switch (jz){
case 1:{
cout<<"您选择了十进制转任何进制,请输入一个十进制数和您要转换的进制(注:进制最好不要超过36,否则可能会出错)"<<endl;
long long n,r,ans[10086],i=0;
cin>>n>>r;
printf("(%lld)10 用 %lld 进制表示为:",n,r);
while(n>0)ans[++i]=n%r,n/=r;
for(;i>=1;i--){
if(ans[i]<10)cout<<ans[i];
else cout<<(char)(ans[i]-10+'A');
}
cout<<endl;
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
case 2:{
cout<<"您选择了任何进制转十进制,请输入一个任何进制数和这个数的进制(注:进制最好不要超过36,否则可能会出错)"<<endl;
long long r,pow=1,sum=0,x;
string n;
cin>>n>>r;
for(int i=n.size()-1;i>=0;i--){
if(n[i]>='0' and n[i]<='9')x=n[i]-'0';
else {
if(n[i]>='A' and n[i]<='Z')x=n[i]-'A'+10;
else x=n[i]-'a'+10;
}
sum+=x*pow,pow*=r;
}
printf("(%s)%lld 用 10 进制表示为:%lld\n",n.c_str(),r,sum);
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
default:{
cout<<endl<<"输入错误,是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
}
break;
}
case 7:{
cout<<"您选择了小小显示器,请输入您想显示的内容(仅支持大写字母和数字,如果输入“字母表”即可输出字母表):";
string n;
cin>>n;
if(n=="字母表"){
for(int i=1;i<=7;i++){
for(int j='A';j<='Z';j++)check(j,i);
cout<<endl;
}
}
else{
for(int i=1;i<=7;i++){
for(int j=0;j<(int)(n.size());j++)check(n[j],i);
cout<<endl;
}
}
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
case 8:{
cout<<"你选择了石头剪刀布,你是要出(输入数字)\n";
const char* op[]={"石头", "剪刀","布"};
int pl;
cout<<"1.石头\n";
cout<<"2.剪刀\n";
cout<<"3.布\n"<<endl;
cin>>pl;
while(pl<1||pl>3){
cout<<"选择无效,请重新选择 \n";
cout<<"1.石头\n";
cout<<"2.剪刀\n";
cout<<"3.布\n"<<endl;
cin>>pl;
}
int cp=rand()%3+1;
cout<<"你的选择:"<<op[pl-1]<<endl;
cout<<"电脑的选择:"<<op[cp-1]<<endl;
if(pl==cp)cout<<"平手!\n";
else if((pl == 1 && cp == 2)||
(pl == 2 && cp == 3)||
(pl == 3 && cp == 1)){
cout<<"你赢了!\n";
}
else cout<<"你输了!\n";
cout<<endl<<"是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
break;
}
default:{
cout<<endl<<"输入错误,是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
}
}
default:{
cout<<endl<<"输入错误,是否返回(y/n)";
cin>>s;
if(s=='y'||s=='Y'){
system("cls");
continue;
}
else return 0;
}
}
}
return 0;
}
回复
共 7 条回复,欢迎继续交流。
正在加载回复...