⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 englishtest.java

📁 模拟在线考试系统
💻 JAVA
字号:
//package kaoshi;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.swing.filechooser.*;
import javax.swing.filechooser.FileFilter;


 public class EnglishTest  implements ActionListener,Runnable
{
           JFrame JF;
           static JTextArea messageArea,questionArea;
           JButton button=new JButton("发放试卷");
           JButton button1=new JButton("查看成绩");
           JButton button2=new JButton("请选择试题文件");
      
           JCheckBox box[];
           JFileChooser filechooser=null;
           FileReader in=null;
           BufferedReader bread=null;
           File file=null;
     
            static  Socket socket1;
             static Thread t;
            static  BufferedReader inn; 
           static   PrintWriter outshiti;
           static PrintWriter outfenshu;
           static int Num=0;
           static String selection;
           static String correct;
           static  int score=0;
        
              public EnglishTest(Socket socket) 
              {
              	
              		socket1=socket;
              }
           
              public EnglishTest()
                {
                	
                
                	
                  JF=new JFrame();
                  JF.setBounds(60,40,660,460);
                 questionArea=new JTextArea(15,12);
           
                 questionArea.setFont(new Font("TimesRoman",Font.PLAIN,14));
                 questionArea.setForeground(Color.blue);
                 messageArea=new JTextArea(8,8);
                 messageArea.setForeground(Color.blue);
                 messageArea.setLineWrap(true);
                 messageArea.setWrapStyleWord(true);


                 Box boxh1=Box.createVerticalBox(),	boxh2=Box.createVerticalBox(),basebox=Box.createHorizontalBox();
                 boxh1.add(new JLabel("选择试题文件"));
                 boxh1.add(button2);

                 boxh1.add(new JScrollPane(messageArea));
                 boxh2.add(new JLabel("试题内容"));
                 boxh2.add(new JScrollPane(questionArea));
                 JPanel p2=new JPanel();
                 p2.add(button);
                 p2.add(button1);
          
                 boxh2.add(p2);
                 basebox.add(boxh1);
                 basebox.add(boxh2);
                  JF.getContentPane().setLayout(new BorderLayout());
                JF.getContentPane().add(basebox,BorderLayout.CENTER);
                button2.addActionListener(this);
                button1.addActionListener(this);
                button.addActionListener(this);
                filechooser=new JFileChooser("E:\\");
                filechooser.setControlButtonsAreShown(true);
                filechooser.addChoosableFileFilter(new MyFileFilter("txt"));
                JF.show();

         }
         
         
         
          public static void main(String args[])
        {
        	
        	new EnglishTest();
        	try
             {
                   ServerSocket server=new ServerSocket(1680);
                   messageArea.append("\n"+"请选择试题文件");
                   
                   
                   for(int i=1;i<=4;i++)
                  {     
                         Socket socket=server.accept();
                        
                         messageArea.append("\n"+"已经与第" +i+ "个考生连接成功!!! 请发放试卷");
                         
                          t=new Thread(new EnglishTest(socket));
                  }
                  System.out.println("发送完毕");
                 // server.close();


              }catch (Exception e1){System.out.print("在第1个try处有异常");}

           
        }
         

//                        
         public void actionPerformed(ActionEvent e1)
         {
             int result;
             System.out.println(e1.getActionCommand());
             if (e1.getActionCommand()=="请选择试题文件")
             {

                 filechooser.setDialogTitle("open");
                 result = filechooser.showOpenDialog(JF);
                 if (result == JFileChooser.APPROVE_OPTION) {
                     file = filechooser.getSelectedFile();
                     messageArea.append("\n"+"本次考试的为:" + file.getName());
                     questionArea.setText(" ");
                 } else if (result == JFileChooser.CANCEL_OPTION) {
                     messageArea.append("您没有选择任何试题");
                 }

                 if (file != null)
                 {
                     String s;
                     try {
                         in = new FileReader(file);
                         bread = new BufferedReader(in);
                         correct=bread.readLine();
                         messageArea.append("\n" + "本套试题的正确答案是: " + correct);
                         
                         } catch (IOException e2) {System.out.print("在第2个try处有异常");}
                         
                         
                     try 
                     {

                         while ((s = bread.readLine()) != null)
                         {
                             questionArea.append("\n" + s);

                          }
                      }  catch (IOException e3) { System.out.println("在第3个try处有异常");  }
                       }
                       messageArea.append("\n"+"*****************************");
                       messageArea.append("\n"+"正等待考生的连接.......");
                    }
                    else if(e1.getActionCommand()=="发放试卷")
                    {  
                        t.start();

                    }
//                    else if(e1.getActionCommand()=="查看成绩")
//                    {
//                       
//                       messageArea.append("\n"+"成绩::"+ getScore());
//                       messageArea.append("\n"+"第" +mynum+"个考生的分数:"+ getScore());
//
//                    }



              }
              
            public void run()
              {
             	int mynum=++Num; 
             	int score=0;
              	String st;
              	try 
              	
                {
                	

                  	 inn=new BufferedReader(new InputStreamReader(socket1.getInputStream()));
                  
                     outshiti=new PrintWriter(socket1.getOutputStream()); 
                     
                    
                     outshiti.println(questionArea.getText());
                     outshiti.flush();
                     
                     
                     st=inn.readLine();
            	     messageArea.append("\n"+"来自第" +mynum+"个考生的答案:" +st);
            	       
           	         setSelection(st);
           	         
           	        
           	         score=getScore();
           	        // messageArea.append("\n"+"第" +mynum+"个考生的分数:"+ score);
           	         
           	         outshiti.println(score);
           	         outshiti.flush();
           	      
                       
         
           
                }catch(Exception e5){System.out.print("在第5个try处有异常");}

              }
              public void setSelection(String s)
              {
              	
              	selection=s;
              }
              public int getScore()
               {

                score=0;
              	int length1=selection.length();
              	int length2=correct.length();
              	int min =Math.min(length1,length2);
              	for(int i=0;i<min;i++)
              	{
              		try
              		
              		{
              			if(selection.charAt(i)==correct.charAt(i))
              			   score++;
              		}catch(Exception e6)
              		{
              			i=0;
              		}
              	}
              	return score;
               }

              
 }


 class MyFileFilter extends FileFilter
{
         String str;
         public MyFileFilter(String str)
         {
             this.str=str;
         }
         public boolean accept(File file)
         {
             if(file.isDirectory())
              return true;
              String filename=file.getName();
                 int index=filename.lastIndexOf('.');
                 if(index>0&&index<filename.length()-1)
                 {
                     String ss=filename.substring(index+1).toLowerCase();
                     if(ss.equals(str))
                         return true;
                 }
                 return false;
        }
         public String getDescription()
         {
             if(str.equals("txt")){return "TxtFile(*.txt)";}
             return "";
        }
 } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -