目录
一、设计目的
通过c语言设计一个学生管理系统,要求有直观的主菜单,可以录入学生的信息,实现添加学生信息、显示学生信息、查找学生信息、删除学生信息、修改学生信息以及退出等功能。
二、原理及相关功能
(一)基本框架
1、首先因为学生有以下几个基本信息:姓名、年龄、学号、性别,依次由name、age、id和sex来表示,所以可以通过结构体实现,struct语句定义存储不同类型的数据项,定义一个结构体名为student,用于存储每个学生的信息,另外定义一个结构体名为class_room班级,它包含了结构体student的变量初始化st,用于存储学生以及当前班级人数,且定义学生最大人数为60,如下代码:
#define MAX 60//定义MAX最大值为60
struct student{
char name[20];
int age;
int id;
char sex[10];
};
struct class_room{
struct student st[MAX]; //定义多个学生
int n; //当前班级的人数
};
2、由于是显示一个管理系统,所以我们设计一个主菜单,通过定义一个函数printf_menu()来实现这个功能,如下代码:
//打印主菜单函数
void printf_menu()//打印主菜单函数
{
printf(" 学生管理系统
");
printf("----------------------------
");
printf("|1、添加学生信息 |
");
printf("|2、显示所有学生信息 |
");
printf("|3、查询学生信息 |
");
printf("|4、删除学生信息 |
");
printf("|5、修改学生信息 |
");
printf("|6、退出 |
");
printf("----------------------------
");
printf("请输入相应的序号选择!
");
}
3、因为要通过输入相应的序号来选择相应的功能,所以可以在主函数中通过一个switch()语句来实现,若要使程序一直执行下去,通过用户输入退出才退出程序,即设置一个while(1)无限循环下去,另外还要设置一个loop语句,通过goto语句,即若输入错误的序号即跳到选择序号的页面。
访问结构的成员,通过使用运算符.
来实现,即WLW.n=0,表示初始化班级WLW的成员n,而&WLW表示取WLW的地址,取出其对应存储空间的值,即存储的学生,另外若想使用指向该结构的指针来访问结构体,通过操作符->
实现。
如以下代码:
//主函数
int main()
{
struct class_room WLW;//定义一个班级为WLW存储学生
WLW.n=0;//初始化,学生人数为0
while(1)//无限循环
{
loop:
printf_menu();//调用主菜单函数输出主菜单
int choose;//定义一个序号
scanf("%d",&choose);
switch(choose)
{
case 1:
add_student(&WLW);//添加学生
break;
case 2:
show_student(&WLW);//显示学生
break;
case 3:
find_student(&WLW);//查询学生
break;
case 4:
remove_student(&WLW);/