C语言课程设计报告班级学生成绩管理

上传人:鲁** 文档编号:552367595 上传时间:2022-12-06 格式:DOC 页数:25 大小:142.04KB
返回 下载 相关 举报
C语言课程设计报告班级学生成绩管理_第1页
第1页 / 共25页
C语言课程设计报告班级学生成绩管理_第2页
第2页 / 共25页
C语言课程设计报告班级学生成绩管理_第3页
第3页 / 共25页
C语言课程设计报告班级学生成绩管理_第4页
第4页 / 共25页
C语言课程设计报告班级学生成绩管理_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C语言课程设计报告班级学生成绩管理》由会员分享,可在线阅读,更多相关《C语言课程设计报告班级学生成绩管理(25页珍藏版)》请在金锄头文库上搜索。

1、X X 航 空 工 业 学 院 课程设计学 号 _班 级 _ 姓 名 _指导教师 _年 月 日XX航空工业学院课程设计任务书机械与汽车学院 机械设计制造及其自动化专业 5406108班 学号200504061267一、课程设计题目:班级学生成绩管理二、课程设计工作自2007年7月9日起至2007年7月14日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具体要求如下:(1) 添加学生数据(2) 删除学生数据(3) 按总成绩排序,并显示名次(成绩相同,名次相同)(4) 成绩查询(5) 自己再加一项功能注:每个学生数据至少应该包括学号、姓名、三门成绩,学生数据要保存在student.da

2、t文件中。四、课程设计要求:1、采用模块化程序设计方法;在程序界面,以菜单的形式调用各功能函数;程序可读性强,界面友好;输出形式尽量美观。2、用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。3、用户界面中的菜单至少应包括“输入数据”、“删除数据”、“排序”、“查询”、“退出”5项。4、代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l 封面l 课程设计任务书l 目录l 需求分析(分析题目的要求)l 程序流程图(总体流程图和主要功能模块流程图)l 核心技术的实现说明及相应程序段l 个人总结l 参考资料l

3、 源程序及适当的注释指导教师:_学生签名:_沈 阳 航 院 设 计 用 纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段7四、个人总结13五、参考文献14六、源程序1416一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个函数,他们的功能分别是:添加学生数据函数(add),删除数据函数(del),排序函数(sort),成绩查询函数(query),以及更改学生数据函数(change)。在这些函数当中,前四个函数的实现严格按照题目的要求,而后面的一个函数属于附加功能。1、添加学生数据函数 主要实现程序最初运行时学生数据的录入以

4、及其后的运行中学生数据的追加功能;2、删除学生数据函数 实现的功能是按照学号对学生的数据记录进行删除;3、排序函数 按照题目的具体要求实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同;4、成绩查询函数 允许按照学号对学生的各科成绩进行查询;5、更改数据函数 可以实现对学生记录中除学号以外的信息进行修改;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个学生记录都包含学号、姓名,以及英语、计算机和数学三门成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入E盘的student.dat文件

5、中,其他函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、程序总体结构图 当(1) 真 n=1 假 添加 n=2? 数据 真 假 函数 n=3? add( ) 删除 真 假 函数 del() 排序 真 n=4? 假 sort() 查询 n=5?check() 真 假 更改 退出change() 图1程序总体结构图2、具体功能框图(1)添加学生数据函数add 读写方式打开E盘student.dat文件不成功?真 假写方式打开E盘student.dat文件不

6、成功 ? 输入追加的学生数量n真 假 读出学生记录数量赋j输出文件打开失败 输入录入学生数量n 文件位置指针重回开头rewind将n值写如文件 学生记录总数n+j写入文件循环变量i=1 文件位置指针定位在结尾fseek当i=n时 循环变量i=1return; 输入学号,姓名和 当i=n时三门成绩 输入学号,姓名和三门成绩学生信息写入文件i+ 学生信息写入文件i+关闭文件 图2 添加学生数据函数(2)读取学生数据reads循环变量i=0i*n读出一条学生记录到形参数组元素stui读出记录总数赋给形参*n开始i+关闭文件结束读方式打开E盘student.dat文件不成功?returnNNYY图3读

7、取学生数据(3)删除学生记录函数delreads(stu,&n);循环变量i=0; 输入待删除的学生学号number假i+当in-1时stui与number相等?真break;输出该学生记录不存在!记录写回文件i+关闭文件return;当i=n-2显示打开文件失败!i=0写方式打开student.dat不成功?假真数租元素依次前移 j+当j=n?真假j=i+1(4)按总分排序函数sort(4)排序函数sort图4删除学生记录函数(4)按总分排序函数sort 循环变量i=o,j=oreads(stu.&n);当i=n-1当jn-1-i第j个学生总分第j+1个总分真 假交换两个学生信息j+ j+i

8、+ 写方式打开E盘student.dat文件成功真 假记录总数n写入文件 显示打开文件失败!i=0当in写入文件并输出,输出时显示名次i+ return;关闭文件图5总分排序函数三、核心技术的实现说明及相应程序段本程序主要由五个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,添加数据函数、删除数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。1、添加数据函数 添加数据分为两种情况,其一是在学生文件(student.dat)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.d

9、at)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:if(fp=fopen(e:student.dat,rb+)!=NULL) /*读写方式打开文件*/ j=getw(fp); rewind(fp); /*文件位置指针返回文件开头*/ printf(请输入要添加的学生数量,按回车键确认:); scanf(%d,&n); putw(j+n,fp); fseek(fp,0L,2); for(i=1;i=n;i+) printf(n请输入第%d个学生的学号、姓名,并按回车键确认:n,i); scanf(%s%s,stu.num,stu.name); printf(n请输入第%d个学生的三门成绩,并按回车键确认:n,i); scanf(%f%f%f,&stu.english,&puter,&stu.math)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号