(相关资料图)
不知道你要的信息管理功能都要求实现什么功能,只是我前两天做的,可以给你参考一下,用结构做的,其中统计功能是我做的,其他部分是老师编好的/*预编译命令*/#include
#include #include #include /*自定义数据类型*/typedef struct student{ char xh[10];//学号 char xm[15];//姓名 int cj[3];//3门课程的成绩}STU,*STUP;typedef struct stulist{ STUP elem;//结构体指针变量 int listsize;//容量 int length;//长度}SqList;/*自定义函数说明*/int initSqlist(SqList &L,int n);int insertSqlist(SqList &L,STU x,int i);void creatSqlist(SqList &L,int m);int deleteSqlist(SqList &L,int i);int locateSqlist(SqList L,char *xhp);void disp(SqList L);int menu();void tongji(int bh,SqList &m);/*函数定义*//*菜单函数*/int menu(){ int num; while(1){ system("cls");//清屏 printf(" ------------学生成绩管理系统-------------\n\n"); printf(" 1--创建学生成绩表 2--插入学生成绩\n\n"); printf(" 3--删除学生成绩 4--按学号查找\n\n"); printf(" 5--显示学生成绩表 6--成绩统计\n\n"); printf(" 0--退出\n\n"); printf(" -----------------------------------------\n"); printf("请输入0-6:"); scanf("%d",&num); fflush(stdin); if(num<0||num>6){ printf("重新选择!按任意键继续!"); getch();} else break; } return num;}/*初始化函数*/int initSqlist(SqList &L,int n){ L.elem=new STU[n]; if(L.elem==NULL){ printf("申请空间失败!\清派n"); exit(0); } L.listsize=n; L.length=0; return 1;}/*插入函数*/int insertSqlist(SqList &L,STU x,int i){ int j; if(i>L.listsize){ printf("溢出!\n"); printf("重新选择陪正亩!按任意键继芦森续!"); getch(); return 0; } if(i<=0||i>L.length+1){ printf("位置不合理!\n"); printf("重新选择!按任意键继续!"); getch(); return 0; } for(j=L.length-1;j>=i-1;j--) L.elem[j+1]=L.elem[j]; L.elem[i-1]=x; L.length++; return 1;} /*创建函数*/ void creatSqlist(SqList &L,int m){ int i,j; STU x; for(i=1;i<=m;i++){ printf("请输入第%d个学生的数据:\n",i); printf("学号:"); scanf("%s",x.xh); for(j=0;jL.length){ printf("位置不合理,请重新输入!"); getch(); return 0; } for(j=i;j<=L.length-1;j++) L.elem[j-1]=L.elem[j]; L.length--; return 1;} /*查找函数*/ int locateSqlist(SqList L,char *xhp){ int i; for(i=0;im.elem[i].cj[0]) min=m.elem[i].cj[0]; } printf("最高分:%d\n\n最低分:%d\n\n平均分:%.2lf\n",max,min,sum/m.length); printf("按任意键继续:"); getch(); break; case 2: if(m.length<2){ printf("当前人数少于2个,无法完成统计,按任意键继续:"); getch(); break; } sum=0; for(i=0;im.elem[i].cj[1]) min=m.elem[i].cj[1]; } printf("最高分:%d\n\n最低分:%d\n\n平均分:%.2lf\n",max,min,sum/m.length); printf("按任意键继续:"); getch(); break; case 3: if(m.length<2){ printf("当前人数少于2个,无法完成统计,按任意键继续:"); getch(); break; } sum=0; for(i=0;im.elem[i].cj[2]) min=m.elem[i].cj[2]; } printf("最高分:%d\n\n最低分:%d\n\n平均分:%.2lf\n",max,min,sum/m.length); printf("按任意键继续:"); getch(); break; }}/*主函数*/void main(){ int menunum,n,m,pos,i; SqList L; STU x; char xh[10]; while(1){ menunum=menu(); switch(menunum){ case 0: exit(0); case 1: printf("请输入学生总人数:"); scanf("%d",&n); if(initSqlist(L,n)){ printf("请输入现在需要创建的学生人数:"); scanf("%d",&m); creatSqlist(L,m); } break; case 2: printf("\n请输入待插入学生的数据:\n"); printf("学号:"); scanf("%s",x.xh); for(i=0;i3){ printf("编号错误,请重新输入:\n"); scanf("%d",&bianhao1); } tongji(bianhao1,L);}//switch }//while}