一、软件环境及开发工具
Windows10 eclipse sqlite
二、课程设计功能要求
1.添加学生功能:姓名、学号、性别、出生年月日。(注意:学号自动生成,学号必须唯一)
2.添加学生成绩功能:假设每个人都选修了数学、Java与体育。但输入成绩的时候,一般是给所有学生输入某一门课程的成绩。
3.根据学生学号查找学生成绩,并在界面上显示姓名、学号和成绩,学号不存在的给出提示信息
4. 根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息
*5. 生成学生学习情况报表:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值。最后以总成绩平均值降序在图形界面输出,并可将该排序结果按照输出至"成绩表.txt"文件或者excel文件
6. 支持对学生信息的修改与删除(要在文件或数据库中有所体现),不能修改学号。
7.支持用户登录、验证操作
界面:GUI 或 Web
数据存储在数据库或者文件中,建议存储在数据库。
三、需求分析
1.信息需求
对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。
2.功能需求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
3. 安全性与完整性要求
对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。
四、总体功能设计
1.登录功能。
输入账号和密码,当账户密码正确时跳转下一个页面,否则弹出提示密码或账户名不正确并清除输入框内的内容。如果输入错误,可以按reset按钮手动清除。
2.学生表的增加,修改,删除功能。
学生表增加通过姓名,性别,生日选项增加,学号自动生成。
学生表的删除通过学号删除。
学生表的更新需要输入所有字段。
3.课程表的增加,修改,删除功能。
课程表的增加通过课程号和课程名增加。
课程表的删除通过课程号的删除。
课程表的更新通过课程号,课程名更新。
4.成绩表的增加,修改,删除功能。
成绩表的增加通过姓名,课程号,成绩字段增加。
成绩表的修改需要输入所有字段。
成绩表的删除通过学号和课程号删除。
5.学生表中按姓名,学号查询成绩功能,支持模糊查询。
如果存在相同姓名的学生,则会一同显示出来。
支持模糊查询,可以输入不完整字段查询。
6.将成绩表导入到excel中。
使用POI技术将学生,课程,成绩导入到excel。
五、数据库设计
1.E-R图
2.关系模型
学生(学号,姓名,性别,生日)
课程(课程号,课程名)
成绩(学号,课程号,成绩)
关系模型满足BC范式要求。
六、应用程序设计
程序使用java实现,有图形界面。
1.文件目录结构
加粗为包名,包名下是包内的java文件。
BaseDAO
BaseDAO/BaseDAO.java
定义了一些获得DAO类的方法,便于后面直接用类调用类里的方法。
Constants
Constants/Constants.java
Constants/DAO.java
定义了程序中需要的常量和枚举类。
DAO
DAO/AdminDAO.java
DAO/CourseDAO.java
DAO/GradeDAO.java
DAO/StudentDAO.java
具体定义了对数据库四个表的查询修改更新方法,后面直接调用。
Database
Database/DBUtil.java
定义了数据库连接,关闭方法,定义了对数据库的基本的增删查改的方法。
Main
Main/Main.java
主程序,初始化数据库,对四个表进行定义,并调用登录窗口开始程序。
Model
Model/Admin.java
Model/Course.java
Model/Grade.java
Model/Result.java
Model/Result2.java
Model/Student.java
定义了一些需要的模型,数据库与用户的交互通过这些模型中转,数据库查询的结果先保存到这些模型里,再输出到窗口,同理,用户查询的数据先输入到模型里,再传到数据库里。
Windows
Windows/CourseAddWindow.java
Windows/CourseDeleteWindow.java
Windows/CourseUpdateWindow.java
Windows/CourseWindow.java
Windows/GradeAddWindow.java
Windows/GradeDeleteWindow.java
Windows/GradeUpdateWindow.java
Windows/GradeWindow.java
Windows/Login.java
Windows/MainWindow.java
Windows/QuaryWindow.java
Windows/StudentAddWindow.java
Windows/StudentDeleteWindow.java
Windows/StudentUpdateWindow.java
Windows/StudentWindow.java
定义的需要的界面,登录,学生表,课程表,成绩表等。
运行截图:
代码已上传github:wuhuxp/java-course-design: 简单学生管理系统 (github.com)https://github.com/wuhuxp/java-course-design