用C写的简易计算器

来源:互联网 发布:淘宝为什么流量打不开 编辑:程序博客网 时间:2024/05/21 13:29

/*
  Name: 计算器(默默版)
  Copyright:
  Author: 沉默

  Date: 03-10-08 21:03
  Description: 此程序实现计算器的加减乘除功能
  Editer: LIUYIHENG

  QQ:695460562
  Edit data: 04-10-08 12:08
*/


#include<stdio.h>
#include<stdlib.h>
float calculate (float ,char ,float );//定义个计算部分的自定义函数
float inputnumber ();//输入数的函数
char  inputsign ();//输入符号函数
float continuous();//连续运算函数
float number1,number2, resault;//声明 存放数的 变量
char  sign,m;//符号变量
int i;

int main()
{
    //printf("================================================================================/n");//界面图像控制
    //printf("/n/n/n/n/t/t/t/t计算器(默默版)/n/n/n/n") ;
    //printf("================================================================================");
    location1:                     //跳转地方

    //printf("/n/n请输入第一个数:/a") ;//输入第一个数
    system("cls");
    number1=inputnumber();
   // printf("请输入运算符:/n");//输入运算符
    system("cls");
    sign=inputsign();
   // printf("请输入第二个数:/a");//输入第二个数
    system("cls");
    number2=inputnumber();
    resault=calculate (number1 ,sign,number2);
    system("cls");
    printf("%g%c%g=%g",number1,sign,number2,resault);//输出运算结果
    getch();
    printf("/n请问是否接着计算,若是请按y;若重新计算请按n;否则按回车退出程序.");//判断用户下一步的意图
 while(1)
            //执行连续运算部分         */
   

 

    
    
{
        m=getchar();
        if(m=='y'||m=='n'||'/n')
           switch(m)
           {
                    case 'y'://fflush(stdin);
                             resault=continuous();
                             printf("%g%c%g=%g",number1,sign,number2,resault);
                             getch();
                             break;
                    case 'n':
                         goto location1;
                         break;
                    case '/n':
                         for(i=0;i<1000;i++)
                         {
                         }
                         printf("谢谢使用!!!!");
                         exit(0);
           }
        else  
           printf("你输入有错,请重新输入.");
           fflush(stdin);
           printf("/n请问是否接着计算,若是请按y;若重新计算请按n;否则按回车退出程序.");
}
   
   
   
    return 0;
}


/*各自定义函数的声明*/
/*输入操作数函数input的声明*/
  float inputnumber ()
{
      float a;
      while(scanf("%f",&a)!=1)
 {
  printf ("error!!");
  fflush(stdin);
 }
 fflush(stdin);
 return a;
}


/*输入符号函数声明*/
char  inputsign ()
{
      char sign1;
      while(1)
 { 
  scanf("%c",&sign1);
  if (sign1=='+'||sign1=='-'||sign1=='*'||sign1=='/')
   break;
  else
      printf("你输入为非法字符,请重新输入!");
      fflush(stdin);
      printf("/n请输入运算符:");
  
 }
 return sign1;
}


/*运算函数声明*/


float calculate (float number1 ,char sign,float number2)
{
       switch (sign)
 {
 case '+': resault=number1+number2;break;
    case '-': resault=number1-number2;break;
    case '*': resault=number1*number2;break;

    case '/': if (number2==0)
                      printf ("error!!!/n/a");
             else 
                   resault=number1 /number2;
     break;
    }
    return resault;
}

/*连续运算函数声明*/
float continuous()
{
        float a;
        printf("/n请输入运算符:");
        sign=inputsign();
        printf("请输入连续运算数:");
        number2=inputnumber();
        number1=resault;
        a=calculate (number1 ,sign,number2);
        return a;

   

原创粉丝点击