最近经过一段时间的C语言学习,我使用C语言制作了一个多功能计算器,想要给大家分享一下。
计算器设计流程
1 . 实现基本的加减乘除运算。
2 . 能够实现开方,立方,平方等复杂运算。
3 . 整体的界面展示,显示更加清晰易懂。
4 . 将运算和编号相结合,选择要使用的运算符输入对应的编号。
5 . 设置了退出编号,rqdwdm输入对应编号的时候退出程序。
6 . 循环计算,rqdwdm计算出第一个数值的时候程序自动循环让你重新输入要计算的第二个运算符即运算的数字。
效果演示
完整代码 # include <stdio.h># include <ctype.h># include <math.h>char get_choice(void); //获取用户输入的选项,并建立目char get_first(void); //获取用户输入的选项,并剔除错误输入float get_int(void); //获取用户输入的计算值float add(void); //定义加法函数float subtraction(void); //定义减法函数float multiplication(void); //定义乘法函数float division(void); //定义除法函数float extract(void); //定义开方函数float square(void); //定义平方函数float cube(void); //定义立方函数int count = 0;int main(void){char choice;printf(“***多功能计算器***\n”);choice = get_choice();while(choice != ‘q’){switch(choice){case ‘a’:add(); break;case ‘b’:subtraction(); break;case ‘c’:multiplication(); break;case ‘d’:division(); break;case ‘e’:extract(); break;case ‘f’:square(); break;case ‘g’:cube(); break;default :printf(“您输入有误,请重新输入:”); break;}fflush(stdin);choice = get_choice();}printf(“bye”);return 0;}//获取用户输入的选项,并建立目录char get_choice(void){char ch;int a = 0;//建立目录printf(“\n——————————–\n”);printf(“a. 加法\t\t\tb. 减法\nc. 乘法\t\t\td. 除法\n”);printf(“e. 开方\t\t\tf. 平方\ng. 立方\t\t\tq. 退出\n”);printf(“——————————–\n”);printf(“请输入你的选项:美国高防vps”);ch = get_first();while(ch == ‘ ‘ || ch == ‘\n’ || ch == ‘\t’)ch = get_first();//判断用户输入的选项是否有误while((ch<‘a’ || ch>’g’) && ch !=’q’){putchar(ch);printf(” 你输入的选项有误,请重新输入:”);ch = get_first();}return ch;}//获取用户输入的选项,并剔除错误输入char get_first(void){char ch;ch = getchar();//剔除由用户输入选项时产生的换行符while(ch == ‘\n’){ch = getchar();}return ch;}//获取用户输入的计算值float get_int(void){float input;char ch;int a;if(count == 0)printf(“亲!请输入数值:”);if(count == 1)printf(“亲!请输入第一个数值:”);if(count == 2)printf(“亲!请输入第二个数值:”);a = scanf(“%f”, &input);//判断用户的输入是否为一个数值while(a != 1){//剔除用户输入错误的字符while((ch = getchar()) != ‘\n’){putchar(ch);printf(” 不是一个数值,请输入例如3、111.2、或者-1″);a = scanf(“%f”, &input);}}return input;}//定义加法函数float add(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i + j;printf(“%.2f + %.2f = %.2f\n”, i, j, sum);return sum;}//定义减法函数float subtraction(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i – j;printf(“%.2f – %.2f = %.2f\n”, i, j, sum);return sum;}//定义乘法函数float multiplication(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();sum = i * j;printf(“%.2f * %.2f = %.2f\n”, i, j, sum);return sum;}//定义除法函数float division(void){float i, j, sum;count = 0;count = count+1;i = get_int();count = count+1;j = get_int();//判断除数是否为0while(j == 0){printf(“除数不能为0\n请重新输入!!!\n”);j = get_int();}sum = i / j;printf(“%.2f / %.2f = %.2f\n”, i, j, sum);return sum;}//定义开方函数float extract(void){float i, sum;count = 0;i = get_int();//判断开方数是否小于0,如果小于0,则让用户重新输入while(i < 0){printf(“请输入大于0的数值\n”);i = get_int();}sum = sqrt(i);printf(“%.2f的开方等于%.2f\n”, i, sum);return sum;}//定义平方函数float square(void){float i, sum;count = 0;i = get_int();sum = i * i;printf(“%.2f的平方等于%.2f\n”, i, sum);return sum;}//定义立方函数float cube(void){float i, sum;count = 0;i = get_int();sum = i * i * i;printf(“%f的立方等于%.3f\n”, i, sum);return sum;}