学生成绩统计系统方案_第1页
学生成绩统计系统方案_第2页
学生成绩统计系统方案_第3页
学生成绩统计系统方案_第4页
学生成绩统计系统方案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、目录一、问题描述 ····························1 二、基本要求 ···················

2、········1 三、系统分析和设计 ···················2 四、结构图 ···················

3、3;··········2 五、流程图 ······························2 六、源程序代码 ······

4、3;·················6 七、测试数据 ···························8 八、软件说明 ··

5、3;·······················11 九、小结与体会 ·······················11 十、参考资料 &

6、#183;······················· 11.C 语言课程设计实验报告一 、问题描述编辑一个学生成绩统计软件二 、基本要求1) 每条记录由学号、姓名、若干门课程的成绩组成;2) 能计算每个学生的总分和平均分并显示;3) 能按平均分统计各分数段的人数,并以分布图显示,如右图所示。4) 在此基础上,可进行文件操作。IIIIIIIIIIIIIIIII<

7、;60<70<80<90100三 、系统分析和设计函数的设计,其最终目的是要实现所需要的功能。本例中,是用 main 函数调用两个子函数来实现的!1)文件的建立:要想实现对学生成绩的统计, 首先要建立一个文件用来存放学生信息,要用到 FILE 文件指针 fp1=fopen("file1","w+")2)程序的设计:学生的信息放在结构体数组struct student_score sN中。学习好帮手.通过 for 循环,调用子函数 getdata,从键盘接收学生信息 (num,name,score0,score1,score2,score

8、3),并计算总分与平均分,返回学生信息 return st 到调用处。用 fprintf 函数向文件中逐一写入学生的信息,通过 rewend(fp1)函数使文件指针回到文件头, 用 fscanf 读学生信息,并显示在屏幕上。 同时根据所读学生信息,统计各分数段的人数 s1+,s2+,s3+,s4+,s5+,然后调用一个子函数 putsgraph 用来输出图表!四、结构图主函数调用调用struct student_score getdata(structstudent_score st ,int x)返回返回intputsgraph(intsa,int sb,int sc,int sd,int

9、se)五、流程图学习好帮手.开始#define N 5#include<stdio.h>fp1=fopen("file1","w+")#include<stdlib.h>struct student_score sN真学习好帮手.i=0si=getdata(si,i);i<N从键盘输入学生信息并计算总分与平均分假i=0返回学生信息,i+ ;真i<Nfprintf 向文件输入学生信息:学号,各门成绩,总分,平均分假i+;Rewind ( fp1)i=0i<Nfscanf 读取学生信息假fclose(fp1);i+调

10、用 putsgraph(s1,s2,s3,s4,s5);printf 学生 num,name,total,aver.并用 s1+,s2+,s3+,s4+,s5+.统计各分数段人数学习好帮手.char graph1680;i=0假i<16真i+j=0j=0假graphi79='0' ;j<79真j+graphij=' '真j<79graph11j='-'graph0j='-'graph15j='-'假j+ ;给 graph12 赋值:<60 <70 <80 <90 <=

11、100i=0for(i=10;i>(10-sa);i-) graphi4='I' for(i=10;i>(10-sb);i-) graphi8='I' for(i=10;i>(10-sc);i-) graphi12='I' for(i=10;i>(10-sd);i-) graphi16='I' for(i=10;i>(10-se);i-) graphi20='I' 将柱状图信息赋给 graphiputs(graphi);i<16假结束i+ ;学习好帮手.六、源程序代码#defin

12、e N 8#include<stdio.h>#include<stdlib.h>struct student_scorelong num;char name20;float score4;float total;float aver;sN;void main()FILE *fp1;struct student_score getdata(struct student_score st,int x); int putsgraph(int sa, int sb,int sc,int sd,int se);int i,s1=0,s2=0,s3=0,s4=0,s5=0;if(f

13、p1=fopen("file1","w+")=NULL)printf("cannot open file %sn",fp1);exit(0);for(i=0;i<N;i+)si=getdata(si,i);for(i=0;i<N;i+)fprintf(fp1,"%-9ld%-10s%10.1f%10.1f%10.1f%10.1f%10.1f%10.1fn",si.num,,si.score0,si.score1,si.score2,si.score3,si.total,si.aver);r

14、ewind(fp1);long num;char name20;float e,f,g,h,total,aver;for(i=0;i<N;i+)fscanf(fp1,"%ld%s%f%f%f%f%f%fn",&num,name,&e,&f,&g,&h,&total,&aver);printf("%-9ld%-20s%10.1f%10.1fn",num,name,total,aver);if(aver<60)s1+;else if(aver<70)s2+;else if(aver&l

15、t;80)s3+;else if(aver<90)s4+;else if(aver<=100)s5+;fclose(fp1);学习好帮手.putsgraph(s1,s2,s3,s4,s5);struct student_score getdata(struct student_score st,int x)int y;printf("nEnter student%d's num:n",x+1);scanf("%ld",&st.num); getchar();printf("nEnter name:n");g

16、ets();st.total=0;printf("nEnter 4 scores:n");for(y=0;y<4;y+)scanf("%f",&st.scorey);getchar();st.total+=st.scorey;st.aver=st.total/4;return st;int putsgraph(int sa, int sb,int sc,int sd,int se)int i,j;char graph1680;for(i=0;i<16;i+)for(j=0;j<79;j+) graphij='

17、; 'graphi79='0'for(j=0;j<79;j+) graph11j='-' graph0j='-' graph15j='-'for(j=3;j<=15;j+=4)graph12j='<'graph12j+2='0' graph124='6'graph128='7'graph1212='8'graph1216='9'graph1219='<'graph1220='=&#

18、39;学习好帮手.graph1221='1'graph1222='0'graph1223='0'for(i=10;i>(10-sa);i-)graphi4='I'for(i=10;i>(10-sb);i-)graphi8='I'for(i=10;i>(10-sc);i-)graphi12='I'for(i=10;i>(10-sd);i-)graphi16='I'for(i=10;i>(10-se);i-)graphi22='I'for(i=0;i<16;i+)puts(graphi);七、测试数据学习好帮手.学习好帮手.学习好帮手.七软件说明

温馨提示

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

评论

0/150

提交评论