亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 附錄b例子.txt

?? 這是JAVA2實用教程(第二版)的所有示例
?? TXT
字號:
(1) 客戶端程序:

import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
//輸入考號的文本框,通過鍵盤事件限制考生只能輸入數字:

class 考號文本框 extends TextField implements KeyListener
 {考號文本框(int n)
          {super(n);                      //調用父類的構造方法確定文本框的長度。
           this.addKeyListener(this);  //增加鍵盤監視器。
          }
  public void keyPressed(KeyEvent e)//通過實現KeyListener接口限制客戶的輸入//范圍。 
         {  int c=e.getKeyCode();
            boolean b1=(c<'0'||c>'9'),
            b2=(c!='.'),
            b3=(c!=KeyEvent.VK_BACK_SPACE);
            if(b1&&b2&&b3)  //判斷是否輸入了非數字字符。
                  {String temp=
this.getText().substring(0,this.getText().indexOf(c));
                    this.setText(temp);
                   } 
         }
  public void keyTyped(KeyEvent e)
         {
         }
  public void keyReleased(KeyEvent e)
         {
         }
 }
 /*答題卡,一個答題卡中有A、B、C、D供選擇使用,并通過ItemEvent事件
   記錄考生的選擇。
 */
class 答題卡 extends Panel implements ItemListener
 { Checkbox box_a,box_b,box_c,box_d; // 代表答題卡中A、B、C、D選項的對象。
   Label label;
   int number;                       //答題卡中的試題題號。
   CheckboxGroup group;             //答題為單項選擇題。
   String answer="?";                //記錄被選擇的答案。
   答題卡()
         { number=0;
           group=new CheckboxGroup();
           box_a=new Checkbox("A",false,group);
           box_b=new Checkbox("B",false,group);
           box_c=new Checkbox("C",false,group);
           box_d=new Checkbox("D",false,group);
           box_a.addItemListener(this);
           box_b.addItemListener(this);
           box_c.addItemListener(this);
           box_d.addItemListener(this);
           label=new Label("("+number+")");
           add(label); add(box_a); add(box_b); 
add(box_c); add(box_d);
         }
   
  //通過實現ItemListener接口獲取考生的選擇:
   public void itemStateChanged(ItemEvent e)
        { Checkbox box=(Checkbox)e.getItemSelectable();//獲取事件源。
          answer=box.getLabel();                    //獲取選項的名字。
          box.setFont(new Font("Courier",Font.BOLD,18));
          box.setForeground(Color.red);   //用特殊顏色和字體顯示被選擇的答案。
          
          if(box_a!=box)                        //未被選中的保持原來的顏色和字體。
                       {box_a.setFont(
new Font("TimesRoman",Font.PLAIN,12));
                          box_a.setForeground(Color.black);  
                       }
          if(box_b!=box){box_b.setFont(
new Font("TimesRoman",Font.PLAIN,12)); 
                           box_b.setForeground(Color.black);   
                        }
          if(box_c!=box){box_c.setFont(
new Font("TimesRoman",Font.PLAIN,12));
                           box_c.setForeground(Color.black);    
                        }
          if(box_d!=box){box_d.setFont(
new Font("TimesRoman",Font.PLAIN,12)); 
                           box_d.setForeground(Color.black);   
                        }
       }
 
 }
