猜数字小游戏JAVA程序报告汇总.docx

上传人:b****4 文档编号:5448177 上传时间:2023-05-08 格式:DOCX 页数:19 大小:57.21KB
下载 相关 举报
猜数字小游戏JAVA程序报告汇总.docx_第1页
第1页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第2页
第2页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第3页
第3页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第4页
第4页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第5页
第5页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第6页
第6页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第7页
第7页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第8页
第8页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第9页
第9页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第10页
第10页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第11页
第11页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第12页
第12页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第13页
第13页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第14页
第14页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第15页
第15页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第16页
第16页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第17页
第17页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第18页
第18页 / 共19页
猜数字小游戏JAVA程序报告汇总.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

猜数字小游戏JAVA程序报告汇总.docx

《猜数字小游戏JAVA程序报告汇总.docx》由会员分享,可在线阅读,更多相关《猜数字小游戏JAVA程序报告汇总.docx(19页珍藏版)》请在冰点文库上搜索。

猜数字小游戏JAVA程序报告汇总.docx

猜数字小游戏JAVA程序报告汇总

 

JAVA程序设计报告

 

——猜数字小游戏

 

 

一、猜数字小游戏简介…………………………………………4

二、用户需求分析………………………………………………4

三、问题描述……………………………………………………4

1.课程设计的任务

2.课程设计的要求

四、模块设计……………………………………………………5

1.课程设计的要求

2.功能模块设计

3.流程图

五、功能设计……………………………………………………7

1.随机数的产生模块

2.输入判断模块

3.记录猜测次数模块

4.计时模块

5.输入输出模块

6.成绩判断模块

六、异常处理……………………………………………………9

七、调试分析……………………………………………………10

八、不足之处……………………………………………………11

九、总结…………………………………………………………12

一十、程序附页……………………………………………………13

 

摘要

 

猜数字是一款非常经典的脑力游戏,游戏规则简单,是消磨时间、锻炼脑力的好选择。

通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用myeclipse软件。

同时更加深入的了解字符界面的编程过程。

使我更熟练的掌握Java程序框架的搭建和类的创建格式。

在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。

让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。

 

一、猜数字小游戏简介

系统随机产生任意一个1—100的自然数,玩家输入数字,若输入的数字比随机生成数小,系统将提示,数字太小请您重新输入;如果输入的数字比随机生成数大,系统将提示,数字太大请您重新输入;若输入的字符不是合法字符,系统将提示,您输入的数字不合法,请从新输入,游戏开始时,系统自动记录您猜数字的时间和次数,结束后显示游戏共花费的次数和时间及对游戏结果的评价。

二、用户需求分析

设计一个猜数字游戏程序,要求具体如下特性:

a.输入任意一个数字。

数字的要求是1—100的自然数即可。

b.系统对您输入的数字进行判断。

如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。

如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。

系统将提示您,数字太大请您重新输入。

如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。

c.游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。

d.每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。

e.在游戏结束时,可以选择关闭游戏,或者再来一局

f.游戏结束前可选择直接显示答案

三、问题描述

1.课程设计的任务:

根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。

(1)掌握Java的语言规范,面向对象的核心概念和特性;

