java课程设计猜数游戏课程设计报告.docx
《java课程设计猜数游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《java课程设计猜数游戏课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
java课程设计猜数游戏课程设计报告
xx
xx
学号
《面向对象程序设计》
课程设计报告
下拉列表运算器设计目题:
xxxxx业:
专
xxx:
班级
xx姓名:
xx指导教师:
:
绩成
xx
xxxxxxx年月日
1设计内容及要求........................................................................................................1
1.1课程设计目的...............................................................................................1
1.2设计项目名称...............................................................................................1
1.3类的结构分布...............................................................................................1
2概要设计....................................................................................................................2
2.1系统总体功能..................................................................................................2
2.2游戏流程概述.................................................................................................2
3设计过程或程序代码................................................................................................3
3.1猜数游戏.........................................................................................................3
3.2功能模块详细设计..........................................................................................4
3.3类的设计.........................................................................................................5
4程序代码调试............................................................................................................6
4.1程序流程..........................................................................................................6
4.2关键算法与技术实现......................................................................................6
4.2.1随机数的获取......................................................................................6
4.2.2输入输出..............................................................................................6
4.2.3判断时间..............................................................................................7
4.2.4自动计数..............................................................................................7
4.2.5结果输出..............................................................................................8
4.2.6图形界面的实现..................................................................................8
4.3类的实现.........................................................................................................9
5设计结果与分析.......................................................................................................10
5.1登录界面........................................................................................................10
5.2游戏界面........................................................................................................10
5.3猜数举例........................................................................................................11
参考文献......................................................................................................................12
1设计内容及要求
功能要求:
该程序用图形界面实现下面功能:
用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。
游戏结束后计算出玩家所用的时间与所猜的次数。
1.1课程设计目的
通过设计一个《标准化考试系统设计》,进一步熟悉Java中的概念、基本知识和技能利用所学的基本知识和技能解决简单的面向对象的程序设计问题。
了解系统开发的需求分析、层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对Java的理解与eclipse环境的使用:
逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.2设计项目名称
猜数游戏设计
1.3类的结构分布
类的分布1图
2概要设计
在设计标准考试设计时,编写了2个Java源文件:
GuessShu.java,Dengru.java.
游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。
其中输入输出模块中系统会对玩家给出的数进行判断和输出。
判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。
2.1系统总体功能
猜数游
输入输自动结果判断模随机数
数出计模输的获取块出块模模块块
系统对时家给玩间的数出行判进和输断出
图2游戏框架
2.2游戏流程概述
开始
系统产一个随
玩家输入一个0~9范围内
X>Y
输出“猜小了X输出“猜大了
对了
储存记
3图游戏流程3设计过程或程序代码
3.1猜数游戏
1.随机数的获取:
玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
输入输出模块:
对玩家输入的数字进行判断和提示。
如果玩家输入的不是系2.
统要求的数字,系统将提示您,您输入的不是数字请重新输入.。
如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。
如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
3.判断模块:
算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。
4.自动计数模块:
系统根据您猜数字的次数,自动计数.
5.结果输出模块:
直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.
3.2功能模块详细设计
(1)随机数的获取
功能描述:
玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
(2)输入输出模块
功能描述:
对玩家输入的数字进行判断和提示。
如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。
如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。
如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
输入输出模块对玩家输入的数字进行判断和提示对猜您您您入输输的入的不入的了太是数太小大字输入输出模块图4图
(3)判断模块
功能描述:
算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。
(4)自动计数模块
功能描述:
系统根据您猜数字的次数,自动计数.
1计数器加玩家猜数字,若猜错
5自动计数模块图图
(5)结果输出模块如果继续将进入直到用户猜到数字为止,提示信息是否继续猜数字,功能描述:
.
下一次游戏,如果退出将退出游戏系统
类的设计3.3
类的分类表1属性类名
Math.random数学中的随机数。
BorderLayout图形界面窗口的设计与调整Concurrent
在并发编程中很常用的实用工具类。
concurrent
源程序中的类分为两种:
从用户的角度看,Java
语言由语法规则和类它是系统定义好的类。
类库,Java系统定义的类:
即Java
程序Java库两部分组成,语法规则确定Java程序的书写规范;类库则提供了虚拟机)之间的接口。
Java与运行它的系统软件(用户自定义类:
系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。
在Java程序中,用户自定义类的一般格式如下:
class类名
数据成员
成员方法
类的结构是由类说明和类体两部分组成的。
类的说明部分由关键字class与类名组成,类名的命名遵循Java标识符的定义规则。
类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。
数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。
然的项目,GuessNumberGame新建名为,Eclipse打开程序框架。
Java首先搭建
后新建名为GuessNumber的Java类。
GuessNumber加上合适的javadoc。
第一步:
随机数的产生
我们可以借助JavaAPI提供的Random类来产生一个随机数。
首先在main函数中加入以下三行代码:
//新建一个随机数产生器,然后生成一个1到100之间的整数。
num=(int)(Math.random()*100);
Stringanswer;
Scannerinput=newScanner(System.in);
第二步:
标准输入输出
标准输入输出(StandardI/O)是指可以被应用程序使用的信息流。
应用程序可以从标准输入(Standardinput)读取数据,向标准输出(Standardoutput)写数据,把出错信息发送到标准错误(Standarderror)。
通过输入输出,应用程序和应用程序之间可以被串联起来使用。
虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。
猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。
相反,要从控制台输入,就需要用到System.in。
它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。
第三步:
使用BorderLayout对图形界面的窗口进行设计。
4程序代码调试
4.1程序流程
点击“获取随机数”按钮,系统获取到一个随机数。
玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“猜小了”。
如果玩家输入的数比系统给出的随机数大,系统提示“猜大了”。
如果玩家猜对了数,会计算出玩家所用的时间和所猜的次数。
如果玩家猜对了数。
4.2关键算法与技术实现
4.2.1随机数的获取
number=(int)(Math.random()*10)+1;
4.2.2输入输出
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==buttonGetNumber){
number=(int)(Math.random()*10)+1;
}elseif(e.getSource()==buttonEnter){
intguess=0;
try{
guess=Integer.parseInt(inputNumber.getText());
if(guess==number){
佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
猜对了);
dui++;
}elseif(guess>number){
佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
猜大了);
da++;
inputNumber.setText(null);
}elseif(guess佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
猜小了);
xiao++;
inputNumber.setText(null);
}
}catch(NumberFormatExceptionevent){
佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
请输入数字字符);
}
}
elseif(e.getSource()==result){
time2=System.currentTimeMillis();
4.2.3判断时间
time2=System.currentTimeMillis();
JOptionPane.showMessageDialog(this,您此次操作花费时间为?
琨浩?
琭浩?
?
浜屳尫屜屮尫猜对有:
?
畤?
次?
屜湜?
猜大有尺搫?
次?
屜湜?
猜小有:
+xiao+\
);
};
4.2.4自动计数
if(guess==number){
佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
猜对了);
dui++;
}elseif(guess>number){
);
猜大了佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
da++;
inputNumber.setText(null);
}elseif(guess佊瑰潩偮湡?
桳睯敍獳条?
慩潬?
桴獩?
猜小了);
xiao++;
inputNumber.setText(null)
4.2.5结果输出
JOptionPane.showMessageDialog(this,您此次操作花费时间为?
琨浩?
琭浩?
?
浜屳尫屜屮尫猜对有:
?
畤?
次?
屜湜?
猜大有尺搫?
次?
屜湜?
猜小有:
+xiao+\
);
4.2.6图形界面的实现
JPaneljp1,jp2,jp3;
JTextFieldinputNumber;
JLabeljl1,jl2;
JButtonbuttonGetNumber,buttonEnter,exit,result;
longtime1,time2;
intda=0,xiao=0,dui=0;
publicGuessShu(){
time1=System.currentTimeMillis();
jp1=newJPanel();
汪?
敮?
?
扡汥尨产生随机数);
畢瑴湯敇乴浵敢?
?
敮?
?
瑵潴?
随机数);
jp1.add(jl1);
jp1.add(buttonGetNumber);
jp2=newJPanel();
汪?
敮?
?
扡汥尨输入你猜的数);
inputNumber=newJTextField(
jp2.add(jl2);
jp2.add(inputNumber);
jp3=newJPanel();
畢瑴湯湅整?
?
敮?
?
瑵潴?
确定);
敲畳瑬渽睥?
畂瑴湯尨结果);
硥瑩渽睥?
畂瑴湯尨结束);
exit.addActionListener(this);
jp3.add(buttonEnter);
jp3.add(result);
jp3.add(exit);
result.addActionListener(this);
buttonEnter.addActionListener(this);
buttonGetNumber.addActionListener(this);
this.setLayout(newGridLayout(3,1));//3,1
this.getContentPane().add(jp1);
this.getContentPane().add(jp2);
this.getContentPane().add(jp3);
this.setResizable(false);
桴獩献瑥楔汴?
沈悦:
猜数字游戏);
this.setBounds(100,100,280,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4.3类的实现
首先搭建Java程序框架。
打开Eclipse,新建名为shenyue的项目,然后新建名为GuessNumber的Java类,再建立一个Dengru的Java类
第一步:
随机数的产生
我们可以借助JavaAPI提供的Random类来产生一个随机数。
首先在main函数中加入以下三行代码:
//新建一个随机数产生器,然后生成一个1到100之间的整数。
number=(int)(Math.random()*100);
Eclipse立即在错误语句处划出红线,把鼠标移动到红线上。
包(Package)的概念
JavaAPI中包含了极其丰富、类似于Random这样由Sun预先定义好的类。
不同包中可以有同名同姓的类,如果没有包的概念,就会遇到命名冲突问题。
此外,包还能进行安全控制。
Random类是在java.util这个包中。
可以手动在源程序顶部输入importjava.util.Random;语句来申明该程序将要使用java.util包中的Random类,然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Random上,然后按下Ctrl+Shift+M,Eclipse会自动帮你完成导入的工作了,此时保存一下源代码。
第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。
第二步:
标准输入输出
标准输入输出(StandardI/O)是指可以被应用程序使用的信息流。
应用程序可以从标准输入(Standardinput)读取数据,向标准输出(Standardoutput)写数据,把出错信息发送到标准错误(Standarderror)。
通过输入输出,应用程序和应用程序之间可以被串联起来使用。
虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。
猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。
相反,要从控制。
它是一个纯粹的输入流,而猜数字游戏主要是System.in台输入,就需要用到.
通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。
第三步:
使用BorderLayout对图形界面的窗口进行设计。
5设计结果与分析
5.1登录界面
图4输入账号与密码
5.2游戏界面
进入游戏界面5图
5.3猜数举例
第一次猜数
第二次猜数
第三次猜数
第七次猜数.
按下结果按钮
参考文献
格式:
[1].Java面向对象程序设计[M].2009.11.
[2].Java[M].2008.7.
2010.
清华大学出版北京[M第二版计算机操作系统.阳富名庞丽萍[3]