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

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

《3课程设计(实训)报告书.doc》由会员分享,可在线阅读,更多相关《3课程设计(实训)报告书.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

14、/2,Y-1,n animal.setAtPoint(pointm+1); n pointm+1.setThisAnimal(animal);n pointm+1.setIsHaveAnimal(true);/pointd数组获取Animal对象n startPoint.setIsHaveAnimal(false);n step.add(m);n step.add(m+1) public boolean isSuccess()n boolean boo=true; int i=0;n for(i=0;ipoint.length/2;i+) n if(pointi.getThisAnimal()

15、.getIsLeft()=truen |pointi+point.length/2+1.getThisAnimal().getIsLeft()=false)n boo=false;n break;/判断当左右动物位置是否正确交换n 左边的动物能向右边移动,反之也一样, n JOptionPane.showMessageDialog(this,您成功了!,消息框,n JOptionPane.INFORMATION_MESSAGE );5. 技术难点分析与算法详解:1,为什么HondleMouse鼠标事件panel容器中的一个子类,同时实现了MouseListener和ActionListener

16、接口,创建对象handleMouse是ChangeAnimalWindow类员之一,负责监视animal数组中Animal对象上的鼠标事件,当用户单击Animal对象时,handleMouse对象负责移动Animal对象有关算法,handleMouse类的主要成员变量,方法以及和changeAnimlWindow类组合:2、为什么游戏者玩完游戏能将信息写入到“英雄榜”中? actionPerformed(ActionEvent)方法是通过调用Record类实现的ActionListener接口中的方法,当用户单击“确定”按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时,然后调用w

17、eiteRecord(String,String)方法将信息写入到“英雄榜”中。3、为什么点“英雄榜”都是显示最好成绩的前几名? actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击“显示成绩”按钮后,该方法被执行,该方法被执行,所执行的操作就是调用readAndShow()方法。 readAndShow()方法负责读取存放在文件中的各个级别的动物最好成绩以及用户姓名,并显示这些相关信息。6.系统测试程序分为三个等级。用户可以通过界面上的菜单来选择“初级”“中级”“高级”,“初级”对于级别在水平线排列的七

18、7块石头上的左右个3块相同的动物,中间的动物没有动物。“中级” 对于级别在水平线排列的9块石头上的左右个4块相同的动物,中间的动物没有动物。“高级” 对于级别在水平线排列的11块石头上的左右个5块相同的动物,中间的动物没有动物。用鼠标单击一个动物,如果动物前方的石头上没有动物,该动物就可以跳跃到在该石头上,进行换位,如果该动物前方是投上有其他动物,但隔位上的石头上没有动物,该动物跳跃自己前方的动物当前面的石头上,其它的该动物不跳跃(跳跃不能超过两块石头);(1)左边的动物能向右边移动,反之也一样。(2)用户可以通过单击界面上的按钮,让程序自动完成动物换位。(3)可以同时的单击界面上提供的按钮,

19、从新开始行的界面,和更换左右动物图片,(4)用户可以通过单击界面上的按钮,可以看到用户的排行榜。(5)当点击“确定”按钮会有一个输入信息框,record你的游戏记入 (6)想查看排行榜单可从界面单击“选择级别”按钮可以看到用户的记入7. 心得体会经过这次程序设计,我发现自己还是有很多的不足。如;代码敲的不是很快,而且在敲代码的过程中还是会有很多的错误。.通过本次课程设计,我认为一个团队的存在对一个项目来说是非常重要的,在这次实验中我们团队互补互助,才使我们度过一个又一个的难题。.这次课程设计我们还深刻体会的java面向对象的编程思想,以及面向对象的概念和意义。在面向对象的java语言中,我们可

20、以使用大量的对象结合,适当的使用继承和接口,从而使我们的程序更加优化。.通过这次设计,我意识到JAVA的重要性,现在很多 游戏也是用JAVA语言编出来的。这足可以说明JAVA的前景非常好。这次设计的代码量非常大,有些都是好几页纸的代码,这几天的编程,让自己在打代码的速度上又提升了很多,而且找错误也是个耐心活,做事细心,才能成功。 .走软件技术这条路,就要学会一直打代码,能耐的住烦躁。要向让自己在打代码的过程中有所提升,这没有什么捷径,只有自己经常联系,不断提升自己。8: 参考文献1)张跃平 王克宏java2 实用教程 清华大学出版社 (2)求是科技 java数据库系统开发实例导航 人民邮电出版社 (3)刘振安,董兰芳,刘燕均等。面向对象技术与UML,机械工业出版社。2008年 (4)印昊,王行言,JAVA语言与面向对象程序设计。清华大学出版社。2007年。

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

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