C语言--简易的学生信息系统
🎁引语–本章所用到的知识点和头文件
🎉知识点
循环结构、选择结构、数组、函数、动态内存分配、指针、qsort排序、结构体
🎊头文件
#include <stdio.h>
#include <string.h>
#include <unistd.h> //sleep的头文件,linux下用这个,我是在linux系统下跑的代码
#include <stdlib.h>
//#include <Windows.h> //sleep的头文件,windows下用这个
✨界面展示
🎪1.该系统需要实现的功能
1.登录界面
2.录入学生信息
3.删除某学生的信息
4.查询某学科成绩表
5.打印所有学生信息
6.查询某个学生的信息
🐲2. 创建学生个体和给系统开辟空间
用结构体来定义学生个体,用全局数组来给系统开辟静态空间(1000个),全局变量end记录当前系统有多少学生。
typedef struct student
{
char id[20]; //学号
char name[20]; //姓名
char sex[4]; //性别
//各科成绩
int Math; //数学
int Language; //语文
int Einglish; //英语
}St;
St arr_st[1000]; //系统最多容纳1000个学生
int end=0; //记录系统的总人数
🎪3.主函数框架main()
int main()
{
//登录密码:123456pcj 三次登录机会
int input=0;
Register(3);//登录
while(1)
{
printf("***********************************************************************\n");
printf("***************请输入你要进行的操作:0 1 2 3 4**************************\n");
printf("**********▶ 0.退出教务系统 ▶ 1.录入学生个人信息****************\n");
printf("**********▶ 2.删除学生个人信息 ▶ 3.查询某学科成绩表****************\n");
printf("**********▶ 4.打印所有学生信息 ▶ 5.查询某个学生信息****************\n");
printf("***********************************************************************\n\n\n\n");
printf("请输入你要进行的操作(0-退出,1-录入,2-删,3-查询某成绩,4-打印,5-查询某信息)->:");
scanf("%d",&input);
switch(input)
{
case 1: Logging_Data();break;
case 2: Delete_Data(); break;
case 3: Select_stu_subject();break;
case 4: Print_stu_data();break;
case 5: Select_stu_Data();break;
case 0: printf("退出教务系统\n");
exit(0);
default:printf("请输入正确的操作,傻叼🙂!!!!\n");break;
}
}
return 0;
}
✍4. 各模块功能的具体实现
📔 4.1登录功能的实现
密码内置为123456pcj,只有三次登录机会,密码输入错误系统会提示你并且告知你还有几次输入机会,三次机会都用完且没有进入学生信息系统将会退出程序。
//登录
void Register(int n)
{
char s[12];
while(n)
{
printf("🔒请输入登录密码:->");
gets(s);
if(strcmp(s,"123456pcj")==0)
{
printf("密码正确!\n");
sleep(1);
printf("正在登录~~\n");
sleep(1.5);
printf("正在登录~~~~~\n");
sleep(1.2);
printf("正在登录~~~~~~~\n");
sleep(1);
printf("教务系统登录成功!🔓\n");
return;
}
else
{
n--;
if(n!=0)
printf("密码错误,🙂傻屌你还有%d次机会\n",n);
}
}
printf("密码错误,登录机会已经用完,请重启系统吧,骚年🧙♂️ !!!\n");
}
📕 4.2录入学生信息功能的实现
录入学生信息时,应注意一下几个问题:
1.当系统已经被存满时,将无法录入学生信息
2.学生的学号不可以重复,名字可以
3.学生的学科成绩范围为[0,100]
//录入
void Logging_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
//判断系统是否人数已满
if(end==1000)
{
printf("该学校人数已经招满!!!");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("🧠你已经进入录入系统!\n");
sleep(1);
printf("请输入你需要录多少个学生的信息,目前该学校最多招1000个人,系统还剩%d个名额!\n-->请输入N:",1000-end);
int N;
while(1)
{
scanf("%d",&N);
if(end+N<=1000)
{
break;
}
else
{
printf("🙂沙雕人数超出了,请重新输入N:");
}
}
sleep(0.5);
int Curent_num=end; //注意这里的细节,不能用end来结尾,因为插入一个学生,end就要加1
for(int i=end;i<Curent_num+N;i++,end++)
{
printf("\n请输入第%d个学生的信息\n",i+1);
while(1)
{
int flag=0;
printf("学号:");
scanf("%s",&arr_st[i].id);
for(int j=0;j<i;j++)
{
if(strcmp(arr_st[i].id,arr_st[j].id)==0)
{
printf("🤔此学号已经存在,请重新输入新的学号!\n");
flag=1;
break;
}
}
if(flag==0) break;
}
printf("姓名:");
scanf("%s",&arr_st[i].name);
printf("性别:");
scanf("%s",&arr_st[i].sex);
while(1)
{
printf("数学 语文 英语 成绩[0,100]:");
scanf("%d %d %d",&arr_st[i].Math,&arr_st[i].Language,&arr_st[i].Einglish);
if((arr_st[i].Math>=0&&arr_st[i].Math<=100)&&
(arr_st[i].Language>=0&&arr_st[i].Language<=100)&&
(arr_st[i].Einglish>=0&&arr_st[i].Einglish<=100))
{
break;
}
else
{
printf("成绩输入不符合条件,🙂沙雕!!!\n");
printf("请重新输入:\n");
sleep(0.5);
}
}
}
printf("学生信息录入完毕!\n");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
}
📗4.3删除学生信息
注意的问题:
1.系统没有学生不进行删除操作
2.end等于0,不再进行删除操作
void Delete_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("👻系统没有学生,无法进行删除!");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("👻你已经进入到了删除系统\n");
int input=1;
while(input)
{
printf("\n请输入你需要删除的学生的id->:");
int flag=0;
char id[20];
scanf("%s",id);
getchar(); //吃掉'\n'
for(int i=0;i<end;i++)
{
if(strcmp(id,arr_st[i].id)==0)
{
for(int j=i;j<end-1;j++)
{
arr_st[j]=arr_st[j+1];
}
flag=1;
break;
}
}
if(flag==1)
{
end--;
printf("删除成功!\n");
printf("这个学生id:%s已被删除\n",id);
printf("系统还剩%d个学生\n",end);
}
if(flag==0)
{
printf("删除失败!\n");
printf("不存在这个学生id:%s\n",id);
}
if(end==0)
{//系统无学生了
printf("系统已经没有学生了\n");
break;
}
printf("是否要继续删除,0表示退出,非0表示继续->\n请输入数据input:->");
scanf("%d",&input);
getchar(); //吃掉'\n'
}
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了删除系统,进入到了主界面\n\n");
}
📘4.4查询某学科的成绩表(从高到底)
这个功能实现起来比较麻烦,这个功能我是放到最后才去实现它的。
我的思路走向:
1.我先动态开辟一段连续的end(end:目前有多少个学生)个(struct student类型)空间,用指针arr指向这一段空间的首地址。可以理解为我开辟一个(end个)大小的arr数组arr[end]。
2.把arr_st数组目前里面(end个)学生赋值到arr指针指向的那段空间(arr数组)。
3.再调用#include <stdlib.h> 的qsort函数对arr数组排序,qsort函数可以对结构体进行排序,
0代表我以数学学科成绩进行降序排序 ;打印
1代表我以语文学科成绩进行降序排序 ;打印
2代表我以英语学科成绩进行降序排序 ;打印
需要注意的问题:
1.end == 0不打印
2.每次调用完这个功能,一定要把动态开辟的空间free释放,如果不释放将会造成内存泄漏。
//查询某学科成绩表
void Select_stu_subject()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("\n📑系统不存在学生-->退出\n");
sleep(1.5);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
return;
}
printf("\n📑你已经进入到了查询某学科成绩表系统\n");
St*arr=(St*)malloc(sizeof(arr_st)*end);
for(int i=0;i<end;i++)
{//赋值
arr[i]=arr_st[i];
}
while(1)
{
printf("查询某学科的成绩表(0-数学,1-语文,2-英语,-1-退出查询某学科成绩表系统)input:->");
int input;
scanf("%d",&input);
switch(input)
{
case 0:qsort(arr,end,sizeof(arr[0]),cmpare_math);Print_subject(arr,0);break;
case 1:qsort(arr,end,sizeof(arr[0]),cmpare_language);Print_subject(arr,1);break;
case 2:qsort(arr,end,sizeof(arr[0]),cmpare_einglish);Print_subject(arr,2);break;
default: printf("请输入正确的操作\n");break;
case -1:free(arr);
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学科的成绩表系统,进入到了主界面\n\n");
return;
}
}
}
int cmpare_math( const void *a , const void *b ) //数学比较
{
return (*(St*)a).Math > (*(St*)b).Math ? -1 : 1;
}
int cmpare_language( const void *a , const void *b ) //语文比较
{
return (*(St*)a).Language > (*(St*)b).Language ? -1 : 1;
}
int cmpare_einglish( const void *a , const void *b ) //英语比较
{
return (*(St*)a).Einglish > (*(St*)b).Einglish ? -1 : 1;
}
//打印某学科
void Print_subject(St*arr,int num)
{
puts("--------------------------------------------------------");
if(num==0)
{
puts("学号\t\t姓名\t\t性别\t\t数学");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Math);
}
}
if(num==1)
{
puts("学号\t\t姓名\t\t性别\t\t语文");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Language);
}
}
if(num==2)
{
puts("学号\t\t姓名\t\t性别\t\t英语");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Einglish);
}
}
}
📙4.5打印所有学生的信息
//打印
void Print_stu_data()
{
if(end==0)
{
printf("🎅系统暂时没有学生,请去录入学生信息!!\n");
sleep(0.8);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("\n🎅正在打印所有学生信息!\n");
printf("--------------------------------------------------------------------------------------------------\n");
printf("--------------------------------------------------------------------------------------------------\n");
for(int i=0;i<end;i++)
{
printf("\n第%d个学生的信息\n",i+1);
printf("学号:%-4s 姓名:%-10s 性别:%-3s",arr_st[i].id,arr_st[i].name,arr_st[i].sex);
printf(" 学科成绩:数学:%-3d 语文:%-3d 英语:%-3d",arr_st[i].Math,arr_st[i].Language,arr_st[i].Einglish);
printf("\n");
sleep(1);
}
printf("--------------------------------------------------------------------------------------------------\n");
printf("--------------------------------------------------------------------------------------------------\n");
printf("\n所有学生信息打印完毕!\n");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了打印系统,进入到了主界面\n\n");
}
📓4.6查询某个学生信息
存在找到和找不到两种可能性
void Select_stu_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("\n👺系统不存在学生-->退出\n");
sleep(1.5);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
return;
}
printf("\n👺你已经进入到了查询某个学生信息系统\n");
int input=1;
while(input)
{
printf("\n输入你要查询的学生的id->:");
int flag=0;
char id[20];
scanf("%s",id);
getchar(); //吃掉'\n'
for(int i=0;i<end;i++)
{
if(strcmp(id,arr_st[i].id)==0)
{
flag=1;
printf("找到了--->学生的信息:\n");
printf("学号:%-4s 姓名:%-10s 性别:%-3s",arr_st[i].id,arr_st[i].name,arr_st[i].sex);
printf(" 学科成绩:数学:%-3d 语文:%-3d 英语:%-3d",arr_st[i].Math,arr_st[i].Language,arr_st[i].Einglish);
break;
}
}
if(flag==0)
{
printf("未找到-->不在这个学生id:%s\n",id);
}
printf("\n是否要继续查询,0表示退出,非0表示继续->\n请输入数据input:->");
scanf("%d",&input);
getchar(); //吃掉'\n'
}
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
}
🤔5.源码
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
//#include <Windows.h>
typedef struct student
{
char id[20]; //学号
char name[20]; //姓名
char sex[4]; //性别
//各科成绩
int Math; //数学
int Language; //语文
int Einglish; //英语
}St;
St arr_st[1000];
int end=0; //记录系统的总人数
//登录
void Register(int n)
{
char s[12];
while(n)
{
printf("🔒请输入登录密码:->");
gets(s);
if(strcmp(s,"123456pcj")==0)
{
printf("密码正确!\n");
sleep(1);
printf("正在登录~~\n");
sleep(1.5);
printf("正在登录~~~~~\n");
sleep(1.2);
printf("正在登录~~~~~~~\n");
sleep(1);
printf("教务系统登录成功!🔓\n");
return;
}
else
{
n--;
if(n!=0)
printf("密码错误,🙂傻屌你还有%d次机会\n",n);
}
}
printf("密码错误,登录机会已经用完,请重启系统吧,骚年🧙♂️ !!!\n");
}
//录入
void Logging_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
//判断系统是否人数已满
if(end==1000)
{
printf("该学校人数已经招满!!!");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("🧠你已经进入录入系统!\n");
sleep(1);
printf("请输入你需要录多少个学生的信息,目前该学校最多招1000个人,系统还剩%d个名额!\n-->请输入N:",1000-end);
int N;
while(1)
{
scanf("%d",&N);
if(end+N<=1000)
{
break;
}
else
{
printf("🙂沙雕人数超出了,请重新输入N:");
}
}
sleep(0.5);
int Curent_num=end;
for(int i=end;i<Curent_num+N;i++,end++)
{
printf("\n请输入第%d个学生的信息\n",i+1);
while(1)
{
int flag=0;
printf("学号:");
scanf("%s",&arr_st[i].id);
for(int j=0;j<i;j++)
{
if(strcmp(arr_st[i].id,arr_st[j].id)==0)
{
printf("🤔此学号已经存在,请重新输入新的学号!\n");
flag=1;
break;
}
}
if(flag==0) break;
}
printf("姓名:");
scanf("%s",&arr_st[i].name);
printf("性别:");
scanf("%s",&arr_st[i].sex);
while(1)
{
printf("数学 语文 英语 成绩[0,100]:");
scanf("%d %d %d",&arr_st[i].Math,&arr_st[i].Language,&arr_st[i].Einglish);
if((arr_st[i].Math>=0&&arr_st[i].Math<=100)&&
(arr_st[i].Language>=0&&arr_st[i].Language<=100)&&
(arr_st[i].Einglish>=0&&arr_st[i].Einglish<=100))
{
break;
}
else
{
printf("成绩输入不符合条件,🙂沙雕!!!\n");
printf("请重新输入:\n");
sleep(0.5);
}
}
}
printf("学生信息录入完毕!\n");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
}
//打印
void Print_stu_data()
{
if(end==0)
{
printf("🎅系统暂时没有学生,请去录入学生信息!!\n");
sleep(0.8);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("\n🎅正在打印所有学生信息!\n");
printf("--------------------------------------------------------------------------------------------------\n");
printf("--------------------------------------------------------------------------------------------------\n");
for(int i=0;i<end;i++)
{
printf("\n第%d个学生的信息\n",i+1);
printf("学号:%-4s 姓名:%-10s 性别:%-3s",arr_st[i].id,arr_st[i].name,arr_st[i].sex);
printf(" 学科成绩:数学:%-3d 语文:%-3d 英语:%-3d",arr_st[i].Math,arr_st[i].Language,arr_st[i].Einglish);
printf("\n");
sleep(1);
}
printf("--------------------------------------------------------------------------------------------------\n");
printf("--------------------------------------------------------------------------------------------------\n");
printf("\n所有学生信息打印完毕!\n");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了打印系统,进入到了主界面\n\n");
}
//删除
void Delete_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("👻系统没有学生,无法进行删除!");
sleep(1.5);
printf("正在退出~~\n");
sleep(1.1);
printf("已经退出了录入系统,进入到了主界面\n\n");
return;
}
printf("👻你已经进入到了删除系统\n");
int input=1;
while(input)
{
printf("\n请输入你需要删除的学生的id->:");
int flag=0;
char id[20];
scanf("%s",id);
getchar(); //吃掉'\n'
for(int i=0;i<end;i++)
{
if(strcmp(id,arr_st[i].id)==0)
{
for(int j=i;j<end-1;j++)
{
arr_st[j]=arr_st[j+1];
}
flag=1;
break;
}
}
if(flag==1)
{
end--;
printf("删除成功!\n");
printf("这个学生id:%s已被删除\n",id);
printf("系统还剩%d个学生\n",end);
}
if(flag==0)
{
printf("删除失败!\n");
printf("不存在这个学生id:%s\n",id);
}
if(end==0)
{//系统无学生了
printf("系统已经没有学生了\n");
break;
}
printf("是否要继续删除,0表示退出,非0表示继续->\n请输入数据input:->");
scanf("%d",&input);
getchar(); //吃掉'\n'
}
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了删除系统,进入到了主界面\n\n");
}
//查询某个学生信息
void Select_stu_Data()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("\n👺系统不存在学生-->退出\n");
sleep(1.5);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
return;
}
printf("\n👺你已经进入到了查询某个学生信息系统\n");
int input=1;
while(input)
{
printf("\n输入你要查询的学生的id->:");
int flag=0;
char id[20];
scanf("%s",id);
getchar(); //吃掉'\n'
for(int i=0;i<end;i++)
{
if(strcmp(id,arr_st[i].id)==0)
{
flag=1;
printf("找到了--->学生的信息:\n");
printf("学号:%-4s 姓名:%-10s 性别:%-3s",arr_st[i].id,arr_st[i].name,arr_st[i].sex);
printf(" 学科成绩:数学:%-3d 语文:%-3d 英语:%-3d",arr_st[i].Math,arr_st[i].Language,arr_st[i].Einglish);
break;
}
}
if(flag==0)
{
printf("未找到-->不在这个学生id:%s\n",id);
}
printf("\n是否要继续查询,0表示退出,非0表示继续->\n请输入数据input:->");
scanf("%d",&input);
getchar(); //吃掉'\n'
}
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
}
int cmpare_math( const void *a , const void *b ) //数学比较
{
return (*(St*)a).Math > (*(St*)b).Math ? -1 : 1;
}
int cmpare_language( const void *a , const void *b ) //语文比较
{
return (*(St*)a).Language > (*(St*)b).Language ? -1 : 1;
}
int cmpare_einglish( const void *a , const void *b ) //英语比较
{
return (*(St*)a).Einglish > (*(St*)b).Einglish ? -1 : 1;
}
//打印某学科
void Print_subject(St*arr,int num)
{
puts("--------------------------------------------------------");
if(num==0)
{
puts("学号\t\t姓名\t\t性别\t\t数学");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Math);
}
}
if(num==1)
{
puts("学号\t\t姓名\t\t性别\t\t语文");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Language);
}
}
if(num==2)
{
puts("学号\t\t姓名\t\t性别\t\t英语");
for(int i=0;i<end;i++)
{
printf("%s\t\t%s\t\t%s\t",arr[i].id,arr[i].name,arr[i].sex);
printf("\t%d\n",arr[i].Einglish);
}
}
}
//查询某学科成绩表
void Select_stu_subject()
{
printf("\n***********************************************************************\n");
printf("***********************************************************************\n");
if(end==0)
{
printf("\n📑系统不存在学生-->退出\n");
sleep(1.5);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学生信息系统,进入到了主界面\n\n");
return;
}
printf("\n📑你已经进入到了查询某学科成绩表系统\n");
St*arr=(St*)malloc(sizeof(arr_st)*end);
for(int i=0;i<end;i++)
{//赋值
arr[i]=arr_st[i];
}
while(1)
{
printf("查询某学科的成绩表(0-数学,1-语文,2-英语,-1-退出查询某学科成绩表系统)input:->");
int input;
scanf("%d",&input);
switch(input)
{
case 0:qsort(arr,end,sizeof(arr[0]),cmpare_math);Print_subject(arr,0);break;
case 1:qsort(arr,end,sizeof(arr[0]),cmpare_language);Print_subject(arr,1);break;
case 2:qsort(arr,end,sizeof(arr[0]),cmpare_einglish);Print_subject(arr,2);break;
default: printf("请输入正确的操作\n");break;
case -1:free(arr);
sleep(1.5);
printf("正在退出~~\n");
sleep(1.4);
printf("正在退出~~~~~\n");
sleep(1.2);
printf("正在退出~~~~~~~\n");
sleep(1.1);
printf("已经退出了查询某个学科的成绩表系统,进入到了主界面\n\n");
return;
}
}
}
int main()
{
//登录密码:123456pcj 三次登录机会
int input=0;
Register(3);//登录
while(1)
{
printf("***********************************************************************\n");
printf("***************请输入你要进行的操作:0 1 2 3 4**************************\n");
printf("**********▶ 0.退出教务系统 ▶ 1.录入学生个人信息****************\n");
printf("**********▶ 2.删除学生个人信息 ▶ 3.查询某学科成绩表****************\n");
printf("**********▶ 4.打印所有学生信息 ▶ 5.查询某个学生信息****************\n");
printf("***********************************************************************\n\n\n\n");
printf("请输入你要进行的操作(0-退出,1-录入,2-删,3-查询某成绩,4-打印,5-查询某信息)->:");
scanf("%d",&input);
switch(input)
{
case 1: Logging_Data();break;
case 2: Delete_Data(); break;
case 3: Select_stu_subject();break;
case 4: Print_stu_data();break;
case 5: Select_stu_Data();break;
case 0: printf("退出教务系统\n");
exit(0);
default:printf("请输入正确的操作,傻叼🙂!!!!\n");break;
}
}
return 0;
}
🐖6.结语
小生不才,码文不易,感谢客官"食用",如能点个免费赞👍,小生在此万分感谢🙏🙏🙏。