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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java实验报告.docx

1、java实验报告 Java上机实验报告 姓 名: 班 级: 学 号: 日 期: 指导老师: -目录-1、实验目的-22、实验开发环境和工具-23、实验内容-24、问题描述-35、需求和规格说明-36、概要设计-37、详细设计流程图-188、游戏截图-269、调试报告-2910、讨论分析-2911、体会-32一、实验目的 1. 了解和掌握Java基本概念和语法 2了解和掌握Java图形界面编程的基本概念和用法 3. 了解和掌握Java事件编程的基本概念和用法 4. 了解和掌握Java IO基本功能和用法二、实验开发环境和工具Windows操作系统开发环境,可使用集成开发环境Jcreator,使用

2、Java语言,工具包使用JDK 1.7。三、实验内容 设计一个基于图形界面、事件编程、IO的小软件,实现一个具有图形界面和进度存盘功能的小游戏(例如字母游戏、俄罗斯方块、坦克大战等)或者具有图形界面和存储聊天记录功能的聊天软件。也可以实现任意其他形式的小软件(但必须具备图形界面,能够响应用户事件,并且具有存盘功能,拓展所实现的小软件,增加网络通信的功能。四、问题描述 设计一个窗口贪吃蛇游戏,实现一只人为操动的小蛇努力寻找猎物。游戏设置关卡,当捕食到一定猎物之后,游戏难度增加,小蛇的移动速度加快,蛇的长度代表其捕食猎物的数量。五、需求和规格说明 利用函数使蛇的移动速度加快,利用多线程的方法设计游

3、戏,当游戏成功或者游戏失败时,出现弹窗提示游戏进程。利用鼠标事件,键盘事件操控小蛇,在面板上绘出游戏框图。 六、概要设计需要用到的类:客户端:import java.awt.*; import java.awt.event.*;import javax.swing.JOptionPane;import .Socket;import javax.swing.JButton;import javax.swing.JFrame;主类:public class KingSnake public static void main(String args) / TODO Auto-generated me

4、thod stub new MyWindow(); 用来辅助功能实现的类: class abc static int a=5,i=1; static long b=100; static boolean gg=false; static boolean bg=true;自定义面板类,继承了键盘和线程接口 ,实现用键盘控制蛇,及游戏通关等进程class MyPanel extends Panel implements KeyListener,Runnable abc qt=new abc();/再次声明辅助函数Button snake; /定义蛇按钮 int shu=0; /蛇的节数 int f

5、ood; /食物数组 Thread thread; /定义线程 static int weix,weiy; /食物位置 int fangxiang=0; /蛇移动方向 int x=0,y=0; /蛇头位置 MyPanel() /定义蛇体和食物并为蛇头添加键盘监视器 setLayout(null); snake=new Button20; food=new int 20; thread=new Thread(this); for(int j=0;j99;j+) foodj=(int)(Math.random()*20);/定义20个随机食物 weix=(int)(food0*0.1)*60; /

6、十位*60为横坐标 weiy=(int)(food0%10)*40; /个位*40为纵坐标 for(int i=0;i1) if(snakenum1.getBounds().x=snake0.getBounds().x&snakenum1.getBounds().y=snake0.getBounds().y) /判断是否咬自己的尾巴 qt.bg=false; num1-; if(x=this.getWidth()|y=this.getHeight()/判断是否撞墙 t=false; result=false; qt.bg=false;repaint(); int num=shu; while(

7、num0) /设置蛇节位置 snakenum.setBounds(snakenum-1.getBounds(); num-; if(shu=7) /如果蛇节数等于7则胜利 t=false; result=true; qt.gg=true;repaint(); public void keyPressed(KeyEvent e) /按下键盘方向键 if(e.getKeyCode()=KeyEvent.VK_RIGHT)/右键 if(fangxiang!=1)/如果先前方向不为左 fangxiang=0; else if(e.getKeyCode()=KeyEvent.VK_LEFT) if(fa

8、ngxiang!=0) fangxiang=1; else if(e.getKeyCode()=KeyEvent.VK_UP) if(fangxiang!=3) fangxiang=2; else if(e.getKeyCode()=KeyEvent.VK_DOWN) if(fangxiang!=2) fangxiang=3; public void keyTyped(KeyEvent e) public void keyReleased(KeyEvent e) public void paint(Graphics g) /在面板上绘图 int x1=this.getWidth()-1; in

9、t y1=this.getHeight()-1; g.setColor(Color.red); g.fillOval(weix, weiy, 10, 10);/食物 g.drawRect(0, 0, x1, y1); /墙 if(qt.bg=false) g.drawString(游戏失败!, 250, 200);/输出游戏失败 int option = JOptionPane.showConfirmDialog(null, 游戏失败,是否继续, 是否继续, JOptionPane.YES_NO_OPTION);/设置确认消息框 if (option = JOptionPane.YES_OPT

10、ION) /选择确认按钮 qt.bg=true; new MyWindow(); else if (option = JOptionPane.NO_OPTION)/选择取消按钮 System.exit(0);/退出游戏 if(qt.gg=true) g.drawString(恭喜过关, 250, 200);/输出游戏成功 int option = JOptionPane.showConfirmDialog(null, 恭喜过关, 是否继进入下一关, JOptionPane.YES_NO_OPTION); if (option = JOptionPane.YES_OPTION) qt.gg=fa

11、lse; qt.b=qt.b/4; qt.i+; new MyWindow(); else if (option = JOptionPane.NO_OPTION) System.exit(0); 自定义窗口类,控制程序启动 class MyWindow extends Frame implements ActionListener MyPanel my; Button btn; Panel panel; MyWindow() super(KingSnake); my=new MyPanel(); btn=new Button(begin); panel=new Panel(); btn.add

12、ActionListener(this); panel.add(new Label(欢迎来到第关begin后请按Tab键选定蛇); panel.add(btn); panel.add(new Label(按上下左右键控制蛇行动); add(panel,BorderLayout.NORTH); add(my,BorderLayout.CENTER); setBounds(100,100,610,500); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(Wi

13、ndowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e)/按下begin按钮 if(e.getSource()=btn) try my.thread.start(); /开始线程 my.validate(); catch(Exception ee) 实现通信功能代码:class Snake extends JFrame implements ActionListener private JButton btConnect=new JButton(连接);SuppressWarnings(unused)p

14、rivate Socket socket;public Snake() super(客户端aaa); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(btConnect,BorderLayout.NORTH); btConnect.addActionListener(this); this.setSize(300,100); this.setVisible(true); public void actionPerformed(ActionEvent e) try socket=new Socket(127.0.0.1,

15、9999); this.setTitle(连接成功,您的分数为+MyPanel.score); catch(Exception ex) ex.printStackTrace(); 服务器代码:import .ServerSocket;import .Socket;import javax.swing.JFrame;SuppressWarnings(serial)public class Server extends JFrame private ServerSocket ss; private Socket socket; public Server() super(服务器端,目前未见链接);

16、 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300,100); this.setVisible(true); try ss=new ServerSocket(9999); socket=ss.accept(); String clienAddress=socket.getInetAddress().getHostAddress(); this.setTitle(客户+clienAddress+连接); catch(Exception ex) ex.printStackTrace(); public sta

17、tic void main(String args) new Server(); 七、详细设计流程图public static void main(String args) new MyWindow(); -if(x=this.getWidth()|y=this.getHeight()/判断是否撞墙 t=false; result=false; qt.bg=false;repaint(); int num=shu; while(num0) /设置蛇节位置 snakenum.setBounds(snakenum-1.getBounds(); num-; if(shu=7) /如果蛇节数等于7则胜

18、利 t=false; result=true; qt.gg=true;repaint(); -public void keyPressed(KeyEvent e) /按下键盘方向键 if(e.getKeyCode()=KeyEvent.VK_RIGHT)/右键 if(fangxiang!=1)/如果先前方向不为左 fangxiang=0; else if(e.getKeyCode()=KeyEvent.VK_LEFT) if(fangxiang!=0) fangxiang=1; else if(e.getKeyCode()=KeyEvent.VK_UP) if(fangxiang!=3) fa

19、ngxiang=2; else if(e.getKeyCode()=KeyEvent.VK_DOWN) if(fangxiang!=2) fangxiang=3; if (option = JOptionPane.YES_OPTION) qt.bg=true; new MyWindow(); else if (option = JOptionPane.NO_OPTION) System.exit(0); if(qt.gg=true) g.drawString(YOU WIN!, 250, 200);/输出游戏成功 int option = JOptionPane.showConfirmDial

20、og(null, 恭喜过关, 是否继进入下一关, JOptionPane.YES_NO_OPTION); if (option = JOptionPane.YES_OPTION) qt.gg=false; qt.b=qt.b/4; qt.i+; new MyWindow(); else if (option = JOptionPane.NO_OPTION) System.exit(0); public void actionPerformed(ActionEvent e)/按下begin按钮 if(e.getSource()=btn) try my.thread.start(); /开始线程 my.validate(); catch(Exception ee) MyPanel() setLayout(null); snake=new Button20; food=new int 20; thread=new Thread(this); for(int j=0;j99;j+) foodj=(int)(Math.random()*99);/定义20个随机食物

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

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