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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Java课程设计报告.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Java课程设计报告.doc

1、 Java语言及面向对象技术 课程设计报告 ( 2015 -- 2016年度第 1 学期) 题目 专业 软件工程 学生姓名 班级 软件141 学号 指导教师 徐 静 完成日期 2016/1/22 31 / 33 目 录 1 概 述 1 1.1 课程设计目的 1 1.2 课程设计内容 1 2 系统需求分析 1 2.1 系统目标 1 2.2 开发环境 1 3 系统概要设计 1 3.1迷宫文件 1 3.2 类的设计 2 4 系统详细设计 3 4

2、1 编写迷宫文件 3 4.2 MAZEWINDOW类 3 4.3 MAZE类 6 4.4 WALLORROAD类 8 4.5 MAZEPOINT类 10 4.6 PERSONINMAZE类 11 4.7 HANDLEMOVE类 12 4.8 RECORD类 14 4.9 SHOWRECORD类 16 4.10 SOUND类 17 4.11 所需图像和音乐 17 5 测试 18 5.1 测试方案 18 5.2 测试结果 18 6 小结 24 参考文献 25 附 录 26 附录 源程序清单 26 走迷宫 1 概 述

3、 1.1 课程设计目的 1.2 课程设计内容 2 系统需求分析 2.1 系统目标 2.2 开发环境 JDK ,Eclipse 3 系统概要设计 3.1 3.2 类的设计 3.2.1类的组合 3.2.2 MazeWindow.java类(主类) 3.2.3 Maze.java 3.2.4 WallOrRoad.java 3.2.5 MazePoint.java 3.2.6 PersonInMaze.java 3.2.7 HandleMove.java 3.2.8 Record.java 3.3.9 ShowReco

4、rd.java 3.3.10 Sound.java 4 系统详细设计 6 小结 参考文献 [1]耿祥义,张跃平.  Java2实用教程(第三版)[M] . 北京:清华大学出版社, 2006 [2]耿祥义.  Java课程设计(第三版)[M] . 北京:清华大学出版社, 2004 [3]张跃平. Java2实用教程实验指导及习题解答(第三版)[M]. 北京:清华大学出版社, 2004 ……… 附 录 附录 源程序清单 MazeWindow类 package 走迷宫Java; import javax.

5、swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.Hashtable; import javax.swing..*; public class MazeWindow extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 3362664598156059146L; Maze maze; JM

6、enuBar bar; JMenu menuChoice,menuImage,hero; JMenuItem wallImage,roadImage,personImage,defaultImage,heroItem,clearHero; ; File 英雄榜=new File("英雄榜.txt"); JButton renew; ShowRecord showRecord; static String[] mazeName; static String currentMap; @SuppressWarnings("rawtypes") H

