?? 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("考試系統(tǒng)");
f.add(new Label("當前在線人數(shù):"),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("發(fā)試卷");
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,"只能填數(shù)字");
}
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 + -