#includestdio.h#includestring.h#includestdlib.h#pragma warning(disable:4996)typedef struct Student{char Num[30];char Name[10];int Age;float Score;}stu;static int num;int Num();//记录学生的数量stu *Input(stu *pArr, int len);//输入学生信息void Output(stu *pArr,int len);//输出学生信息void Wellcome();void Add(stu *pArr, int len);//增加学生信息void Delete(stu *pArr, int len);//删除学生信息void Change(stu *pArr, int len);//修改学生信息void Search(stu *pArr, int len);//查询学生信息int main(void){int temp;stu *pArr NULL;stu *p NULL;Wellcome();while(1){printf(请输入命令(1.输入学生信息,2.输出学生信息,3.增加学生信息,4.删除学生信息,5.修改学生信息,6.查找学生信息,7.退出)\n);scanf(%d,temp);switch(temp){case 1 : {system(clear) ;p Input(pArr,Num());}; break;case 2 : {system(clear);Output(p,num);}; break;case 3 : {system(clear);Add(p, num);}; break;case 4 :{system(clear);Delete(p,num);}; break;case 5 :{Change(p,num);} ; break;case 6 : {Search(p,num);} ; break;case 7 : exit(0); break;}}return 0;}void Wellcome(){printf(欢迎来到学生成绩管理系统\n按任意建进入\n);getchar();system(clear);printf(\n\n);printf(------------------------ 请选择要操作的命令-----------------------------------\n\n);printf(-------------------------- 1 输入学生信息---------------------------------------\n\n);printf(-------------------------- 2 输出学生信息---------------------------------------\n\n);printf(-------------------------- 3 增加学生信息---------------------------------------\n\n);printf(-------------------------- 4 删除学生信息---------------------------------------\n\n);printf(-------------------------- 5 修改学生信息---------------------------------------\n\n);printf(-------------------------- 6 查找学生信息---------------------------------------\n\n);printf(---------------------------7 退出---------------------------------------\n\n);}int Num(){printf(请输入学生的人数\n);scanf(%d,num);return num;}stu *Input(stu *pArr, int len){pArr (stu *)malloc(len*sizeof(stu));int i;for ( i 0; i len; i){printf(请输入第%d个学生的学号:,i1);scanf(%s,pArr[i].Num);printf(请输入第%d个学生的姓名:,i1);scanf(%s,pArr[i].Name);printf(请输入第%d个学生的年龄:,i1);scanf(%d,pArr[i].Age);printf(请输入第%d个学生的成绩:,i1);scanf(%f,pArr[i].Score);}return pArr;}void Output(stu *pArr,int len){printf(学号\t姓名\t年龄\t成绩\n);for (int i 0; i len; i){printf(%s\t%s\t%d\t%f\n,pArr[i].Num,pArr[i].Name,pArr[i].Age,pArr[i].Score);}}void Add(stu *pArr, int len){printf(请输入该学生的学号:);scanf(%s,pArr[len].Num);printf(请输入该学生的姓名:);scanf(%s,pArr[len].Name);printf(请输入该学生的年龄:);scanf(%d,pArr[len].Age);printf(请输入该学生的成绩:);scanf(%f,pArr[len].Score);num;printf(添加成功\n);}void Delete(stu *pArr, int len){int n,i;char name[20];printf(请输入您要删除的学生姓名:);scanf(%s,name);for(i0;ilen;i){if(0strcmp(name,pArr[i].Name)){n i;for(i n1 ;ilen;i){pArr[i - 1] pArr[i];}num--;printf(删除成功\n);break;}else if(i(len-1)){printf(没有该学生\n);}}}void Change(stu *pArr, int len){int n,i;char name[20];printf(请输入您要修改的学生姓名:);scanf(%s,name);for(i0;ilen;i){if(0strcmp(name,pArr[i].Name)){n i;printf(请输入该学生的学号:);scanf(%s,pArr[n].Num);printf(请输入该学生的姓名:);scanf(%s,pArr[n].Name);printf(请输入该学生的年龄:);scanf(%d,pArr[n].Age);printf(请输入该学生的成绩:);scanf(%f,pArr[n].Score);printf(修改成功\n);break;}else if(i(len-1)){printf(没有该学生\n);}}}void Search(stu *pArr, int len){int n,i;char name[20];printf(请输入您要查询的学生姓名:);scanf(%s,name);for(i0;ilen;i){if(0strcmp(name,pArr[i].Name)){n i;printf(学号\t姓名\t年龄\t成绩\n);printf(%s\t%s\t%d\t%f\n,pArr[n].Num,pArr[n].Name,pArr[n].Age,pArr[n].Score);break;}else if(i(len-1)){printf(没有该学生\n);}}}类似的管理系统通常采用多文件编写主函数放单独main()文件里使用不同的功能调用不同的文件。本文使用一个c文件编写实际开发过程中建议多模块对应多文件。仅供参考