资源描述:
《用c语言编写一个成绩管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1)主菜单学生成绩管理系统1、成绩录入2、成绩查询3、成绩统计 4、退 出(2)各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:(至少一种查询方式)。v按学号查询学生记录。v查询不及格学生的记录。③成绩统计:v计算学生的平均分;v根据学生的平均分高低,对学生的数据进行排序后输出;v对学生单科成绩排序,输出学生姓名与该科成绩;④退出系统:退出整
2、个系统(即主菜单)。(3)结构体数组:#defineN30structstudent{intnum;/*定义学号*/charname[20];/*定义姓名*/floatscore[3];/*定义存贮三门课成绩的数组*/floataverage;/*定义平均成绩*/};structstudentstu[N]; /*定义结构体数组,存贮多个学生的记录*/.#include#include#includestructstudent{intnum;c
3、harname[20];floatscore[4];floataverage;}stu[10000];longt,max;boolunpass[1000];FILE*fstu=fopen("stud.dat","at+");intinit(){intno,i;floats[4],ave;charnam[20];while(!feof(fstu)){fscanf(fstu,"%d",&no);fscanf(fstu,"%s",nam);fscanf(fstu,"%f%f%f%f",&s[1],&s[2
4、],&s[3],&ave);6if(no>max)max=no;stu[no].num=no;strcpy(stu[no].name,nam);unpass[no]=false;for(i=1;i<=3;i++){stu[no].score[i]=s[i];if(s[i]<60)unpass[no]=true;}stu[no].average=ave;}}intstuinsert(){intno,i;floats[3],sum;charnam[20],cha;loop:printf("请输入学生的学
5、号、姓名及三门课的成绩");scanf("%d",&no);scanf("%s",nam);scanf("%f%f%f/n",&s[1],&s[2],&s[3]);if(no>max)max=no;stu[no].num=no;sum=0.0;strcpy(stu[no].name,nam);unpass[no]=false;for(i=1;i<=3;i++){stu[no].score[i]=s[i];sum=sum+s[i];if(s[i]<60)unpass[no]=true;}stu[n
6、o].average=sum/3.0;fprintf(fstu,"");6fprintf(fstu,"%d%s%f%f%f%f",stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);}intfind(intx){longi,no;switch(x){case1:printf("请输入学号:");scanf("%d",&no);printf("%d%s%f%f%
7、f%f",stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);break;case2:for(i=1;i<=max;i++)if(unpass[i])printf("%d%s%f%f%f%f",stu[i].num,stu[i].name,stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].averag
8、e);break;}}intsort(intx){externintheadprint(intx);studentso[1000];inti,j,k,n;switch(x){case1:for(i=1;i<=max;i++)if(stu[i].num==i)printf("%d%s%f",i,stu[i].name,stu[i].average);break;case2:n=0;for(i=1;i<=max;i++){j=1;if(stu[i].num==i)wh