设计一个GUI猜数字游戏程序课程设计版.docx
- 文档编号:9264537
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:10
- 大小:53.71KB
设计一个GUI猜数字游戏程序课程设计版.docx
《设计一个GUI猜数字游戏程序课程设计版.docx》由会员分享,可在线阅读,更多相关《设计一个GUI猜数字游戏程序课程设计版.docx(10页珍藏版)》请在冰点文库上搜索。
设计一个GUI猜数字游戏程序课程设计版
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目设计一个GUI猜数字游戏程序
专业班级嵌入09-1
学号
姓名
指导教师徐娇月
2011年6月
目录
1设计时间1
2设计目的1
3设计任务1
4设计内容…………………………………………………………………………1
4.1概要设计2
4.2自定义类及接口说明3
4.3程序源码4
4.3.1程序5
4.3.2程序运行与调试8
5总结与展望9
参考文献10
成绩评定10
1设计时间:
2011年6月6日——2011年6月10日
2设计目的:
目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
3设计任务:
该游戏可以由程序随机产生四个0到9之间的整数,且不重复。
玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
假设随机数据为3792时,分析如下
数据:
3792
输入:
12340A2B
输入:
56780A1B
输入:
08670A1B
输入:
97861A1B
输入:
17942A0B
输入:
27932A2B
输入:
37924A0B
4设计内容
4.1概要设计:
本段代码中主要有GuessNumber和ActionHandler两个类,程序中设置了a,b两个变量作为对与错数量的显示,并且设置了一个计数器count为所猜次数进行计数,设置了监听接口ActionAHandler类来实现,并且用for循环和if语句来为变量I,j服务。
后面设置了一个异常处理,使用try和catch来捕获异常。
使用GUI技术实现猜数字和游戏的图形界面。
4.2自定义类及接口说明:
类名:
GuessNumber
父类:
JFrame
作用:
实例化对象
主要成员变量:
intA=0//位置和树枝都正确的个数
intB=0//数值正确位置不正确的个数
intcount//所猜次数计数器
int[]Random=newint[4]//正确的四个数字
int[]Enter=newint[4]//你猜的四个数字
privateJTextFieldtf_1//定义一个文本区域-用户输入区
privateJLabellb_1,lb_2//定义两个标签——信息显示区
privateJButtonbtn_1//游戏按钮
主要成员方法:
publicGuessNumber()//构造方法
privatevoidnewi()//产生四个不相同的数
catch(Exceptione)//捕获例外
publicvoidactionPerformed(ActionEventevent)//设置监听器
setText(“”)//清空文本区域
4.3程序源码
4.3.1程序
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassGuessNumberimplementsActionListener{
inti,j;
intA,B;
inta,b,c,d,x,z,y=8;
intRandom[]=newint[4];
intEnter[]=newint[4];
TextFieldEnterNum=newTextField(18);
TextAreashow=newTextArea(5,1);
JFramef=newJFrame();
JButtonbutton1;
publicvoidRandomnum(){
for(b=0;b==0;)
{
for(i=0;i<4;i++)
Random[i]=(int)(10*Math.random());
for(i=0;i<4;i++)
for(j=0;j<=i;j++)
if(Random[i]==Random[j]&&i!
=j)
{i=5;
break;
}
elseif(i==3&&j==3)
b++;
}
}
publicvoidaa(intz){
a=z/1000;
b=z/100-10*a;
c=z/10-100*a-10*b;
d=z-1000*a-100*b-10*c;
}
publicvoidpeidui(){
A=0;
B=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(Random[i]==Enter[j])
{
if(i==j)
A++;
else
B++;
}
show.append("\n"+A+"A"+B+"B"+Enter[0]+Enter[1]+Enter[2]+Enter[3]);
while(true){
if(y!
=0){
show.append("你还有"+y+"次机会!
"+"\n");
y--;}
else
show.append("你猜错了,请重新游戏!
"+"\n"+"\n正确结果是:
"+Random[0]+Random[1]+Random[2]+Random[3]);
break;
}
if(A==4&&B==0){
show.append("\n"+"恭喜你猜对了!
");
}
}
publicGuessNumber(){
Randomnum();
Containern=f.getContentPane();
n.setLayout(newBorderLayout());
button1=newJButton("确定");
button1.addActionListener(this);
n.add("North",show);
n.add("West",EnterNum);
n.add("East",button1);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEventn){
if(n.getActionCommand()=="确定"){
try{
x=0;
intz=Integer.valueOf(EnterNum.getText());
aa(z);
Enter[0]=a;
Enter[1]=b;
Enter[2]=c;
Enter[3]=d;
}catch(Exceptionm){
show.append("\n"+"请检查输入值的格式!
");
x=1;
}
if(EnterNum.getText().length()!
=4)
{show.append("\n"+"请输入四位数字!
");
}
elseif(x==0){
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{if(Enter[i]==(Enter[j])&&i!
=j)
{show.append("\n"+"请输入4不同的数字!
");
i=5;
break;
}
elseif(i==3&&j==3)
peidui();
}
}
}
}
publicstaticvoidmain(String[]args){
newGuessNumber();
}
}
4.3.2程序运行与调试
1.运行界面
2.错误调试
(1)在ActionHandler类中try语句出现错误。
原因:
try语句单独使用。
如何解决:
加入catch捕获异常,与try搭配使用。
(2)在GuessNumber类出现错误。
原因:
少打了一个}。
如何解决:
在末尾加上}
(3)0与O的混淆。
原因:
0与O不好区别。
如何解决:
将打错的0改为O。
(4)在ActionHandler类中没有创建number对象。
原因:
由于代码较多,比较复杂,所以在写代码是遗忘。
如何解决:
创建int型的number对象
(5)在ActionHandler类中没有实现接口。
原因:
没有实现ActionHandler监听。
如何解决:
定义类时后面加上implementsActionHandler
(6)if语句语法错误。
原因:
if()后加了。
如何解决:
删除。
(7)在GuessNumber类newi()方法中出现忘记设置返回值类型错误。
原因:
没有设置返回值类型,编译时不识别。
如何解决:
加上void,使此方法没有返回值。
5总结与展望
进行了几天的课程设计,经过反复的修改,我的猜数字程序终于得以完成,Java是这学期才开的一门课,语法较多,对于我这个入门者来说有点困难,尤其是GUI部分,听课的时候就觉得那一章比较杂乱,一直也没有掌握太好,所以设计出来的程序界面实现较少,不是很好看。
本次设计使得我在GUI和类,接口这几方面的掌握能力有了提高,在使用面向对象语言编写程序这方面,我有了深深的体会,曾经听说过一句话,学习java“不走弯路,就是捷径”。
进行了课程设计后,我更加感觉到了这句话的深刻内涵。
Java是一种平台,也是一种程序设计语言,如何学习好程序设计是非常重要的。
学习Java要脚踏实地,快餐式的学习方法不可取,要从平日里就勤加练习,多多实践,只要实践的多,写代码才能熟练。
参考文献
[1]Java程序设计作者:
刘万军,梁清华,王松波等清华大学出版社,2006
[2]王路群,Java高级程序设计。
北京:
中国水利水电出版社,2006
[3]朱福喜编著,Java语言习题与解析。
北京:
清华大学出版社,2006
成绩评定
成绩教师签字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一个 GUI 数字 游戏 程序 课程设计