快生活 - 生活常识大全

计算器简易功能实现


  内容:任务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&lt;=c&amp;&amp;a-b&gt;=c||a+c&lt;=b&amp;&amp;a-c&gt;=b||b+c&lt;=a&amp;&amp;b-c&gt;=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",&amp;h);
  if(h&lt;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",&amp;h);
  if(h&lt;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",&amp;h);
  r=h/180*PI;
  printf("正弦: %lf余弦: %lf正切: %lf", sin(r), cos(r), tan(r));
  exit(0);
  }
  if(opere=="&amp;")
  {
  printf("请输入一个整数:");
  scanf("%d",&amp;x);
  y=x%2;
  if(y==0) printf("%d为偶数",x);
  else printf("%d为奇数",x);
  exit(0);
  }
  if(opere=="J")
  {
  printf("请输入一个整数:");
  scanf("%f",&amp;m);
  if(m&lt;0) m=-m;
  printf("绝对值为%f",m);
  exit(0);
  }
  if(opere=="~")
  {
  printf("请分别输入系数a,b,c的值(并用逗号","隔开):");
  scanf("%f,%f,%f",&amp;a,&amp;b,&amp;c);
  e=b*b-4*a*c;
  if(e==0)
  {
  x1=(-b)/(2*a);
  printf("x1=x2=%f",x1);
  }
  if(e&gt;=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&lt;0) printf("方程无实数根");
  exit(0);
  }
  if(opere=="$")
  {
  printf("请输入两个值(SP):");
  scanf("%f %f",&amp;a,&amp;b);
  max=(a&gt;=b)? a:b;
  min=(a&lt;=b)? a:b;
  printf("max=%f min=%f",max,min);
  exit(0);
  }
  if(opere=="^")
  {
  printf("请分别输入底数和指数(SP):");
  scanf("%d %d",&amp;k,&amp;y);
  if(k==0&amp;&amp;y==0) printf("该函数无意义");
  else
  for(x=1;x&lt;=y;x++)
  fact*=k;
  printf("%d^%d=%d",k,y,fact);
  exit(0);
  }
  if(opere=="?")
  {
  printf("请输入一个整数:");
  scanf("%d",&amp;x);
  a=(float)sqrt(x);
  printf("%d的根号是%f",x,a);
  exit(0);
  }
  if(opere=="#") exit(0);
  if(opere=="+"||"-"||"*"||"/"||"%"||"@")
  printf("请输入两个正整数(SP):");
  scanf("%lf %lf",&amp;i,&amp;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("数据输入无效,请按菜单选择重新输入!");
  };
  }
  /*个人闲暇解闷敲敲,请勿吐槽*/
网站目录投稿:慕易