7、ashtable hashtable=null; @SuppressWarnings({ "rawtypes", "unchecked" }) MazeWindow(){ wallImage File("wall.jpg");//创建wall.jpg的新文件 roadImage File("road.jpg");//创建road.jpg的新文件 bar=new JMenuBar(); menuChoice=new JMenu("选择迷宫"); File("."); File file[]=dir.listFiles(new ()

8、{ public boolean accept( name){ return name.endsWith("maze"); } }); mazeName=new String[]; for(int i=0;i<) { mazeName[i]=file[i].getName().substring(0, file[i].getName().length()-5);//substring(截取的起始位置,截取的长度); } for(int i=0;i

9、nuItem item =new JMenuItem(mazeName[i]); item.addActionListener(this);//MazeWindow类的实例(当前窗口)做监视器 menuChoice.add(item); } maze [0].getName()); currentMap=mazeName[0]; init(); menuImage=new JMenu("选择墙、路和走迷宫者的图像(JPG,GIF)"); wallImage=new JMenuItem("墙的图像"); road

10、Image=new JMenuItem("路的图像"); personImage=new JMenuItem("走迷宫者的图像"); defaultImage=new JMenuItem("墙、路的默认图像"); hero=new JMenu("英雄榜"); heroItem=new JMenuItem("查看英雄榜"); clearHero=new JMenuItem("清空英雄榜"); hero.add(clearHero); hero.add(heroItem); bar.add(hero); menuImage.a

11、dd(wallImage); menuImage.add(roadImage); menuImage.add(personImage); menuImage.add(defaultImage); bar.add(menuChoice); bar.add(menuImage); setJMenuBar(bar);//将菜单条添加到窗口中 wallImage.addActionListener(this); roadImage.addActionListener(this); personImage.addActionList

12、ener(this); heroItem.addActionListener(this); clearHero.addActionListener(this); defaultImage.addActionListener(this); renew=new JButton("重新开始"); renew.addActionListener(this); add(maze,BorderLayout.CENTER); add(renew,BorderLayout.SOUTH); hashtable=new Hashtable();

13、 for(int i=0;i<) { hashtable.put(mazeName[i]+"1",mazeName[i]+"#"+100+"#匿名1"); hashtable.put(mazeName[i]+"2",mazeName[i]+"#"+100+"#匿名2"); hashtable.put(mazeName[i]+"3",mazeName[i]+"#"+100+"#匿名3"); } if(!英雄榜.exists()) {//英雄榜是File类对象; boolean exists() 测试此抽象路径名表示的文件或

14、目录是否存在。 try{ out=new (英雄榜); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(hashtable); //void writeObject(Object obj) 将指定的对象写入 ObjectOutputStream。 objectOut.close(); //void close() 关闭流。 out.close();

15、 //java.io 类 的方法 void close() 关闭此文件输出流并释放及此流有关的所有系统资源。 } catch(IOException e){} } showRecord =new ShowRecord(this,mazeName.length); setVisible(true); setBounds(60,60,510,480); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } pub

16、lic void init(){ if(maze!=null){ remove(maze); remove(maze.getHandleMove()); } maze=new Maze();//创建Maze类的对象 maze.setWallImage(wallImageFile); maze.setRoadImage(roadImageFile); maze.person.setPersonImage(personImageFile); maze.setMaze); add(maze,BorderLayout.

17、CENTER); add(maze.getHandleMove(),BorderLayout.NORTH); validate(); } public void actionPerformed(ActionEvent e){//重写接口中的方法 if(e.getSource()==roadImage){ J chooser=new J(); filter=new ("JPG&GIF Images","jpg","gif"); chooser.set(filter); int state=chooser.show

18、OpenDialog(null); (); if(){ roadImage; maze.setRoadImage(roadImageFile); } } else if(e.getSource()==wallImage){ J chooser=new J(); filter=new ("JPG&GIF Images","jpg","gif"); chooser.set(filter); int state=chooser.showOpenDialog(null); ();

19、 if(){ wallImage; maze.setWallImage(wallImageFile); } } else if(e.getSource()==personImage){ J chooser=new J(); filter=new ("JPG&GIF Images","jpg","gif"); chooser.set(filter); int state=chooser.showOpenDialog(null); (); if(){

20、 personImage; maze.person.setPersonImage(personImageFile); } } else if(e.getSource()==defaultImage){ wallImage File("wall.jpg"); roadImage File("road.jpg"); maze.setWallImage(wallImageFile); maze.setRoadImage(roadImageFile); } else if(e.getSource(

21、)==heroItem){ showRecord.setMazeName(mazeName); showRecord.readAndShow(hashtable); showRecord.setVisible(true); } else if(e.getSource()==clearHero){ File("英雄榜.txt"); f.delete(); JFrame t=new

22、JFrame("提示!"); t.setFont(new Font("楷体",Font.BOLD,30)); t.setSize(300,215); t.setLocationRelativeTo(null); JPanel pan=new JPanel(); t.setContentPane(pan); BorderLayout bLayout=new BorderLayout(20,20); pan.setLayout(bLayout);

23、 JLabel leb=new JLabel("英雄榜已清空,请重新载入游戏。"); pan.add(leb,BorderLayout.CENTER); t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); t.setVisible(true); } else if(e.getSource()==renew){ init(); } else{ JMenuItem item=(JMenuItem)e.getSource(); maze ()+".maz

24、e"); currentMap=item.getText(); maze.getHandleMove().setMap(currentMap); init(); } } public static void main(String[] args){ new MazeWindow(); } } Maze类 package 走迷宫Java; import java.awt.*; import javax.swing.*; //import java.awt.event.

25、 import java.io.*; public class Maze extends JLayeredPane{ /** * */ private static final long serialVersionUID = 43668678L; ; MazePoint [][] mazePoint; WallOrRoad [][] wallOrRoad; PersonInMaze person; HandleMove handleMove; ; int distance=26,m=0,n=0; public Maze(){

26、setLayout(null); wallImage=new File("wall.jpg"); roadImage=new File("road.jpg"); person=new PersonInMaze(); handleMove=new HandleMove(); handleMove.initSpendTime(); person.addKeyListener(handleMove); setLayer(person,JLayeredPane.DRAG_LAYER);//设置组件person在分

27、层窗口的最上面的一层 } public void setMaze f){ mazeFile=f; char [][]a; RandomAccess; //String lineWord=null; try{ in=new RandomAccess,"r"); long length=in.length();//获取文件mazeFlie的长度 long position=0; in.seek(position);//将读取位置定位到文件的起始 while(posi

28、tion=n) n=str.length(); position=in.get();//读取当前读写的位置 m++;//数组MazeaPoint的行数 } a=new char [m][n];//创建一个二维字符数组,由m个一维数组构成 position=0; in.seek

29、position);//将读取位置定位到文件的起始 m=0; while(position

30、i

31、][j]=='0'){ wallOrRoad[i][j].setIsRoad(true); wallOrRoad[i][j].setRoadImage(roadImage); wallOrRoad[i][j].repaint(); } else if(a[i][j]=='*'){ wallOrRoad[i][j].setIsEnter(true); wallOrRoad[i][j].setIsRoad(true);

32、 wallOrRoad[i][j].repaint(); } else if(a[i][j]=='#'){ wallOrRoad[i][j].setIsOut(true); wallOrRoad[i][j].setIsRoad(true); wallOrRoad[i][j].repaint(); } } } mazePoint=new MazePoint[m][n]; int

