java无纸化考试系统,大学英语四六级,计算机二三级,自己完成的独立源码

来源:互联网 发布:ios7.1 软件自动更新 编辑:程序博客网 时间:2024/06/02 09:40

package com.mingrui.english;

import java.awt.*;

import java.awt.event.*;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.PrintWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

import javax.swing.*;

import javax.swing.border.Border;

import javax.swing.border.TitledBorder;

importjavax.swing.event.TableModelListener;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;

public class MyTest extends JFrame{

 

         /**

          *

          */

         privatestatic final long serialVersionUID = 1L;

         /**

          * @param args

          */

         JComboBox<String>jcbPaper;

         JComboBox<String>jcbAnswer;

         JTextAreajta = newJTextArea("-----------------------------------------------------------",100,60);

         JTabletableChose=new JTable();

         JTabletableFinal=new JTable();

         TableChoseModeltcm=new TableChoseModel();

         TableFinalModeltfm=new TableFinalModel();

         JPaneljpdown=new JPanel();

         JPaneljpleft=new JPanel();

         JLabellabicon=new JLabel(new ImageIcon("img/mm.jpg"));

         JLabellabicon1=new JLabel(new ImageIcon("img/mm.jpg"));

         JSplitPanesplitpane;

         JSplitPanesplitpanewhole;

         Borderborder=new TitledBorder("题目区:");

         Borderborder1=new TitledBorder("答题区:");

         Borderborder2=new TitledBorder("功能区:");

         JButtonjbconfirm=new JButton("提交答案",new ImageIcon("img/7.gif"));

         JButtonjbanaly=new JButton("分析一下",new ImageIcon("img/68.png"));

         JButtonjbsave=new JButton("保存到文件",new ImageIcon("img/80.png"));

         JButtonjbanswer=new JButton("看看答案",new ImageIcon("img/155.png"));

         JLabeljlshowtime=new JLabel("现在时间是:0000-00-00 00:00:00");

         JLabeljlchosepaper=new JLabel("请选择你要答题的试卷:");

         JLabeljltimeremain=new JLabel("剩余时间是:00:00:00");

         Stringstr="";

         inttotaltime=30*60*1000;

         intdaan=10;

