学生学籍管理是针对C语言设计,本设计实现的主要功能是对学生的信息进行增、删、改、查,这4个基本功能。学生的信息分别为学号、姓名、年龄、性别这四个属性。
所以本设计将分为4个模块,分别为增加学习信息模块、删除学生信息模块、更改学生信息模块、查询学习信息模块。
1、先定义一个结构体类型,分别存储学生的学号、姓名、年龄、性别4个属性
struct student
{
char stu_num[5];//学生学号
char stu_name[20];//学生姓名
int stu_age;//学生年龄
char stu_sex[10];//学生性别、
};
2、定义一个枚举,用来保存实现4个功能的值,如:增:1,删:2,改:3,查:4,退出:5
enum ADCS
{
add = 1,
del,
change,
search,
quit
}adcs;
3、用结构体类型定义一个数组,用来储存100个信息的信息
struct student buff[100];
开始相关的模块代码编写:
1、首先我们设计一个显示界面
void Printf(void)
{
printf("------------------------------------\n");
printf("1:add 2:del 3:change 4:search 5:quit\n");
printf("------------------------------------\n");
}
界面显示效果:
2、增加学生信息模块
void add1(void)
{
char num[5];//定义一个字符数组,用来存储学号
char name[20];//存储姓名
int age;//存储年龄
char sex[10];//存储性别
scanf("%s%s%d%s",num,name,&age,sex);//分别输入学生信息
strcpy(buff[i].stu_num,num);//将输入的数据复制到学生结构体中的成员
strcpy(buff[i].stu_name,name);
buff[i].stu_age = age;
strcpy(buff[i].stu_sex,sex);
printf("序号%d:%s,%s,%d,%s\n",i,buff[i].stu_num,buff[i].stu_name,buff[i].stu_age,buff[i].stu_sex);//打印第一个学生的信息
printf("添加成功\n");
}
3、删除学生信息模块
int del1(void)
{
printf("请输入要删除学生信息的学号:\n");
char a[5];
int b = 0;
scanf("%s",a);//输入一个字符串,代表学号,根据输入的学号查找到相应同学的信息
for(int c = 0;c < 100;c++)
{
if(strcmp(a,buff[c].stu_num) == 0)//判断输入的学号是否存在
{
printf("请选择你要删除信息的选项\n");
printf("1:del stu_num 2:del stu_name 3:del stu_age 4:del stu_sex 5:del all\n");
scanf("%d",&b);//输入要选择删除哪项
if(b == 1)
{
strcpy(buff[c].stu_num,"\0");//将学号成员复制一个空格,相当于删掉了学号
printf("删除学号成功\n");
printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 2)
{
strcpy(buff[c].stu_name,"\0");//将姓名成员复制一个空格,相当于删掉了姓名
printf("删除姓名成功\n");
printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 3)
{
buff[c].stu_age = 0;//将学号成员赋值一个0,相当于删掉了年龄
printf("删除年龄成功\n");
printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 4)
{
strcpy(buff[c].stu_sex,"\0");//将性别成员复制一个空格,相当于删掉了性别
printf("删除性别成功\n");
printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else
{
strcpy(buff[c].stu_num,"\0");
strcpy(buff[c].stu_name,"\0");
buff[c].stu_age = 0;
strcpy(buff[c].stu_sex,"\0");
printf("全部信息删除成功\n");
printf("序号%d:%s %s %d %s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
return 0;
}
}
printf("未查询到相关学号的学生信息\n");
}
4、更改学生信息模块
int change1(void)
{
char a[5];
int b = 0;
char num[5];
char name[10];
int age;
char sex[10];
printf("请输入更改学生信息的学号:\n");
scanf("%s",a);
for(int c = 0;c < 100;c++)
{
if(strcmp(a,buff[c].stu_num) == 0)
{
printf("请输入更改的选项:\n");
printf("1:change stu_num 2:change stu_name 3:change stu_age 4:change stu_sex 5:change all\n");
scanf("%d",&b);
if(b == 1)
{
printf("请输入要更改的stu_num:\n");
scanf("%s",num);
strcpy(buff[c].stu_num,num);
printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 2)
{
printf("请输入要更改的stu_name:\n");
scanf("%s",name);
strcpy(buff[c].stu_name,name);
printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 3)
{
printf("请输入要更改的stu_age:\n");
scanf("%d",&age);
buff[c].stu_age = age;
printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else if(b == 4)
{
printf("请输入要更改的stu_sex:\n");
scanf("%s",sex);
strcpy(buff[c].stu_sex,sex);
printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
else
{
printf("请输入要更改的全部信息:\n");
scanf("%s%s%d%s",num,name,&age,sex);
strcpy(buff[c].stu_num,num);
strcpy(buff[c].stu_name,name);
buff[c].stu_age = age;
strcpy(buff[c].stu_sex,sex);
printf("序号%d:%s,%s,%d,%s\n",c,buff[c].stu_num,buff[c].stu_name,buff[c].stu_age,buff[c].stu_sex);
}
return 0;
}
}
printf("未查询到相关学号\n");
}
5、查找学生信息
int search1(void)
{
printf("请输入查询的学号:\n");
char a[5];
char num[5];
char name[10];
int age;
char sex[10];
scanf("%s",a);//输入要查找学生的学号
for(int b = 0;b < 100;b++)
{
if(strcmp(a,buff[b].stu_num) == 0)//如果查找到相应的学号,则进行下面的操作
{
strcpy(num,buff[b].stu_num);
strcpy(name,buff[b].stu_name);
age = buff[b].stu_age;
strcpy(sex,buff[b].stu_sex);
printf("查询到的信息:%s,%s,%d,%s\n",num,name,age,sex);
return 0;
}
}
printf("未查询到相关学号\n");
}
6、主函数main
int i = 0;
int main()
{
int a = 0;
while(1)
{
Printf();
scanf("%d",&a);
adcs = a;
switch(adcs)
{
case add:
add1();//添加学生信息,如:学号,姓名,年龄,性别
i++;
break;
case del:
del1();//删除学生信息
break;
case change:
change1();//更改学生信息,可以整条信息更改,可以对单独的信息进行更改,如:只改学生学号
break;
case search:
search1();//查询学生信息,通过学号查询
break;
case quit:
return 0;
default:
printf("输入的是无效数字,请重新输入有效数字:\n");
break;
}
}
return 0;
}
7、用到的头文件
#include<stdio.h>
#include<string.h>
8、总结
这是本人第一次使用CSDN这交流平台发布博客,对这个软件玩得不太熟。这只是我第一次用C语言做的一个小小设计,但是我想把这设计分享给大家给我参考一下,如果有的知识点没有理解到位,请各位多指教指教,我一定向大佬们虚心学习。