//主類,實現考試界面
public class ExaminationClient extends Applet
 implements Runnable,ActionListener
{ TextField  姓名=new TextField(10);       //輸入姓名的文本框。
  考號文本框 考號=new 考號文本框(18);   //輸入考號的文本框。
  TextArea 試題區=new TextArea();        //試題區。
  Socket socket=null;                     //和服務器建立連接的網絡套接字。
  DataInputStream in=null;         //通過套接字連接讀取服務器發送來的試題。
  DataOutputStream out=null;      //通過套接字提交給服務器考號、姓名、和答卷。
  Button 開始考試=new Button("開始考試"), 
         提交答卷=new Button("提交答卷");
  Thread thread=null;                  //通過一個單獨的線程讀取試題。
  答題卡 題卡[]=new 答題卡[21];         //制作答題卡用的數組。
  Choice choice=null;int N=0;
 public void init()
 { setLayout(null); 
   choice=new Choice();              //選擇一套考題。
   N=Integer.parseInt(getParameter("總數"));
   for(int i=1;i<=N;i++)//從web頁上獲取考題的名字。 
    {choice.add(getParameter(String.valueOf(i)));
    } 

   Panel p=new Panel();                    //制作答題卡用的面板。
   p.setLayout(new GridLayout(22,1));   //根據試題的要求制作答題卡。
        
        p.add(new Label("(一)選擇填空題(共10小題):"));
        for(int i=1;i<=10;i++)             
            { 題卡[i]=new 答題卡(); 
              題卡[i].label.setText("("+i+")");
              p.add(題卡[i]);
            }  
        p.add(new Label("(二)閱讀理解:"));
         for(int i=11;i<=15;i++)
            { 題卡[i]=new 答題卡(); 
              int m=i-10;
              題卡[i].label.setText("("+m+")");
              p.add(題卡[i]);
            }
        
   ScrollPane scroll=new ScrollPane();
   scroll.add(p);                     //將含有答題卡的面板放入一個滾動窗格中。
   
   add(scroll); 
   add(試題區);
   int height,width;
   height=getSize().height; width=getSize().width;
   //安排各個組件的位置:
   scroll.setBounds(0,32,2*width/5,height-65);
   試題區.setBounds(2*width/5+2,32,3*width/5-10,height-65);
   試題區.setEditable(false);

   Panel north=new Panel();
   Label L1=new Label("輸入姓名:",Label.CENTER);
   Label L2=new Label("輸入考號:",Label.CENTER);
   north.add(L1); 
   north.add(姓名);
   north.add(L2); 
   north.add(考號);
   north.add(new Label("選擇一套試題:")); 
   north.add(choice); 
   north.add(開始考試);
  
   add(north);
   north.setBounds(20,2,width-25,30);
   
   Panel south=new Panel();
   south.add(提交答卷);
   add(south);
   south.setBounds(2*width/5+2,height-35,3*width/5-4,30);

   開始考試.addActionListener(this);    //通過按扭事件通知服務器考試開始。
   提交答卷.addActionListener(this);    //通過按扭事件提交答卷。
  
 }
 public void start()
 { 
  if (thread==null)
   {thread=new Thread(this);           //創建用于讀取服務器信息的線程。
    thread.setPriority(Thread.MIN_PRIORITY);
    thread.start();                   
   }
 }
 public void run()
 {String s=null;
      try
         {socket=new Socket(this.getCodeBase().getHost(), 6331);
          in=new DataInputStream(socket.getInputStream());
          out=new DataOutputStream(socket.getOutputStream());
         } 
      catch (IOException e){}
      while(true)                      //讀取服務器發來的試題。 
         {     try
                 {s=in.readUTF(); 
                  if(s!=null)
                           {試題區.append(s+"\n");
                           }
                 }
              catch (IOException e) 
                 {姓名.setText("已經和服務器斷開");
                  break; 
                 }
         }
 }
 public void actionPerformed(ActionEvent e)  //通過該按扭事件通知考試開始,
                                                     //以便服務器發送試題給考生。
 {if (e.getSource()==開始考試)
     {   //驗證是否輸入了姓名和考號:
         String name1="必須輸入姓名";
         String kaohao1="必須輸入考號";
         name1=姓名.getText()+name1;
         kaohao1=考號.getText()+kaohao1;
         if (name1.startsWith("必須輸入姓名")||
kaohao1.startsWith("必須輸入考號"))
                 {姓名.setText("必須輸入姓名");
                  考號.setText("必須輸入考號");
                 } 		      
         else{
              try{//將所選的試題題目發給服務器: 
                  out.writeUTF("start:"+choice.getSelectedItem());
                 }
              catch(IOException e1)
                 {
                 } 
             }
                       
     }
  if (e.getSource()==提交答卷)              //通過該按扭事件提交答卷。
     {  StringBuffer s=new StringBuffer();
       
          for(int i=1;i<=15;i++)           //獲取考生的答案。
              { s.append(題卡[i].answer);
              }  
          try 
              { //將答卷、姓名、考號按著一定格式發送給服務器:
               out.writeUTF(new String(s)+
"#"+姓名.getText()+考號.getText()+"###");
              }
          catch(IOException e1){}
        開始考試.setEnabled(false);
        提交答卷.setEnabled(false);
          
     }
  }
}

(2)服務器端程序

import java.io.*;import java.net.*;
import java.util.*;
public class ExaminationServer 
{    public static void main(String args[])
    {ServerSocket server=null;
     Socket you=null;
     while(true) 
            {try
                  { server=new ServerSocket(6331);
                  }
             catch(IOException e1) 
                  {System.out.println("正在監聽");} 
             try  {
                   you=server.accept();          //接收客戶的套接字。
                  }
             catch (IOException e)
                  {System.out.println("正在等待客戶");
                  }
             if(you!=null) 
                  {
                  new Server_thread(you).start(); //為客戶服務的線程開始工作。
                  }
             else {
                   continue;
                  }
           }
  }
  
}
class Server_thread extends Thread
{  Socket socket=null;
   File file=null;
   DataOutputStream out=null;
   DataInputStream  in=null;int n=0;
   String huida=null;
   PrintStream file_out=null; 
   OutputStream out1=null;
   String buffer=null; 
   byte b[]=new byte[100];
   String 答案=null;
   int 得分=0;
   String 考試者=null;
  
