|
一、项目介绍
C语言版简易计算器,包含几个小功能,包括基本运算、进制转换、一元二次方程,支持返回操作,整体源码比较精简,代码逻辑简单,扩展性强,非常适合新手了解和学习的小项目。
二、运行截图
导航菜单,支持六种计算(可扩展)

根据输入选择,可重复使用

阶乘计算

三、代码思路
代码整体依靠一个swtich结构根据用户的输入做分支,分别调用对应的计算函数,由于代码比较短,将每个计算的代码分别写到了每个case里,代码逻辑简单,核心计算都是套数学公式即可,没有什么难度,大家可以直接读代码,并有参考注释。
建议:大家可以根据情况予以功能增加,然后将独立的代码封装到函数里,体会函数模块化思想,让代码更简洁。
四、完整源码
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
//预处理指令
int main(void)
{
double bNumber, Number, Result; //给加减乘除定义的变量
int No; //选项的定义变量
double a, b, c, x1, x2, Rad; //给一元一次方程定义的变量
int Ary_10; //定义进制的变量
char string[32]; //二进制变量定义
system (&#34;title: www.dotcpp.com&#34;);
while(1)
{
//界面
printf (&#34;┏ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┓\n&#34;);
printf (&#34;┇请选择你要计算的方法: ┇\n&#34;);
printf (&#34;┣ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┫\n&#34;);
printf (&#34;┇ 加法请按_1 进制转换_5 ┇\n&#34;);
printf (&#34;┇ 减法请按_2 求一元二次方程_6 ┇\n&#34;);
printf (&#34;┇ 乘法请按_3 ┇\n&#34;);
printf (&#34;┇ 除法请按_4 退出_0 ┇\n&#34;);
printf (&#34;┗ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┛\n&#34;);
printf (&#34;Please write down the number:&#34;);
scanf (&#34;%d&#34;,&No);
if (No == 1)
{
// 加法
printf (&#34; 请输入被加数:&#34;);
scanf (&#34;%lf&#34;,&bNumber);
printf (&#34; 请输入加数:&#34;);
scanf (&#34;%lf&#34;,&Number);
Result = bNumber + Number;
printf (&#34; 结果是: %lf\n\n&#34;,Result);
}
else if (No == 2)
{
// 减法
printf (&#34; 请输入被减数:&#34;);
scanf (&#34;%lf&#34;,&bNumber);
printf (&#34; 请输入减数:&#34;);
scanf (&#34;%lf&#34;,&Number);
Result = bNumber - Number;
printf (&#34; 结果是: %lf\n\n&#34;,Result);
}
else if (No == 3)
{
// 乘法
printf (&#34; 请输入被乘数:&#34;);
scanf (&#34;%lf&#34;,&bNumber);
printf (&#34; 请输入乘数:&#34;);
scanf (&#34;%lf&#34;,&Number);
Result = bNumber * Number;
printf (&#34; 结果是: %lf\n\n&#34;,Result);
}
else if (No == 4)
{
// 除法
printf (&#34; 请输入被除数:&#34;);
scanf (&#34;%lf&#34;,&bNumber);
printf (&#34; 请输入除数:&#34;);
scanf (&#34;%lf&#34;,&Number);
Result = bNumber / Number;
printf (&#34; 结果是: %lf\n\n&#34;,Result);
}
else if (No == 5)
{
//进制转换的代码
printf(&#34;请输入需要转换的十进制数:&#34;);
scanf(&#34;%d&#34;, &Ary_10);
itoa (Ary_10, string ,2);
printf(&#34;二进制: %s\n&#34;, string);
printf(&#34;八进制: %o\n&#34;, Ary_10);
printf(&#34;十六进制: %x\n&#34;, Ary_10);
}
else if (No == 6)
{
//求一元二次方程的解的代码
printf(&#34;请输入一元一次方程的a,b,c三个数:&#34;);
scanf(&#34;%lf%lf%lf&#34;,&a,&b,&c);
Rad = b*b - 4*a*c;
if (Rad > 0)
{
x1 = -b + sqrt(Rad) / (2*a);
x2 = -b - sqrt(Rad) / (2*a);
printf(&#34;有两个解 x1 = %lf, x2 = %lf\n&#34;, &x1, &x2);
}
else if (Rad == 0)
{
x1 = -b / (2*a);
printf(&#34;只有一个解 x1 = %lf\n&#34;, &x1);
}
else
{
printf(&#34;无解\n&#34;);
}
}
else if (No == 0)
{
// 退出程序
break;
}
else
{
// 输入的选项不对
printf(&#34; 请输入正确的数字。\n\n&#34;);
}
system (&#34;pause&#34;); //按任意键继续
system (&#34;cls&#34;); //清屏
}
return 0;
getchar();
}
END
<hr/>今天的分享到此结束啦,想学习更多C/C++项目实战的欢迎点点关注~
最近快期末考试啦,给大家推荐下我们的C语言基础教程学习学习
想一起学习交流C/C++的可以来我们编程学习基地嗷~ |
|