C大作业MicrosoftWord文档.doc_第1页
C大作业MicrosoftWord文档.doc_第2页
C大作业MicrosoftWord文档.doc_第3页
C大作业MicrosoftWord文档.doc_第4页
C大作业MicrosoftWord文档.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统 每位学生至少包括学号,姓名,班级和四门课程的成绩和奖惩程序功能: 1统计每个班每门课程平均成绩,最高分,最低分 2对该专业所有学生进行排名,排名原则:按所有成绩之和进行排名同时要求参与排名的学生每门功课都及格若有不及格的不参与排名 3评出专业优秀者与班级优秀者。专业优秀者评选条件:专业总成绩排名前十,并且所有科目不低于85。班级优秀者评选条件:所有课程不低于85或者有两门(包括两门)以上单科成绩是班级第一,并且在奖惩栏备注。 备注:编写程序时要有备注信息,即每个模块实现功能,以及引用变量的作用也可以在C+下完成,再此环境下注释采用中文所有结果均以文件形式保存。#include#include#include#include#define N 75 /*专业学生总数*/struct student int cl; char xh20; char name20; float mark4; /*四门成绩:数学成绩:mark0 ,英语成绩:mark1,计算机成绩:mark2,物理成绩:mark3*/stuN;struct rankchar name20; float mark;gread100;FILE *fp;float high34=0;void menu()printf(*n); printf(*提示:请输入的总人数不超过100人*n); printf(1.输入学生成绩n); printf(2.统计每个班每门课程平均成绩,最高分,最低分n); printf(3.学生成绩的专业排名(不含有不及格科目的学生)n); printf(4.专业评选结果n); printf(5.班级评选结果n); printf(0.退出程序n); printf( 请选择0-5:); printf(*n); void input() /*学生信息输入函数*/int i; for(i=0;iN;i+) printf(请输入学生信息n); printf(请输入班级(1,2,3),学号,姓名,数学成绩,英语成绩,计算机成绩,物理成绩:n); scanf(%d%s%s%f%f%f%f,&stui.cl,stui.xh,,&stui.mark0,&stui.mark1,&stui.mark2,&stui.mark3); void statistics() /*统计每个班每门课程平均成绩,最高分,最低分*/ float sum34=0,low34=100,100,100,100,100,100,100,100,100,100,100,100; float ave34; int i,j; int num3=0; for(i=0;iN;i+) switch(stui.cl) case 1: sum00+=stui.mark0; /*一班数学成绩总和*/ sum01+=stui.mark1; /*一班英语成绩总和*/ sum02+=stui.mark2; /*一班计算机成绩总和*/ sum03+=stui.mark3; /*一班物理成绩总和*/ if(high00stui.mark0) high00=stui.mark0; if(high01stui.mark1) high01=stui.mark1; if(high02stui.mark2) high02=stui.mark2; if(high03stui.mark0) low00=stui.mark0; if(low01stui.mark1) low01=stui.mark1; if(low02stui.mark2) low02=stui.mark2; if(low03stui.mark3) low03=stui.mark3; num0+; break; case 2: sum10+=stui.mark0; /*二班数学成绩总和*/ sum11+=stui.mark1; /*二班英语成绩总和*/ sum12+=stui.mark2; /*二班计算机成绩总和*/ sum13+=stui.mark3; /*二班物理成绩总和*/ if(high10stui.mark0) high10=stui.mark0; if(high11stui.mark1) high11=stui.mark1; if(high12stui.mark2) high12=stui.mark2; if(high13stui.mark0) low10=stui.mark0; if(low11stui.mark1) low11=stui.mark1; if(low12stui.mark2) low12=stui.mark2; if(low13stui.mark3) low13=stui.mark3; num1+; break; case 3: sum20+=stui.mark0; sum21+=stui.mark1; sum22+=stui.mark2; sum23+=stui.mark3; if(high20stui.mark0) high20=stui.mark0; if(high21stui.mark1) high21=stui.mark1; if(high22stui.mark2) high22=stui.mark2; if(high23stui.mark0) low20=stui.mark0; if(low21stui.mark1) low21=stui.mark1; if(low22stui.mark2) low22=stui.mark2; if(low23stui.mark3) low23=stui.mark3; num2+; break; for(i=0;i3;i+)for(j=0;j4;j+) aveij=sumij/numi; for(i=0;i3;i+) printf(班级:%d n,i+1); fprintf(fp,班级:%d n,i+1);for(j=0;j4;j+) aveij=sumij/numi; printf(平均成绩:mathtenglishtcomputertphysicsn); printf(平均成绩:%.2ft%.2ft%.2ft%.2fn,avei0,avei1,avei2,avei3); printf(最高分:mathtenglishtcomputertphysicsn); printf(最高分:%.2ft%.2ft%.2ft%.2fn,highi0,highi1,highi2,highi3); printf(最低分:mathtenglishtcomputertphysicsn); printf(最低分:%.2ft%.2ft%.2ft%.2fn,lowi0,lowi1,lowi2,lowi3); fprintf(fp,平均成绩:mathtenglishtcomputertphysicsn); fprintf(fp,平均成绩:%.2ft%.2ft%.2ft%.2fn,avei0,avei1,avei2,avei3); fprintf(fp,最高分:mathtenglishtcomputertphysicsn); fprintf(fp,最高分:%.2ft%.2ft%.2ft%.2fn,highi0,highi1,highi2,highi3); fprintf(fp,最低分:mathtenglishtcomputertphysicsn); fprintf(fp,最低分:%.2ft%.2ft%.2ft%.2fn,lowi0,lowi1,lowi2,lowi3); void ranking() /*专业学生成绩排名从高到低去(除不及格的)排名*/ int i,j; int t=0; float n; char ch20; for(i=0;iN;i+) for(j=0;j4;j+) if(stui.markj60) break; else greadt+.mark=stui.mark0+stui.mark1+stui.mark2+stui.mark3; strcpy(,); for(i=0;it-1;i+) for(j=0;jgreadj+1.mark) n=greadi+1.mark; strcpy(ch,greadi+1.name); greadi+1.mark=greadi.mark; strcpy(greadi+1.name,); greadi.mark=n; strcpy(,ch); for(t-1;t=0;t-) printf(Performance ranking results(high to low):n); fprintf(fp,Performance ranking results(high to low):n); printf(%st%.2ft%dn,,greadi.mark,i+1);fprintf(fp,%st%.2ft%dn,,greadi.mark,i+1); void apraised1() /*专业优秀选奖*/ struct reward1char name20; float mark4; int flag;stu110;int i,j,k;for(i=0;i10;i+) stu1i.flag=1;for(i=0;i10;i+) strcpy(,); for(j=0;jN;j+) if(strcmp(,)=0) for(k=0;k4;k+) stu1i.markk=stuj.markk;for(i=0;i10;i+) for(j=0;j4;j+) if(stu1i.markj85) stu1i.flag=0;for(i=0;i10;i+) if(stu1i.flag=1) printf(奖励%sn,); fprintf(fp,奖励%sn,); void apraised2() /*班级优秀评选*/ int i,m1=0,n1=0,m2=0,n2=0,m3=0,n3=0,l1=0,l2=0,l3=0,k; char reward11020,reward21020,reward31020,reward41020,reward51020,reward61020; for(i=0;i=85&stui.mark1=85&stui.mark2=85&stui.mark3=85) strcpy(reward1m1+,); else for(k=0;k=2) strcpy(reward2n1+,); case 2:if(stui.mark0=85&stui.mark1=85&stui.mark2=85&stui.mark3=85) strcpy(reward3m2+,); else for(k=0;k=2) strcpy(reward4n2+,); case 3:if(stui.mark0=85&stui.mark1=85&stui.mark2=85&stui.mark3=85) strcpy(reward5m3+,); else for(k=0;k=2) strcpy(reward6n3+,); printf(一班t); printf(每门成绩不低于85分:);for(i=0;im1;i+) printf(%sn,reward1i); printf(至少有两门单科第一:); for(i=0;in1;i+) printf(%sn,reward2i); fprintf(fp,一班t); fprintf(fp,每门成绩不低于85分:); for(i=0;im1;i+) fprintf(fp,%sn,reward1i); fprintf(fp,至少有两门单科第一:); for(i=0;in1;i+) fprintf(fp,%sn,reward2i); printf(二班t); printf(每门成绩不低于85分:);for(i=0;im2;i+) printf(%sn,reward3i); printf(至少有两门单科第一:); for(i=0;in2;i+) printf(%sn,reward4i); fprintf(fp,二班t); fprintf(fp,每门成绩不低于85分:);for(i=0;im2;i+) fprintf(fp,%sn,reward3i); fprintf(fp,至少有两门单科第一:); for(i=0;in2;i+) fprintf(fp,%sn,reward4i); printf(三班t); printf(每门成绩不低于85分:);for(i=0;im3;i+) printf(%sn,reward5i); printf(至少有两门单科第一:); for(i=0;in3;i+) printf(%sn,reward6i); fprintf(fp,三班t); fprintf(fp,每门成绩不低于85分:);for(i=0;im3;i+) fprintf(fp,%sn,reward5i); fprintf(fp,至少有两门单科第一:); for(i=0;in3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论