1、开发的项目内容及要求正则表达式
一、开发的项目:成绩管理系统数据库
二、项目内容和功能描述:缓存
某高校欲开发一个成绩管理系统,记录并管理全部选修课程的学生的平时成绩和考试成绩,其主要功能描述以下:框架
(1)每门课程都有3到6个单元构成,每一个单元结束后会进行一次测试,其成绩做为这门课程的平时成绩。课程结束后进行期末考试,其成绩做为这门课程的考试成绩。eclipse
(2)学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。数据库设计
(3)在记录学生成绩以前,系统须要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;若是他的确选修了这门 课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,若是是,那么这些成绩是有效的,不然无效。工具
(4)对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细状况提交给教务处。在教务处没有给出具体处理意见之 前,系统不会处理这些成绩。布局
(5)若一门课程的全部有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据须要,请求系统生成相应的成绩列表,用来提交考试委员会审查。开发工具
(6)在生成成绩列表以前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对以后的成绩报告返还系统。测试
(7)根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查以后,上交一份成绩审查结果给系统。对于全部经过审查的成绩,系统将会生成最终的成绩单,并通知每一个选课学生。
1、相关工具平台简介
一、eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其自己而言,它只是一个框架和一组服务,用于经过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,经过安装不一样的插件Eclipse能够支持不一样的计算机语言,好比C++和Python等开发工具。Eclipse的自己只是一个框架平台,可是众多插件的支持使得Eclipse拥有其余功能相对固定的IDE软件很难具备的灵活性。许多软件开发商以Eclipse为框架开发本身的IDE。
二、MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最经常使用标准化语言。MySQL 软件采用了双受权政策,分为社区版和商业版,因为其体积小、速度快、整体拥有成本低,尤为是开放源码这一特色,通常中小型网站的开发都选择 MySQL 做为网站数据库。
2、系统需求分析与整体设计
一、需求分析
(1)教师客户端功能
①能够更改密码。
②能够添加学生,并填写学生基本信息。
③能够根据学号查询学生基本信息及成绩。
④有权限控制,每一个管理员只能管理其所在学院的信息。
⑤能够添加新课程、新班级。
⑥能够控制选课的课程范围,并能够控制选课的时间,便可以 控制选课的开始与结束。
⑦能够录入成绩,缓存成绩。检查无误后公布成绩。
(2)学生客户端功能
①学生能够查看本身的基本信息。
②学生能够查看本身的成绩。已修学分和不及格成绩信息。
③学生能够进行远程选课,而且能够查看课表。
UML用例图
系统结构图
4、数据库设计
一、数据库设计介绍
在该数据库中课程表是记录各学院所开设课程的基本信息,包括课程号,课程名,课程学分,所属专业号,所属学院号。
可选课程信息表是记录本学期安排的课程信息,包括课程号,上课时间,讲次,任课教师,还有一个用于控制选课的字段(onchosing),当该字段值为1说明该课程可选,当该字段为0时说明该课程不可选。
学生表是用来记录学生的基本信息,包括学生的学号,姓名,性别等信息。
学生用户表是用来记录学生的学号和登陆密码的。
教师用户表是用来记录教师的用户名和登陆密码的。
一、E-R图
三、数据表
数据库中共有九张表:
数据库中存储的信息以下:
班级表
学院表、专业表
课程表
学生表
学生用户表、教师用户表
5、系统实现
教师客户端的功能为:
其中退出模块为退出该系统
密码修改模块为修改教师的登陆密码
新生报到模块为填写学生信息,增长一名新的学生
基本信息查询模块为输入学生学号,查询学生的信息
成绩查询模块为输入学生学生,查询该学生的课程成绩。
开课选项设置模块为将课程表中的课加入到可选课程信息表,而且在加入时选定上课时间以及讲次,并设置上课老师,提交该课程以后将该记录加入到可选课程信息表中选课程信息表中。同时也能够从可选课程信息表中移除课程。
添加课程模块实现往课程表中添加课程。
增长班级模块实现向该学院的某个专业添加班级。
学生客户端的功能为:
其中退出模块为退出该系统。
密码修改模块为修改当前所登陆的学生的登陆密码。
我的基本信息模块为查看本身的信息。
选课模块为在其所在学院开放选课时选课。
课表显示模块为显示该学生的课表。
已修课程成绩为查看该学生已经选修的课程的成绩以及所修得的学分。
不及格课程成绩为查看该学生的不及格课程的成绩。
六、系统测试
进入系统后进入登陆界面:
当用户输入信息,选择身份之后,系统会链接数据库 对照数据库中的学生用户表或教师用户表判断用户名 与密码是否匹配,若是匹配,则进入相应客户端。
进入教师客户端:
进入学生客户端:
学生客户端和教师客户端的主界面的设计左边都是基于树状列表控件设计的,右边是一个卡片布局面板的窗体,程序中先对面板和主窗体进行初始化,而后对树的各个结点注册监听器,再调用相应的方法。
退出登陆:
实现为当用户点击退出时,显示询问对话框。
若是用户选择是的时候调用System.exit(0)退出系统
修改密码:
须要判断新密码输入是否为空,不为空则得到该密码,再判断是否符合正则表达式,若是符合则判断新密码与确认新密码是否相同,若是相同则在按下确认键后修改密码。
新生报到:
实现向这个数据库里添加一个新来的学生
一个教师只能向他所在的学院里面添加学生,而不能把学生添加到别的学院去。
其中班级的下拉列表的实现利用到了三个Map
一个Map中键是专业名,值是专业号
一个Map中键是班级名,值是班级号
另外一个Map的键专业号,值是存放班级的那个Map
当用户选择好专业之后,能够根据第一个Map获得专业号,再用专业号获得存放班级的那个Map,最后再获得所选专业的全部班级名
基本信息查询:
在教师端和学生端都有,所不一样的是教师端能够根据学号查看全部学生的信息,而学生端只能查看本身的信息
成绩查询:
教师客户端查询成绩 学生客户端查询所有成绩
学生客户端查询不及格成绩
教师端和学生端都有,所不一样的是教师端能够根据学号查看全部学生的成绩,而学生端只能查看本身的成绩。并且学生端还有查询不及格课程成绩的功能。
教师客户端的开课选项设置:
实现了将课程表中的课安排好上课时间以及讲次,老师,而后添加到可选课程信息表里面。而且控制学生何时选课,选什么课,何时选课结束。
课程成绩录入:
由教师录入学生成绩,在检查无误后,按下公布该科成绩单来完成数据库的更新。
添加课程:
容许教师向本身所在学院添加课程。
增长班级:模块容许教师向本身所在学院的任何一个专业增长班级。
容许教师向本身所在学院的任何一个专业增长班级。
学生客户端的选课:
能够实现学生从教师容许选课的课程中选择课程。
学生客户端的课表显示:
实现展现该学生所选课程的上课信息。