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

📄 examserver.java

📁 用JAVA编写的在线考试系统
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.math.*;
public class examserver {
	BufferedReader br=null;
	BufferedReader br1=null;
	BufferedReader br2=null;
	PrintWriter pw=null;
	BufferedWriter bw1=null;
	PrintWriter out=null;
	List l=new List();
	String line=null;
	void examframe(){
		Frame f=new Frame("考试系统");
		f.add(new Label("当前在线人数:"),BorderLayout.NORTH);
		f.add(l,BorderLayout.CENTER);
		Button csj=new Button("出试卷");
		csj.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				csjframe();
				}
			});
		Button fsj=new Button("发试卷");
		fsj.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				fsj();
				}
			});
		Panel p=new Panel();
		p.add(csj);
		p.add(fsj);
		f.add(p,BorderLayout.SOUTH);
		f.show(true);
		f.pack();
		}
	
	
		Checkbox xz=new Checkbox("选择题",false);
		Checkbox pd=new Checkbox("判断题",false);
		Checkbox tk=new Checkbox("填空题",false);
		Checkbox bc=new Checkbox("编程题",false);
		TextField xzj=new TextField();
		TextField xzjn=new TextField();
		TextField xzn=new TextField();
		TextField pdj=new TextField();
		TextField pdjn=new TextField();
		TextField pdn=new TextField();
		TextField tkj=new TextField();
		TextField tkjn=new TextField();
		TextField tkn=new TextField();
		TextField bcj=new TextField();
		TextField bcjn=new TextField();
		TextField bcn=new TextField();
		
		
	
	void csjframe() {
		Frame f=new Frame("出试卷");
		f.add(new Label("请选择题目类型及难易程度:"),BorderLayout.NORTH);
		Button exit=new Button("完成");
		exit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				csj();
					
				}
			});
		
		f.add(exit,BorderLayout.SOUTH);
		Panel p=new Panel();
		p.setLayout(new GridLayout(5,4));
		p.add(new Label("题型/难易"));
		p.add(new Label("简单"));
		p.add(new Label("较难"));
		p.add(new Label("困难"));
		p.add(xz);
		p.add(xzj);
		p.add(xzjn);
		p.add(xzn);
		p.add(pd);
		p.add(pdj);
		p.add(pdjn);
		p.add(pdn);
		p.add(tk);
		p.add(tkj);
		p.add(tkjn);
		p.add(tkn);
		p.add(bc);
		p.add(bcj);
		p.add(bcjn);
		p.add(bcn);
		f.add(p,BorderLayout.CENTER);
		f.show(true);
		f.pack();
		}
		
		
	
	void fsj(){
		
		try{
			
		br1=new BufferedReader(new FileReader("E:\\examsystem/sj.txt"));
		
		}catch(Exception e){}
		}	
	
		
	void csj(){
		try{
		String s="E:\\题库\\";
		
		if(xz.getState()){
		
			if(xzj.getText()!=null){
			s=s+"选择题\\简单题.txt";	
			br2=new BufferedReader(new FileReader(s));
		
			xt(xzj.getText());
		
			if(br2!=null) br2.close();
			}
			
			if(xzjn.getText()!=null){
			s=s+"选择题\\较难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(xzjn.getText());
			if(br2!=null) br2.close();
			}
		
			if(xzn.getText()!=null){
			s=s+"选择题\\困难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(xzn.getText());
			if(br2!=null) br2.close();
			}
			}
		
		if(pd.getState()){
			if(pdj.getText()!=null){
			s=s+"判段题\\简单题.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(pdj.getText());
			if(br2!=null) br2.close();
			}
			
			if(pdjn.getText()!=null){
			s=s+"判段题\\较难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(pdjn.getText());
			if(br2!=null) br2.close();
			}
		
			if(pdn.getText()!=null){
			s=s+"判段题\\困难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(pdn.getText());
			if(br2!=null) br2.close();
			}
	
			}
		if(xz.getState()){
			if(xzj.getText()!=null){
			s=s+"填空题\\简单题.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(xzj.getText());
			if(br2!=null) br2.close();
			}
			
			if(xzjn.getText()!=null){
			s=s+"填空题\\较难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(xzjn.getText());
			if(br2!=null) br2.close();
			}
		
			if(xzn.getText()!=null){
			s=s+"填空题\\困难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(xzn.getText());
			if(br2!=null) br2.close();
			}
		
			}	
		if(bc.getState()){
			if(bcj.getText()!=null){
			s=s+"编程题\\简单题.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(bcj.getText());
			if(br2!=null) br2.close();
			}
			
			if(bcjn.getText()!=null){
			s=s+"编程题\\较难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(bcjn.getText());
			if(br2!=null) br2.close();
			}
		
			if(bcn.getText()!=null){
			s=s+"编程题\\困难.txt";	
			br2=new BufferedReader(new FileReader(s));
			xt(bcn.getText());
			if(br2!=null) br2.close();
			}
		
			}	
		
			}catch(Exception e){}
		
		}
	//选题	
	void xt(String m){
		int a=0;
		String s=null;
		String line=null;
		double rnd=Math.random();
		try{
			 a=Integer.parseInt(m);
			}catch(NumberFormatException e){
			//e.printStackTrace();
			JOptionPane.showMessageDialog(null,"只能填数字");
			}
			try{
			bw1=new BufferedWriter(new FileWriter("E:\\examsystem/sj.txt"));
			out = new PrintWriter(bw1,true);
		for(int i=1;i<=a;i++){
			
			
			int num=(int)(rnd*10);
			s="第"+num+"题:";
		
			while(true){
				line=br2.readLine();
	
				//System.out.println(line);
				//if(line.equals(s)){
				out.println(line);
		
				//}
				if(line.equals("***")){
					 break;	
					 
				}
			
			}
		
			
		}//for
			}catch(Exception e){
				try{
					if(bw1!=null ) bw1.close();
					if(out!=null) out.close();
				}catch(Exception ee){}
				}
				
		}
	
	
	void serverconnect(){
		ServerSocket server=null;
		try{
			server=new ServerSocket(8888);
			while(true){
				Socket s=server.accept();
				br=new BufferedReader(new InputStreamReader(s.getInputStream()));
				l.add(br.readLine());
				
				pw=new PrintWriter(new OutputStreamWriter(s.getOutputStream()),true);
				
				while(!(line=br1.readLine()).equals("")){
			
					pw.println(line);
				
				}
				
						
				}
			}catch(Exception e){
			}finally{
					try{
						if(server!=null) server.close();
						if(br!=null) br.close();
						if(pw!=null) pw.close();
						if(br1!=null) br1.close();
						}catch(Exception e){}
					}
		}
					
	public static void main(String[] args){
		examserver es=new examserver();
		es.examframe();
		es.serverconnect();
		}
	}

⌨️ 快捷键说明

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