1、北京联合大学管理学院实 训 报 告专业 信息管理与信息系统班级 0911030202班 姓名 学号 指导教师 交表日期:2011年12月23日目 录1.项目名称12.任务分析13.知识点掌握14.能力点训练25.实践内容26.操作实施与结果107.结果分析118.个人总结111.项目名称编程实现简化的华容道游戏。2.任务分析编程实现简化的华容道游戏。一个4*5的棋盘中共有19个棋子和一个空位,棋子上分别有l到19的15个数字或A到S的19个字母。初始情况下把它们的次序打乱,用户点击空位旁边的某个棋子可以使它与空格换位;利用这个手段可以逐渐改变各棋子的顺序,直至使它们按照字典序排列好。3.知识点。

2、掌握(1)掌握JAVA语言编程的调试、编译、运行的知识点(2)掌握对选题的分析(3)掌握设计类和类层次的知识点(4)掌握确定方法和主要数据结构的知识点(5)掌握数据的存储表示与算法设计的知识点(6)掌握设计界面的知识点(7)掌握编写程序代码的知识点(8)掌握书写实践课程报告的知识点4.能力点训练(1)训练JAVA语言编程的调试、编译、运行的能力(2)训练分析选题的能力(3)训练设计类和类层次的能力(4)训练确定方法和主要数据结构的能力(5)训练数据的存储表示与算法设计的能力(6)训练设计界面的能力(7)训练编写程序代码的能力(8)训练书写实践课程报告的能力5.实践内容代码如下:import j。

3、ava.applet.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;public class MoveExample public static void main(String args) new Hua_Rong_Road();/AudioClip clip;class Person extends Buttonimplements FocusListener int number;Color c=new Color(255,245,170);Person(int number,。

4、String s) super(s);setBackground(c);this.number=number;c=getBackground();addFocusListener(this);public void focusGained(FocusEvent e) setBackground(Color.red);public void focusLost(FocusEvent e) setBackground(c);class Hua_Rong_Road extends Frame implements MouseListener,KeyListener,ActionListenerPer。

5、son person=new Person19;Button left,right,above,below;Button restart=new Button(重新开始);public Hua_Rong_Road() init();setBounds(100,100,320,360);setVisible(true);validate();addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););public void init() setLayout(nul。

6、l);add(restart);restart.setBounds(100,320,120,25);restart.addActionListener(this);String name=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,I;for(int k=0;kh/2) go(man,below);if(yw/2) go(man,right);public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent。

7、 e) public void mouseClicked(MouseEvent e) public void go(Person man,Button direction) boolean move=true;Rectangle manRect=man.getBounds();int x=man.getBounds().x;int y=man.getBounds().y;/clip=getAudioClip(getCodeBase(),yinyue.Wav);if(direction=below)y=y+50;/clip.play();/else if(direction=above)y=y-。

8、50;/clip.play();else if(direction=left)x=x-50;/clip.play();else if(direction=right)x=x+50;/clip.play();manRect.setLocation(x,y);Rectangle directionRect=direction.getBounds();for(int k=0;k19;k+) Rectangle personRect=personk.getBounds();if(manRect.intersects(personRect)&(man.number!=k) move=false;if(m。

9、anRect.intersects(directionRect) move=false;if(move=true) man.setLocation(x,y);public void actionPerformed(ActionEvent e) dispose();new Hua_Rong_Road();6.操作实施与结果实训结果如下图所示:7.结果分析实训的结果较好的实现了任务的要求,让一个4*5的棋盘中有19个棋子和一个空位,棋子上分别有l到19的15个数字或A到S的19个字母。初始情况下把它们的次序打乱,用户点击空位旁边的某个棋子可以使它与空格换位;利用这个手段可以逐渐改变各棋子的顺序,直至使它们按照字典序排列好。8.个人总结经过这次的实训,我对JAVA有了进一步的认识。在实训过程中也遇到了许多困难,例如按要求第一次写完代码之后,编译时出现了很多错误,其中最难的在于按钮的鼠标事件,后来在经过了数个小时的攻坚之后,终于解决。这次的实训时间较短,虽然编写出了一个程序,但对于自己来说,还需要进一步的深入理解和实践。