ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:76.05KB ,
资源ID:2888802      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2888802.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩分布统计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩分布统计.docx

1、学生成绩分布统计沈 阳 航 空 工 业 学 院 课程设计学 号 200604021024班 级 6402101姓 名 任杰指导教师 王晓岩2007年 9月 14日沈阳航空工业学院课程设计任务书院系: 电子 专业: 电子信息工程专业 班级:6402101班 学号200604021024 题目:学生成绩分布统计一、课程设计时间2007年9月10日起至2007年9月14日,共计一周,20学时。二、课程设计内容:用C语言编写软件完成以下任务:C语言其中考试成绩保存在文件file29. txt,数据格式为:学号,姓名,成绩。请编程序,具体如下的功能:(1)、按学号或姓名查询成绩。(2)、修改指定姓名或学

2、号的学生的成绩并保存。(3)、统计出不及格、及格、中等、良好、优秀5个分数段的人数。三、课程设计要求:1、程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便;。 用户界面中的菜单至少应包括“读取数据”、“按学号或姓名查询成绩”、“修改成绩”、“统计各分数段认输”、“退出”5项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2、课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: 封面 课程设计任务书 目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料 源程序

3、及适当的注释指导教师: 学生签名:五、说明书成绩六、教师评语目录一、需求分析 4二、程序流程图 4read( )的框图 6check()的框图 7change()的框图 8statistic()的框图 9三、核心技术及注释 10四、个人总结 11五、参考文献 2六、源程序 2一、需求分析解决本题首先要解决两个问题:首先是读取文件,读取文件这一步我参照并套用了书上 FILE *fp=fopen()打开的方式,但是这一步又是非常麻烦,稍有不慎很可能就不能打开。其次;在读取文件时要先做一个循环,再构造一个主菜单的程序,即在用户界面首页输出简单的操作界面,为了能使用户在使用更加明了方便,可再构造子菜单

4、。本题除了读取文件较为困难外,其它所要编写程序都较为容易。再有就是编写程序时要尽量考虑到程序简洁明了,为程序编写出现错误时修改提供方便,这也是非常重要的。二、程序流程图 1、程序整体流程图 read( )的框图 check()的框图change()的框图statistic()的框图三、核心技术及注释首要问题是解决读取文件file29.txt的问题,这个读取并不简单,我套用了书本教材的读取,就明白简单了。int i; FILE *fp; fp=fopen(file29.txt,r); for(i=0;iN;i+) fscanf(fp,%st%st%dn,studi.num,studi.name,

5、&studi.mark); printf(%st%st%dn,studi.num,studi.name,studi.mark); fclose(fp);另外,在查询和修改前的判断用的switch语句也很重要且是难点。switch(a) case 1:printf(请输入查询的学号_!n); scanf(%s,x); for(i=0;i25;i+) if(strcmp(studi.num,x)=0) printf(学号%sn姓名%sn成绩%dn,studi.num,studi.name,studi.mark); f=1; break; if(f=0) printf(没有这个学号,请重新输入学号!

6、T_Tn); break;最后一个难点就是统计了,先定义a b c d e,用循环做,在符合的对应位置加一,最后输出。void statistic()/*成绩分布统计*/ int i,a=0,b=0,c=0,d=0,e=0; for(i=0;i=90) a+; else if(studi.mark=80) b+; else if(studi.mark=70&studi.mark=60&studi.mark70) d+; else if(studi.mark=90:tt%d(优秀)n=80:t%d(良好)n=70:t%d(中等)n=60:t%d(及格)n60:tt%d(不及格)n,a,b,c,d

7、,e); printf(*n);最后就是注意在一些子函数中采用较好的表达方式使程序整体显得简洁准确,以及由于程序的繁琐而注意编程过程中的语法问题等如果能够解决好这几个问题,这个程序就能够编好了。我认为以上几点是编写本程序过程中的关键。四、个人总结通过这次课程设计,使我又进一步熟悉和掌握了通过用C语言软件编写一个实际应用的程序,对一些文件打开等细节的程序函数进行了复习和熟悉,顺便也了解了一些WORD中没有了解的例如目录搜索等方法,而且我深深的体会到编程是一个需要谨慎与严密精神的工作,同时我也感觉到做一名优秀程序员的不易。在编程序过程中,我积极的和同学讨论,请教老师一些困难的问题和难点,最终编好和

8、完善了程序。使程序基本能完成编好和完善了程序,而且用户界面也比较友好,用了全中文的形式,使界面更容易别用户接受,在运行过程中输出内容明了,循环顺畅,退出方便,很好的完成了任务。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,2005六、源程序#includestdio.h#includestring.h#includestdlib.h#define N 25 struct student char num10; char name30; int mark; studN; void read()/*读取数据*/ int i; FILE *fp; fp=fopen(file29.txt,r)

9、; for(i=0;iN;i+) fscanf(fp,%st%st%dn,studi.num,studi.name,&studi.mark); printf(%st%st%dn,studi.num,studi.name,studi.mark); fclose(fp); void check()/*确认查询是按学号还是姓名*/ int i,f=0,a; char b100,x20; printf(请选择你的查询方式n按1按学号查询n按2按姓名查询n); scanf(%d,&a); switch(a) case 1:printf(请输入查询的学号_!n); scanf(%s,x); for(i=0

10、;i25;i+) if(strcmp(studi.num,x)=0) printf(学号%sn姓名%sn成绩%dn,studi.num,studi.name,studi.mark); f=1; break; if(f=0) printf(没有这个学号,请重新输入学号!T_Tn); break; case 2:printf(请输入查询的姓名_!n); scanf(%s,b); for(i=0;i25;i+) if (strcmp(studi.name,b)=0) printf(学号%sn姓名%sn成绩%dn,studi.num,studi.name,studi.mark); f=1; break

11、; if(f=0) printf(没有这个学生姓名,请重新输入!T_Tn); break; void change()/*按学号或者姓名修改*/ int i,f=0,a; char name30,num10; int m;char b100,x20; FILE*fp; fp=fopen(file29.txt,w) ; printf(请选择你的查询方式n按1按学号查询n按2按姓名查询n); scanf(%d,&a); switch(a) case 1:printf(请输入查询的学号_!n); scanf(%s,x); for(i=0;i25;i+) if(strcmp(studi.num,x)=

12、0) printf(请输入新的成绩_!n); scanf(%d,&a); studi.mark=a; for(i=0;i25;i+) fprintf(fp,%st%st%dn,studi.num,studi.name,studi.mark); fclose(fp); printf(修改成功,请继续别的操作!); f=1; break; if(f=0) printf(没有这个学号,请重新输入学号!T_Tn);/*错误提醒*/ break;case 2:printf(请输入查询的姓名_!n); scanf(%s,b); for(i=0;i25;i+) if (strcmp(studi.name,b)=0) printf(请输入新的成绩_!n); scanf(%d,&a); studi.mark=a; for(i=0;i25;i+) fprintf(fp,%st%st%dn,studi.num,studi.name,studi.mark); fclose(fp); printf(修改成功,请继续别的操作!); f=1; break; if(f=0) printf(没有这个学生姓名,请重新输入!T_Tn); break; void statistic()/*成绩分布统计*/ int i,a=0,b=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1