做的比较简陋,只能完成最基本的要求T-T。而且一点网络安全意识都没有涉及,防注入没来得及做,密码也没有加密存储>_<。
课设要求
可支持单选,多选和多行填空题,在一屏显示所有试题和解答控件,分左右两边显示,左边显示考试试题,右边显示解答控件。试题内容从数据库读取。交卷给出得分。
感觉老师要求的界面是这样的:
设计思路
我的文件们是这样排布的。(其实我也想知道一个正经客户端软件是怎么设计的,三天时间从0.01开始学java实在不够我浪的,只能自己瞎摸索……)
登录页面
user.java
定义了User
类来存储username
和password
两种数据类型。GetUser
定义的类对从数据库中取到username
和password
转换成User
类进行存储。usercheck.java
将用户从LoginFrame
输入的值与从数据库中读取到的进行对比,成功则进入系统,失败则重新输入。
试题读取与显示
Question.java
定义的Question
类用来存储题干和选项。题目在数据库中用了三张表进行存储,多选题multiplechoice
,多行填空multiplefillin
和单选题singlechoice
,所以也设计了三个java文件进行读取与转换格式,读取的数据存入List<Question>
结果集当中。getAllQuestion()
方法用于在考试界面MainFrame中输出试题。
答案显示
Answers.java
和Question.java
一样,只不过把question
类换成了answers
类。
做题模块
添加了计时器功能。
数据库设计
单选题
多选题
多行填空
答案
代码
数据库连接模块
SQLConnection.java
1 | //连接数据库 |
用户登录模块
User.java
1 | package examsystem; |
UserCheck.java
1 | package examsystem; |
GetUser.java
1 | package examsystem; |
LoginFrame.java
1 | package examsystem; |
LoginPanel.java
1 | package examsystem; |
试题显示模块
Question.java
1 | package examsystem; |
Multichoice.java
1 | package examsystem; |
Singlechoice.java
1 | package examsystem; |
multifillin.java
1 | package examsystem; |
答案显示
Answers.java
1 | package examsystem; |
GetAnswers.java
1 | package examsystem; |
答题界面
MainFrame.java
1 | package examsystem; |
入口
main.java
1 | package examsystem; |
效果图
登录界面
答题界面
最终界面
心得
由于上课划水摸鱼严重,做课设的时候压根儿就是两眼一抹黑,完全不知道从哪里下手。从数据库中取题目的时候不知道怎么输出,时间又比较紧(还是平时没有提前准备),路上感觉要挂了,哭了好几次。。像我一样的普通大学生还是要平时好好学习。