33、 Hspace=distance,Vspace=distance; for(int i=0;i

34、 add(wallOrRoad[i][j]); wallOrRoad[i][j].setSize(distance,distance); wallOrRoad[i][j].setLocation(mazePoint[i][j].getX(),mazePoint[i][j].getY()); wallOrRoad[i][j].setAtMazePoint(mazePoint[i][j]); mazePoint[i][j].setWallOrRoad(wallOrRoad[i][j]); mazePoint[i][j].setI

35、sWallOrRoad(true); if(wallOrRoad[i][j].getIsEnter()){ person.setAtMazePoint(mazePoint[i][j]); add(person); person.setSize(distance,distance); person.setLocation(mazePoint[i][j].getX(),mazePoint[i][j].getY()); person.requestFocus(); person.repaint();

36、 } } } handleMove.setMazePoint(mazePoint); } catch(IOException exp){ JButton mess =new JButton("无效的迷宫文件"); add(mess); mess.setBounds(30,30,100,100); mess.setFont(new Font("宋体",Font.BOLD,30)); System.out.println(exp+"mess"); } } public voi

37、d setWallImage(File f){ wallImage=f; for(int i=0;i

38、 roadImage=f; for(int i=0;i

39、 handleMove; } } WallOrRoad类 package 走迷宫Java; import javax.swing.*; import java.awt.*; import javax.swing.border.*; import java.io.*; public class WallOrRoad extends JPanel{ /** * */ private static final long serialVersionUID = 48249320L; boolean isRoad,isWall,i

40、sEnter,isOut,havePassed; MazePoint point; ; Toolkit tool; WallOrRoad(){ tool=getToolkit(); } public void setIsEnter(boolean boo){ isEnter=boo; if(isEnter==true) add(new JLabel("入口"));//定义迷宫的入口 } public boolean getIsEnter(){ re

41、turn isEnter; } public void setIsOut(boolean boo){ isOut=boo; if(isOut==true) add(new JLabel("出口"));//定义迷宫的出口 } public boolean getIsOut(){ return isOut; } public void setIsRoad(boolean boo){ isRoad=boo;

42、 if(isRoad==true){ setBorder(null);//置此组件的边框,无 } } public boolean getIsRoad(){ return isRoad; } public void setIsWall(boolean boo){ isWall=boo; if(isWall==true) setBorder(new SoftBevelBorder(BevelBorder.RAISED));/* SoftBevelBorder

43、是实现某种斜面的类,这种斜面要么凸出要么凹入且拐角圆滑,BevelBorder该类实现简单的双线斜面边框,RAISED:凸出斜面类型。*/ } public boolean getIsWall(){ return isWall; } public void setAtMazePoint(MazePoint p){ point=p; } public MazePoint getAtMazePoint(){ return point; } public void setWallImag

44、e(File f){ wallImage=f; } public void setRoadImage(File f){ roadImage=f; } public void paintComponent(Graphics g){ super.paintComponent(g); int w=getBounds().width; int h=getBounds().height; try{

45、 if(isRoad==true){ Image image=tool.getImage(roadImage.toURI().toURL()); g.drawImage(image,0,0,w,h,this); } else if(isWall=true){ Image image=tool.getImage(wallImage.toURI().toURL()); g.drawImage(image,0

46、0,w,h,this); } } catch(Exception exp){} } } MazePoint类 package 走迷宫Java; public class MazePoint{ int x,y; boolean haveWallOrRoad; WallOrRoad wallOrRoad=null; public MazePoint(int x,int y){ this.x=x; this.y=y; } public

47、boolean isHaveWallOrRoad(){ return haveWallOrRoad; } public void setIsWallOrRoad(boolean boo){ haveWallOrRoad=boo; } public int getX(){ return x; } public int getY(){ return y; } public boolean equals(MazePoint p){ if(p.g

48、etX()==this.getX()&&p.getY()==this.getY()) return true; else return false; } public void setWallOrRoad(WallOrRoad obj){ wallOrRoad=obj; } public WallOrRoad getWallOrRoad(){ return wallOrRoad; } } PersonInMaze类 package 走迷宫Java; import

49、 javax.swing.*; import java.awt.*; import java.io.File; public class PersonInMaze extends JTextField{ /** * */ private static final long serialVersionUID = 1L; MazePoint point; String person="person.jpg"; Toolkit tool; ; PersonInMaze(){ tool=getToolkit(); setEditable(fa

50、lse); setBorder(null); setOpaque(false); setToolTipText("单击我,然后按键盘方向键"); } public void setAtMazePoint(MazePoint p){ point=p; } public MazePoint getAtMazePoint(){ return point; } public void setPersonImage(File f){ personImage=f; } public void paintComponent(Graphi

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服