- 编程
自制计算器
- @ 2025-8-26 17:36:06
#include<bits/stdc++.h>
using namespace std;
string s="true";
long long shi(long long n){
if(n%10>=5) return n-n%10+10;
else return n-n%10;
}
long long bai(long long n){
if(n%100>=50) return n-n%100+100;
else return n-n%100;
}
long long qian(long long n){
if(n%1000>=500) return n-n%1000+1000;
else return n-n%1000;
}
long long wan(long long n){
if(n%10000>=5000) return n-n%10000+10000;
else return n-n%10000;
}
long long shiwan(long long n){
if(n%100000>=50000) return n-n%100000+100000;
else return n-n%100000;
}
long long baiwan(long long n){
if(n%1000000>=500000) return n-n%1000000+1000000;
else return n-n%1000000;
}
long long qianwan(long long n){
if(n%10000000>=5000000) return n-n%10000000+10000000;
else return n-n%10000000;
}
long long yi(long long n){
if(n%100000000>=50000000) return n-n%100000000+100000000;
else return n-n%100000000;
}
int main(){
cout<<"欢迎使用ZQR的自制高级计算器,包含了20个功能哦!"<<endl;
while(s=="true"){
cout<<"请输入计算方法"<<endl;
cout<<"***********************"<<endl;
cout<<"******1--加法**********"<<endl;
cout<<"******2--减法**********"<<endl;
cout<<"******3--乘法**********"<<endl;
cout<<"******4--除法**********"<<endl;
cout<<"******5--连加**********"<<endl;
cout<<"******6--连减**********"<<endl;
cout<<"******7--连乘**********"<<endl;
cout<<"******8--连除**********"<<endl;
cout<<"******9--估算**********"<<endl;
cout<<"*****10--绝对值********"<<endl;
cout<<"*****11--a的n次方******"<<endl;
cout<<"*****12--根号**********"<<endl;
cout<<"*****13--数排序********"<<endl;
cout<<"*****14--求1/x的值*****"<<endl;
cout<<"*****15--求余**********"<<endl;
cout<<"*****16--n的阶乘*******"<<endl;
cout<<"*****17--exp***********"<<endl;
cout<<"*****18--a/b上取整*****"<<endl;
cout<<"*****19--a/b下取整*****"<<endl;
cout<<"*****20--x进制转y进制**"<<endl;
cout<<"***********************"<<endl;
cout<<"作者已经更新到15个功能了,剩下的暂未开发,请勿使用"<<endl;
int n;
cin>>n;
if(n<1 || n>20){
cout<<"没有找到你想要的计算方法,请重新点进去后使用已有的计算方法吧~"<<endl;
return 0;
}
if(n==1){
cout<<"您要算加法"<<endl;
double jia1,jia2;
cout<<"请输入第一个加数"<<endl;
cin>>jia1;
cout<<"请输入第二个加数"<<endl;
cin>>jia2;
cout<<"这两个数的和是"<<jia1+jia2<<endl;
}
if(n==2){
cout<<"您要算减法"<<endl;
double jian1,jian2;
cout<<"请输入被减数"<<endl;
cin>>jian1;
cout<<"请输入减数"<<endl;
cin>>jian2;
cout<<"这两个数的差是"<<jian1-jian2<<endl;
}
if(n==3){
cout<<"您要算乘法"<<endl;
double cheng1,cheng2;
cout<<"请输入第一个因数"<<endl;
cin>>cheng1;
cout<<"请输入第二个因数"<<endl;
cin>>cheng2;
cout<<"这两个数的积是"<<cheng1*cheng2<<endl;
}
if(n==4){
cout<<"您要算除法"<<endl;
double chu1,chu2;
cout<<"请输入被除数"<<endl;
cin>>chu1;
cout<<"请输入除数"<<endl;
cin>>chu2;
if(chu2==0){
while(chu2==0){
cout<<"除数不能为0,请重新输入!!"<<endl;
cin>>chu2;
}
}
cout<<"这两个数的商是"<<chu1/chu2<<endl;
}
if(n==5){
cout<<"您要算连加"<<endl;
double jia1,jia2;
jia1=0,jia2=0;
cout<<"请输入加数,如要停止,请输入-1"<<endl;
while(1){
cin>>jia2;
if(jia2==-1) break;
jia1+=jia2;
}
cout<<"这几个加数的和是"<<jia1<<endl;
}
if(n==6){
cout<<"您要算连减"<<endl;
double jian1,jian2;
jian1=0,jian2=0;
double ans=0;
cout<<"请输入被减数"<<endl;
cin>>jian1;
cout<<"请输入减数,如要停止,请输入-1"<<endl;
while(1){
cin>>jian2;
if(jian2==-1) break;
jian1-=jian2;
}
cout<<"被减数与减数的差是"<<jian1<<endl;
}
if(n==7){
cout<<"您要算连乘"<<endl;
double cheng1,cheng2=1;
cheng1=0,cheng2=1;
cout<<"请输入因数,如要停止,请输入-1"<<endl;
while(1){
cin>>cheng1;
if(cheng1==-1) break;
cheng2*=cheng1;
}
cout<<"这几个数的积是"<<cheng2<<endl;
}
if(n==8){
cout<<"您要算连除"<<endl;
double chu1,chu2;
chu1=0,chu2=0;
cout<<"请输入被除数"<<endl;
cin>>chu1;
cout<<"请输入除数,如要停止,请输入-1"<<endl;
while(chu2>-1){
cin>>chu2;
if(chu2==-1) break;
else if(chu2==0){
cout<<"除数不能为0!!!!请重新输入!!!!!"<<endl;
}else{
chu1/=chu2;
}
}
cout<<"被除数与除数的商是"<<chu1<<endl;
}
if(n==9){
cout<<"您要估算一个数"<<endl;
cout<<"请输入要估算的数"<<endl;
long long n;
cin>>n;
cout<<"请问你要估算到哪一位?(最多估算到亿位哦~)"<<endl;
cout<<"**********************"<<endl;
cout<<"*********s--十位******"<<endl;
cout<<"*********b--百位******"<<endl;
cout<<"*********q--千位******"<<endl;
cout<<"*********w--万位******"<<endl;
cout<<"*********a--十万位****"<<endl;
cout<<"*********m--百万位****"<<endl;
cout<<"*********i--千万位****"<<endl;
cout<<"*********y--亿位******"<<endl;
cout<<"**********************"<<endl;
char s;
cin>>s;
if(s=='s') cout<<"这个数估算后的结果是"<<shi(n)<<endl;
if(s=='b') cout<<"这个数估算后的结果是"<<bai(n)<<endl;
if(s=='q') cout<<"这个数估算后的结果是"<<qian(n)<<endl;
if(s=='w') cout<<"这个数估算后的结果是"<<wan(n)<<endl;
if(s=='a') cout<<"这个数估算后的结果是"<<shiwan(n)<<endl;
if(s=='m') cout<<"这个数估算后的结果是"<<baiwan(n)<<endl;
if(s=='i') cout<<"这个数估算后的结果是"<<qianwan(n)<<endl;
if(s=='y') cout<<"这个数估算后的结果是"<<yi(n)<<endl;
}
if(n==10){
cout<<"您要算一个数的绝对值"<<endl;
cout<<"请输入这个数"<<endl;
long long n;
cin>>n;
cout<<"这个数的绝对值是"<<abs(n)<<endl;
}
if(n==11){
cout<<"您要进行幂运算"<<endl;
cout<<"请输入底数a和指数n(目前仅支持整数幂)"<<endl;
long long a,n;
cin>>a>>n;
cout<<"幂运算的结果是";
if(n>0) cout<<pow(a,n)<<endl;
else if(n<0) cout<<"1/"<<pow(a,-n)<<endl;
else cout<<1<<endl;
}
if(n==12){
cout<<"您要对一个数进行开方"<<endl;
cout<<"请输入要开方的数"<<endl;
double a;
cin>>a;
cout<<"开方的结果是"<<sqrt(a)<<endl;
}
if(n==13){
cout<<"您要对一个或多个数进行排列"<<endl;
cout<<"请输入待排序数字的个数(最大为500)"<<endl;
long long n;
cin>>n;
if(n>500){
while(n>500){
cout<<"数量太多了,请重新输入!"<<endl;
cin>>n;
}
}
cout<<"请输入每一个数(目前仅支持整数)"<<endl;
long long a[505];
for(int i=1;i<=n;i++) cin>>a[i];
cout<<"请输入排序方式(\">\"为从大到小,\"<\"为从小到大)"<<endl;
string s;
cin>>s;
sort(a+1,a+1+n);
cout<<"排序结果为";
if(s==">"){
for(int i=n;i>=1;i--){
cout<<a[i];
if(i!=1) cout<<">";
}
cout<<endl;
}else{
for(int i=1;i<=n;i++){
cout<<a[i];
if(i!=n) cout<<"<";
}
cout<<endl;
}
}
if(n==14){
cout<<"您要求1/x的值"<<endl;
cout<<"请输入x(目前支持小数)"<<endl;
double x;
cin>>x;
double y=1/x;
cout<<"运算结果为"<<y<<endl;
}
if(n==15){
cout<<"您要算a/b的余数"<<endl;
cout<<"请输入被除数a和除数b(目前仅支持整数)"<<endl;
long long a,b;
cin>>a>>b;
cout<<"取模的结果是"<<a%b<<endl;
}
if(n>15 && n<=20){
cout<<"这个计算方法还没有开发哦~请重新点进去,使用别的计算方法吧~"<<endl;
return 0;
}
cout<<"还要继续使用吗?"<<endl;
cout<<"*******************"<<endl;
cout<<"**true--继续使用***"<<endl;
cout<<"**false--退出使用**"<<endl;
cout<<"*******************"<<endl;
cin>>s;
if(s!="true" && s!="false"){
while(s!="true" && s!="false"){
cout<<"您的输入有误,请重新输入!"<<endl;
cin>>s;
}
}
}
cout<<"感谢您的使用,欢迎您下次再来使用!"<<endl;
cout<<"作者:ZQR(作者已经设定为匿名制作)"<<endl;
return 0;
}
自制计算器(还没有做完),有问题欢迎评论区反馈,我会及时阅读,并更新计算器的!!
2 条评论
-
彭诗皓 LV 3 @ 2025-9-14 13:55:57整好天!!!!!!!!!!!
-
@ 2025-8-27 11:34:20
ztr
👎 2
- 1