基于SQLServer的标准化考试系统设计与实现

2019-05-23 10:44崔旭冉朱珍珍
电脑知识与技术 2019年5期
关键词:软件设计

崔旭冉 朱珍珍

摘要:标准化考试系统的设计与开发旨在完成各种标准化考试的系统界面运行。通过设计并优化该标准考试系统,可实现选择试题,考试计时,暂停计时,智能批改试题并给出得分的功能。本课题的具体功能需通过以下具体步骤实现,首先利用Java Swing的相关知识设计考试系统界面,方便用户对各个模块进行了解和使用,即将需要实现的功能分模块呈现,包括选择试题模块界面、考试内容模块界面、考试选择答案模块界面、答案核对模块界面。用户通过界面指南,完成选题、考试、练习、评分的具体功能。为使用户交互更加方便高效,基于此添加连接SqlServer数据库的登录和注册功能。

关键词:Java;软件设计;SQLSever

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)05-0004-02

1 设计概述

本课题设计旨在完成集多功能于一体化的标准考试系统,用户可以自行选择题库中的任意一套试题进行测试,每套试题的考试用时由试题文件给出;在练习的过程中,用户也可以随时暂停计时,以增加模拟考试练习的灵活性;考试过程中,开始读取试题的同时,计时器计时,用户提交答案后自动读取下一题;每套题目有固定的作答时间,超出时间则不能再读取任何题目;用户每答完一道题目,可显示本题正确答案以及所得分数。

2 设计分析

上述具体功能则是基于Java语言的多线程知识编写相关的方法,通过编写监听改变方法实现对考试期间选择不同答案的记录、题号改变的记录、试卷改变的记录,主要监听点击事件实现对“开始”“下一题”“暂停”按钮的控制,即当用户进入该页面时首先选择试题页,点击开始时进入考试界面,同时调用读取试题方法,考试过程中用户在左界面区选择选项,点击下一题后,调用比对答案的方法,自动在右界面区呈现用户答案和正确答案,最后通过总得分计算方法输出得分。在用户调用自定义线程结束方法时,或题目倒计时结束后,自动统计总分。为增加该考试系统的灵活性,增加系统暂停方法,即暂停方法被调用后,考试系统进入练习模式,时间倒计时停止,同时可以由用户自动选择题号进行针对训练。

综上,本系统的设计主要将运用到Java Swing界面设计和Java 多线程知识,要求实现良好的用户交互界面设计和多功能函数多线程运行。

3 具体实现

3.1系统功能模块设计

首先明确该系统的总体功能实现,在用户界面的基础上,实现选择试卷、考试计时、题目批改与练习、成绩统计的主要功能,之后为增加用户交互感,添加连接数据库的功能。

分析系统各功能模块可初步确定,在用户界面设计模块采用null布局格式,通过顶层容器JFrame的名字.setlayout(null),来设置其布局为空布局,当要在空布局中添加空间或者其他中层容器时,需用setBounds()方法来输入控件的x,y坐标以及它们的宽度和长度。实现选择、判分功能则是运用itemStateChanged(ItemEvent e)选择项发生改变时的回调事件(一般是在多个选项中选择一个)和actionPerformed(ActionEvent e)组件的响应事件的回调事件(如按钮的按下、下拉列表的选择等,一般是组件焦点按下回车键的效果)。选择试题、读取题目、对比答案、获取成绩则是自行构造相应的方法实现,包括:readQuestions()、getAnswewr()、getScore()、zanting()、jixu()等。

本课题的关键在于如何使用多线程实现多功能的并发执行,如:在考试过程中对每个题目进行倒计时,该计时功能为整个运行过程的子线程,为此构造自定义线程运行的run()方法和线程中断的stopRun()方法。

3.2 主要功能模块

运行Run()方法,启动线程,并在此线程中完成倒计时功能,即考试开始与倒计时界面同步执行。在时分秒不为0的时刻执行当前线程,并显示当前剩余时间。在倒计时结束后,设置“下一题”、“暂停”、“选择题目”为禁用状态,“开始”为启用状态,并得到最后分数。基于此,中断线程的方法即,使hour,min,sec均为0,此时多线程结束。

读取题目的readQuestions()方法,则是首先读取题目文档的第一行的每一套试题限制时间,通过输入输出流依次读取文档题目至中间面板上,并使用换行分隔符进行分割读取,并通过判断依次读取下一题。

4 程序设计

4.1 用户界面设计

用户界面设计主要由Java Swing实现,Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。 Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行。

4.2 监听改变事件方法

监听改变事件方法主要实现考试进行过程中选择答案、题号、选择试卷的部分,即用户可以自主判断题目答案并进行选择和更改,题号随“下一题”的点击改变,试卷由用户选择决定。

4.5监听点击事件方法

监听点击事件,actionPerformed(ActionEvent e)方法,监听要点击的按钮为何。在点击开始按钮时,将选择项按钮、下一题、暂停等按钮设置成可点击状态,启动线程,即用户选择试卷完毕后将选试卷一栏窗体隐藏,否则中断线程。

4.6读取文档题目方法

读取题目方法,使用Java语言中输入输出流的相关知识,将以.txt文件保存的试卷输入到中间页面布局的面板上。文件第一行为整套題目所给定的倒计时时间,以分隔符截取。使用线程睡眠每间隔1秒刷新一次,实现倒计时。读取题目则是以换行为间隔符实现,依次将每一行输出。

4.7校对答案方法

使用输入输出流将保存在文件中的答案依次读取,方法与读取文档类似。读取完毕后关闭文件流。

4.8线程的运行与中断方法

本题实现倒计时与考试系统并发执行的理论基础是采用多线程的相关知识,主线程即main方法里的各个函数的实现,子线程则是支持倒计时功能的函数。线程睡眠时间为1000毫秒,即每1秒刷新一次,同时添加同步锁的机制,使得多线程运行更协调。中断线程可在时间片用完后执行stopRun()方法。

5 系统测试

5.1 登录注册页面实现

5.2 用户界面实现

6 设计总结

本课题的顺利完成,首先连接数据库实现用户注册和保存记录登录的功能,整体界面使用null结构布局,空布局容器可以准确地定位组件在容器中的位置和大小setBounds(int a,int b,int width,int height)的方法是所有组件都拥有的一个方法,组建调用该方法可以设置本身的大小和在容器中的位置。同时使用各组件、架构、标签等丰富界面,完成用户交互界面设计。

在功能实现方面,使用Java多线程实现,及支持多个线程同时运行,如:计时与考试模块同时运行,在设置进程同步的同时,又使用同步锁防止多线程运行的混乱,从而支持多种功能在同一系统下的可操作性、可实用性。监听事件是本系统功能得以实现的重要部分,使用getSources()方法监听触发的是哪个按钮,从而依次调用相关的方法。

本课题的设计收获在于补充学习了课堂之外的页面布局的编程知识,同时能将多线程的知识灵活运用到系统设计中,更巩固了相关的编程基础知识。

参考文献:

[1] 刘丽霞.基于SQLServer的数据库技术及应用[M].西安:西北工业大学出版社,2007.

[2] 李春葆.数据结构教程 [M]. 5版.北京:清华大学出版社,2017.

[3] 耿祥义,张跃平.Java大学实用教程[M]. 4版.北京:清华大学出版社,2017.

[4] 张剑飞.Java EE开发技术[M].黑龙江: 哈尔滨工业大学出版社,2013.

【通联编辑:谢媛媛】

猜你喜欢
软件设计
基于单片机SPCE061A的字幕机点阵式字母电子显示屏的设计制作