(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;

(3)掌握Java应用软件的开发环境和开发过程;

(4)掌握面向对象的思想和程序设计方法。

2.课程设计的要求:

设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。

用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。

四、模块设计

1.系统总体设计

 

2.功能模块设计

 

3.流程图

 

系统开始计时

由用户输入一个数guess

猜小

Y

产生随机数number

系统结束计时

系统统计猜数次数

及对成绩的评价

结束

开始

G=N

G

G>N

猜大

 

五、功能设计

1.随机数的产生模块

我们可以借助JavaAPI提供的Random类来产生一个随机数。

首先在main函数中加入以下代码:

Randomrandom=newRandom();

number=random.nextInt(100);//产生一个1-100间的随机数

2.输入判断模块

在游戏界面中输入不合法

try{

guess=Integer.parseInt(jTextField1.getText());//玩家输入获取

}

catch(Exceptione){

JOptionPane.showMessageDialog(null,"请输入一个1-100之间的整数");//显示对话框,输入不合法

jTextField1.setText("");//清空文本框内容

jTextField1.requestFocus();

return;}

3.记录猜测次数模块

//记录玩家猜测的次数

counter=0;

//计数器增加一

counter++;

4.计时模块

计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。

longstartTime=System.currentTimeMillis();

longendTime=System.currentTimeMillis();

5.输入输出模块

//对玩家的输入进行判断。

if(guess>number){

JOptionPane.showMessageDialog(null,"o(≧v≦)o猜大了");

jTextField1.setText("");

jTextField1.requestFocus();

return;

}

if(guess

JOptionPane.showMessageDialog(null,"o(≧v≦)o太小啦");

jTextField1.setText("");

jTextField1.requestFocus();

return;

}

if(guess==number){

endTime=System.currentTimeMillis();

6.成绩判断模块

//判断成绩。

switch(counter){

case1:

JOptionPane.showMessageDialog(null,"O(∩_∩)O太给力了吧");

break;

case2:

case3:

JOptionPane.showMessageDialog(null,"OHMYGOD!

!

!

好腻害");

break;

case4:

case5:

case6:

JOptionPane.showMessageDialog(null,"O(∩_∩)O猜对,很不错哦!

");

break;

case7:

case8:

case9:

case10:

JOptionPane.showMessageDialog(null,"(+﹏+)有点慢,还要多练习");

break;

default:

JOptionPane.showMessageDialog(null,"(+﹏+)oh!

NO,太慢啦,");

break;

}

 

六、异常处理

我们在运行程序时往往会出现许多错误,而Java语言提供了异常(Exception)处理机制帮助程序员发现并处理异常。

所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。

导致异常的原因很多,比如文件找不到、数组越界、除以零等。

当异常出现时,一个异常对象将被自动生成并传递给Java“运行时环境”,如果“运行时环境”找不到异常句柄,Java程序便会自行中断。

try{statement(s);

}catch(exceptiontype1name){

statement(s);

}catch(exceptiontype2name){

statement(s);

}finally{

statement(s);

}

  try语句括起来的语句可能抛出异常。

try语句至少要搭配一个catch语句或finally语句,不能单独使用,我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理

try{

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setLayout(null);

}catch(Exceptione){

e.printStackTrace();

}

try{

//获取玩家的输入

guess=Integer.parseInt(jTextField1.getText());

}catch(Exceptione)

 

七、调试分析

 

 

八、不足之处

本小游戏还未建立游戏记录部分,无法记录玩家游戏成绩记录和建立游戏排行榜

在界面设计方面还较为简单,

游戏还有很多可修改和增加难度的地方

 

总结

经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许多的困难,但是却使我得到了许多的意外收获。

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。

在写代码的过程中我们也遇到了一些的困难,就是对一些有关Java语言的不理解,我便又到课本中去查找。

一个项目的成败关键不全在于技术。

要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可少的。

以前上课时有许多的问题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。

 

程序附页

packageJAVA;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.util.ArrayList;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

publicclassLoginextendsJFrame{

ArrayListnames=newArrayList();

ArrayListpwd=newArrayList();

privatestaticfinallongserialVersionUID=1L;

publicLogin(){

this.setLocation(100,100);

this.setSize(400,180);

this.setTitle("欢迎进入有趣的猜数字小游戏");

loginWindow();

setLocationRelativeTo(null);//窗口居中显示

this.setVisible(true);

}

publicvoidloginWindow(){

JLabelname=newJLabel("请输入玩家姓名:

");

JLabelpassword=newJLabel("请输入登陆密码:

");

finalJTextFieldtfName=newJTextField(20);

finalJPasswordFieldtfPassword=newJPasswordField(20);

JButtonok=newJButton("注册");

JButtoncancel=newJButton("登录");

JPanelpm=newJPanel();

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp3=newJPanel();

p1.add(name);

p1.add(tfName);

p2.add(password);

p2.add(tfPassword);

ok.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

names.add(tfName.getText());

pwd.add(tfPassword.getText());

JOptionPane.showMessageDialog(null,"注册成功");

tfName.setText("");

tfPassword.setText("");

}

});

cancel.addActionListener(newActionListener(){

//@SuppressWarnings("deprecation")

//@Override

@SuppressWarnings("deprecation")

publicvoidactionPerformed(ActionEventarg0){

//TODOAuto-generatedmethodstub

for(inti=0;i

if(names.get(i).equals(tfName.getText())){

if(pwd.get(i).equals(tfPassword.getText())){

JOptionPane.showMessageDialog(null,"登陆成功");

setVisible(false);//隐藏原界面

newGuessNum();//进入主界面

}

else{

JOptionPane.showMessageDialog(null,"用户名或密码有误");

}

}

}

}

});

p3.add(ok);

p3.add(cancel);

pm.add(p1);

pm.add(p2);

pm.add(p3);

this.add(pm);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicstaticvoidmain(String[]args){

newLogin();

}

}

 

packageJAVA;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyAdapter;

importjava.awt.event.KeyEvent;

importjava.util.Random;

importjavax.swing.JButton;

importjavax.swing.JLabel;

importjavax.swing.JFrame;

importjavax.swing.JOptionPane;

importjavax.swing.JTextField;

importjavax.swing.WindowConstants;

importjava.awt.FlowLayout;

 

publicclassGuessNumextendsjavax.swing.JFrame{

privatestaticfinallongserialVersionUID=1L;

privateJLabeljLabel1;

privateJTextFieldjTextField1;

privateJButtonjButton1;

privateJButtonjButton2;

privateJButtonjButton3;

privateintnumber=0;

privateintcounter=0;

longstartTime=System.currentTimeMillis();

longendTime;//计算时间

publicGuessNum(){

super("猜数字小游戏");

initChuangkou();

Randomrandom=newRandom();

number=random.nextInt(100);//产生一个1——100的随机数

}

privatevoidinitChuangkou(){

try{

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//窗口关闭时销毁窗口

getContentPane().setLayout(null);//设置窗口布局为绝对布局

JFrameframe=newJFrame("TestButtons");

frame.setLayout(newFlowLayout());

jLabel1=newJLabel();

getContentPane().add(jLabel1);

jLabel1.setText("★欢迎进入有趣的猜数字游戏★请输入1~100中的任意一个数:

");

jLabel1.setBounds(75,20,200,50);

jTextField1=newJTextField();

getContentPane().add(jTextField1);

jTextField1.setBounds(110,100,112,28);

jTextField1.addKeyListener(newKeyAdapter(){

publicvoidkeyPressed(KeyEventevt){

jTextField1KeyPressed(evt);

}

});

jButton1=newJButton();

getContentPane().add(jButton1);

jButton1.setText("确定");

jButton1.setBounds(120,160,100,25);

jButton1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevt){

jButton1ActionPerformed(evt);//按钮被点击时执行该方法

}

});

jButton2=newJButton();

getContentPane().add(jButton2);

jButton2.setText("显示答案");

jButton2.setBounds(120,200,100,25);

jButton2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevt2){

jButton2ActionPerformed(evt2);//按钮被点击时执行该方法

}

});

jButton3=newJButton();

getContentPane().add(jButton3);

jButton3.setText("再来一次");

jButton3.setBounds(120,240,100,25);

jButton3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventevt3){

jButton3ActionPerformed(evt3);//按钮被点击时执行该方法

}

});

pack();

this.setSize(340,400);//窗口大小

setLocationRelativeTo(null);//设置窗口在显示器居中显示

}

catch(Exceptione){

e.printStackTrace();

}

setVisible(true);

}

privatevoidjButton2ActionPerformed(ActionEventevt2){

JOptionPane.showMessageDialog(null,"答案是"+number);//直接显示答案

setVisible(false);//隐藏原界面

return;

}

privatevoidjButton3ActionPerformed(ActionEventevt3){

setVisible(false);

newGuessNum();

}

privatevoidjButton1ActionPerformed(ActionEventevt){

intguess=0;

counter++;//计数器加一

try{

g

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2