宋鎏鑫:知识竞赛答题系统
public void actionPerformed(ActionEvent e) { newPaper_Add(number); jf.dispose(); } });
jb3.addActionListener(new ActionListener() {//////////////// 删除试卷 public void actionPerformed(ActionEvent e) { // 获得当前用户选中的记录name int row = table.getSelectedRow(); // 获得该条选中的记录的Vector对象 Vector v = (Vector) datamodel.getDataVector().get(row); // TODO:获得这条记录中的第一个字段的值,即用户名 int ID = (int) v.get(0); Paper p = new Paper(); PaperDao PD = new PaperDao(); p.setPaperID(ID); PD.ShiJuan(p, 2); reflushTable(); } });
jb4.addActionListener(new ActionListener() {// 返回上级 public void actionPerformed(ActionEvent e) { jf.dispose(); newPaper_F(); } });
jb5.addActionListener(new ActionListener() {// 发布试卷//已收回 public void actionPerformed(ActionEvent e) { PaperDao pp=new PaperDao(); // 获得当前用户选中的记录name int row = table.getSelectedRow(); // 获得该条选中的记录的Vector对象 Vector v = (Vector) datamodel.getDataVector().get(row); String test=(String) v.get(4); if(test.equals(\已发布\ test=\ }else if(test.equals(\未发布\ test=\ }else{ JOptionPane.showMessageDialog(null, \本试卷已考过\消息提示\JOptionPane.INFORMATION_MESSAGE); } if(pp.FaBu()||test.equals(\ int ID = (int) v.get(0); Paper p=new Paper(); p.setPaperID(ID); p.setTest(test); pp.ShiJuan(p, 1); reflushTable(); }else{
JOptionPane.showMessageDialog(null, \已有试卷正在发布\消息提示\JOptionPane.INFORMATION_MESSAGE); } } });
17
宋鎏鑫:知识竞赛答题系统
jb1.addActionListener(new ActionListener(){////////////////添加试卷 public void actionPerformed(ActionEvent e){ PaperDaopd=new PaperDao(); int n= pd.getAllP().get (pd.getAllP().size()-1).getPaperID()+1; Paper p=new Paper(); p.setPaperID(n);//获得试卷ID p.setPaperName(tf1.getText());//获得试卷名字 SimpleDateFormatdf = new SimpleDateFormat(\设置日期格式 p.setJoinTime(df.format(new Date()));//获得出卷日期 p.setExerciseID(tf2.getText());//获得所选试题 p.setSubjectName(number);//获得分类 p.setTime(Integer.parseInt(tf4.getText())); pd.ShiJuan(p,0); jf.dispose(); newPaper_LieBiao(number); ///////////////////将P放入数据库中 } }); jb2.addActionListener(new ActionListener(){////////////////添加试题 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 int ID = (int)v.get(0); if(n==0){ s=ID+\ n=n+1; }else{ s=tf2.getText()+\ } tf2.setText(s); } });
试卷管理模块主要SQL语句如下:
(1)获取所有试卷 select * from testpapertable
(2)获取分类试卷
select * from testpapertable where SubjectName=\
(3)得到已经发布的试卷
select * from testpapertable where test='1'
(4)新增试卷
INSERT INTO testpapertable (PaperID,PaperName,SubjectName,JoinTime,ExerciseID,test,time) values (\P.getJoinTime()+ \
(5)修改试卷
18
宋鎏鑫:知识竞赛答题系统
UPDATE testpapertable SET test= '\ wherePaperID= '\
(6)删除试卷
delete from testpapertable where PaperID='\
管理员通过点击试卷分类界面(如图3.7)的某个分类,可以进入该分类下的试卷界面(如图3.8),我们可以发布和收回该分类中的某个试卷,也可以添加新的试卷(如图3.9)和删除试卷。
运行程序界面如下:
图3.7试卷分类界面
图3.8试卷显示界面
19
宋鎏鑫:知识竞赛答题系统
图3.9添加试卷界面
3.5成绩管理功能
通过进入该模块管理员可以查看用户成绩,用户也可以查看自己所考过试卷的成绩。其中我们使用JTable组件,方便我们对用户成绩进行观看和查询。
成绩模块主要功能实现代码如下:
public class Degree_Paper { static Vector result; static Vector title; staticDefaultTableModeldatamodel; Degree_Paper(){ JFramejf = new JFrame(\试卷详情\ JPaneljp = new JPanel(); JButtonjb = new JButton(\查看成绩\ JButton jb1 = new JButton(\返回上级\ String[] t = new String[] { \卷子编号\卷子名称\创建时间\ //////////// 表格构建 result = new Vector(); title = new Vector(Arrays.asList(t)); datamodel = new DefaultTableModel(result, title); JTable table = new JTable(datamodel); JScrollPanescrollTable = new JScrollPane(table); reflushTable(); jp.add(jb);
20
宋鎏鑫:知识竞赛答题系统
jp.add(jb1); jf.add(scrollTable); jf.add(jp, BorderLayout.SOUTH); jf.setSize(600, 450); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE); jf.setVisible(true); 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 Degree_User(ID); ///// 显示该试卷做题的结果 jf.dispose(); } }); jb1.addActionListener(new ActionListener() {//////////////// 返回上级 public void actionPerformed(ActionEvent e) { jf.dispose(); newAdmin_Xuanxiang(); } }); } /////////// 刷新表格 public void reflushTable() { PaperDao PD = new PaperDao(); ArrayList
public class Degree_User { static Vector result; static Vector title; staticDefaultTableModeldatamodel; staticint N; Degree_User(int N){ this.N=N; JFramejf = new JFrame(\试卷答题成绩\ JPaneljp = new JPanel(); JButton jb3 = new JButton(\返回上级\ String[] t = new String[] { \用户ID\用户名\成绩\ //////////// 表格构建 result = new Vector(); title = new Vector(Arrays.asList(t)); datamodel = new DefaultTableModel(result, title); JTable table = new JTable(datamodel); JScrollPanescrollTable = new JScrollPane(table);
21