C语言课程设计-学生成绩统计软件.docx

上传人:牧羊曲112 文档编号:4883870 上传时间:2023-05-21 格式:DOCX 页数:7 大小:179.04KB
返回 下载 相关 举报
C语言课程设计-学生成绩统计软件.docx_第1页
第1页 / 共7页
C语言课程设计-学生成绩统计软件.docx_第2页
第2页 / 共7页
C语言课程设计-学生成绩统计软件.docx_第3页
第3页 / 共7页
C语言课程设计-学生成绩统计软件.docx_第4页
第4页 / 共7页
C语言课程设计-学生成绩统计软件.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言课程设计-学生成绩统计软件.docx》由会员分享,可在线阅读,更多相关《C语言课程设计-学生成绩统计软件.docx(7页珍藏版)》请在三一办公上搜索。

1、C语言课程设计实验报告一问题描述:学生成绩统计软件二基本要求:1)每条记录由学号、姓名、若干门课程的成绩组成;2)能计算每个学生的总分和平均分并显示;3)能按平均分统计各分数段的人数,并以分布图显示,如图;4)再此基础上能够进行文件操作。三系统分析与设计:由于程序要求对文件进行操作,所以需要建立一个文件存储学生信息并且能从文件中读 取并输出。学生信息从键盘输入,根据提示并以ENTER结束每条信息的输入。1总体设计:程序通过main()函数调用两个模块函数来实现要求。两个模块分别是输入和计算的 getdata函数和输出图表的putsgraph函数。2详细设计:1)文件建立:因为要求对文件进行操作

2、,所以首先建立一个文件存放学生的信息,用到FILE 文件指针,fp1=fopen(“file1”,”w+”);2)学生的信息存放在结构体数组中,struct student_score sN;并且通过for循环,调用子函 数getdata,从键盘接受学生信息并且计算总分和平均分,用return返回主函数,并用fprintf 写入文件中,用rewind返回文件头,用fscanf读出信息并显示在屏幕上,统计各平均分段 的人数,通过调用putsgraph输出图表。四结构图:主函数五流程图六程序清单#define N 5#include#includestruct student_scorelongn

3、um;charname20;floatscore4;floattotal;floataver;sN;struct namechar a10;n8;void main()FILE *fp1;struct student_score getdata(struct student_score st,int x);structnamen8=”NUMBER”,”NAME”,”SCORE1”,”SCORE2”,”SCORE3”,”SCORE4”,”TOTAL”,”7VERA GE;int putsgraph(int sa, int sb,int sc,int sd,int se);int i,s1=0,s

4、2=0,s3=0,s4=0,s5=0;if(fp1=fopen(file1”,w+)=NULL)printf(cannot open file %sn”,fp1);exit(0);for(i=0;iN;i+)si=getdata(si,i);printf(|%-11s|%-15s|%7s|%7s|%7s|%7s|%7s|%8sn”,n0.a,n1.a,n .a,n3.a,n4.a,n5.a,n6.a ,n7.a);for(i=0;iN;i+)fprintf(fp1,%-11ld%-15s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1fn”,si.num,si.name,si.sco

5、re0,s i.score1,si.score2,si.score3,si.total,si.aver);rewind(fp1);long num;char name20;float e,f,g,h,total,aver;for(i=0;iN;i+) fscanf(fp1,%ld%s%f%f%f%f%f%fn”,&num,name,&e,&f,&g,&h,&total,&aver);printf(l%-11ldl%-15sl%7.1fl%7.1fl%7.1fl%7.1fl%7.1fl%7.1fn”,num,name,e,f,g,h,total,aver);if(aver60)s1+;else

6、if(aver70)s2+;else if(aver80)s3+;else if(aver90)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%ds num:n,x+1);scanf(%ld”,&st.num); getchar();printf(nEnter name:n);gets(st.name);st.total=0;printf(nEn

7、ter 4 scores:n);for(y=0;y4;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;i16;i+)for(j=0;j79;j+) graphij=;graphi79=0;for(j=0;j79;j+) graph11j=-;for(j=3;j=15;j+=4) graph12j=;graph12j+

8、2=0;graph124=6;graph128=7;graph1212=8;graph1216=9;graph1219=(10-sa);i-) graphi4=T;for(i=10;i(10-sb);i-) graphi8=T;for(i=10;i(10-sc);i-) graphi12=T;for(i=10;i(10-sd);i-) graphi16=T;for(i=10;i(10-se);i-) graphi22=T;for(i=0;i16;i+) puts(graphi);七测试数据Enter studentTs num:1Enter name:aEnter 4 scores:75849

9、564Enter studentTs num:2Enter name:bEnter 4 scores:74659481Enter studentTs num:3Enter name:cEnter 4 scores:78946892Enter studentTs num:4Enter name:dEnter 4 scores:74956875Enter studentls num:5Enter name:eEnter 4 scores:8464928lNUMBERNAMESCORE1SCORE2SCORE3 SCORE4TOTAL A/ERAGE1a75.084.095.064.0318.079

10、.52b74.065.094.081.0314.078.53c78.094.068.092.0332.083.04d74.095.068.075.0312.078.05e84.064.092.081.0321.080.2II III60 70 80 90 =100八小结与体会此次课程设计,初步锻炼了我运用所学基础知识解决实际问题的能力,掌握软件开发的 基本过程和基本方法。通过此次课程设计,我对C语言有了更深入的了解,同时也促进了我对书本知识的深 入学习,在设计的过程中遇到了这样那样的问题。这些问题促进了我对于知识点的深入挖掘。 也让我懂得了程序设计要:细心,耐心,恒心并用。否则,一个小小的字符,也可能让程序 功亏一篑。其实,不仅是做程序,做任何事情都要有强烈的责任心,和良好的态度。九参考资料C语言程序设计教程刘瑞兰曹建春沈淑娟等编著 标准C语言基础教程(第四版)美Gary J.Bronson著

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号