ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:212.65KB ,
资源ID:21836939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21836939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(动物换位游戏java课设教学教材Word文档下载推荐.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

动物换位游戏java课设教学教材Word文档下载推荐.docx

1、布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。指导教师: 2013年 6月20日专业负责人:学院教学副院长:1.设计目的.42.设计内容.43.课程软件主要功能.44.类总体设计.44.1类组合关系图.54.2主类.54.3其他类.55.类详细设计(画UML图).66.关键类成员函数流程图及代码.7 6.1总体流程图 .7 6.2程序代码.87.软件运行结果.14 8.结论.16参考文献.161.设计目的 1.通过实验,使学生进一步加深面向对象的编程设计思想; 2.训练掌握、加深理解并巩固Java程序设计课程中所学到的基本概念、编程思路;

2、3.综合运用Java程序设计的编程方法,能够利用这些程序设计方法来解决工程和科研中常见的实际问题; 4.培养分析解决问题的实际动手能力,进一步提高进行大型程序设计的能力。2.设计要求 设计GUI界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。具体内容如下:程序分为4个级别,用户可以通过界面上提供的菜单选择“初级”、“中级”、“高级”、“自定义”这4个级别。对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物;对于“自定义”级别,用户可以输入自己想设置的一个动物数量(输入的数必须是偶数),在水平排列的N块石头上的左右各有(N-1)/2个类型相同的动

3、物,中间的石头上没有动物。3.课程软件主要功能 程序分为不同的级别,左右各有动物,中间石头没有动物,将左右动物交换,不可后退。用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃。如果对游戏有疑问可以点击帮助,查看游戏规则。不能持续玩的可以点自动演示,将自动完成游戏,可以帮助游戏者更好的了解系统的主体功能4.类总体设计设计动物换位时需要编写10个Java源文件:ChangeAnimalWindow.java、Point.java、Animal.java、

4、Stone.java、HandleMouse.java、AutoMoveAnimal.java、People.java、Record.java、ShowRecordDialog.java和Customdlg.java。动物换位除了需要编写上述10个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如:JmenuItem、File和Jbutton类等。动物换位所用到的一些重要的类以及之间组合关系如图4-1所示。 4.1类组合关系图以下是10个Java源文件的总体设计:图4-1 类之间的组合关系 4.2主类 ChangeAnimalWindow.javaChangeAnimalWi

5、ndow类负责创建动物换位的主窗口,该类含有main方法,程序从该类开始执行。 4.3其他类Animal.javaAnimal类是JPanel的一个子类,创建的对象是ChangeAnimalWindow类的重要成员之一,用来表示“动物”。Point.java Point类负责创建确定位置的对象,使用Point对象,可以确定Animal以及Stone对象在窗体中的位置。Stone.javaStone类是JButton的一个子类,创建的对象表示“石头”。HandleMouse.javaHandleMouse类所创建的对象负责处理鼠标事件。AutoMoveAnimal.javaAutoMoveAni

6、mal类所创建的对象使用算法完成动物的自动换位。Customdlg.javaCustomdlg类所创建的对象用来设置“自定义”级别的动物数量。People.javaPeople对象封装用户的名字和成绩,以便ShowRecordDialog对象可以排序。Record.java Record类是javax.swing包中JDialog对话框的子类,当用户成功完成相应级别的游戏时,Record创建的对象负责保存用户的名字和成绩到相应的级别文件中。ShowRecordDialog.javaShowRecordDialog类是javax.swing包中JDialog对话框的子类,当用户单击查看相应的级别

7、排行榜时,ShowRecordDialog创建的对象负责显示用户的成绩。5.类详细设计(画UML图)ChangeAnimalWindow类是javax.swing包中的JFrame的一个子类,并实现了ActionListener接口,标明该类的主要成员变量和方法的UML图如图5-1所示。以下是UML图中有关数据和方法的详细说明:图5-1 ChangeAnimalWindow类的UML图6.关键类成员函数流程图及代码 6.1总体流程图 图6-1 总体流程图 6.2程序代码import javax.swing.*;import java.awt.*;import java.awt.event.*;

8、import java.util.ArrayList;import java.io.*;import javax.swing.filechooser.*;public class ChangeAnimalWindow extends JFrame implements ActionListener int amountOfAnimal=6; int distance=80; Animal animal; Point point; Stone stone; HandleMouse handleMouse; AutoMoveAnimal autoMoveAnimal; File leftImage

9、File,rightImageFile; JButton renew,quit,autoButton=null; JMenuBar bar; JMenu menuGrade,menuImage; JMenuItem oneGradeItem,twoGradeItem,threeGradeItem; JMenuItem leftIamge,rightIamge,defaultImage; JPanel pCenter; ChangeAnimalWindow() pCenter=new JPanel(); pCenter.setBackground(Color.lightGray); pCente

10、r.setLayout(null); handleMouse=new HandleMouse(); autoMoveAnimal=new AutoMoveAnimal(); leftImageFile=new File(dog.jpg); rightImageFile=new File(cat.jpg init(); bar=new JMenuBar(); menuGrade=new JMenu(选择级别 menuImage=new JMenu(选择动物图像(JPG,GIF) oneGradeItem=new JMenuItem(初级 twoGradeItem=new JMenuItem(中级

11、 threeGradeItem=new JMenuItem(高级 leftIamge=new JMenuItem(左面动物的图像 rightIamge=new JMenuItem(右面动物的图像 defaultImage=new JMenuItem(左右面动物的默认图像menuGrade.add(oneGradeItem); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); menuImage.add(leftIamge); menuImage.add(rightIamge); menuImage.add(defaultIm

12、age); bar.add(menuGrade); bar.add(menuImage); setJMenuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); leftIamge.addActionListener(this); rightIamge.addActionListener(this); defaultImage.addActionListener(this); renew=new J

13、Button(重新开始 renew.addActionListener(this); autoButton=new JButton(自动演示 autoButton.addActionListener(this); quit=new JButton(撤消 quit.addActionListener(this); JPanel north=new JPanel(); north.add(renew); north.add(quit); north.add(autoButton); String mess=互换左右动物位置; JLabel hintMess=new JLabel(mess,JLab

14、el.CENTER); north.add(hintMess); add(north,BorderLayout.NORTH); add(pCenter,BorderLayout.CENTER); JPanel south=new JPanel(); south.add(handleMouse); add(south,BorderLayout.SOUTH); setVisible(true); setBounds(60,60,710,300); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void init

15、() animal=new AnimalamountOfAnimal;point=new PointamountOfAnimal+1; stone=new StoneamountOfAnimal+1; int space=distance; for(int i=0;ipoint.length;i+) pointi=new Point(space,100); space=space+distance; animal.length; animali=new Animal(); animali.addMouseListener(handleMouse); if(i=2&m%2=0) amountOf

16、Animal=m; public void removeAnimalAndStone() if(pointi.getThisAnimal()!=null) pCenter.remove(pointi.getThisAnimal(); if(pointi.getThisStone()! pCenter.remove(pointi.getThisStone(); pCenter.validate(); pCenter.repaint(); public void needDoing() handleMouse.initStep(); handleMouse.initSpendTime(); pub

17、lic void actionPerformed(ActionEvent e) if(e.getSource()=oneGradeItem) distance=80; removeAnimalAndStone(); setAmountOfAnimal(6); needDoing(); else if(e.getSource()=twoGradeItem) distance=70; setAmountOfAnimal(8); else if(e.getSource()=threeGradeItem) distance=60; setAmountOfAnimal(10); else if(e.ge

18、tSource()=renew) else if(e.getSource()=autoButton) handleMouse.setCountTime(false); int x=this.getBounds().x+this.getBounds().width/2; int y=this.getBounds().y+this.getBounds().height; autoMoveAnimal.setLocation(x,y); autoMoveAnimal.setSize(this.getBounds().width/2,120); autoMoveAnimal.setVisible(tr

19、ue); else if(e.getSource()=quit) ArrayList step=handleMouse.getStep(); int length=step.size(); int start=-1,end=-1; if(length=2) end=step.get(length-1); start=step.get(length-2); step.remove(length-1); step.remove(length-2); Animal ani=pointend.getThisAnimal(); int w=ani.getBounds().width; int h=ani

20、.getBounds().height; ani.setLocation(pointstart.getX()-w/2,pointstart.getY()-h); ani.setAtPoint(pointstart); pointstart.setThisAnimal(ani); pointstart.setIsHaveAnimal(true); pointend.setIsHaveAnimal(false); else if(e.getSource()=leftIamge) JFileChooser chooser=new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( JPG & GIF Images, jpggif chooser.setFileFilter(filter); int state=chooser.showOpenDialog(null); F

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1