学生成绩统计系统方案.docx

上传人:doc321 文档编号:12887825 上传时间:2021-12-06 格式:DOCX 页数:13 大小:146.42KB
返回 下载 相关 举报
学生成绩统计系统方案.docx_第1页
第1页 / 共13页
学生成绩统计系统方案.docx_第2页
第2页 / 共13页
学生成绩统计系统方案.docx_第3页
第3页 / 共13页
学生成绩统计系统方案.docx_第4页
第4页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学生成绩统计系统方案.docx》由会员分享,可在线阅读,更多相关《学生成绩统计系统方案.docx(13页珍藏版)》请在三一文库上搜索。

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.name,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.name);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

19、=0;i<16;i+)puts(graphi);七、测试数据学习好帮手.学习好帮手.学习好帮手.七软件说明本程序采用宏定义方式定义学生人数, 增加程序的通用性, 文件的路径为 fp1=fopen("file1","w+") ,当运行结束后,可在 dos 状态下,本程序基本实现了要求的内容 : 能计算每个学生的总分和平均成绩,能按平均分统计各分数段的学生人数, 并以分布图显示, 在此基础上可以进行文件操作。八小结与体会此次课程设计,初步锻炼了我运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法,培养在软件开发中相互合作的团队意识。通

20、过此次课程设计,我对C 语言有了更深入的了解,同时也促进了我对书本知识的深入学习,在设计的过程中遇到了这样那样的问题。这些问题促进了我对于知识点的深入挖掘。也让我懂得了程序设计要:细心,耐心,恒心并用。否则,一个小小的字符,也可能让程序功亏一篑。其实,不仅是做程序, 做任何事情都要有强烈的责任心,和良好的态度。九参考资料谭浩强,C程序设计教程,清华大学出版社, 2007 年学习好帮手.宁可累死在路上,也不能闲死在家里!宁可去碰壁,也不能面壁。是狼就要练好牙,是羊就要练好腿。什么是奋斗?奋斗就是每天很难,可一年一年却越来越容易。不奋斗就是每天都很容易,可一年一年越来越难。能干的人,不在情绪上计较,只在做事上认真;无能的人!不在做事上认真,只在情绪上计较。拼一个春夏秋冬!赢一个无悔人生!早安!献给所有努力的人学习好帮手

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1