         MyTest(){

                   setSize(1280,700);

                   setLocationRelativeTo(null);

                   setDefaultCloseOperation(3);

                   setResizable(true);

                   jta.setBackground(newColor(16766274));

                   jpdown.setBackground(newColor(14172199));

                   jltimeremain.setBackground(Color.orange);

                   jbconfirm.setBackground(newColor(12514438));

                   Timertimer = new Timer(1000,new ActionListener()

                   {

                            publicvoid actionPerformed(ActionEvent e)

                            {

                                     str=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

                                     jlshowtime.setText("现在时间是:"+str);

                                     totaltime-=1000;

                                     Datedateremain=new Date(totaltime);

                                     inthour=totaltime/(1000*60*60);

                                     intmin=totaltime/(1000*60);

                                     intsec=totaltime%(1000*60);

                                     jltimeremain.setText("剩余时间是:"+hour+":"+min+":"+sec);

                                     if(totaltime==0)

                                               JOptionPane.showMessageDialog(null,"时间到,请停止答题");

                            }

                           

                   });

                   timer.start();

                   jcbPaper=newJComboBox<>(new String[]{"2012年六月","2012年十二月","2011年六月","2011年十二月",

                                     "2010年六月","2010年十二月","2009年六月","2009年十二月","2008年六月","2008年十二月"});

                   jcbPaper.addItemListener(newItemListener() {

                           

                            @Override

                            publicvoid itemStateChanged(ItemEvent e) {

                                     //TODO Auto-generated method stub

                                     if(e.getItem()=="2012年十二月"){

                                               Filef=new File("ti/1.ti");

                                               jta.setText("2012年十二月");

                                               daan=1;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2011年六月"){

                                               Filef=new File("ti/2.ti");

                                               jta.setText("2010年6月");

                                               daan=2;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2011年十二月"){

                                               Filef=new File("ti/3.ti");

                                               jta.setText("2010年12月");

                                               daan=3;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2010年六月"){

                                               Filef=new File("ti/4.ti");

                                               jta.setText("2010年6月");

                                               daan=4;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                              }

 

                                     }

                                     elseif(e.getItem()=="2010年十二月"){

                                               Filef=new File("ti/5.ti");

                                               jta.setText("2010年12月");

                                               daan=5;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2009年六月"){

                                               Filef=new File("ti/6.ti");

                                               jta.setText("2009年6月");

                                               daan=6;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2009年十二月"){

                                               Filef=new File("ti/7.ti");

                                               jta.setText("2009年12月");

                                               daan=7;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2008年六月"){

                                               Filef=new File("ti/8.ti");

                                               jta.setText("2008年6月");

                                               daan=8;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     elseif(e.getItem()=="2008年十二月"){

                                               Filef=new File("ti/9.ti");

                                               jta.setText("2008年12月");

                                               daan=9;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                                     else{

                                               Filef=new File("ti/10.ti");

                                               jta.setText("2012年6月");

                                               daan=10;

                                               try{

                                                        Scannerscan=new Scanner(f);

                                                        while(scan.hasNextLine()){

                                                                 Stringstrf=scan.nextLine();

                                                                 jta.append(strf+"\r\n");

                                                        }

                                                                

                                               }catch (FileNotFoundException e1) {

                                                        //TODO Auto-generated catch block

                                                        e1.printStackTrace();

                                               }

 

                                     }

                            }

                   });

                   jcbAnswer=newJComboBox<>(newString[]{"A","B","C","D"});

                   jcbPaper.setBackground(newColor(12514438));

                   jta.setSize(600,650);

                   jta.setLineWrap(true);

                   jta.setWrapStyleWord(true);

                   jta.setBorder(border);

                   tableChose.setModel(tcm);

                   tableFinal.setModel(tfm);

                   tableChose.getColumnModel().getColumn(5).setCellEditor(newDefaultCellEditor(jcbAnswer));

                   splitpane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,new JScrollPane(jta),newJScrollPane(tableChose));

                   splitpane.setBorder(border1);

                   splitpane.setBackground(newColor(15453926));

                   tableChose.setBackground(newColor(244447));

                   add(splitpane,BorderLayout.CENTER);

                   //add(jpup,BorderLayout.CENTER);

                   jpdown.setLayout(newGridLayout(1, 5));

                   jpdown.add(jlchosepaper);

                   jpdown.add(jcbPaper);

                   jpdown.add(jlshowtime);

                   jpdown.add(jltimeremain);

                   jpdown.add(jbconfirm);

                   add(jpdown,BorderLayout.SOUTH);

                   tableFinal.setSize(200,300);

                   //jpleft.add(newJScrollPane(tableFinal),BorderLayout.CENTER);

                   jbsave.setBackground(newColor(4322213));

                   jbanaly.setBackground(newColor(4322213));

                   jbanswer.setBackground(newColor(4322213));

                   jbanswer.addActionListener(newActionListener() {

                           

                            @Override

                            publicvoid actionPerformed(ActionEvent e) {

                                     //TODO Auto-generated method stub

                                     try{

                                               newAnswerGui(daan);

                                     }catch (FileNotFoundException e1) {

                                               //TODO Auto-generated catch block

                                               e1.printStackTrace();

                                     }

                            }

                   });

                   jbconfirm.addActionListener(newActionListener() {

                           

                            @Override

                            publicvoid actionPerformed(ActionEvent e) {

                                     Filefdaan=new File("reso/"+daan+".res");

                                     try{

                                               //Scannerscan=new Scanner(fdaan);

                                               BufferedReaderbr=new BufferedReader(new FileReader(fdaan));

                                               Stringstr=br.readLine();

                                               Stringstrn[]=str.split(" ");

                                               intcountm=0;

                                               //char[]buf=new char[10];

                                               for(inti=0;i<7;i++){

                                                        if(tableChose.getValueAt(i,5)!=null&&tableChose.getValueAt(i, 5).equals(strn[i].trim()))

                                                                 countm++;

                                               }

                                               for(inti=0;i<25;i++){

                                                        if(tableChose.getValueAt(i+10,5)!=null&&tableChose.getValueAt(i+10, 5).equals(strn[i+7].trim()))

                                                                 countm++;

                                               }

 

                                               for(inti=0;i<10;i++){

                                                        if(tableChose.getValueAt(i+51,5)!=null&&tableChose.getValueAt(i+51, 5).equals(strn[i+32].trim()))

                                                                 countm++;

                                               }

 

                                               for(inti=0;i<20;i++){

                                                        if(tableChose.getValueAt(i+61,5)!=null&&tableChose.getValueAt(i+61, 5).equals(strn[i+42].trim()))

                                                                 countm++;

                                               }

                                               JOptionPane.showMessageDialog(null,"一共答对了"+countm+"道题");

                                     }catch (FileNotFoundException e1) {

                                               //TODO Auto-generated catch block

                                               e1.printStackTrace();

                                     }catch (IOException e1) {

                                               //TODO Auto-generated catch block

                                               e1.printStackTrace();

                                     }

                                    

                            }

                   });

                   jbsave.addActionListener(newActionListener() {

                           

                            @Override

                            publicvoid actionPerformed(ActionEvent e) {

                                     //TODO Auto-generated method stub                     

                                     try{

                                               Filefsav=new File("d:/k.sav");

                                               PrintWriterpw=new PrintWriter(fsav);

                                               if(JOptionPane.showConfirmDialog(null,"确认保存?")==0){

                                                        for(inti=0;i<100;i++){

                                                                 pw.print(tableChose.getValueAt(i,5));

                                                                 if(i%10==0)

                                                                           pw.println();

                                                        }

                                               }

                                               pw.close();

                                     }catch (FileNotFoundException e1) {

                                               //TODO Auto-generated catch block

                                               e1.printStackTrace();

                                     }

                                    

                                              

                            }

                   });

                   jpleft.setLayout(newGridLayout(3, 1));

                   jpleft.setBorder(border2);

                   jpleft.add(jbanaly);

                   jpleft.add(jbsave);

                   jpleft.add(jbanswer);

                   add(jpleft,BorderLayout.WEST);

                   setVisible(true);

         }

        

