/*
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;
}