当前位置: 代码迷 >> J2SE >> ITAT复赛试题答案(帮帮忙吧!该怎么解决
  详细解决方案

ITAT复赛试题答案(帮帮忙吧!该怎么解决

热度:190   发布时间:2016-04-24 02:28:27.0
ITAT复赛试题答案(帮帮忙吧!!!
3、 编写一个Java GUI应用程序,窗口标题为“GridLayout”,窗口布局如下图A所示,在图A窗口中单击任意一个Button,网格的划分方式会变化为图B;在图B窗口中单击任意一个Button,网格的划分方式会变化为图A。(25分)







(如果看不见图的话麻烦搜一下ITAT)http://www.itatedu.com/itatCompete/compete5/fiels5/Java4fs.htm

图A 图B
附加题:

5、 某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:
(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。手机随机放在其中一个盒子中。(n为自然数)
(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m<n)
(3)直到重新摸到0号盒子为止。
例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。
请编写一个完整的程序,随机输入n,m(m<n),程序分析手机有没有不被抽中的机会?如果有,概率是多少? (概率=不被抽中的可能数/n)(30分)

6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。(20分)(服务端程序和客户端程序分别命名为Server.java和Client.java)



------解决方案--------------------
第一题做了一下
Java code
import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class guiTest implements ActionListener{    private JFrame frame;    private JButton[] buttons;    private boolean flag;    public guiTest(){        flag=true;        frame=new JFrame();        frame.setLayout(new GridLayout(2,3));        buttons=new JButton[6];        for(int i=0;i<6;i++){            buttons[i]=new JButton(i+"");buttons[i].addActionListener(this);            frame.add(buttons[i]);        }                frame.setSize(400,300);        frame.setLocation(200,300);        frame.setVisible(true);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }    public static void main(String[] args) {        new guiTest();    }    @Override    public void actionPerformed(ActionEvent e) {        if(flag){            frame.repaint();            frame.setLayout(new GridLayout(3,2));            for(int i=0;i<6;i++){                frame.add(buttons[i]);            }            frame.setVisible(true);            flag=false;        }else{            frame.repaint();            frame.setLayout(new GridLayout(2,3));            for(int i=0;i<6;i++){                frame.add(buttons[i]);            }            frame.setVisible(true);            flag=true;        }                        }}
------解决方案--------------------
import java.util.*;
/*5、 某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下: 
(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。手机随机放在其中一个盒子中。(n为自然数) 
(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m <n) 
(3)直到重新摸到0号盒子为止。 
例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。 
请编写一个完整的程序,随机输入n,m(m <n),程序分析手机有没有不被抽中的机会?如果有,概率是多少? (概率=不被抽中的可能数/n)(30分)*/
public class Test3{
public static void main(String[] args) {
 
System.out.println("不被摸中的概率是:"+guess(5,3));
}
public static double guess(int n,int m){
boolean[] isHit=new boolean[n];
int count=0;//不被摸中的盒子数。
int currentBox=0;
int times=0;
System.out.println("被摸到的盒子编号为");
do{
System.out.println(currentBox);
isHit[currentBox]=true;
times++;
currentBox=(m*times)%n;
}while(currentBox!=0);
for(boolean b:isHit){
if(!b){
count++;
}
}
return (double)count/n;
}

}

------解决方案--------------------
Java code
import java.net.*;import java.io.*;public class SampleServer extends Thread{    static BufferedReader in;    static PrintWriter out;        public static void main(String[] arges)    {         try        {              int port = 5678;              //使用5678端口创建一个ServerSocket              ServerSocket mySocket = new ServerSocket(port);              //等待监听是否有客户端连接              Socket sk = mySocket.accept();              //接受从客户端过来的数据流              BufferedReader in = new BufferedReader(new InputStreamReader(sk.getInputStream ()));              //发送服务器端给客户端的数据流              PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sk.getOutputStream ())),true);                           // BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));             while(true)             {                 System.out.println ("客户端信息:"+in.readLine());                 out.println ("receive:I have accept your information");                  }         }         catch(Exception e)         {                 System.out.println("客户端已经退出!");         }                }            }import java.io.*;import java.net.*; public class SampleClient{    public static void main(String[] arges)     {        try        {              //获取一个IP。null表示本机             InetAddress addr = InetAddress.getByName(null);              //打开5678端口,与服务器建立连接             Socket sk = new Socket ("172.20.9.79", 5678);              //缓存输入             BufferedReader in = new BufferedReader(new InputStreamReader(sk.getInputStream ()));              //缓存输出             PrintWriter out = new PrintWriter (new BufferedWriter(new OutputStreamWriter(sk.getOutputStream ())),true);             //向服务器发送信息                          BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));             String str = "";             while(true)            {                 System.out.print("客户端:");                 str = buf.readLine();                 if(str.equals("end"))break;                 out.println (str);                 //接收服务器信息                 System.out.println ("服务器端信息:"+in.readLine ());            }        }        catch(Exception e)        {              System.out.println(e);        }    }}
  相关解决方案