版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、九江学院信息科学与技术学院?java?课程设计实训报告书 题 目: 动 物 换 位 专 业: 软 件 设 计 班 级: 信B0932 姓 名: 万燕华 学 号: 20914160215 同组人员: 董 世 云 杨 阳 指导老师: 陈 宵 设计时间: 11年 5 月30日 11年6月17日 目 录 HYPERLINK l _Toc202177965 ?课程设计实训报告书 PAGEREF _Toc202177965 h 1 HYPERLINK l _Toc202177966 1.课程设计实训方案 PAGEREF _Toc202177966 h 3 HYPERLINK l _Toc202177967
2、 2.系统需求分析与功能设计 PAGEREF _Toc202177967 h 3 HYPERLINK l _Toc202177968 3. 总体设计8 HYPERLINK l _Toc202177970 4. 程序模块设计11 HYPERLINK l _Toc202177971 5. 技术难点与分析15 HYPERLINK l _Toc202177972 6. 系统测试15 HYPERLINK l _Toc202177973 7. 心得体会18 HYPERLINK l _Toc202177974 8. 参考文献181.课程设计实训方案序号 起止日期 工 作 内 容01 5月30日5月30日 完
3、成根底代码02 5月31日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系统需求分析动物换位:用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃跳跃不能超过两块石头;左边的动物能向右边移动,反之也一样。用户可
4、以通过单击界面上的按钮,让程序自动完成动物换位。可以同时的单击界面上提供的按钮,从新开始行的界面,和更换左右动物图片,JAVA中图形类库包括AWT和Swing对于做好的框架必须给予对应的事件响应JAVA 中提供了AWT.event.*对于成绩的保存和显示是通过数据流保存在文件当中的JAVA对数据的操作通过java.io.*使用java语言设计,此游戏要求:对于做好的框架必须给予对应的事件响应JAVA 中提供了AWT.event.*对于成绩的保存和显示是通过数据流保存在文件当中的JAVA对数据的操作通过java.io.*功能设计动物换位有十一个类,九个功能类分别:ChangeAnimalWind
5、ow.java(主类),R,ShowRecord.java.ChangAnimalwindow类之间的关系如图:2-1: 图2-1 2-2图2-2图2-3P图2-4图2-5图2-6图2-73. 总体设计1,界面设计含mian2,菜单窗口:menuGrade=new JMenu(选择级别); menuImage=new JMenu(选择动物图像(JPG,GIF); oneGradeItem=new JMenuItem(初级); twoGradeItem=new JMenuItem(中级); threeGradeItem=new JMenuItem(高级); leftIamge=new JMenu
6、Item(左面动物的图像); rightIamge=new JMenuItem(右面动物的图像); defaultImage=new JMenuItem(左右面动物的默认图像);创立构造方法antoMoveAnimal,在调用:setPointpoint方法将主类中point数组引用传递给antoMoveAnimal,就可以移动Window中的图片, 当单击其中某个按钮:都会触发AutoMoveAnimalActionEvent中的:bStar。bStop,bContinue,bClose4:排行榜处理类和ShowRecord类类负责提供保存成绩的界面负责提供显示的界面public void
7、writeRecord(String key,String message)/ 方法的实现方法负责点击“显示成绩按钮调用readAndShow方法和readAndShow方法负责取和显示文件的信息方法PPoint的类主要是将Aniaml对象与stone对象放在point对象中。public boolean equals(Point p)/判断:piont对象是否与参数p指定的point对象相同用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳
8、跃跳跃不能超过两块石头4程序模块设计A创立构造方法antoMoveAnimal,在调用:setPointpoint方法将主类中point数组引用传递给antoMoveAnimal,就可以移动Window中的图片, 当单击其中某个按钮:都会触发AutoMoveAnimalActionEvent中的:bStar。bStop,bContinue,bCloseautoMoveAnimal对象调用setStep方法设置step对象中的数据ArrayList中存放“步骤、setTitle(演示动物换位);public void actionPerformed(ActionEvent e) /主触发事件 i
9、f(e.getSource()=time) int start,end; if(m=step.size();start=step.get(m); end=step.get(m+1); autoMoveAnimal(start,end); private void autoMoveAnimal(int start,int end自动演示算法用户可以通过单击界面上的按钮,让程序自动完成动物换位。PPoint的类主要是将Aniaml对象与stone对象放在point对象中。public boolean equals(Point p)/判断:piont对象是否与参数p指定的point对象相同if(p.
10、getX()=this.getX()&p.getY()=this.getY()/aniaml与stone对象坐标匹配iconStone=new ImageIcon(stone.jpg);/stone*: Pointd对象getX(),getY()方法是返回x轴y轴的坐标 ,HandleMouse.java处理鼠标事件并相应时间panel容器中的一个子类,同时实现了MouseListener和ActionListener接口,创立对象handleMouse是ChangeAnimalWindow类员之一,负责监视animal数组中Animal对象上的鼠标事件,当用户单击Animal对象时,hand
11、leMouse对象负责移动Animal对象有关算法,handleMouse类的主要成员变量,方法以及和changeAnimlWindow类组合:HandleMouse.java如图:3-1图3-1public class HandleMouse extends JPanel implements MouseListener,ActionListener /鼠标处理时间负责移动的算法 Point point;/point数组,用来存放ChangeAnimalWindow窗体中Point数组 ArrayList step;/存放移动“动物的步骤 int spendTime=0;/记入用户移动“动物
12、的时间 javax.swing.Timer recordTime; boolean success=false,countTime=false; JTextField showTime;/文本框 String grade = null; HandleMouse(String grade)/文本框的显示 step=new ArrayList(); public void setPoint(Point point)/导入对象 this.point=point;public void initStep() step.clear(); public void initSpendTime()/移动的开始
13、时间的设置 public ArrayList getStep()return step;/存储“移动动物步骤public void setCountTime(boolean b) countTime=b; /启动计时器主算法:用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃跳跃不能超过两块石头public void mousePressed(MouseEvent e)if(animal.getIsLeft()=true&m=point.l
14、ength-2)判断左右动物是否成功的换位 if(pointm+1.isHaveAnimal()=false)/ animal.setLocation(pointm+1.getX()-w/2,pointm+1.getY()-h);/确定Aniaml的位置,pointm+1.getx()-w/2,pointm+1.getY()-h :原来的Animal,stone坐标位置X-5/2,Y-1,animal.setAtPoint(pointm+1); pointm+1.setThisAnimal(animal); pointm+1.setIsHaveAnimal(true);/pointd数组获取A
15、nimal对象 startPoint.setIsHaveAnimal(false); step.add(m); step.add(m+1) public boolean isSuccess() boolean boo=true; int i=0; for(i=0;ipoint.length/2;i+) if(pointi.getThisAnimal().getIsLeft()=true |pointi+point.length/2+1.getThisAnimal().getIsLeft()=false) boo=false; break;/判断当左右动物位置是否正确交换左边的动物能向右边移动,
16、反之也一样, JOptionPane.showMessageDialog(this,您成功了!,消息框, JOptionPane.INFORMATION_MESSAGE );5. 技术难点分析与算法详解:1,为什么HondleMouse鼠标事件panel容器中的一个子类,同时实现了MouseListener和ActionListener接口,创立对象handleMouse是ChangeAnimalWindow类员之一,负责监视animal数组中Animal对象上的鼠标事件,当用户单击Animal对象时,handleMouse对象负责移动Animal对象有关算法,handleMouse类的主要成
17、员变量,方法以及和changeAnimlWindow类组合:2、为什么游戏者玩完游戏能将信息写入到“英雄榜中?actionPerformed(ActionEvent)方法是通过调用Record类实现的ActionListener接口中的方法,当用户单击“确定按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时,然后调用weiteRecord(String,String)方法将信息写入到“英雄榜中。3、为什么点“英雄榜都是显示最好成绩的前几名?actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击“
18、显示成绩按钮后,该方法被执行,该方法被执行,所执行的操作就是调用readAndShow()方法。readAndShow()方法负责读取存放在文件中的各个级别的动物最好成绩以及用户姓名,并显示这些相关信息。6.系统测试程序分为三个等级。用户可以通过界面上的菜单来选择“初级“中级“高级,“初级对于级别在水平线排列的七7块石头上的左右个3块相同的动物,中间的动物没有动物。“中级 对于级别在水平线排列的9块石头上的左右个4块相同的动物,中间的动物没有动物。“高级 对于级别在水平线排列的11块石头上的左右个5块相同的动物,中间的动物没有动物。用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃跳跃不能超过两块石头;1左边的动物能向右边移动,反之也一样。2用户可以通过单击界面上的按钮,让程序自动完成动物换位。3可以同时的单击界面上提供的按钮,从新开始行的界面,和更换左右动物图片,4用户可以通过单击界面上的按钮,可以看到用户的排行榜。5当点击“确定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- UPVC排水管安装方案
- 劳动报酬发放流程的标准化建设
- 夏季水上活动策划方案(3篇)
- 会员群体营销方案(3篇)
- 修订应急预案审批(3篇)
- 宴会推销营销方案(3篇)
- 内容营销增效方案(3篇)
- 批发卤肉营销方案(3篇)
- 春季赠礼活动方案策划(3篇)
- 校园建党活动策划方案(3篇)
- 西安亮丽电力集团有限责任公司招聘笔试题库2026
- 2025年云南省英语专升本真题及答案
- 《地理信息数据分类分级工作指南(试行)》
- 2026年及未来5年市场数据中国污水处理行业市场前景预测及投资战略数据分析研究报告
- 敦煌莫高窟唐代壁画-凹凸法-对印度笈多艺术的本土化改造-基于2024年敦煌研究院多光谱扫描与阿旃陀石窟对比
- 2025年东北大学材料工程复试笔试及答案
- 牙科护士配台流程培训
- 消防绳索救援技术培训
- 2025年事业单位口腔招聘考试题及答案
- 新员工入职安全培训考核试卷及答案(工贸企业)
- 阀门型号分类及应用手册
评论
0/150
提交评论