C语言实现学生成绩管理系统
设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能。
功能要求
1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部学生记录的显示。
4、查找功能:完成按姓名查找学生记录,并显示。
5、排序功能:按学生平均成绩进行排序。
6、插入功能:按平均成绩高低插入一条学生记录
7、删除功能:如果输入错误,可以删除学生记录;
8、退出。
代码:
#include#include #include #defineSIZE_NAME10 #defineSIZE_ID20 intRecord=0; typedefstruct{ charname[SIZE_NAME]; charid[SIZE_ID]; inta,b,c; intava; }pInfo; typedefstructnode{ pInfopeople; structnode*next; }linkList; intmenu(); intcreate(linkList*head); intdisplay(linkList*head); intsearch(linkList*head,char*info); intmodify(linkList*head,char*pid); intadd2(linkList*head,char*pid); intdelt(linkList*head,char*info); intcompare(intava1,intava2); intsort(linkList*head,intboolean);//1升序0降序 intmain() { linkListhead,*p; charinfo[SIZE_ID]; inttemp,chus,i; head.next=NULL; while(1){ switch(menu()){ case1: create(&head); break; case2: display(&head); break; case3: printf("请输入需要查询的学号或姓名:"); scanf("%s",info); p=&head; p=p->next; for(i=0;i next; } printf("搜索到:\n"); printf("\t\t\t\t学生信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("\t\t学号\t\t姓名\t\t\t平均成绩\n"); printf("--------------------------------------------------------------------------------\n"); printf("%20s\t",p->people.id); printf("%10s\t",p->people.name); printf("%20d\n",p->people.ava); break; case4: printf("请输入需要修改的学号:"); scanf("%s",info); modify(&head,info); break; case5: printf("请输入需要添加的学号:"); scanf("%s",info); add2(&head,info); break; case6: printf("请输入需要删除的学号或姓名:"); scanf("%s",info); delt(&head,info); break; case7: printf("请输入1或0:\n\t1:升序\n\t0:降序\n"); scanf("%d",&temp); sort(&head,temp); break; case8: exit(0); break; default: printf("输错了,再来一次\n"); } system("pause"); system("cls"); } system("pause"); return0; } intmenu() { intchus; printf("\t学生信息\n\n"); printf("请输入(1--8):\n"); printf("\t1.创建学生信息\n"); printf("\t2.显示学生信息\n"); printf("\t3.查询学生信息\n"); printf("\t4.修改学生信息\n"); printf("\t5.添加学生信息\n"); printf("\t6.删除学生信息\n"); printf("\t7.排序学生成绩\n"); printf("\t8.退出\n"); scanf("%d",&chus); returnchus; } intcreate(linkList*head) { linkList*s,*p; p=head; printf("请输入学号姓名三科成绩,输入end结束\n"); while(1){ s=(linkList*)malloc(sizeof(linkList)); scanf("%s",s->people.id); if(!strcmp(s->people.id,"end")){ return0; } scanf("%s",s->people.name); scanf("%d",&s->people.a); scanf("%d",&s->people.b); scanf("%d",&s->people.c); s->people.ava=(s->people.a+s->people.b+s->people.c)/3; s->next=p->next; p->next=s; p=s; Record++; } return0; } intdisplay(linkList*head) { inti; linkList*p; p=head; p=p->next; printf("\t\t\t\t学生信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("\t\t学号\t\t姓名\t\t\t平均成绩\n"); printf("--------------------------------------------------------------------------------\n"); for(i=0;i next){ printf("%20s\t",p->people.id); printf("%10s\t",p->people.name); printf("%20d\n",p->people.ava); } return0; } intsearch(linkList*head,char*info) { inti; linkList*p; p=head; p=p->next; for(i=0;i next){ if((!strcmp(p->people.id,info))||(!strcmp(info,p->people.name))){ returni; } } return-1; } intmodify(linkList*head,char*pid) { inti; linkList*p; p=head; p=p->next; for(i=0;i next; } printf("请输入新信息:\n"); scanf("%s",p->people.id); scanf("%s",p->people.name); scanf("%d",&p->people.a); scanf("%d",&p->people.b); scanf("%d",&p->people.c); p->people.ava=(p->people.a+p->people.b+p->people.c)/3; return0; } intadd2(linkList*head,char*pid) { inti; linkList*p,*s; p=head; p=p->next; s=(linkList*)malloc(sizeof(linkList)); while(p->next!=NULL){ p=p->next; } printf("请输入需要添加的姓名和成绩:\n"); strcpy(s->people.id,pid); scanf("%s",s->people.name); scanf("%d",&s->people.a); scanf("%d",&s->people.b); scanf("%d",&s->people.c); s->people.ava=(s->people.a+s->people.b+s->people.c)/3; if(search(head,s->people.id)==-1){ s->next=p->next; p->next=s; Record++; } else{ printf("学号重复了\n"); } sort(head,0); return0; } intdelt(linkList*head,char*info) { inti,n; linkList*p,*s; p=head; n=search(head,info); if(-1==n){ printf("没有找到\n"); return0; } for(i=0;i next; } p->next=p->next->next; Record--; return0; } intcompare(intava1,intava2) { if(ava1 next;p!=NULL;p=p->next){ for(pre=p->next;pre!=NULL;pre=pre->next){ if(0==compare(p->people.ava,pre->people.ava)){ temp=p->people; p->people=pre->people; pre->people=temp; } } } } else{ for(p=head->next;p!=NULL;p=p->next){ for(pre=p->next;pre!=NULL;pre=pre->next){ if(1==compare(p->people.ava,pre->people.ava)){ temp=p->people; p->people=pre->people; pre->people=temp; } } } } return0; }
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。