    Server_thread(Socket t)
       { socket=t;
         try {in=new DataInputStream(socket.getInputStream());
              out1=socket.getOutputStream();    
              out=new DataOutputStream(out1);
             }
         catch (IOException e)
             {
             }
       }  
 public void run()        
  {  String s=null,s1=null; 
     while(true)
      {      
                 try{
                      s=in.readUTF();            //讀取客戶發來的信息。 
                      if(s.startsWith("start:")) //如果收到的開始考試信息。
                        {//獲取考生所選的試題題目:
                           String str=s.substring(s.indexOf(":")+1);
                           //建立到試題文件的輸入流:
                           BufferedReader file_in=
new BufferedReader(new FileReader(str));
                          try {//首先讀取試題文件的第一行,因為第一行是標準答案。
                               答案=file_in.readLine();
                               答案=答案.trim();
                               //然后將試題的其余部分發送給考生客戶:
                                while( (s1=file_in.readLine())!=null)
                                      {out.writeUTF(s1);
                                      }
                                file_in.close();
                              }
                           catch (IOException e) 
                              {
                              }
                         }             
                      if(s.endsWith("#")) //獲取考生提交的答卷,并評閱答卷:
                      {得分=0;
                          if(答案!=null)
                           {int n=s.indexOf("#"); //提交的答卷的結束位置
                            int m=s.indexOf("###");//姓名和考號的結束位置。
                            for(int i=0;i<10;i++)
                                if(s.charAt(i)==答案.charAt(i))     
                                      { 得分=得分+2; }
                            for(int i=10;i<=n-1;i++)
                                if(s.charAt(i)==答案.charAt(i))     
                                      {得分=得分+4; }
                    
                           考試者=s.substring(n+1,m);  //獲取考生的姓名和考號 
      //在當前目錄下創建一個子目錄:Student,用來存放各個考生的成績:
                            File dir=new File("Student");    
                            dir.mkdir();
                    
                            //根據考生的姓名、考號創建一個文件對象
file=new File(dir,考試者+".txt"); 
                 file_out=new PrintStream(
new FileOutputStream(file));
                            //將考生的姓名、考號和成績寫入文件:
                            file_out.println("考試者:"+考試者);
                            file_out.println("你的分數:"+得分);
                            file_out.println("你的答題:"+s.substring(0,n));
                            file_out.println("標準答案:"+答案);
                           }
                      }
                   
                   sleep(30);
                }
             catch(InterruptedException e)
                {
                }
             catch (IOException e) 
                {
                  System.out.println("客戶離開");
                      try{out.close();in.close();
                         }
                      catch (IOException e1){}
                   break;
                }
        }
  } 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女一区二区在线观看| 蜜臀精品一区二区三区在线观看| 日韩午夜小视频| 在线观看成人免费视频| 色香蕉成人二区免费| 99久久综合国产精品| 99久久精品免费观看| a级高清视频欧美日韩| 色就色 综合激情| 欧美亚洲自拍偷拍| 欧美精选在线播放| 久久综合久久鬼色| 国产精品久久久久久久久晋中| 国产精品人人做人人爽人人添| 国产精品大尺度| 亚洲午夜精品在线| 精品午夜久久福利影院| 成人夜色视频网站在线观看| 91蜜桃在线免费视频| 欧美日韩精品三区| 精品精品欲导航| 国产日韩精品视频一区| 亚洲自拍欧美精品| 精品一区二区三区av| 成人综合在线网站| 欧美日韩性生活| 久久这里只有精品6| 自拍av一区二区三区| 免费高清视频精品| 91丝袜美女网| 日韩欧美成人一区二区| 最新国产精品久久精品| 视频一区欧美日韩| 丰满白嫩尤物一区二区| 欧美日韩视频在线第一区| 久久亚洲一区二区三区明星换脸| 亚洲美腿欧美偷拍| 韩日欧美一区二区三区| 91国偷自产一区二区使用方法| 日韩欧美区一区二| 亚洲一区免费在线观看| 懂色av一区二区三区免费观看| 欧美色倩网站大全免费| 国产精品免费网站在线观看| 美女精品自拍一二三四| 日本高清不卡一区| 中文在线免费一区三区高中清不卡| 视频一区中文字幕国产| 91色porny蝌蚪| 国产色产综合色产在线视频 | 国产高清亚洲一区| 成人app软件下载大全免费| 欧美xingq一区二区| 亚洲国产综合91精品麻豆| 国产成人免费在线观看| 日韩欧美成人激情| 日韩精品午夜视频| 欧美日韩在线播| 亚洲欧美色一区| 欧美日韩国产高清一区二区三区| 久久久久久免费网| 美女在线视频一区| 欧美一二三在线| 日韩国产欧美一区二区三区| 欧美在线制服丝袜| 亚洲精品水蜜桃| 一本一本大道香蕉久在线精品| 国产精品视频免费看| 国产超碰在线一区| 欧美激情中文字幕一区二区| 国产一区二区不卡| 久久久久一区二区三区四区| 精品在线一区二区| 精品免费视频一区二区| 麻豆极品一区二区三区| 精品91自产拍在线观看一区| 国产综合色在线| 国产精品少妇自拍| 99久久国产综合精品麻豆| 亚洲色图在线播放| 一本一道久久a久久精品| 亚洲自拍偷拍麻豆| 欧美顶级少妇做爰| 激情五月婷婷综合| 亚洲国产高清在线| 91麻豆精品视频| 亚洲国产中文字幕在线视频综合| 91精品国产综合久久久久久漫画| 日日摸夜夜添夜夜添精品视频| 欧美一区二区三区影视| 国产一区二区精品久久99| 国产精品青草综合久久久久99| 99r精品视频| 天天综合色天天| 2020国产成人综合网| 成人爱爱电影网址| 亚洲高清久久久| 亚洲精品一线二线三线无人区| 国产 欧美在线| 亚洲一二三区在线观看| 欧美一区二区三区四区视频| 九九视频精品免费| 国产精品二三区| 欧美精品国产精品| 国产乱码精品一区二区三区忘忧草| 国产精品麻豆久久久| 欧美日韩精品是欧美日韩精品| 国产主播一区二区| 亚洲无线码一区二区三区| 日韩美女视频在线| 一本久久a久久免费精品不卡| 日韩电影在线观看电影| 国产精品视频麻豆| 欧美一级专区免费大片| 99精品欧美一区二区三区小说| 日本不卡123| 日韩理论片在线| 欧美tickle裸体挠脚心vk| 99精品视频免费在线观看| 精品制服美女久久| 亚洲午夜精品久久久久久久久| 国产亚洲一本大道中文在线| 欧美日韩一级视频| 一本一道久久a久久精品| 国产九色sp调教91| 久久精品国产亚洲a| 一区二区三区不卡视频在线观看| 久久久久久久久久久久久女国产乱 | 中文字幕av一区二区三区| 91精品国产综合久久婷婷香蕉| 91美女片黄在线观看91美女| 国产乱码一区二区三区| 国产激情一区二区三区| 天堂av在线一区| 亚洲欧美日韩国产综合在线| 久久久一区二区| 欧美一区二区三区爱爱| 欧美性色黄大片| 色综合视频在线观看| 国产99久久久国产精品| 精品一区二区在线免费观看| 午夜国产不卡在线观看视频| 一区二区三区av电影| 最新国产成人在线观看| 国产精品久久久久一区| 国产色产综合产在线视频 | 国产精品一级片在线观看| 日本成人在线网站| 秋霞电影一区二区| 免费的成人av| 激情综合五月婷婷| 国产在线播精品第三| 国产一区二区三区精品欧美日韩一区二区三区 | 日本一区二区视频在线观看| 久久综合狠狠综合久久综合88 | 欧美日韩高清一区二区三区| 欧美午夜片在线观看| 一本大道久久精品懂色aⅴ| av在线一区二区三区| av不卡在线观看| 日本韩国欧美三级| 欧美日韩国产首页在线观看| 69堂国产成人免费视频| 日韩女优电影在线观看| 久久噜噜亚洲综合| 国产精品―色哟哟| 亚洲一区二区五区| 人人狠狠综合久久亚洲| 国产精品羞羞答答xxdd| jizz一区二区| 欧美日韩高清在线播放| 精品国产乱码久久久久久免费| 欧美国产成人在线| 亚洲乱码精品一二三四区日韩在线| 亚洲国产成人porn| 韩国v欧美v亚洲v日本v| 91日韩一区二区三区| 在线不卡中文字幕播放| 久久无码av三级| 亚洲精品高清在线观看| 老司机一区二区| 色综合天天狠狠| 精品国产欧美一区二区| 综合久久一区二区三区| 蜜臀av在线播放一区二区三区| 国产98色在线|日韩| 欧美日韩1区2区| 国产欧美日韩综合精品一区二区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲电影激情视频网站| 国产成人超碰人人澡人人澡| 欧美日韩一二区| 国产精品久久久久久久久免费桃花 | 国产亚洲精品资源在线26u| 一区二区三区在线免费观看| 另类欧美日韩国产在线| 色av成人天堂桃色av| 国产亚洲欧美日韩俺去了| 免费在线看成人av| 日本韩国精品在线|