欢迎来到天天文库
浏览记录
ID:46404290
大小:213.00 KB
页数:12页
时间:2019-11-23
《学生成绩统计系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、目录一、问题描述1二、基本要求1三、系统分析和设计2四、结构图2五、流程图2六、源程序代码6七、测试数据8八、软件说明11九、小结与体会11十、参考资料11-11-C语言课程设计实验报告一、问题描述编辑一个学生成绩统计软件二、基本要求1)每条记录由学号、姓名、若干门课程的成绩组成;2)能计算每个学生的总分和平均分并显示;3)能按平均分统计各分数段的人数,并以分布图显示,如右图所示。4)在此基础上,可进行文件操作。IIIIIIIIIIIIIIIII<60<70<80<90≤100三、系统分析和设计函数的设计,其最终目的是要实现所
2、需要的功能。本例中,是用main函数调用两个子函数来实现的!1)文件的建立:要想实现对学生成绩的统计,首先要建立一个文件用来存放学生信息,要用到FILE文件指针fp1=fopen("file1","w+")2)程序的设计:学生的信息放在结构体数组structstudent_scores[N]中。-11-通过for循环,调用子函数getdata,从键盘接收学生信息(num,name,score[0],score[1],score[2],score[3]),并计算总分与平均分,返回学生信息returnst到调用处。用fprintf
3、函数向文件中逐一写入学生的信息,通过rewend(fp1)函数使文件指针回到文件头,用fscanf读学生信息,并显示在屏幕上。同时根据所读学生信息,统计各分数段的人数s1++,s2++,s3++,s4++,s5++,然后调用一个子函数putsgraph用来输出图表!四、结构图主函数structstudent_scoregetdata(structstudent_scorest,intx)intputsgraph(intsa,intsb,intsc,intsd,intse)调用返回返回调用五、流程图-11-#defineN5#i
4、nclude#includestructstudent_scores[N]fp1=fopen("file1","w+")开始真i=0i5、++,s4++,s5++.统计各分数段人数i++调用putsgraph(s1,s2,s3,s4,s5);-11-chargraph[16][80];i=0i<16真j=0j=0j<79graph[i][79]=' ';i++假真graph[i][j]='';j++假j<79graph[11][j]='-';graph[0][j]='-';graph[15][j]='-';真j++;假给graph[12][]赋值:<60<70<80<90<=100for(i=10;i>(10-sa);i--)graph[i][4]='I';f6、or(i=10;i>(10-sb);i--)graph[i][8]='I';for(i=10;i>(10-sc);i--)graph[i][12]='I';for(i=10;i>(10-sd);i--)graph[i][16]='I';for(i=10;i>(10-se);i--)graph[i][20]='I';将柱状图信息赋给graph[i]i=0i<16puts(graph[i]);假结束i++;-11-六、源程序代码#defineN8#include#includestructst7、udent_score{longnum;charname[20];floatscore[4];floattotal;floataver;}s[N];voidmain(){FILE*fp1;structstudent_scoregetdata(structstudent_scorest,intx);intputsgraph(intsa,intsb,intsc,intsd,intse);inti,s1=0,s2=0,s3=0,s4=0,s5=0;if((fp1=fopen("file1","w+"))==NULL){printf(8、"cannotopenfile%s",fp1);exit(0);}for(i=0;i
5、++,s4++,s5++.统计各分数段人数i++调用putsgraph(s1,s2,s3,s4,s5);-11-chargraph[16][80];i=0i<16真j=0j=0j<79graph[i][79]=' ';i++假真graph[i][j]='';j++假j<79graph[11][j]='-';graph[0][j]='-';graph[15][j]='-';真j++;假给graph[12][]赋值:<60<70<80<90<=100for(i=10;i>(10-sa);i--)graph[i][4]='I';f
6、or(i=10;i>(10-sb);i--)graph[i][8]='I';for(i=10;i>(10-sc);i--)graph[i][12]='I';for(i=10;i>(10-sd);i--)graph[i][16]='I';for(i=10;i>(10-se);i--)graph[i][20]='I';将柱状图信息赋给graph[i]i=0i<16puts(graph[i]);假结束i++;-11-六、源程序代码#defineN8#include#includestructst
7、udent_score{longnum;charname[20];floatscore[4];floattotal;floataver;}s[N];voidmain(){FILE*fp1;structstudent_scoregetdata(structstudent_scorest,intx);intputsgraph(intsa,intsb,intsc,intsd,intse);inti,s1=0,s2=0,s3=0,s4=0,s5=0;if((fp1=fopen("file1","w+"))==NULL){printf(
8、"cannotopenfile%s",fp1);exit(0);}for(i=0;i
此文档下载收益归作者所有