




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 I欢迎下载 目 录 第一章 程序设计的目的和要求 1 1 1 课程设计的目的 1 1 2 课程设计的要求 1 1 2 1 程序设计报告的内容要 1 1 2 2 程序设计报告的质量要求 2 第二章 课程设计任务内容 3 2 1 考核内容 3 2 1 1 编写的 C 语言程序 3 2 1 2 课程设计报告 3 2 2 课题 3 第三章 详细设计说明 4 3 1 函数说明 4 3 2 函数流程图 5 3 3 1 主函数流程图 5 3 3 2 子函数流程图 5 3 3 编码及调试 7 第四章 软件使用说明 9 4 1 应用程序运行环境的要求 9 4 2 应用程序功能的详细说明 9 附录一 参考文献 12 附录二 程序清单 13 精品文档 1欢迎下载 程序设计基础 课程设计 学生成绩记录簿 第一章 程序设计的目的和要求 1 1 课程设计的目的 1 C 语言课程设计的主要目的是培养学生综合运用 C 语言程序设计课程所学到的知 识 编写 C 程序解决实际问题的能力 以及严谨的工作态度和良好的程序设计习惯 2 通过课程设计的训练 学生应该能够了解程序设计的基本开发过程 掌握编写 调试和测试 C 语言程序的基本技巧 充分理解结构化程序设计的基本方法 3 C 语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范 运用结构 化程序设计的方法 按照课程设计的题目要求 分析 设计 编写 调试和测试 C 语言 程序及编写设计报告 1 2 课程设计的要求 1 2 1 程序设计报告的内容要求 课程设计要求学生遵循软件开发过程中的基本规范 运用结构化程序设计的方法 程序设计报告应该能够反映学生完成课程设计题目的全部情况 包括对课程设计题目要 求的分析 应用程序的设计 程序的测试过程以及程序的运行情况等 因此 编写课程 设计报告是课程设计一个不容忽视的重要环节 一个高质量的课程设计报告应该满足下 列条件 报告内容完整 观点正确 层次清晰 语流畅 用词准确且无二义性 能够反 映结构化程序设计方法的基本原则 绘制的所有图表规范且正确 用户文档是面向使用该应用程序的用户编写的 因此 应该将用户需要知道的所有 内容用简练 清晰的语言描述清楚 下面是用户文档应该包含的主要内容 1 应用程序运行环境的要求 2 应用程序功能的详细说明 3 流程图 精品文档 2欢迎下载 4 代码及调试 1 2 2 程序设计报告的质量要求 一个高质量的课程设计报告应该满足下列条件 报告内容完整 观点正确 层次清晰 语言流畅 用词准确且无二义性 能够反映结构化程序设计方法的基本原则 绘制的所有图表规范且正确 精品文档 3欢迎下载 第二章 课程设计任务内容 2 1 考核内容 2 1 1 编写的 C 语言程序 针对编写的 C 程序 应该主要考查下列内容 是否符合题目要求 是否完成了主要功能 是否存在语法错误 逻辑错误及运行错误 程序设计是否合理 程序是否具有良好的可读性和可靠性 是否符合结构化程序设计所倡导的基本理念 用户界面是否友好 2 1 2 课程设计报告 针对提交的课程设计报告 应该主要考查下列内容 程序设计的报告内容是否全面 观点是否正确 设计过程是否符合结构化程序设计方法的基本原则 层次是否清楚 语言是否通顺 各种图表是否规范 是否具有良好的程序设计习惯 2 2 课题 设计一个学生成绩记录簿 c 程序 该系统的主要功能如下 1 创建信息并以磁盘文件保存 2 读取磁盘文件并显示输出所有学生的成绩 3 按学号或姓名查询成绩 4 添加成绩记录 5 修改指定姓名或学号的学生的成绩并可存盘 6 显示输出 60 分以下 60 79 80 89 90 分以上各分数段的学生信息 精品文档 4欢迎下载 第三章 详细设计说明 3 1 函数说明 Init 初始化函数 Create 创建链表 Delete STUDENT 删除记录 Print STUDENT h 显示所有记录 Search STUDENT h 查找学生成绩 Insert STUDENT h 插入记录 1 插入记录函数 函数原型 int insert STUDENT h 功能 根据用户指定将信息插入特定位置 参数 结构体数组和记录数 要求 输入信息 2 查找函数 函数原型 int search 功能 根据用户需要输出记录 参数 记录数组和记录成绩以及姓名 s 要求 判断内存中记录的名字与输入的是否相等 如果相等则输出 否则提前结束 3 删除记录函数 函数原型 int delete STUDENT h 功能 删除内存链表中的指定结点 参数 记录数组和记录条数 成绩 要求 给出相关信息 精品文档 5欢迎下载 3 2 函数流程图 3 3 1 主函数流程图 图 3 1 函数主流程图 3 3 2 子函数流程图 如图 3 2 所示 精品文档 6欢迎下载 图 3 2 流程图 从表中删除原有纪录模块 算法 如图 3 3 所示 图 3 3 删除信息流程图 按照姓名查找纪录模块 算法 如图 3 4 所示 图 3 4 查找信息流程图 按照姓名删除记录模块 算法 如图 3 5 所示 图 3 5 修改信息流程图 精品文档 7欢迎下载 3 3 编码及调试 在设计该程序的时候我采用了结构化程序方法编辑 并在源代码的基础上添加了中 文注释 但是在该系统的编写过程中仍然有许多错误 主要的有 注释文字的排版 定 义错误 句式的语法错误 在完善程序时 我将源代码先打印下来反复的捉摸和研究 力图在上机运行时先改正一些低级错误 如缺少 之类 在仔细检查之后 将源代 码上机调试 进行编译 在编译和连接过程中发现错误 屏幕上显示了出错信息 根据 提示找到出错的位置 加以改正 直到顺利显示我预期想得到程序效果 具体调试过程如下 1 首先 在本次调试过程中我碰到了在上机前根本没有想到的错误 在注释的时 候 注释文字应写在一起中间不能有中断 不能再其中包含c语言的语句 否则会引起错 误 例如格式不正确或是多了字符等 2 缺少变量定义或是定义位置不正确 由于该程序相对来讲稍有些长 前后有些变量很难联系起来 但是在错误信息的提 示下一般还是很是可以找到 不过需要注意的是在定义的时候有些函数使用同样的变量 名而表示不同的作用 因而使用要很小心 定义及定义的位置要特别留意 为减少这样 的错误我后来还是用不同的变量名来表示 结果引起的那些错误解决了 3 句式的语法错误 大多的语法错误在通过书本参考下能够修改 主要是平时看书不仔细 不太注意而 产生的 如没有注意具体数据使用是有一定的范围限定 过分重视分号的重要性而在 for if while语句中画蛇添足加分号 在使用文件的时候忘记将文件先打开 对打开 的方式与使用的情况不太注意而造成不匹配 还有漏掉形参的定义是值不能传递等等 这些语法错误有信息框的提示一般是能够排除的 编译 连接的成功并不意味着程序的最终成功 逻辑上的错误机器不易检查出来 这时需要对数据结果进行分析 这种错误的查找是最难的 需要编程序的人有相当的耐 心和细心去把问题找出来 这也是本次程序编辑过程中碰到的最大的难题 往往运行之 后得不到另人满意的结果 此时解决的方法一则可以用 分段检查 的方法 在程序的 不同位置设几个printf函数语句 输出有关变量的值 逐段往下检查 或用debug进行调 试 对检查出的错误进行修改 当调试完毕将设置的printf都删去 若在程序中找不到 问题 则再来考虑算法是否逻辑严谨 再进行修改 如此循环往复 直到最后程序运行 精品文档 8欢迎下载 成功 在本次程序编辑过程中 我就是常遇到编译能通过 能够运行程序 但是总在输 入 删除等操作完之后再想去看数据文件中存在的数据记录的时候 却一条记录也显示 不出来 我怀疑是哪个对方对n变量的定义或使用出错了 于是在每个主要函数的操作过 程中添加了printf语句用来显示n的变化 例如在执行某个函数前添加插入语句显示n的 起始值 在执行完该个函数后再添加插入语句显示此时n的结果值 观察n的变化是否正 确 如果错误了 也就说明该函数编写过程有错 诸如这样的调试方法 不断缩小检查 范围 最后将错误找到 进行修改 所以到最后我找到了错误 及时改正 终于把程序 完成了 一切功能显示正常 以上是调试的全过程 精品文档 9欢迎下载 第四章 软件使用说明 4 1 应用程序运行环境的要求 程序运行的环境 Win9X Win2000 WinXP Win2003 4 2 应用程序功能的详细说明 步骤 1 根据数字提示从 1 5 中选择要操作的功能 如图 4 1 所示 图 4 1 软件使用图示 步骤 2 按 1 键 会出现提示 插入信息 按 2 会出现 删除信息 按 3 修 改信息 按 4 会出现 查看信息 按 5 保存 按 q 键即可退出 如图 4 2 所示 图 4 2 软件使用图示 步骤 3 键入 1 回车 会出现提示 请输入要删除学生信息 现在就可以删除学生 信息 如图 4 3 所示 精品文档 10欢迎下载 图 4 3 软件使用图示 步骤 4 键入 2 及 Enter 键 会出现提示 请输入要查找的学生信息 然后根据提 示将该学生的信息删除 如图 4 4 所示 图 4 4 软件使用图示 精品文档 11欢迎下载 第五章 课程设计心得与体会 在课程设计过程中 遇到了不少的问题 这迫使我不得不参考一些课外资料 向 同学和老师们请教 不过 最后在我的努力和老师同学们的帮助下 还是把程序写出 来了 这令我非常高兴 但是在运行过程中又出现了问题 一开始就出现了十几个错 误 这令我的信心有所下降 有的错误我根本就不知道是啥意思 我就向同学以及上 网查一下资料 在经过几天的检查与修改后 终于能编译出来了 这又使得我非常高 兴 但是运行的结果不是很理想 没能够达到我预想的那样 在运行出来之后 我有点不敢相信这是我通过努力做出来的 对于我这个编程新 手 在课程设计中 刚开始真有点对自己失去信心 在硬着头皮的情况下 还是做出 来了 发现其实事情并不像刚开始自己想的那样 现在回想起来好像就是开头克服自 己最难了 这大概就是人们说的万事开头难 精品文档 12欢迎下载 附录一 参考文献 1 谭浩强 C 程序设计 清华大学出版社 2 严蔚敏 吴伟民 数据结构 C 语言版 清华大学出版社 精品文档 13欢迎下载 附录二 程序清单 include include include include include class student private student next public char stu num 15 学号 char stu name 30 姓名 float stu score 成绩 在该节点后插入一个几点 void afterInsert student p 在该节点后删除一个节点 void afterDelete 获得下一个节点的指针 student getNext return next 查询学生信息 void getMage 学生信息修改 void changeMage int n char ptr void changegrade float p 构造 student char num char name float score student 精品文档 14欢迎下载 void student changegrade float p stu score p student student 构造 strcpy stu num 0 strcpy stu name 0 stu score 0 next 0 构造 student student char num char name float score strcpy stu num num strcpy stu name name stu score score next 0 void student afterInsert student p 插入节点 p next next next p void student afterDelete 删除节点 student p next next p next 精品文档 15欢迎下载 delete p void student getMage 获得信息 cout 学号 stu num 姓名 stu name cout c 成绩 stu score endl void student changeMage int n char ptr switch n case 1 strcpy stu num ptr break case 2 strcpy stu name ptr 建立链表函数 void construct list student tail student p new student char very 20 float achieve cout 请输入学号 very p changeMage 1 very cout 请输入姓名 very p changeMage 2 very cout 请输入 c 成绩 achieve 精品文档 16欢迎下载 p changegrade achieve system cls cout 信息输入完毕 getNext 0 tail tail getNext tail afterInsert p 查询信息 student findmege student head loop cout 1 按姓名查询 2 按学号查询 q 返回上一级 菜单 p if p 0 1 cout 对不起 你的输入有误 请重新输入 endl goto loop switch p 0 case 1 system cls cout 请输入要查找姓名 ptr for strcmp ptr mid stu name 0 mid mid getNext if mid getNext 0 cout 对不起 你要查找的人不存在 请确认你的输入是否正确 endl goto loop return mid case 2 system cls cout 请输入您要查找的学号 ptr for strcmp ptr mid stu num 0 mid mid getNext if mid getNext 0 cout 对不起 您要查找的内容不存在 请确认您的输入是否正确 endl goto loop return mid case q return 0 default system cls cout 对不起 您的输入有误 请重新输入 endl goto loop 精品文档 18欢迎下载 删除链表 节点 void delete list student head student p 0 char selet 4 system cls cout 在删除前 系统会根据您的提示找到您要删除的学生信息 endl p findmege head if p 0 cout 确认要删除吗 yes 任意键返回 selet if strcmp selet yes 0 for head getNext p head head getNext head afterDelete system cls cout 该信息删除成功 endl 修改节点信息 void change info student head system cls cout 在您修改前 系统会根据您提供的信息找的您要修改的信息 endl student p 0 float achieve 精品文档 19欢迎下载 p findmege head if p 0 cout 请输入 c 成绩 achieve p changegrade achieve system cls cout 修改成功 endl 输出学生成绩信息 void output student head system cls cout 1 查看指定学生信息 2 查看所有学生信息 3 分段输出学生信息 getNext cin ch switch ch case 1 head findmege head if head 0 break head getMage break case 2 while head head getMage head head getNext break 精品文档 20欢迎下载 case 3 cout a 60 分以下 b 60 70 分之间 c 70 80 分之间 d 80 90 分之 间 e 90 100 分之间 ch switch ch case a while head if head stu scoregetMage n head head getNext break case b while head if head stu score 60n head head getNext break case c whi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学美术鉴赏试题及答案
- 出师表课件笔记
- 企业安全培训课程内容课件
- 2025水利工程施工监理合同专用条件模板样本
- 2025公寓房屋买卖合同范文
- 2025年三维打印设备购销合同
- 2025医院临时工劳动合同书
- 2025【合同范本】简易个人房屋转售合同
- 冰的秘密课件
- 版权溯源技术优化-洞察及研究
- 2025年江苏省昆山市辅警招聘考试试题题库及答案详解(典优)
- 外委人员管理办法
- 《国家基层肥胖症综合管理技术指南(2025)》解读
- 邮储银行招聘考试笔试试题集及参考答案
- 投标部奖罚管理办法
- 补充耕地后期管护方案(3篇)
- 设备设施运行台账教学幻灯片
- 健康四大基石科普讲座
- 护士培训班自我介绍
- 2025深入贯彻中央八项规定精神学习教育测试题和答案
- 音乐人工智能应用-洞察阐释
评论
0/150
提交评论