学生成绩管理系统设计论文(数据结构与算法课设)_第1页
学生成绩管理系统设计论文(数据结构与算法课设)_第2页
学生成绩管理系统设计论文(数据结构与算法课设)_第3页
学生成绩管理系统设计论文(数据结构与算法课设)_第4页
学生成绩管理系统设计论文(数据结构与算法课设)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0 目 录 引言 1 系统概述 1 1 系统功能 1 2 系统作用和特点 2 需求分析需求分析 2 1 功能要求 2 2 性能要求 2 3 数据需求 2 4 开发环境 3 详细设计详细设计 3 1 登陆界面与主界面的实现 3 2 详细设计思想 3 3 系统结构体的设计 3 3 各种模块的实现 4 所遇到的问题和分析 4 1 系统存在的不足 4 2 制作过程中遇到的问题 4 4 问题分析 5 系统特色及关键技术 6 结论及心得体会 参考文献 附录 1 摘 要 随着计算机的普及 人们的生活和学习都离不开电脑 计算机是提高生产效率 的主要工具及途径 所以教育也不例外 现在基本每个大学都有自己的学生管理系 统 学生成绩管理系统不仅把广大教师从繁重的成绩管理工作中解脱出来 把学校 从传统的成绩管理模式中解放出来 而且对学生成绩的判断和整理更合理 更公正 同时也给教师提供了一个准确 清晰 轻松的成绩管理环境 本系统依据开发要求 主要应用于教育系统 学生成绩管理系统借助于计算机强大的处理能力 大大减轻了 管理人员的工作量 并提高了处理的准确性 学生成绩管理系统的开发运用 实现了 学生成绩管理的自动化 主要完成对学生成绩的管理 包括添加 修改 删除 查 询 查看信息以及保存入档等六个方面 每一个表的修改都将联动的影响其它的表 当完成添加或删除操作时系统会自动地完成学生成绩的修改 查询功能也是系统的 核心之一 在系统中主要根据学生姓名和学号进行查询 其目的都是为了方便用户 使用 系统有完整的添加 删除和修改功能 并具备成绩表查询功能 论文主要介绍了本课题的开发背景 所要完成的功能和开发的过程 本文主要 介绍了本课题的开发背景 所要完成的功能和开发的过程 重点说明了系统的设计 思路 总体设计 各个功能模块的设计与实现 关键词 学生成绩 成绩管理信息系统 C 语言 2 引言 几年前 许多学校对于学生成绩的管理还是停留在运用手工操作 随着计算机 的飞快发展以及各个学校的规模不断壮大 学生人数逐年增加 关于学生成绩管理 工作所涉及的数据量越来越大 有的学校不得不靠增加人力 物力来进行学生成绩 管理 但人工管理又有着许多缺陷 比如 效率底 易出错 检索信息慢 对学校 的管理提供决策信息较为困难等 学校不能完全掌握每一个学生的学习情况 这样 对学校的教学工作及其不利 使学校的教学质量一直停滞不前 所以我想借本次课 程设计之际 开发一个适用于各校的通用高校学生成绩管理系统 使学校能够充分 掌握学生的学习情况 便于学校教学工作的进行和改革 开发的目标建立学生成绩管理系统 采用计算机对学生成绩进行管理 进一步 提高办学效率和现代化水平 使学校对学生的成绩能够快速并准确的录入 修改和 查询 更好地掌握每个学生的各科成绩 便于教师的管理 使学生对个人的学习成绩进行 快速的查询 让老师能够更好 更快的了解学生的学习情况 使学校的教学质量进 一步的提高 本系统改变以往靠手工管理学生成绩的状况 可以树立良好的办学先 锋 提高工作效率 节省人力和物力 在些高校建立了校园网 实现了办公自动化 3 1 1 系统概述系统概述 1 1 系统功能 学生成绩管理系统主要以管理学生成绩信息为目的 主要功能包括登录用户 成绩录入管理 查询管理 修改管理 删除管理 统计管理 成绩排名等 登录用户 老师可以进行各种操作 学生只能进行查询操作 成绩录入管理 每次考试结束 都可录入学生成绩信息 查询管理 包括查询成绩和基本信息 可以显示单独一条记录 也可以显示所有信 息 修改管理 包括修改成绩和基本信息 删除管理 包括删除成绩和基本信息 统计管理 统计学生人数 优生率 不及格人数和平均成绩 成绩排名 按成绩的高低顺序排列 1 2 系统作用和特点 系统可以更快的使学生的成绩相加并且排名以及各种统计 这对老师来说是很好 可以减少很多工作量 在多人多课考试时很有用 只要成绩出来 输入电脑就可以 在几秒内是成绩相加 并知道了某学生在学校排名 对老师来说 考完试自由的时 间就增加了许多 功能强大 实用性很强 并且有较好的交互界面 方便用户使用 具有易操作性 覆盖面广 2 2 需求分析需求分析 2 1 功能要求 使用中文菜单 界面设计和用户输入输出要人性化些 将学生信息保存在文本文档中 具有数据删除功能 能最终从文件中删除 排序功能 根据自己设计的数据结构 设计排序算法 具有多种查询 如按学号查询 按姓名查询 按成绩查询等 及输出功能 其它功能 如各种统计 统计每个学生所有课程的平均分 统计某门课程所 有学生的平均分等 学生信息的修改 修改学生姓名 修改学生某门课程的成绩 2 2 性能需求 4 系统的高速性 稳定性 安全性 系统的体系结构能够方便使用功能 适应业务 办公的发展 系统人机界面友好 易学易用 系统维护成本较低 2 3 数据需求 基本数据维护功能 添加学生的信息 修改学生的信息 删除学生的信息 查询学生的信息 统计学生的信息 存读的成绩信息 学生数据结构 学生 C 语言 算法 数据库 性别 数据 库 学号 算法 姓名 C 语 言 登录用户 账号 权限 密码 5 用户结构 主菜单 2 4 开发环境 开发环境是用 Visual C 6 0 简称 VC 或者 VC6 0 是微软推出的一款 C 编 译器 将 高级语言 翻译为 机器语言 低级语言 的程序 Visual C 是一个 功能强大的可视化软件开发工具 它是一种可视化的编程工具 它基于 windows 操 作系统 它有两种方式来建立应用程序 一种是通过 VC6 0 的可视化编程工具 另 一种是通过 visual c 6 0 的代码编辑器 手工编写代码 本系统所用的语言是 C 学生成绩管理系统 用户登录 学生用户 老师用户 统 计 记 录 成 绩 统 计 添 加 记 录 查 询 记 录 查 询 记 录 修 改 记 录 删 除 记 录 来 退 出 统 计 记 录 成 绩 统 计 存 读 记 录 6 语言 C 语言是目前世界上流行 使用最广泛的高级程序设计语言 C 语言对操作系统和系统使用程序以及需要对硬件进行操作的场合 用 C 语言明显 优于其它高级语言 许多大型应用软件都是用 C 语言编写的 C 语言具有绘图能力 强 可移植性 并具备很强的数据处理能力 因此适于编写系统软件 三维 二维 图形和动画它是数值计算的高级语言 3 3 详细设计详细设计 3 1 登陆界面与主界面的实现 系统登录界面用了 C 选择控制语言 用于对进入系统的用户进行安全检查 阻 止非法用户的进入 验证账号及密码 通过判断账号及密码是否符合申请的账号和 密码 如果符合则允许登录 否则提示用户账号或密码不正确 本系统的登录界面 主界面 在主界面中包括 班级成绩添加 班级成绩显示 班级成绩统计 班级成绩查询 班级成绩修改 班级成绩表 班级成绩存档 班级成绩读入 退出 等全部的功能 之所以设计这麽一个主界面 一是因为能使用户对程序操作的流程更加清晰简明 二是保证了 用户同时只能对一个文件进行操作系统的要求 保证了系统的正确性和易用性 7 3 2 详细设计思想 3 2 13 2 1 确定程序主要功能模块 这个就比较简单了 主要是根据系统设计的说明及要求来设计 从而设计了 九大功能模块 有文件操作 有系统维护功能 排序和统计功能 有输入输出等基 本功能 比较人性化 添加了较多的提示语 这个程序的主要功能时输入学生的学 号 姓名 学期和三科成绩来对其进行存储 在存储后可以对学生的成绩按学号及 学期或姓名及学期来进行查询 同时输出此同学的平均分及总分 之后可以对某个 同学的成绩进行各种操作 例如修改 删除等 同时还可以对学生们的成绩按照总 分或单科成绩排序 在整个过程中所做的操作都会保存到 student txt 文件中并显 示 3 2 23 2 2 确定语言算法 由于之前都没有做过类似的设计 所以一时间不能够确定到底使用何种语言来设计本系 统 所以在网上看了一些其他人设计的程序 链表的 数组的 各种各样的 也不知如何选择 但是仔细地看了其中的设计思想 最终还是用 C 和数组的来做 一是觉得本人对链表掌握的不 是很熟练 那么在设计过程中容易产生不能理解的错误 耽误时间 二是想运用 C 可以巩固 一下所学的数据结构的知识 之前做实验的时候都没怎么用所学的知识 这时候想练练 就这 8 样确定了整体的结构算法 3 33 3 系统结构体的设计 struct Student 结构体结构体 int term 学期学期 int num 学号学号 char name 12 姓名姓名 float mark1 成绩成绩 float mark2 float mark3 float sum 总分总分 float average 平均分平均分 3 33 3 各种模块的实现 Main 函数的设计用 Mvoid main 来实现 主要是来显示主菜单 使用户选择 操作 在 main 函数中主要运用 do while 循环语句和 switch case 选择判断语 句来调用相关 选择各种功能模块 系统的运行是在一个永真的循环里进行的 只 有在主界面并选择 退出 时 才会跳出永真循环 并退出程序 3 3 1 录入学生记录模块 用函数 int add text struct Student stud int n 来实现 主要功能用来对学生的记录进行添加 选择 8 进入模块录入所需学生个数 的学生信息 比如学号 姓名 成绩等 然后进入主菜单 根据主菜单来在此基础 上进行操作 期间会有一些提示语 按此操作即可 本函数用到了文件操作的指针 FILE fp 3 3 2 显示学生记录模块显示学生记录模块 用函数 void output stu struct Student stud int n int i 来实现 主要功能是用来显示学生的信息进行输出 在系统已经录入了学生资料的前 Student 姓 名 学 号 性 别 数 据 库 算 法 C 语 言 平 均 分 总 分 9 提下 只用该功能可以显示学生的信息资料等等 同时也会自动跳出主菜单进行后 续操作 主要的程序代码就是从文件的读操作和界面显示操作 3 3 3 添加学生资料模块添加学生资料模块 用函数 void input num struct Student stud int n int i 来实现 主要功能是用来添加学生资料 成绩 若有重号则提示重新输入 就可以使用本 模块来进行添加利用 for 循环进行输入新学生记录 输入完后 最后会有一个提示 语句 是否继续输入 y n y 是继续输入 n 是返回主菜单否则将返回主菜单 本 模块功能到此结束 在此期间会根据语句算出总分和平均分 并默认按学号排序保 存到文件中去 3 3 4 查询 删除 修改模块 分别用三个函数来实现 删除箅修改模块是基于查询模块上的 要先查询你要 进行操作的内容 然后再进行其它操作 查询是用用函数 int find stu struct Student stud int n 来实现 它有 两种方式 主菜单先 5 进入查询 会出现提示 请选择您要查询的方式 1 按学号 2 按名字 用 for 和 if 语句 if strcmp stud i name you choice 0 如果第 i 项与查找信息不匹配则查询失败 否则查询成功 调用显示函数 输出该 学生信息 之后会出现提示 是否进行 1 修改 2 删除 3 退出选项 修改是用函数 void updata stu struct Student stud int n int y 来 实现的 修改也可以进行任选一门课进行修改 会有提示 请输入您要对哪一门成 绩进行修改 0 数据库 1 算法 2 C 语言 之后输入该课程的成绩就可以 了 删除是用 void delete stu struct Student stud int n int y 来实现 的 选择了以后 还会有判断提示 确认您要进行删除吗 y n y 是确定 之后 10 就会回到主菜单 n 是不删除 退出是如果不进行任何操作后 返回到主菜单 3 3 5 统计模块 谇功能是用 void TJ stu struct Student stud int n int o 来实现的 选 3 进入统 计界面 首先有提示要统计的学科 有 123 供你选择 选择了以后 就可以显示出 该课程的成绩表 按从高到低的顺序排列 算法是用冒泡排序方法 以及各种统计 包括 平均成绩 及格率 优生率 不及格人数 优生人数 排序代码如下 for i 0 i n 1 i for j i 1 j stud i score o temp stud i stud i stud j stud j temp 11 3 3 6 班级成绩表模块 该模块是用 void chenji stu struct Student stud int n int o 函数 实现 用到的算法是直接选择排序 是按总成绩从高到低排序的 显示是调用了显 示模块的函数 使得函数的结构大的简化了 主要程序如下 for i 0 i n 1 i k i for j i 1 j stud i score 3 k j score 3 表示总成绩 if k i temp stud i stud i stud k stud k temp 12 4 4 所遇到的问题和分析解决所遇到的问题和分析解决 4 1 系统存在的不足 本学生成绩管理系统由九大模块组成 每个模块相互联系又相互独立 这个学 生成绩管理系统存在着很多不足之处 由于自己本身编程能力的问题 这个系统可 以实现的功能非常有限 只能实现学生管理系统最基本的功能 可以进行简单的输 入 输出学生资料 查询和修改学生信息 能直接从文件中读入数据 能对系统所 作的修改 操作进行保存等 而且在每个模块也有不足的地方 比如在输入学生资 料时 对每个信息项没有严格的规定 可以输入任何的字符 感觉应用范围还是不 容乐观 这有待以后努力 更详尽的实现模块的功能 4 2 制作过程中遇到的问题 4 2 1 do while 语句的位置问题 在查询学生记录此模块中 只能查询一次 若要进行多次查询的话就不行了 只 能先到主菜单 再先查询选项 很是麻烦 不能实现原有的功能 所以要想清楚到 底是哪里循环出问题 按照逻辑思路找到相应的语句正确添加就行了 4 2 2 system cls 的使用问题 刚开始时对菜单的切换不是很了解 编写的程序运行的时候是一竖行向下的 很影响使用者 的视觉范围 通过查询一些资料得知了 system cls 的作用 能够把一些暂时不用或不相关的信 息通过清屏来处理 4 2 3 内存的分配问题 13 对于初学者的话对内存的分配和释放问题是比较抽象的和模糊的问题 在排序 是之前就出现了交换数据困难的问题 以及内存分配空间繁琐释放空间不及时的问 题 造成空间的浪费 使得程序运行时效率较低 因此最后采用了顺序存储记录的 方式 这就能改变前面所出现的问题 4 4 问题分析 在自己动手写的时候才会发现有太多的问题 这些都是只有自已亲自去实践才会 有的收获 例如在有些细节方面还是要特别注意啊 像分号的添加 是或还是与的 的方向问题 函数的返回值等问题 虽然容易改掉 但是很容易养成不好的习惯 而且还会浪费时间 所以在一开始写的时候就要很仔细 这样才能保证程序编的精 细 同时若出现很多这样的错误的话 在编写程序的时候也会心里烦的 所以在编 程的时候要认真仔细 就你在刚开始时对文件的操作不是很明白 一直不能很好的 操作文件 直到快验收的时候 仍旧出现问题 就是对已经存在的文件读取问题 将数据从文件中读取 但是不能够正常的读出 最后把读文件的操作语句进行仔细 检查后 发现语句的顺序有点问题 重新把 fscanf 语句进行再修改后就发现能够正 常的读取文件了 其余的就没什么比较大的问题了 基本上只要细心一点的话就可 以正确调试成功了 5 5 系统特色及关键技术系统特色及关键技术 其实在本程序的设计过程当中 没有很吸引人的关键技术 因为我的 C 语言 学的很好 所以当初设计的时候就只是想把功能都实现就好了 尽可能的把所要求 的功能都编进程序 这样就觉得很满足了 所以都是设计的比较简单易懂的语言 这样自己能够更明白一些 所以就没有时间去细细地去设计自己的程序 本程序要 说有什么值得说的 那就只有人性化这点了 在设计成学的时候 因为自己怕弄混 了 所以添加了很详尽的提示 这样在编程的过程中或调试的时候都能够比较快的 运行 还有就是尽可能的应用了 do while 语句和 switch case 语句 这两个语句在之 前不是很常用 所以在这个程序中试炼了一下 虽然在编写的过程中总是出错 但 还是成功的用好了 也是程序有条理一些 我也知道这些东西别人可能比我弄得还 要好 但是我在我所学的知识中成功的应用了这些 我觉得就是好事 就是进步 6 6 结论及心得体会结论及心得体会 学生成绩管理系统终于成功的验收了 从这最后的测试结果来看 基本上实现了 成绩管理系统的几大功能 成绩信息录入 成绩信息的管理 并达到操作过程中的 直观 方便 实用 安全等要求 系统采用模块化程序设计的方法 既便于系统功 能的组合和修改 本系统经过测试 证明其运行是稳定 可靠的 但在系统设计中 也也遇到很多的问题 并且本系统的功能还需要不断的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论