网站大量收购独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计学生成绩统计软件

C语言课程设计实验报告 一 问题描述:学生成绩统计软件 二 基本要求: 1)每条记录由学号、姓名、若干门课程的成绩组成; 2)能计算每个学生的总分和平均分并显示; 3)能按平均分统计各分数段的人数,并以分布图显示,如图; 4)再此基础上能够进行文件操作。 三 系统分析与设计: 由于程序要求对文件进行操作,所以需要建立一个文件存储学生信息并且能从文件中读取并输出。学生信息从键盘输入,根据提示并以ENTER结束每条信息的输入。 1总体设计: 程序通过main()函数调用两个模块函数来实现要求。两个模块分别是输入和计算的getdata函数和输出图表的putsgraph函数。 2 详细设计: 1)文件建立:因为要求对文件进行操作,所以首先建立一个文件存放学生的信息,用到FILE文件指针,fp1=fopen(“file1”,”w+”); 2)学生的信息存放在结构体数组中,struct student_score s[N];并且通过for循环,调用子函数getdata,从键盘接受学生信息并且计算总分和平均分,用return返回主函数,并用fprintf写入文件中,用rewind返回文件头,用fscanf读出信息并显示在屏幕上,统计各平均分段的人数,通过调用putsgraph输出图表。 四 结构图: 主函数 五 流程图 六 程序清单 #define N 5 #includestdio.h #includestdlib.h struct student_score { long num; char name[20]; float score[4]; float total; float aver; }s[N]; struct name { char a[10]; }n[8]; void main() { FILE *fp1; struct student_score getdata(struct student_score st,int x); struct name n[8]={NUMBER,NAME,SCORE1,SCORE2,SCORE3,SCORE4,TOTAL,AVERAGE}; 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((fp1=fopen(file1,w+))==NULL) {printf(cannot open file %s\n,fp1); exit(0);} for(i=0;iN;i++) s[i]=getdata(s[i],i); printf(|%-11s|%-15s|%7s|%7s|%7s|%7s|%7s|%8s\n,n[0].a,n[1].a,n[2].a,n[3].a,n[4].a,n[5].a,n[6].a,n[7].a); for(i=0;iN;i++) fprintf(fp1,%-11ld%-15s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n,s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].total,s[i].aver); rewind(fp1); { long num; char name[20]; float e,f,g,h,total,aver; for(i=0;iN;i++) { fscanf(fp1,%ld%s%f%f%f%f%f%f\n,num,name,e,f,g,h,total,aver); printf(|%-11ld|%-15s|%7.1f|%7.1f|%7.1f|%7.1f|%7.1f|%7.1f\n,num,name,e,f,g,h,total,aver); if(aver60) s1++; else 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%d\s num:\n,x+1); scanf(%ld,st.num); getchar(); printf(\nEnter name:\n);

文档评论(0)

yaobanwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档