首先我们需要知道如果实现任何程序都只是在主函数中编写语句,那就会显得主函数冗长并且容易出错。所以当我们学完函数之后就要明白可以通过自定义函数的办法来分模块实现一个程序的运行。如下以计算器为例(能够实现两个数的加减乘除这几个基本的运算)
步骤一:创建出如下的两个源文件和一个头文件
步骤二:在test.c的文件中写出主函数(需要注意的是一个程序只能有一个主函数,其余的函数可以在主函数中调用)代码如下:
#include"calculate.h"
void menu() //此处是指写一个函数,用来打印界面,以供用户选择哪一个算法
{
printf("请选择需要执行的算法\n");
printf("*******1是加法******\n");
printf("*******2是减法******\n");
printf("*******3是乘法******\n");
printf("*******4是除法******\n");
}
int main()
{
int input = 0;
printf("请选择是否要开始计算(1开始/0不开始)\n");
scanf_s("%d", &input);
do
{
menu(); //调用菜单函数
printf("请选择:(1,2,3,4其中的一个)");
scanf_s("%d", &input);
switch (input)//使用switch语句来实现对不同算法的控制
{
case 1:
Add(); //调用加法函数
break;
case 2:
Sub(); //调用减法函数
break;
case 3:
Mul(); //调用乘法函数
break;
case 4:
Div(); //调用除法函数
break;
default:
printf("选择错误\n");
break;
}printf("请选择是否要继续(1继续,0结束)");
scanf_s("%d", &input);if (input)
continue; //此处巧妙的使用continue和break在循环中的应用,读者自行体会
else
break;
} while (input);
return 0;
}
步骤二:实现对于在上述主函数中调用的各类函数继续声明:也就是开头所引用的头文件 #include“calculate”;
在calculate.h的头文件中应该写成如下语句:
#include<stdio.h> //对printf所需的函数的头文件
void Add(); //函数声明
void Sub();
void Mul();
void Div();
也就是说,我们只需要建立一个头文件将所有在主函数中需要的头文件和函数的声明都包含,那么只需要在主函数中开头写出如 #include“calculate”; 的形式即可(需要注意的是只能写为该模式,不能将 “” 写为 <> )
步骤三:既然以及知道了所需要的函数和对函数进行了声明,那么接下来只需要在create.c文件中写下执行体函数以及具体的执行语句即可。如下
void Add()
{
float i = 0, j = 0;
printf("请输入需要相加的数:\n");
scanf_s("%f %f", &i,&j);
printf("这两个数的加和是:%.2f\n",i + j);
}
void Sub()
{
float i = 0, j = 0;
printf("请输入需要相减的数:\n");
scanf_s("%f %f", &i, &j);
printf("这两个数相减的结果是:%.2f\n",i - j);
}
void Mul()
{
float i = 0, j = 0;
printf("请输入需要相乘的数:\n");
scanf_s("%f %f", &i, &j);
printf("这两个数的相乘的结果是:%.2f\n", i * j);
}
void Div() //实现除法的函数比较复杂的原因是要进行对除数的判断,看是否为0
{
float i = 0, j = 0;
printf("请输入除数:\n");
scanf_s("%f", &i);
if (i != 0)
{
printf("请继续输入被除数:\n");
scanf_s("%f", &j);
float m = j / i;
printf("这两个数的相除的结果是:%f\n", m);
}
else
{
printf("除数不能为0!!!\n");
}
}
通过上述三个步骤,我们就完成了一个基本的计算器程序,且主函数不会显得太过复杂。这里可能有人会疑问写起来比在一个源文件中的要复杂,但是一般在开发一个软件或者写一个比较复杂的程序的时候会有好几个人一同负责,每个人只需要负责某一部分模块即可,那么想想如果上述计算器程序分为三四个人同时进行,最后只需要一个人来整合就很高效。