




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称 C 语言课程设计语言课程设计 课程设计题目 简单学生成绩管理程序设 计 院 系 计算机学院 专 业 计算机科学与技术 班 级 24010105 学 号 2012040101222 姓 名 孙洪宇 指导教师 完成日期 2013年3月12日 沈阳航空航天大学课程设计报告 目目 录录 第第 1 章章 概要设计概要设计 1 1 1 题目的内容与要求 1 1 2 总体结构 1 第第 2 章章 详细设计详细设计 2 2 1 数据结构设计 2 2 2 功能设计 2 2 2 1 主模块 2 2 2 2 录入信息模块 3 2 2 3 查询信息模块 3 2 2 4 修改信息模块 4 2 2 5 删除信息模块 5 2 2 6 排名模块 5 第第 3 章章 调试分析调试分析 7 第第 4 章章 使用说明使用说明 8 参考文献参考文献 11 附附 录 程序清单 录 程序清单 12 沈阳航空航天大学课程设计报告 第 1 章 概要设计 0 第 1 章 概要设计 1 1 题目的内容与要求题目的内容与要求 内容 利用 C 语言设计一个能实现学生成绩管理的程序 要求 1 能够将学生的成绩信息存到文件当中 2 要实现对学生成绩的录入 查询 修改和删除等功能 3 要根据学生的成绩进行排名 4 采用 Microsoft Visual C 6 0 环境进行调试运行 1 2 总体结构总体结构 本程序主要分为五个模块 功能模块图见图 1 1 录入信息模块 实现对全 部学生成绩信息的录入并保存 查询信息模块 根据输入的查询关键字进行查找 修改信息模块 根据输入的修改关键字进行查找并修改 删除信息模块 根据输 入的删除关键字进行删除信息操作 排名模块 根据学生的成绩进行降序排列并 显示输出 简单学生成绩管理程序 删 除 信 息 模 块 查 询 信 息 模 块 主 模 块 修 改 信 息 模 块 录 入 信 息 模 块 排 名 模 块 图图 1 1 功能模块图功能模块图 沈阳航空航天大学课程设计报告 第 2 章 详细设计 1 第 2 章 详细设计 2 1 数据结构设计数据结构设计 本程序所采用的数据结构为单向链表结构 其结点通过定义结构体来表示 具体的定义如下 typedef struct student int no char name 10 float score struct student next stuinfo 2 2 功能设计功能设计 2 2 1 主模块主模块 控制整个程序的运行 控制菜单操作 通过主函数模块分别调用各个模块 实现各项功能 调用方法通过菜单选项来完成 流程如图 2 1 所示 开始 输入 select select 输入错误 结束 case 1default0 录 入 信 息 模 块 2 查 询 信 息 模 块 3 修 改 信 息 模 块 4 删 除 信 息 模 块 5 排 名 模 块 图图 2 1 主模块流程图主模块流程图 沈阳航空航天大学课程设计报告 第 2 章 详细设计 2 2 2 2 录入信息模块录入信息模块 依次录入每个学生的基本信息和成绩信息 并同时生成单向链表存储结构将 学生的信息存入内存中 当录入完全部学生的信息后 调用信息保存到文件函数 讲学生信息文件建立起来 流程如图 2 2 所示 开始 结束 输入学生信息 是否继续输入 将信息写入链表中 建立链表新结点 Y N 学生信息保存到文件 图图 2 2 录入信息模块流程图录入信息模块流程图 2 2 3 查询信息模块查询信息模块 通过输入待查询的学生学号 遍历整个链表并进行逐个比对 若找到则显示 出找到的信息 若没找到则返回 流程如图 2 3 所示 沈阳航空航天大学课程设计报告 第 2 章 详细设计 3 结束 p NULL 输出学生信息 p p next N Y 是否找到 N Y 开始 输入要查找的学号 no find p head 图图 2 3 查询信息模块流程图查询信息模块流程图 2 2 4 修改信息模块修改信息模块 通过输入待修改的学生学号 遍历整个链表并进行逐个比对 若找到则针对 找的学生信息进行修改并刷新存储文件 若没找到则返回 流程如图 2 4 所示 开始 输入要查找的学号 no change p head 1 沈阳航空航天大学课程设计报告 第 2 章 详细设计 4 结束 p NULL 修改学生成绩 p p next N Y 是否找到 N Y 1 图图 2 4 修改信息模块流程图修改信息模块流程图 2 2 5 删除信息模块删除信息模块 通过输入待删除的学生学号 遍历整个链表并进行逐个比对 若找到则要根 据结点在链表当中所处的位置进行删除调整操作 若没找到则返回 流程如图 2 5 所示 开始 结束 输入要查找的学号 no delete 找到对应的结点 删除找到的结点 调整删除后的链表 图图 2 5 删除信息模块流程图删除信息模块流程图 2 2 6 排名模块排名模块 根据学生的成绩信息 采用选择排序法对整个链表进行降序排序 并将全部 沈阳航空航天大学课程设计报告 第 2 章 详细设计 5 学生排名后的结果显示输出 流程如图 2 6 所示 开始 结束 输出排名后的结果 循环按照成绩进行降序排序 图图 2 6 排名模块流程图排名模块流程图 沈阳航空航天大学课程设计报告 第 3 章 调试分析 6 第 3 章 调试分析 1 由于初学 C 语言的链表 对其细节上的操作还没有完全掌握 在做链表删 除的功能时就遇到了一些问题 在调试时程序会异常退出 由于待删除的结点位 置的不确定性 而首位两结点又比较特殊 如果不单独考虑 则会发生程序的逻 辑上错误 导致程序崩溃 2 排序功能的实现是根据数组的排序法思想而得来的 但是由于在交换数据 时结点变量类型是结构体类型 其每项成员都要做交换 而不能仅仅是地址上的 交换 这样的做法仍达不到排序的功能 3 在实现输入功能时 有时候会发生还没等输入数值就继续向下执行的情况 后来经过查资料分析得知应该在必要位置加上清除键盘缓冲区的语句 才能避免 这种情况发生 沈阳航空航天大学课程设计报告 第 4 章 使用说明 7 第 4 章 使用说明 程序运行结果如图所示 输入 1 按照提示信息输入相应的信息 如图 4 1 所示 图图 4 1 录入信息截图录入信息截图 输入 2 输入要查询的学号 程序进行相应信息查找 如图 4 2 所示 图图 4 2 查询信息截图查询信息截图 沈阳航空航天大学课程设计报告 第 4 章 使用说明 8 输入 3 输入要修改的学号 程序进行相应信息查找并修改 如图 4 3 所示 图图 4 3 修改信息截图修改信息截图 输入 4 输入要删除的学号 程序进行相应信息查找并删除 如图 4 4 所示 图图 4 4 删除信息截图删除信息截图 输入 5 查看排名信息 如图 4 5 所示 沈阳航空航天大学课程设计报告 第 4 章 使用说明 9 图图 4 5 排名截图排名截图 沈阳航空航天大学课程设计报告 参考文献 10 参考文献 1 王敬华 林萍 张清国 C 语言程序设计教程 M 北京 清华大学出版社 2009 2 谭浩强 C 程序设计 第三版 M 北京 清华大学出版社 2005 3 严蔚敏 吴伟民 数据结构 C 语言版 M 北京 清华大学出版社 2007 沈阳航空航天大学课程设计报告 附录 11 附 录 程序清单 include include include include typedef struct student int no char name 10 float score struct student next stuinfo stuinfo InputInfo stuinfo head p1 p2 char select head p1 p2 NULL head p1 p2 stuinfo malloc sizeof stuinfo head next NULL while 1 printf 请输入学号 fflush stdin scanf d printf 请输入姓名 scanf s p1 name printf 请输入成绩 scanf f line1 printf 是否继续录入学生信息 y n fflush stdin scanf c if select y select Y p2 stuinfo malloc sizeof stuinfo p1 next p2 p1 p2 p2 next NULL else if select n select N printf 学生信息录入完成 n 沈阳航空航天大学课程设计报告 附录 12 system PAUSE p1 next NULL return head else printf 对不起 您输入的有误 请重新输入 n goto line1 void SaveToFile stuinfo head stuinfo p p head FILE fp fp fopen C file txt w if fp NULL printf 文件打开或创建失败 n exit 0 while p NULL fprintf fp d s f n p no p name p score p p next printf 学生信息已经成功保存到文件中 n system PAUSE fclose fp void ScoreSearch stuinfo head stuinfo p p head int no find notfind 1 printf 请输入要查询学生成绩的相应学号 scanf d while p NULL if no find p no 沈阳航空航天大学课程设计报告 附录 13 notfind 0 break p p next if notfind printf 对不起 找不到相应学号的学生信息 n system PAUSE return printf 学号 d 姓名 s 成绩 f n p no p name p score system PAUSE void ScoreChange stuinfo head stuinfo p p head int no change notfind 1 float newscore printf 请输入要修改学生成绩的相应学号 scanf d while p NULL if no change p no notfind 0 break p p next if notfind printf 对不起 找不到相应学号的学生信息 n system PAUSE return printf 请输入该学号对应的新成绩 scanf f p score newscore SaveToFile head 沈阳航空航天大学课程设计报告 附录 14 stuinfo ScoreDelete stuinfo head stuinfo p p1 p p1 head int no delete printf 请输入要删除学生成绩的相应学号 scanf d if head no no delete 第一个结点为删除结点 head head next free p return head if p next NULL 最后一个结点为删除结点 while p1 next p p1 p1 next p1 next NULL free p return head while p NULL 中间结点 if p no no delete while p1 next p p1 p1 next p1 next p next free p break p p next return head void Sort stuinfo head int sort 1 stuinfo q p r stuinfo temp max 沈阳航空航天大学课程设计报告 附录 15 p head q p next while p NULL max no p no strcpy max name p name max score p score r p while q NULL if max scorescore max no q no strcpy max name q name max score q score r q q q next temp no p no strcpy temp name p name temp score p score p no r no strcpy p name r name p score r score r no temp no strcpy r name temp name r score temp score q p next p p next p head printf 学生总分信息显示如下 n printf 排名 t 学号 t 姓名 t 成绩 n while p NULL printf d t d t s t f n sort p no p name p score sort p p next 沈阳航空航天大学课程设计报告 附录 16 system PAUSE void main int select stuinfo p while 1 system cls printf 学生成绩管理系统 n printf 1 录入 n printf 2 查询 n printf 3 修改 n printf 4 删除 n printf 5 排名 n printf 0 退出 n printf 请选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑出血后血压管理策略
- 《婚前财产分割与离婚后子女抚养及赡养责任协议》
- 精装房屋租赁合同附带品牌家电售后服务
- 乡村民宿租赁补充协议范本(民宿特色服务承诺)
- 商铺租赁合同范本:包含装修补贴及违约责任
- 二手房买卖合同签订前的房屋交易市场行情分析及预测
- 离婚股权平分与子女成长基金支付合同范本
- 班组日常现场安全培训课件
- 交警冬季交通安全工作要点
- 鼓励与表扬课件
- 07SJ507轻钢龙骨布面石膏板、布面洁净板隔墙及吊顶图集
- 食材配送服务方案投标方案【修订版】(技术标)
- 宁夏红墩子煤业有限公司红二煤矿环评上报版
- 空间中的“爱情买卖二次元手游”玩家的数字身体与爱欲张力研究
- 建设项目概算表(模板)
- 小提琴培训行业供需趋势及投资风险研究报告
- 深静脉血栓预防及护理课件
- 心律失常临床诊疗指南
- 食品存储和保鲜技巧
- 《现代服务业》课件
- 大学生毕业论文写作教程全套教学课件
评论
0/150
提交评论