宋鎏鑫:知识竞赛答题系统
如图3.3所示通过用鼠标点击表格某行我们可以对该行用户进行删除,也可以进行密码修改。
运行程序界面如下:
图3.3显示所有用户
3.3题库管理功能
通过用户点击管理员菜单选项中的题库管理选项,进入题库管理中的分类管理界面。在分类管理界面中,管理员可以添加和删除分类。点击某个分类进入时可以对该分类中的试题进行增加,删除和修改等操作。
在题库管理模块的界面搭建方面我使用了JLabel标签组件、JButton按钮组件、JPanel面板组件等组件,通过注册按钮事件监听器,实现了对管理员操作的监听。通过JTable表格组件,能让管理员更直观的查看题库信息。
题库分类模块主要功能实现代码如下:
jb1.addActionListener(new ActionListener(){////////////////打开该分类中的题目 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 int number = (int)v.get(0); newAdmin_ABCD(number); jf.dispose(); } }); jb2.addActionListener(new ActionListener(){/////////////////添加新的分类
12
宋鎏鑫:知识竞赛答题系统
public void actionPerformed(ActionEvent e){ newAdmin_ABCFen(); jf.dispose(); } });
jb3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ jf.dispose(); newAdmin_Xuanxiang(); } });
jb4.addActionListener(new ActionListener(){//////////////////删除分类 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 int number = (int)v.get(0); AdminDao ad=new AdminDao(); Subject S=new Subject(); S.setNumber(number); ad.FenLei(S, 3); ad.FenLei(S, 2); reflushTable(); } });
题库分类管理模块主要SQL语句如下:
(1)添加新的分类
INSERT INTO subject (Number,SubjectName) values (\S.getSubjectName() + \
(2)删除该分类并删除该分类下的所有试题
delete from subject where Number='\
delete from exercisetable where SubjectName='\
题库试题模块主要功能实现代码如下:
jb1.addActionListener(new ActionListener(){////////////////增加题目 public void actionPerformed(ActionEvent e){ newAdmin_ABCZ(number); jf.dispose(); } }); jb2.addActionListener(new ActionListener(){///////////////////删除题目 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象
13
宋鎏鑫:知识竞赛答题系统
Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 Question Q=new Question(); Q.setAID((int)v.get(0)); AdminDao AD=new AdminDao(); AD.XiTi( Q, 2); reflushTable(number); } });
jb3.addActionListener(new ActionListener(){//////////////////修改题目 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 Question Q=new Question(); Q.setAID((int)v.get(0)); Q.setQuestion((String)v.get(1)); Q.setA((String)v.get(2)); Q.setB((String)v.get(3)); Q.setC((String)v.get(4)); Q.setD((String)v.get(5)); Q.setAnswer((String)v.get(6)); Q.setScores((int)v.get(7)); Q.setSubjectName(number); newAdmin_ABCX(Q); jf.dispose(); } }); (1)试题的添加
试题管理模块主要SQL语句如下:
INSERT INTO exercisetable (ExerciseID,Question,A,B,C,D,Answer,SubjectName,Score) values(\+ Q.getAID() + \+ Q.getD() + \(2)试题的删除
delete from exercisetable where ExerciseID='\
我们在进入试题管理模块首先看到的是试题分类界面如图3.4所示,选择想要查看的分类,然后进入查看即可看到试题内容,并可以对试题内容进行增加,删除和修改等操作。如图3.5,3.6所示
14
宋鎏鑫:知识竞赛答题系统
运行程序界面如下:
图3.4试题分类界面
图3.5试题显示界面
15
宋鎏鑫:知识竞赛答题系统
图3.6试题添加界面
3.4试卷管理功能
管理员通过点击试卷管理功能模块的按钮,就可以看到不同分类和不同分类下的卷子数量,点击其中一个类别进去就可以看到该类别下的试卷。在该界面下我们可以添加试卷,也可以对试卷进行删除。
试卷模块主要功能实现代码如下:
jb.addActionListener(new ActionListener() {//////////////// 查看试卷 public void actionPerformed(ActionEvent e) { int row = table.getSelectedRow(); Vector v = (Vector) datamodel.getDataVector().get(row); int ID = (int) v.get(0); new Paper_Look(ID, number);///// 显示该分类中的试卷
jf.dispose(); } });
jb1.addActionListener(new ActionListener() {//////////////// 添加试卷
16