《学生成绩管理系统C语言版.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言版.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、 编一程序,能够输入、输出五个学生三门课程的成绩。并利用数组保存数据,格式如下:学号姓名性别英语数学语文1李小琳女9885902张飞瀛男9095783宁 可女9578804王明云男8085905朱鸿儒男8596882、 编一程序,能计算每个学生的总分和平均分。3、 编一程序,能按输入要求打印各门课程的最高分和最低分的同学。4、 编一程序,能将五个学生的成绩按总分进行降序排序。5、 编一程序,能删除一个学生的记录;6、 编一程序,能增加一个学生的记录;建立一个菜单模式的学生信息管理系统,完成功能如下:一、建立主菜单*学生信息管理系统*1、 输入学生信息2、 输出学生信息3、 计算每个同学成绩
2、的总分与平均分4、 对学生成绩进行排序5、 输出每门功课最高分的同学信息6、 输出每门功课最低分的同学信息7、 退出系统主菜单界面:二、将综合练习一中的程序改写为子程序并能通过主菜单进行调用。先上图开发环境 windows 7,vc 6.0开始贴代码:/* 张海山* 10软件2班* 安庆职业技术学院* QQ:*/#includestdio.h#includestdlib.h#includemalloc.h#includestring.htypedef struct lodeint id;char name20;char sex10;int score4;struct lode *next;lo
3、de,*linklist;linklist input(linklist head)/输入学生信息char cmd=y;int t,i,l;char name10;char sex2;int score3=0;/int sum;linklist p;while(cmd=y|cmd=Y)p=(linklist)malloc(sizeof(lode);printf(请输入学生的编号n);fflush(stdin);scanf(%d,&t);p-id=t;printf(请输入学生的姓名:n);fflush(stdin);scanf(%s,p-name);/*l=strlen(p-name);p-se
4、xl=0;/*for(i=0;inamei=namei;*/printf(请输入学生的性别:n);fflush(stdin);scanf(%s,p-sex);/*l=strlen(p-sex);p-sexl=0;/*for(i=0;isexi=sexi;*/fflush(stdin);printf(请依次输入学生的三门课成绩:n);scanf(%d,&score0);p-score0=score0;fflush(stdin);scanf(%d,&score1);p-score1=score1;fflush(stdin);scanf(%d,&score2);p-score2=score2;ffl
5、ush(stdin);p-next=head-next;head-next=p;printf(是否继续(y)&返回主菜单(n) y&nn);fflush(stdin);scanf(%c,&cmd);return head;linklist print(linklist head)linklist p;int i=1;p=head-next;printf(t序号t姓名t性别t英语t数学t语文n);while(p!=NULL)printf(t%dt%st%st%dt%dt%dn,p-id,p-name,p-sex,p-score0,p-score1,p-score2);p=p-next;/*if(
6、p=NULL)break;printf(%dn,i);*/printf(%dn,i);/printf(i=%dn,i);return 0;void avg(linklist head)int sum=0;double avg=0;linklist p;p=head-next;while(p!=NULL)sum=0;sum=p-score1+p-score2+p-score0;avg=sum/3;printf(%s的总分为:%dt平均分为:%.2lfn,p-name,sum,avg);p=p-next;void maxmin(linklist head)linklist p;int max1=0
7、,max1index,min1=head-next-score0,min1index,max2=0,max2index,min2=head-next-score1,min2index,max3=0,max3index,min3=head-next-score2,min3index;p=head-next;while(p!=NULL)if(max1score0)max1=p-score0;max1index=p-id;if(min1=(p-score0)min1=p-score0;min1index=p-id;if(max2score1)max2=p-score1;max2index=p-id;
8、if(min2=(p-score1)min2=p-score1;min2index=p-id;if(max3score2)max3=p-score2;max3index=p-id;if(min3=(p-score2)min3=p-score2;min3index=p-id;p=p-next;printf(英语:n);p=head-next;while(p!=NULL)if(p-id)=max1index)printf(英语最高分为:%dt姓名为:%sn,p-score0,p-name);if(p-id)=min1index)printf(英语最低分为:%dt姓名为:%sn,p-score0,p
9、-name);p=p-next;printf(数学:n);p=head-next;while(p!=NULL)if(p-id)=max2index)printf(数学最高分为:%dt姓名为:%sn,p-score1,p-name);if(p-id)=min2index)printf(数学最低分为:%dt姓名为:%sn,p-score1,p-name);p=p-next;printf(语文:n);p=head-next;while(p!=NULL)if(p-id)=max3index)printf(语文最高分为:%dt姓名为:%sn,p-score2,p-name);if(p-id)=min3i
10、ndex)printf(语文最低分为:%dt姓名为:%sn,p-score2,p-name);p=p-next;void rank(linklist head)linklist p;int i=0,j,k,n=0;int sum100;p=head-next;while(p!=NULL)n+;sumi=p-score1+p-score2+p-score0;i+;p=p-next;printf(n=%dn,n);for(i=1;i6;i+)for(j=0;j6-i;j+)if(sumjsumj+1)k=sumj;sumj=sumj+1;sumj+1=k;printf(t序号t姓名t性别t英语t数
11、学t语文n);for(i=0;inext;while(p!=NULL)if(sumi=(p-score1+p-score2+p-score0)printf(t%dt%st%st%dt%dt%dn,p-id,p-name,p-sex,p-score0,p-score1,p-score2);break;p=p-next;void add(linklist head)linklist p,q;p=head;q=(linklist)malloc(sizeof(lode);printf(请输入要插入学生的序号:n);fflush(stdin);scanf(%d,&q-id);fflush(stdin);
12、printf(请输入学生的姓名:n);scanf(%s,q-name);fflush(stdin);printf(请输入学生性别:n);scanf(%s,q-sex);fflush(stdin);printf(请依次输入学生的三门课成绩:n);scanf(%d,&q-score0);fflush(stdin);scanf(%d,&q-score1);fflush(stdin);scanf(%d,&q-score2);fflush(stdin);q-next=NULL;while(p-next!=NULL)p=p-next;p-next=q;/p-next=NULL;void del(linkl
13、ist head)linklist p,temp;int j;p=head-next;temp=head;printf(请输入要删除学生记录的序号:n);scanf(%d,&j);while(p!=NULL)if(p-id!=j)p=p-next;temp=temp-next;elsetemp-next=p-next;free(p);break;void main()int cmd;linklist head;head=(linklist)malloc(sizeof(lode);head-next=NULL;doprintf(nn |*学生成绩管理程序*|n);printf( |-|n);pr
14、intf( | |n);printf( | 主菜单 |n);printf( | |n);printf( |-|n);printf( | |n);printf( | 请输入选择项目: |n);printf( | |n);printf( | 1、输入学生成绩 |n);printf( | |n);printf( | 2、输出学生成绩 |n);printf( | |n);printf( | 3、计算总成绩、平均成绩 |n);printf( | |n);printf( | 4、求最高分、最低分 |n);printf( | |n);printf( | 5、排序 |n);printf( | |n);prin
15、tf( | 6、增加记录 |n);printf( | |n);printf( | 7、删除记录 |n);printf( | |n);printf( | 0、退出系统 |n);printf( | |n);printf( |-|n);scanf(%d,&cmd);switch(cmd)case 0:break;/退出系统case 1: input(head);break;/输入学生信息case 2: print(head);break;/输出学生信息case 3: avg(head);break;/求总成绩、平均数case 4: maxmin(head);break;/最高分case 5: rank(head);break;/排序case 6: add(head);break;/增加记录case 7: del(head);break;/删除记录default :printf(您输入错误!n);while(cmd!=0);因为是C语言版的 要严格按照样子输入哦要不然就会出现不可预料的结果