         publicstatic void main(String[] args) {

                   //TODO Auto-generated method stub

                   newMyTest();

         }

         publicvoid getSubject() throws FileNotFoundException{

                  

         }

         publicvoid getAnswer(){}

}

class TableChoseModel implementsTableModel{

 

         /**

          *

          */

         privatestatic final long serialVersionUID = 1L;

         String[][]myPos=new String[100][6];

         TableChoseModel(){

                   for(inti=0;i<100;i++){

                            for(intj=0;j<6;j++){

                                     if(j==0){

                                               intm=i+1;

                                               myPos[i][j]=String.valueOf(m);

                                     }

                                     elseif(j==1)

                                               myPos[i][j]="A";

                                     elseif(j==2)

                                               myPos[i][j]="B";

                                     elseif(j==3)

                                               myPos[i][j]="C";

                                     elseif(j==4)

                                               myPos[i][j]="D";

                                     elseif(j==1)

                                               myPos[i][j]="答案";

                            }

                   }

         }

         publicint getRowCount() {

                   //TODO Auto-generated method stub

                   return100;

         }

         @Override

         publicint getColumnCount() {

                   //TODO Auto-generated method stub

                   return6;

         }

         @Override

         publicString getColumnName(int columnIndex) {

                   //TODO Auto-generated method stub

                   Stringstr[]={"序号","A","B","C","D","提交答案"};

                   switch(columnIndex){

                   case0:return str[0];

                   case1:return str[1];

                   case2:return str[2];

                   case3:return str[3];

                   case4:return str[4];

                   default:returnstr[5];

                   }

                   //returnnull;

         }

         @Override

         publicClass<?> getColumnClass(int columnIndex) {

                   //TODO Auto-generated method stub

                   returnString.class;

         }

         @Override

         publicboolean isCellEditable(int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                   if(columnIndex==5)

                            returntrue;

                   else

                            returnfalse;

         }

         @Override

         publicObject getValueAt(int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                   returnmyPos[rowIndex][columnIndex];

         }

         @Override

         publicvoid setValueAt(Object aValue, int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                   myPos[rowIndex][columnIndex]=(String)aValue;

         }

         @Override

         publicvoid addTableModelListener(TableModelListener l) {

                   //TODO Auto-generated method stub

                  

         }

         @Override

         publicvoid removeTableModelListener(TableModelListener l) {

                   //TODO Auto-generated method stub

                  

         }

        

}

 

class TableFinalModel implementsTableModel{

 

         @Override

         publicint getRowCount() {

                   //TODO Auto-generated method stub

                   return20;

         }

 

         @Override

         publicint getColumnCount() {

                   //TODO Auto-generated method stub

                   return2;

         }

 

         @Override

         publicString getColumnName(int columnIndex) {

                   //TODO Auto-generated method stub

                   if(columnIndex==0)

                            return"我的输入";

                   else

                            return"答案";

         }

 

         @Override

         publicClass<?> getColumnClass(int columnIndex) {

                   //TODO Auto-generated method stub

                   returnString.class;

         }

 

         @Override

         publicboolean isCellEditable(int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                   returnfalse;

         }

 

         @Override

         publicObject getValueAt(int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                   return"A";

         }

 

         @Override

         publicvoid setValueAt(Object aValue, int rowIndex, int columnIndex) {

                   //TODO Auto-generated method stub

                  

         }

 

         @Override

         publicvoid addTableModelListener(TableModelListener l) {

                   //TODO Auto-generated method stub

                  

         }

 

         @Override

         publicvoid removeTableModelListener(TableModelListener l) {

                   //TODO Auto-generated method stub

                  

         }

        

}

 

 

package com.mingrui.english;

import java.awt.*;

import java.awt.Event.*;

import java.io.File;

import java.io.FileNotFoundException;

import java.util.Scanner;

 

import javax.swing.*;

public class AnswerGui extends JFrame{

         JTextAreajta=new JTextArea("答案", 100, 100);

         AnswerGui(inti) throws FileNotFoundException{

                   super("答案");

                   setSize(400,500);

                   //setDefaultCloseOperation(3);

                   setLocationRelativeTo(null);

                   setResizable(true);

                   jta.setLineWrap(true);

                   Filef=new File("ti/"+i+".daan");

                   Scannerscan=new Scanner(f);

                   while(scan.hasNextLine()){

                            Stringstr=scan.nextLine();

                            jta.append(str);

                            jta.append("\r\n");

                   }

                   add(newJScrollPane(jta),BorderLayout.CENTER);

                   setVisible(true);

         }

}