内容:任务2_3,编写计算机菜单并实行运算,再添加几个功能 日期:0401 ----------------------------------------------------------*/ #include "stdio.h" #include "conio.h" #include "stdlib.h" #include "math.h" #define PI 3.1415926 void main() { char opere; int x,y,n,k,fact=1; double r,r1,r2,r3,r4,i,j,h,result; float m,a,b,c,e,x1,x2,max,min; char ch="%"; system("cls"); printf(""); printf(" ********************************************************"); printf(" 简 单 计 算 器 菜 单 功 能 "); printf(" ********************************************************"); printf(""); printf(" + --------------加法运算"); printf(" - --------------减法运算"); printf(" * --------------乘法运算"); printf(" / --------------除法运算"); printf(" %c --------------余 数", ch); printf(" ! --------------阶 乘"); printf(" ^ --------------平 方 值"); printf(" @ --------------平 均 值"); printf(" & --------------奇 偶 数"); printf(" J --------------绝 对 值"); printf(" $ --------------极 值"); printf(" ~ --------------方程一元二次的实数根"); printf(" ? --------------根 号"); printf(" A --------------三角函数"); printf(" Y --------------圆的面积和周长"); printf(" S --------------三角形的面积及周长"); printf(" Q --------------球的体积及表面积"); printf(" # --------------退 出"); printf(""); printf(" *********************************************************"); printf("请选择菜单功能(+ - * / % ! ^ @ & J $ ~ #):"); scanf("%c",&opere); if(opere=="!") { printf("请输入你的运算数据(整数):"); scanf("%d",&n); if(n<0) printf("输入错误!"); else if(n==0) printf("0!=%d",fact); else { for(k=1;k<=n;k++) fact*=k; printf("%d!=%d",n,fact); exit(0); } } if(opere=="S") { printf("请分别输入三角形的三条边(逗号隔开):"); scanf("%f,%f,%f",&a,&b,&c); if(a+b<=c&&a-b>=c||a+c<=b&&a-c>=b||b+c<=a&&b-c>=a) printf("不是三角形的三条边,请重新输入!");<!--=a&&b-c--><!--=b&&a-c--><!--=c&&a-b--> else { m=(a+b+c)/2; x1=(float)(sqrt(m*(m-a)*(m-b)*(m-c))); x2=a+b+c; printf("三角形的面积:%f三角形的周长:%f",x1,x2); } exit(0); } if(opere=="Y") { printf("请输入圆的半径:"); scanf("%lf",&h); if(h<0) printf("半径不小于0,请重新输入!"); else { r1=PI*h*h; r2=2*PI*h; } printf("圆的面积是:%4lf圆的周长是:%4lf",r1,r2); exit(0); } if(opere=="Q") { printf("请输入球的半径:"); scanf("%lf",&h); if(h<0) printf("半径不小于0,请重新输入!"); else { r3=4/3*PI*h*h*h; r4=4*PI*h*h; } printf("球的体积是:%lf球的体积是:%lf",r3,r4); exit(0); } if(opere=="A") { printf("请输入度数:"); scanf("%lf",&h); r=h/180*PI; printf("正弦: %lf余弦: %lf正切: %lf", sin(r), cos(r), tan(r)); exit(0); } if(opere=="&") { printf("请输入一个整数:"); scanf("%d",&x); y=x%2; if(y==0) printf("%d为偶数",x); else printf("%d为奇数",x); exit(0); } if(opere=="J") { printf("请输入一个整数:"); scanf("%f",&m); if(m<0) m=-m; printf("绝对值为%f",m); exit(0); } if(opere=="~") { printf("请分别输入系数a,b,c的值(并用逗号","隔开):"); scanf("%f,%f,%f",&a,&b,&c); e=b*b-4*a*c; if(e==0) { x1=(-b)/(2*a); printf("x1=x2=%f",x1); } if(e>=0) { x1=(float)((-b)+sqrt(e))/(2*a); x2=(float)((-b)-sqrt(e))/(2*a); printf("x1=%0.2f x2=%0.2f",x1,x2); } if(e<0) printf("方程无实数根"); exit(0); } if(opere=="$") { printf("请输入两个值(SP):"); scanf("%f %f",&a,&b); max=(a>=b)? a:b; min=(a<=b)? a:b; printf("max=%f min=%f",max,min); exit(0); } if(opere=="^") { printf("请分别输入底数和指数(SP):"); scanf("%d %d",&k,&y); if(k==0&&y==0) printf("该函数无意义"); else for(x=1;x<=y;x++) fact*=k; printf("%d^%d=%d",k,y,fact); exit(0); } if(opere=="?") { printf("请输入一个整数:"); scanf("%d",&x); a=(float)sqrt(x); printf("%d的根号是%f",x,a); exit(0); } if(opere=="#") exit(0); if(opere=="+"||"-"||"*"||"/"||"%"||"@") printf("请输入两个正整数(SP):"); scanf("%lf %lf",&i,&j); switch( opere ) { case "+": printf("%f+%f=%f",i,j,i+j); break; case "-": printf("%f-%f=%f",i,j,i-j); break; case "*": printf("%f*%f=%f",i,j,i*j); break; case "/": printf("%f/%f=%f",i,j,i/j); break; case "%": result = (int)i%(int)j; printf("余数为:%f",result); break; case "@": printf("(%f+%f)/2=%f",i,j,(i+j)/2); break; default: printf("数据输入无效,请按菜单选择重新输入!"); }; } /*个人闲暇解闷敲敲,请勿吐槽*/