关于C语言如何有效正确的学习,我写了一个专栏:你可以这样学习C语言,有兴趣的小伙伴可以来看看哦,希望能对你有收获!本文例子需要源码的可以关注我后私信我。
阅读本文之前,请先阅读:
三、功能扩展示例
你可以很方便的在这个程序上扩展你自己的功能模块。
现在这个结构已经有两个功能模块,一个是function1,它包含一个.h头文件”function1.h“,还包含一个.c实现文件”function1.c“;另一个是function2,它包含一个.h头文件”function2.h“,还包含一个.c实现文件”function2.c“。
下面我用一个”学生管理系统“的例子来说明如何扩展这个结构。”学生管理系统“的源码网上有很多,也是很经典的C语言上手实例项目。我们假设学生管理系统有三个功能需要实现,如下:
1. ”学生“类型的定义;
2. 添加一个学生;
3. 删除一个学生;
现在针对这三个功能,我们在这个程序上来扩展。
1. 扩展”学生“类型的定义
我们可以增加一个.h头文件:student.h,文件内容如下:
typedef struct student{
char name[10];//学生名
char sex[5];//学生性别
} Stu;
2. 扩展”添加学生“的功能模块
扩展这个功能模块时,需要添加.h头文件AddStu.h,以及一个.c文件AddStu.c。
在AddStu.h文件中,声明如下函数:
extern void AddStu();//添加一个学生的函数
在AddStu.c文件中,实现如下函数:
void AddStu()
{
puts("成功添加一个学生!");
}
在菜单选择界面,添加一个”学生添加“选项"puts(" 3. add_stu");":
void show_menu() {
puts("======================================");
puts(" Here is the choice ");
puts(" 1. menu_one");
puts(" 2. menu_two");
puts(" 3. add_stu");
puts(" 0. quit");
}
在switch语句中,添加case语句3:调用”AddStu“的模块
switch(input)
{
case 1:
system("cls");
function1();
PauseAndTip();
system("cls");
show_menu();
break;
case 2:
system("cls");
function2();
PauseAndTip();
system("cls");
show_menu();
break;
case 3:
system("cls");
AddStu();
PauseAndTip();
system("cls");
show_menu();
break;
default:
break;
}
3. 扩展”删除学生“的功能模块
扩展这个功能模块时,需要添加.h头文件DelStu.h,以及一个.c文件DelStu.c。
在DelStu.h文件中,声明如下函数:
extern void DelStu();//删除一个学生
在DelStu.c文件中,实现如下函数:
void DelStu()
{
puts("删除一个学生成功");
}
在菜单选择界面,添加一个”学生删除“选项"puts(" 4. del_stu");":
void show_menu() {
puts("======================================");
puts(" Here is the choice ");
puts(" 1. menu_one");
puts(" 2. menu_two");
puts(" 3. add_stu");
puts(" 4. del_stu");
puts(" 0. quit");
}
在switch语句中,添加一个case语句4:调用”DelStu“的模块
switch(input)
{
case 1:
system("cls");
function1();
PauseAndTip();
system("cls");
show_menu();
break;
case 2:
system("cls");
function2();
PauseAndTip();
system("cls");
show_menu();
break;
case 3:
system("cls");
AddStu();
PauseAndTip();
system("cls");
show_menu();
break;
case 4:
system("cls");
DelStu();
PauseAndTip();
system("cls");
show_menu();
break;
default:
break;
}
基本上扩展的套路就是这样。
如果你觉得欢迎界面或者菜单选择界面不够丰富,不够美观,你也可以自行完善里面的信息。如果你美学功底深厚,又有点技术底子,可以考虑使用graphics图形库画个漂亮的界面。