3课程设计(实训)报告书

上传人:m**** 文档编号:510432572 上传时间:2023-09-29 格式:DOC 页数:19 大小:448.50KB
返回 下载 相关 举报
3课程设计(实训)报告书_第1页
第1页 / 共19页
3课程设计(实训)报告书_第2页
第2页 / 共19页
3课程设计(实训)报告书_第3页
第3页 / 共19页
3课程设计(实训)报告书_第4页
第4页 / 共19页
3课程设计(实训)报告书_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《3课程设计(实训)报告书》由会员分享,可在线阅读,更多相关《3课程设计(实训)报告书(19页珍藏版)》请在金锄头文库上搜索。

1、九江学院信息科学与技术学院java课程设计(实训)报告书 题 目: 动 物 换 位 专 业: 软 件 设 计 班 级: 信B0932 姓 名: 万燕华 学 号: 20914160215 同组人员: 董 世 云 杨 阳 指导老师: 陈 宵 设计时间: 11年 5 月30日 11年6月17日 目 录课程设计(实训)报告书11.课程设计(实训)计划32.系统需求分析与功能设计33. 总体设计84. 程序模块设计115. 技术难点与分析156. 系统测试157. 心得体会188. 参考文献181.课程设计(实训)计划序号 起止日期 工 作 内 容01 5月30日5月30日 完成基础代码02 5月31日

2、6月2日 完成代码的调试、检错03 6月3 日6 月3 日 完成代码结构功能分析04 6月7日 6 月10日 添加、调试程序附加功能代码05 6月13日6月13日 完成汇报PPT课件06 6月14日6月15日 代码后期综合调试、测试07 6月16日6月17日 项目后期整理工作2.1系统需求分析动物换位:用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃(跳跃不能超过两块石头);(1) 左边的动物能向右边移动,反之也一样。(2) 用户可以通过

3、单击界面上的按钮,让程序自动完成动物换位。(3) 可以同时的单击界面上提供的按钮,从新开始行的界面,和更换左右动物图片,(4) JAVA中图形类库包括AWT和Swing(5) 对于做好的框架必须给予对应的事件响应JAVA 中提供了AWT.event.*(6) 对于成绩的保存和显示是通过数据流保存在文件当中的JAVA对数据的操作通过java.io.*使用java语言设计,此游戏要求:(7) 对于做好的框架必须给予对应的事件响应JAVA 中提供了AWT.event.*(8) 对于成绩的保存和显示是通过数据流保存在文件当中的JAVA对数据的操作通过java.io.*功能设计动物换位有十一个类,九个功

4、能类分别:ChangeAnimalWindow.java(主类),R,ShowRecord.java.ChangAnimalwindow类之间的关系如图:2-1: 图2-1 2-2图2-2图2-3P图2-4图2-5图2-6图2-73. 总体设计1,界面设计含mian()2,菜单窗口:n menuGrade=new JMenu(选择级别);n menuImage=new JMenu(选择动物图像(JPG,GIF);n oneGradeItem=new JMenuItem(初级);n twoGradeItem=new JMenuItem(中级);n threeGradeItem=new JMenu

5、Item(高级);n leftIamge=new JMenuItem(左面动物的图像);n rightIamge=new JMenuItem(右面动物的图像); n defaultImage=new JMenuItem(左右面动物的默认图像);nn 创建构造方法antoMoveAnimal(),在调用:setPoint(point)方法将主类中point数组引用传递给antoMoveAnimal,就可以移动Window中的图片,n 当单击其中某个按钮:都会触发AutoMoveAnimal(ActionEvent)中的:bStar。bStop,bContinue,bClose4:排行榜处理类和S

6、howRecord类类负责提供保存成绩的界面负责提供显示的界面public void writeRecord(String key,String message)/ 方法的实现方法负责点击“显示成绩”按钮调用readAndShow方法和readAndShow方法负责取和显示文件的信息方法4, P5, Point的类主要是将Aniaml对象与stone对象放在point对象中。n public boolean equals(Point p)/判断:piont对象是否与参数p指定的point对象相同n 用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该

7、动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃(跳跃不能超过两块石头)4程序模块设计An 创建构造方法antoMoveAnimal(),在调用:setPoint(point)方法将主类中point数组引用传递给antoMoveAnimal,就可以移动Window中的图片,n 当单击其中某个按钮:都会触发AutoMoveAnimal(ActionEvent)中的:bStar。bStop,bContinue,bClosen autoMoveAnimal对象调用setStep()方法设置step对象中的数据ArrayList中存放“步骤

8、”、n setTitle(演示动物换位);n public void actionPerformed(ActionEvent e) /主触发事件n if(e.getSource()=time)n int start,end;n if(m=step.size();start=step.get(m);n end=step.get(m+1); autoMoveAnimal(start,end);n n private void autoMoveAnimal(int start,int end)自动演示算法n 用户可以通过单击界面上的按钮,让程序自动完成动物换位。nPn Point的类主要是将Ania

9、ml对象与stone对象放在point对象中。n public boolean equals(Point p)/判断:piont对象是否与参数p指定的point对象相同n if(p.getX()=this.getX()&p.getY()=this.getY()n /aniaml与stone对象坐标匹配n iconStone=new ImageIcon(stone.jpg);/stonen *: Pointd对象getX(),getY()方法是返回x轴y轴的坐标 ,HandleMouse.java(处理鼠标事件并相应时间)panel容器中的一个子类,同时实现了MouseListener和Acti

10、onListener接口,创建对象handleMouse是ChangeAnimalWindow类员之一,负责监视animal数组中Animal对象上的鼠标事件,当用户单击Animal对象时,handleMouse对象负责移动Animal对象有关算法,handleMouse类的主要成员变量,方法以及和changeAnimlWindow类组合:HandleMouse.java如图:3-1图3-1public class HandleMouse extends JPanel implements MouseListener,ActionListener /鼠标处理时间负责移动的算法 Point po

11、int;/point数组,用来存放ChangeAnimalWindow窗体中Point数组 ArrayList step;/存放移动“动物”的步骤 int spendTime=0;/记入用户移动“动物”的时间 javax.swing.Timer recordTime; boolean success=false,countTime=false; JTextField showTime;/文本框 String grade = null; HandleMouse(String grade)/文本框的显示 step=new ArrayList(); public void setPoint(Poin

12、t point)/导入对象 this.point=point;public void initStep() step.clear(); public void initSpendTime()/移动的开始时间的设置 public ArrayList getStep()return step;/存储“移动动物”步骤public void setCountTime(boolean b) countTime=b; /启动计时器主算法:n 用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方

13、的动物当前面的石头上,其它的该动物不跳跃(跳跃不能超过两块石头)public void mousePressed(MouseEvent e)n if(animal.getIsLeft()=true&m=point.length-2)判断左右动物是否成功的换位 if(pointm+1.isHaveAnimal()=false)/n animal.setLocation(pointm+1.getX()-w/2,pointm+1.getY()-h);n /确定Aniaml的位置,pointm+1.getx()-w/2,pointm+1.getY()-h :原来的Animal,stone坐标位置X-5/2,Y-1,n animal.setAtPoint(pointm+1); n pointm+1.setThisAnimal(animal);n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号