资源描述:
《C语言代码学生信息排序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言代码-学生信息排序问题描述学生信息由学号,姓名,性别,语文成绩,数学成绩,英语成绩,平均分和总分构成。学号、姓名长度不超过20,学生人数不超过100。写一个处理学生信息的程序,要求有以下功能1)插入学生信息,命令格式如下:INSERTidnamesexs1s2s3表示插入一个学生信息。插入后显示插入的学生信息,格式如下:学号姓名性别语文成绩数学成绩英语成绩平均成绩总成绩中间有一个空格分开,所有成绩保留2位小数。2)显示所有学生信息,命令格式如下:LIST按照学号从小到大的顺序显示所有学生信息。每个学生信息一行,格式如下学号姓名性别语文成绩数学成绩英语成绩平均成绩总成绩中间有
2、一个空格分开,所有成绩保留2位小数。3)退出程序,命令格式如下:QUIT输出"Goodbye!"后结束程序。写一个程序完成上述功能。输入的最后一条命令总是QUIT设计一个结构体表示学生信息。分别设计两个函数,来处理学生信息的插入与输出。设计一个函数对所有学生信息按学号进行排序。再设计一个函数输出所有学生信息。在主函数中调用插入学生信息与显示所有学生信息的函数。输入输入有多行,每行一条命令,命令格式有:INSERTidnamesexs1s2s3插入一条学生信息后并显示插入的学生信息。LIST按照学号从小到大的顺序显示所有学生信息。每个学生信息一行,QUIT退出程
3、序输出输出有多行,每个输入命令都有对应的输出,格式分别如下:INSERTidnamesexs1s2s3插入后显示插入的学生信息,格式如下:学号姓名性别语文成绩数学成绩英语成绩平均成绩总成绩中间有一个空格分开,所有成绩保留2位小数。LIST按照学号从小到大的顺序显示所有学生信息,每个学生信息一行。每行格式如下:学号姓名性别语文成绩数学成绩英语成绩平均成绩总成绩中间有一个空格分开,所有成绩保留2位小数。QUIT输出"Goodbye!"后结束程序。输入样列INSERT09001zhanghongF788287.5INSERT09003lisiM686267.5LIS
4、TINSERT09002wangwuM787277.5LISTQUIT输出样例09001zhanghongF78.0082.0087.5082.50247.5009003lisiM68.0062.0067.5065.83197.5009001zhanghongF78.0082.0087.5082.50247.5009003lisiM68.0062.0067.5065.83197.5009002wangwuM78.0072.0077.5075.83227.5009001zhanghongF78.0082.0087.5082.50247.5009002wangwuM78.0072.0
5、077.5075.83227.5009003lisiM68.0062.0067.5065.83197.50Goodbye!#include<stdio.h>#include<string.h>structstudent{charid[25],nam[25],sex[2];doubles1,s2,s3,pj,zf;}x[105];studentINSERT(){studentx;scanf("%s%s%s%lf%lf%lf",x.id,x.nam,x.sex,&x.s1,&x.s2,&x.s3);x.zf=x.s1
6、+x.s2+x.s3;x.pj=x.zf/3;printf("%s%s%s%.2f%.2f%.2f%.2f%.2f",x.id,x.nam,x.sex,x.s1,x.s2,x.s3,x.pj,x.zf);returnx;}voidLIST(studentx[],intn){inti,j;studenttemp;for(i=0;i<n;i++){for(j=0;j<n-1-i;j++){if(strcmp(x[j].id,x[j+1].id)>0){temp=x[j];x[j]=x[j+1];x[j+1]=temp;}}}for(i=0;i
7、<n;i++){printf("%s%s%s%.2f%.2f%.2f%.2f%.2f",x[i].id,x[i].nam,x[i].sex,x[i].s1,x[i].s2,x[i].s3,x[i].pj,x[i].zf);}}intmain(){charc[25];inti;i=0;while(1){scanf("%s",c);if(strcmp(c,"INSERT")==0){x[i]=INSERT();i+