📄 examserver.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 + -