1.2 系统的总体功能描述
1.2.1 基本要求
学校希望建立一个学生成绩在线公布系统,对学生成绩信息进行存储、管理和发布,并能通过分类、查询、统计等操作从数据库中获取有效信息,在方便学生了解自己各科考试成绩的同时,各院系可对学生成绩有直接和明确的掌握。
1.2.2 基本功能
- 系统设置:考试科目、等级分值等参数的设置、权限设置、更改密码等
- 学生查询:通过学号和密码,学生可查询每学期各科成绩
- 成绩录入:提供学生成绩的添加功能,并能从表格和其他数据库文件中导入信息
- 信息更新:提供学生成绩信息的删除和修改和功能
- 信息统计:按院系、专业、班级分类汇总、统计。可查询学生的成绩分布,不及格人数,最低分、最高分和平均分
- 信息打印:主要提供成绩的分类打印功能
1.2.1 登录功能
输入管理员,老师,学生的id和密码会登录到不同界面,与之对应有不用的功能和权限。
1.2.2 管理员功能
添加考试
在输入框输入需要添加的考试科目,点击添加,完成添加考试科目内容
删除分数
输入要删除分数的名字和对应的科目,点击删除即可删除分数
修改分数
输入需要需改分数的姓名和对应的科目对应的新成绩,点击修改完成修改分数功能
修改密码
管理员可以修改任何id的密码
1.3 开发工具
本系统后台数据库采用MySQL 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台sublime text作为主要开发工具,使用B/S模式,开发简单。
1.4 开发环境
- 编辑器:Sublime Text
- 系统开发语言:HTML + CSS + PHP
- 数据库:MySQL
二、需求分析
2.1 概括描述
随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。
2.2 用户特点
本系统有管理员,老师,学生。系统的管理员主要是对学生信息以及学生成绩进行一些操作。这些操作包括对学生信息的添加、对学生成绩的录入以及对学生成绩进行分析等。老师对学生成绩的录入,自己密码的修改,学生查询自己的成绩和统计自己的成绩,修改自己密码。
2.3 可行性分析
目前,随着办公信息化的开展,高校的扩招,新生入学以及期末考试结束后,学校都需要对一些繁琐的流程进行管理,通过一个基于B/S架构的管理系统,可以很好的将这一个过程进行化繁为简。此项目具有普遍性,能够应用于很多学校。因此,该类型系统可以大量投入使用。
2.4 数据项
管理员id,密码,老师id,密码,学生id密码,考试科目,考试成绩
2.5 数据结构
- 管理员:权限最高,管理员ID,管理员登录密码
- 老师:老师ID,老师登录密码
- 学生:学生ID,学生密码,学生考试科目,考试成绩
2.6数据存储
管理员ID,管理员登录密码,老师ID,老师登录密码,学生ID,学生密码,学生考试科目,考试成绩
三、数据库概念结构设计
3.1 局部ER图
- 管理员(ID,密码)
- 老师(ID,密码)
- 学生(ID,密码,科目,成绩)
四、数据库逻辑结构设计
4.1 关系模式
- 管理员(ID,密码)
- 老师(ID,密码)
- 学生(ID,密码,科目,成绩)
4.2 存储过程
信息->数据库
4.3 触发器
建立触发器以实现分数删除功能,当删除一个学生的分数时将此学生的相关信息全部删除。
4.4视图
这部分主要是考虑使用方便性和效率问题,主要借助视图手段实现。
4.5索引
使用经典存取方法,建立索引:
- 学生成绩经常用到而且按其排序,在学生成绩名称属性建立索引。
- 用户ID是本软件的重要的数据,在ID属性建立索引。
五、应用系统功能结构图
六、各功能模块程序流程图及其说明
6.1 添加考试
输入框获取用户输入的考试科目,通过post方法发送到服务器,添加到数据库
6.2 删除模块
输入框获取用户输入要删除的分数,通过post方法发送到服务器,MqSQL数据库匹配对应的分数,然后删除
6.3 修改密码模块
通过更新数据库达到修改密码的功能
6.4 查询模块
查询对应的分数,使用对应的MySQL语句
七、程序源代码及其说明
7.1 登录
7.2 查询
7.3 服务器端对数据库的读取和写入操作
采用JDBC进行数据库的连接与操作。
7.4 客户端与服务器端的通信
采用Socket进行通信。
7.5 系统主界面
管理员主界面
学生主界面
教师主界面
八、总结
课程设计中遇到的主要问题和解决方法;创新和得意之处;课程设计中存在的不足,需进一步改进的设想;课程设计的感想和心得体会。
8.1 主要问题和解决方法
界面的排版问题,还有用户输入的数据怎样传给数据库和php处理。
排版问题使用css的定位解决,绝对定位能让控件定位到我想要的地方。数据传输使用post方法,在php要使用_POST+name接受控件输入的内容。
8.2 创新和得意之处
系统界面简单单调,但是功能齐全,开发容易,使用XAMPP集合环境,不需要单独安装数据库和web服务器,使用起来方便简单。
8.3 不足之处
功能过域简单,更加复杂的功能没有实现,系统存在SQL注入等安全问题,界面也不够美观,进一步的学习和研究,学习更多css、html、php、mysql,进一步掌握安全问题,维护更好的网站。
8.4 心得体会
在这次课程设计中,重点是要掌握数据库设计方法。数据库设计特点:三分技术,七分管理,十二分基础数据。在数据库建设中不仅涉及技术,还设计管理。要建设好一个数据库应用系统,开发技术固然重要,但相比之下则管理更重要。
进行数据库的设计首先必须了解与分析用户需求。需求分析是整个设计过程的基础,是最困难、最耗时的一部分。需求分析做的不好,甚至会导致整个数据库设计返工重做。需求分析的任务是通过详细的调查现实世界要处理的对象,充分了解用户的各种需求,然后在此基础上确定系统功能。系统还必须充分考虑今后可能的扩充和改变。
概念结构设计是整个数据库设计的关键,他通过对用户需求进行综合、归纳与抽象,形成一个独立与具体DBMS的概念模型。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。概念结构的特点:能真实、充分的反映现实世界,包括失误和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;易于理解,从而可以用它和不熟悉计算机的用户交流意见,用户的积极参与是数据库设计成功的关键;易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;易于向关系、网状、层次等各种数据模型转换。
本系统主要针对的用户是学生、教务员和老师。该设计的优点是:不同用户的功能都单独存储在数据库中相应的表中使他们可以很方便地满足自己的需求。不足是:存在部分数据冗余,不利于该数据库向大型数据库扩展。但该设计基本能满足三类的用户的需求,完成简单的功能。时间有限,部分功能还没有实现,有待完善!
通过将近一个星期的设计,我对数据库在生活中的广泛应用有了更深的体会,同时也加深了对MySQL的认识,了解了相关的SQL的知识,尤其是对数据库的原理与开发程序的应用有了更进一步的认识和了解。 课程设计是我们数据库专业课程知识综合应用的实践训练,在课设中也遇到了很多问题,经过向老师询问和跟同学们交流,认真的思考,积极解决问题,终于解决了那些问题。在解决问题的过程中,我也学到了很多知识,更是让我把课本的知识应用到实际之中,让我了解了我们学习的知识有什么用,增强我的自信心和学习的动力。同时感谢老师和同学在课程设计过程中的帮助!