Java课程设计 1-100以内猜数游戏

Java课程设计 1-100以内猜数游戏
Java课程设计 1-100以内猜数游戏

计算机与通信学院软件学院课程设计说明书

1-100以内猜数游戏

作者:刘正翔

学号:11700215

专业:软件技术

班级: 11级软件2班

指导教师:高玮军

答辩时间: 2012/6/2

1-100以内猜数游戏

刘正翔

11700215

摘要

本设计将一个1-100以内的猜数字游戏作为研究对象。设计出一个有系统随机选出一个1-100的数字不显示出来,由玩家猜这个数字,直到猜中为止,并显示出玩家猜中数字所用时间和次数对玩家做出评判,并对所涉及的相关技术进行初步的探讨。

程序运行就进入游戏玩家就可以进行数字猜猜看了。

关键字:数字游戏 java代码

目录

摘要 (3)

一、设计任务与要求 (1)

1.1课程设计的任务 (1)

1.2课程设计的要求 (1)

二、需求分析 (1)

2.1 用户需求分析 (1)

三、设计思路 (2)

3.1 系统总体设计 (2)

3.2 功能模块设计 (3)

四、详细设计 (5)

4.1 程序流程图 (5)

4.2 关键算法与技术实现 (7)

4.3 类与数据结构实现 (16)

五、运行调试与分析讨论 (17)

5.1 系统测试方案 (17)

5.2 运行结果分析 (18)

六、设计体会与小结 (22)

致谢 (24)

七、参考文献 (25)

一、设计任务与要求

1.1课程设计的任务

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

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

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

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

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

1.2课程设计的要求

设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。

二、需求分析

2.1 用户需求分析

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

(1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。

(2)大众性:要求游戏界面操作简单,游戏规则简单易懂。

(3)合理性:游戏设计严谨,有条理,具体需求如下

①输入任意一个数字。数字的要求是1—100的自然数即可。

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

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

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

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

③ 游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。 ④ 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。 ⑤ 在游戏开始时,自动显示游戏规则。

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

三、设计思路

3.1 系统总体设计

猜数字游戏—游戏随机给出一个1—100 (包括1和100) 之间的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。(如图1)

图1系统设计结构图

游戏界面

产生随机

数 游戏说明 重新开始 游戏开始 关闭游戏

记录次数 输出字符 记录时间

游戏界面:采用图形界面显示。页面有如下功能:开始,结束,重来。

游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界

面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。

同时,计算机开始对游戏进行计时和计数功能。

游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即

可。想控制界面大小只需拖拽图形界面边框即可。

游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。

3.2 功能模块设计(如图2)

图2 功能模块图

猜数游戏

随机数

的获取

输入输出 模 块

系统对玩家给出的数进行判断和输出

判断模 块

时间 是否 继续 的

水平

自动计数模块

结果输出模块

3.2.1 功能模块详细设计 1、随机数的获取

功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。 2 、输入输出模块

功能描述:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。(如图3)

图3 输入输出模块图

3 、判断模块

功能描述:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。(如图4)

输入输出模块

对玩家输入的数字进行判断和提示

您输入的不是数字

您输入的太小 您输入的太大

猜对了

图4 判断模块图

4、 自动计数模块

功能描述:系统根据您猜数字的次数,自动计数. (如图5)

图5 自动计数模块图

5、 结果输出模块

功能描述:直到用户猜到数字为止,提示信息是否重新猜数字,如果重新开始将进入下一次游戏,如果关闭将退出游戏系统。

四、详细设计

4.1 程序流程图(如图6)

判断模块

时间计算功 能

系统对玩家的水平做出 判提示玩家重新开始

玩家猜数字,若猜错

计数器加1

图6程序流程图

开 始

系统开始计时

由用户输入一个数y

x>y

输入的大了,再小一点

输入的小了,再大一点

Y

N

由计算机产生随机

x=y

系统结束计时

系统统计猜数次数

结 束

4.2 关键算法与技术实现

4.2.1源程序

/* 程序运行时自动产生1-100的随机数

* 接受用户键盘输入数据并给出指示信息

* 直至猜对,游戏者猜对后,显示猜对次数

* 并且供计时功能

*/

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.util.Random;

import javax.swing.*;

public class GuessNum extends javax.swing.JFrame {

{

//Set Look & Feel

try { //设置窗口外观为windows外观

javax.swing.UIManager.setLookAndFeel

("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch(Exception e) {

e.printStackTrace();

}

}

private JLabel jLabel1;

private JTextField jTextField1;

private JButton jButton1;

private JButton jButton2;

private int number=0;

private int counter=0;

long startTime = System.currentTimeMillis();

long endTime;

/**

* Auto-generated main method to display this JFrame

*/

public static void main(String[] args) {

GuessNum inst = new GuessNum();

inst.setVisible(true); //显示窗口

}

/**

*新建一个随机数产生器,然后生成一个1到100之间的整数

*/

public GuessNum() {

super();

initGUI();

Random random = new Random();

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

}

/**

*初始化窗口组件

*/

private void initGUI() {

try {

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

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

{

jLabel1 = new JLabel();

getContentPane().add(jLabel1);

jLabel1.setText("欢迎进入有趣的猜数字游戏;


"+

" 1到100之间的整数,你猜是什么?快来猜猜看(^.^)


"+

"请输入你想猜的数:");

jLabel1.setBounds(45, 0, 420, 150);//设置标签位置

}

{

jTextField1 = new JTextField();

getContentPane().add(jTextField1);

jTextField1.setBounds(42, 168, 112, 28);//输入窗口大小

jTextField1.addKeyListener(new KeyAdapter(){//文本框添加键盘按键监听-监听回车键

public void keyPressed(KeyEvent evt) {

jTextField1KeyPressed(evt);

}

});

}

{

jButton1 = new JButton();

getContentPane().add(jButton1);

jButton1.setText("确定");

jButton1.setBounds(182, 168, 77, 28);//确定按钮

jButton1.addActionListener(new ActionListener(){//按钮添加监听public void actionPerformed(ActionEvent evt) {

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

}

});

}

{

jButton2 = new JButton();

getContentPane().add(jButton2);

jButton2.setText("重新开始");

jButton2.setBounds(280, 168, 91, 28);//设置重新开始按钮

jButton2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

}

pack();

this.setSize(450, 280);// 设置窗口大小

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

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* “确定”按钮事件监听

* @param evt

*/

private void jButton1ActionPerformed(ActionEvent evt) {

int guess=0; // 记录玩家所猜测的数字

counter++; // 计数器增加一

// try,catch的异常管理。

try {

// 获取玩家的输入

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

} catch (Exception e) {

// 如果玩家不是输入一个合法的整数,则让他重新输入。

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

个对话框

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

jTextField1.requestFocus();//文本框获取输入焦点

return ;

}

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

if (guess > number){

JOptionPane.showMessageDialog(null, "猜的有点大了⊙﹏⊙!,再小一点吧!");

jTextField1.setText("");

jTextField1.requestFocus();

return ;

}

if (guess < number){

JOptionPane.showMessageDialog(null, "猜的一有点小了⊙﹏⊙!,再大一点吧!");

jTextField1.setText("");

jTextField1.requestFocus();

return ;

}

if (guess == number) {

endTime=System.currentTimeMillis();

// 判断成绩。

switch (counter) {

case 1: JOptionPane.showMessageDialog(null,"好厉害,真棒!!?(′▽`)");

break;

case 2:

case 3:

case 4:

case 5:

case 6:

case 7: JOptionPane.showMessageDialog(null,"这么快就猜对了,好厉害哦!↖(^ω^)↗");

break;

default:JOptionPane.showMessageDialog(null,"猜了半天才猜出来,小同志,尚须努力啊!╮(╯_╰)╭");

break;

}

JOptionPane.showMessageDialog(null,"您总共猜了"+counter+"次共花了"+(endTime-

startTime)/1000+"秒的时间答对正确答案!");

}

jTextField1.setText("");

jTextField1.requestFocus();

}

private void jButton2ActionPerformed(ActionEvent evt) {// 重新开始

Random random = new Random(); // 重新生成随机数

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

counter=0; // 记录玩家猜测的次数

jTextField1.setText("");

startTime = System.currentTimeMillis();

}

private void jTextField1KeyPressed(KeyEvent evt) {

// 监听文本框回车

if (evt.getKeyCode()==KeyEvent.VK_ENTER) {

jButton1.doClick();// 文本框按回车键执行“确定”按钮的事件

}

}

}

4.2.2关键算法

(1)记录猜测次数模块

记录玩家猜测的次数

counter = 0;

计数器增加一

counter++;

首先定义了一个counter变量来记录玩家猜测的次数,并直接初始化为0。在打印一行游戏提示以后,便开始一个do-while语句。

在do-while语句中,首先用异常处理语句获取玩家的输入,如果玩家输入不合法,提示以后用continue语句从头重新执行循环语句,等待玩家的输入。从而,guess变量一定包含一个合法的整数。之后要对玩家的输入进行判断。

如果玩家的猜测太大或者太小,都做出提示。接着把计数器增加1,表示玩家做过一次猜测。

最后便是do-while语句的判断:当玩家猜测的数字和随机产生的答案不同,则再次进入循环,否则便结束循环,执行下面的代码。(用Eclipse的Alt+/快捷键帮助编写do-while语句。)

(2)输入输出模块

// 获取玩家的输入

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

// 如果玩家不是输入一个合法的整数,则让他重新输入

JOptionPane.showMessageDialog(null, "数字不合法,请输入一个1-100之间的整数!");

jTextField1.setText("");

jTextField1.requestFocus();

return ;

}

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

if (guess > number){

JOptionPane.showMessageDialog(null, "猜的有点大了⊙﹏⊙!,再小一点吧!");

jTextField1.setText("");

jTextField1.requestFocus();

return ;

}

if (guess < number){

JOptionPane.showMessageDialog(null, "猜的一有点小了⊙﹏⊙!,再大一点吧!");

jTextField1.setText("");

jTextField1.requestFocus();

return ;

}

if (guess == number) {

endTime=System.currentTimeMillis();

(3)判定成绩模块

// 判断成绩。

switch (counter) {

case 1: JOptionPane.showMessageDialog(null,"好厉害,真棒!!(′▽`)");

break;

case 2:

case 3:

case 4:

case 5:

case 6:

case 7: JOptionPane.showMessageDialog(null,"这么快就猜对了,好厉害哦!↖(^ω^)↗");

break;

default:JOptionPane.showMessageDialog(null,"猜了半天才猜出来,小同志,尚须努力啊!╮(╯_╰)╭");

break;

}

JOptionPane.showMessageDialog(null,"您总共猜了"+counter+"次共花了"+(endTime-

startTime)/1000+"秒的时间答对正确答案!");

}

jTextField1.setText("");

jTextField1.requestFocus();

}

switch语句是基于整型表达式的条件判断语句,猜数字用它来进行成绩判断。可以看出,switch语句是和若干case语句和一个default语句搭配使用的。代码中的switch语句用counter变量的值进行判断。

当counter的值为1时,便执行case 1里面的语句,即打印“好厉害,真棒!!”的字样,随后的break语句表示整个switch语句执行到这里结束了。

当counter的值为2时,便执行case 2里面的语句。可以发现case 2到case 6都没有break语句,这表示依次执行下面的语句,从而counter的值为2至7时,都打印“这么快就猜对了,好厉害哦!”字样。

当counter的值不是1至7时,便执行default语句,打印“猜了半天才猜出来,小同志,尚须努力啊!”的字样。

(4)计时模块

计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。long startTime = System.currentTimeMillis();

long endTime = System.currentTimeMillis();

(5)异常处理

Java语言提供了异常(Exception)处理机制帮助程序员发现并处理异常。所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。导致异常的原因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对象将被自动生成并传递给Java“运行时环境”(runtime system),说得专业一点,就是抛出一个异常。异常对象包含了异常类型、程序运行状态等信息。“运行时环境”得到异常对象后便打断程序的正常流程,自动寻找一个专门处理该异常的代码块来解决问题。这样的代码块称作异常句柄(Exception Handler)。你可以在异常句柄中尝试修复错误、重试或者报错,或者实在无法进行下去的时候来个自我了断。如果“运行时环境”找不到异常句柄,Java程序便会自行中断。

一个典型的异常处理如下:

try {

statement(s);

} catch (exceptiontype1 name) {

statement(s);

} catch (exceptiontype2 name) {

statement(s);

} finally {

statement(s);

}

其中:

try语句括起来的语句可能抛出异常。try语句至少要搭配一个catch语句或finally语句,不能单独使用。

catch语句必须和一个try语句配套使用,根据异常类型(exception type)分别处理不同的异常。也就是说,Java有许多预先定义的异常,你可以通过多个catch语句对它们分门别类地处理。你还可以自己定义异常类型。如果try语句块中没有抛出异常,这里自然不会被执行。

finally语句也必须和一个try语句配套使用,与catch语句不同,无论try语句块中是否抛出异常,finally所包括的语句块都会被执行

我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理

可以编写如下代码:

{

//Set Look & Feel

try {

javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLook AndFeel");

} catch(Exception e) {

e.printStackTrace();

}

}

// try,catch的异常管理。

try {

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

} catch (Exception e) {

使用异常机制的诸多好处:

使得程序更健壮,界面更友善。

把程序的业务逻辑与错误处理分开,代码更合理,更美观。

异常可以分层次处理,使得代码更简洁。

同类的异常可以归到一类一起处理,处理更方便。

4.3 类与数据结构实现

首先搭建Java程序框架。打开Eclipse,新建名为GuessNumGame的项目,然后新建名为GuessNum的Java类。GuessNum加上合适的javadoc。

(1)随机数的产生

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

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

// 新建一个随机数产生器,然后生成一个1到100之间的整数。

Random random = new Random();

int num = random.nextInt(100);

第一句定义了一个类型是Random类的变量random(Java语言区分大小写,所以Random和random是不同意思),并且用new操作符生成一个Random类的实例赋给random 变量。random变量实际上是一个参照,指向内存中用new操作符新建的Random类的实大多数情况下可以把random直接看做是一个Random类的实例,可以通过“random”加上“.操作符”来调用Random类的方法,用random.nextInt(100)来获取一个1至100之间的随机数。

第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。

(2)输入输出界面

标准输入输出(Standard I/O)是指可以被应用程序使用的信息流。比如,应用程序可以从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发送到标准错误(Standard error)。猜数字游戏主要用到标准输入,即控制

Java课程设计 1-100以内猜数游戏

计算机与通信学院软件学院课程设计说明书 1-100以内猜数游戏 作者:刘正翔 学号:11700215 专业:软件技术 班级: 11级软件2班 指导教师:高玮军 答辩时间: 2012/6/2

1-100以内猜数游戏 刘正翔 11700215

摘要 本设计将一个1-100以内的猜数字游戏作为研究对象。设计出一个有系统随机选出一个1-100的数字不显示出来,由玩家猜这个数字,直到猜中为止,并显示出玩家猜中数字所用时间和次数对玩家做出评判,并对所涉及的相关技术进行初步的探讨。 程序运行就进入游戏玩家就可以进行数字猜猜看了。 关键字:数字游戏 java代码

目录 摘要 (3) 一、设计任务与要求 (1) 1.1课程设计的任务 (1) 1.2课程设计的要求 (1) 二、需求分析 (1) 2.1 用户需求分析 (1) 三、设计思路 (2) 3.1 系统总体设计 (2) 3.2 功能模块设计 (3) 四、详细设计 (5) 4.1 程序流程图 (5) 4.2 关键算法与技术实现 (7) 4.3 类与数据结构实现 (16) 五、运行调试与分析讨论 (17) 5.1 系统测试方案 (17) 5.2 运行结果分析 (18) 六、设计体会与小结 (22) 致谢 (24) 七、参考文献 (25)

一、设计任务与要求 1.1课程设计的任务 根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。 (1)掌握Java的语言规范,面向对象的核心概念和特性; (2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等; (3)掌握Java应用软件的开发环境和开发过程; (4)掌握面向对象的思想和程序设计方法。 1.2课程设计的要求 设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。 二、需求分析 2.1 用户需求分析 设计一个猜数字游戏程序,要求具体如下特性: (1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。 (2)大众性:要求游戏界面操作简单,游戏规则简单易懂。 (3)合理性:游戏设计严谨,有条理,具体需求如下 ①输入任意一个数字。数字的要求是1—100的自然数即可。 ②系统对您输入的数字进行判断。

java课程设计 猜数游戏课程设计报告

《面向对象程序设计》 课程设计报告 题目: 下拉列表运算器设计 专业: xxxxx 班级: xxx 姓名: xx 指导教师: xx 成绩: xx xxxx 年 x 月xx 日 xx

目录 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 类的分布

java课程设计贪吃蛇游戏设计

前言 Java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景。于是改造了Oak,以“Java”的名称正式发布。 Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。 与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。 Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java课程设计 点小游戏

2016—2017学年第二学期 《面向对象程序设计》课程设计报告 题目:21点小游戏 专业: 班级: 姓名: 指导教师: 成绩: 计算机学院 2017年5月16日

1.设计目的 面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过这次设计,掌握了以下内容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。常用工具类与算法的实现(数组、向量、字符串、链表),、中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。 游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。2.设计思路 本游戏选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。假如庄家没爆掉,而玩家也没有爆掉,那么玩家就与庄家比点数大小,大为赢。一样的点数则庄家赢。

图 1 结构 3.设计结果与分析 当打开该小游戏时,打开游戏菜单里面的开始游戏,软件运行界面如下图所示 图2 主界面 图3 玩家点数大于21点 图4 玩家点数大于庄家点数 图5 庄家点数大于玩家点数 图6 继续要牌 图7 玩家点数等于庄家点数

java课程设计猜数游戏课程设计报告

xx xx 学号 《面向对象程序设计》 课程设计报告 下拉列表运算器设计目题: xxxxx 业:专xxx :班级xx 姓名: xx 指导教师: :绩成 xx

xx xxxxx年月日 目录 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系统总体功能 猜数游

Java课程设计(猜数字游戏)完整版

课程设计任务书

2015-2016学年第一学期 面向对象程序设计(Java) 课程设计说明书 班级名称:2014计算机科学与技术(对口) 学生姓名:徐竹青 学号:2014214190 题目:猜数字游戏 指导教师:徐志红 起止日期:2015年12月25日至2015年12月31日 计算机与信息工程学院

目录 1.选题背景 (1) 2.设计思路 (1) 2.1 课程设计思想 (1) 2.1.1设计内容 (1) 2.1.2设计要求 (1) 2.2功能需求 (1) 2.3软硬件运行环境及开发工具 (1) 3.过程论述 (2) 3.1需求分析 (2) 3.1.1系统功能图 (2) 3.1.2知识点 (2) 3.2程序代码分析 (2) 4.结果分析 (7) 4.1测试与操作说明 (7) 4.2测试数据及程序运行情况 (7) 4.2.1猜数游戏结果 (7) 5.结论 (8) 参考文献 (8) 致谢 (8)

1.选题背景 Java语言作为当今Internet上最流行的编程语言,它的产生自然与游戏密切相关。本次课程设计是为了配合Java程序设计课程,帮助学生深入学习和掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计的综合训练,加强学生对Java语言的理解,检验学生对专业理论知识的理解与掌握程度,锻炼学生综合运用Java程序设计所学的知识,实际分析问题、解决问题的能力。 通过对猜数字游戏程序设计的学习,使学生掌握编程的基本方法,能够根据现实生活实践编制出一些使用的小程序,为以后学习其他相关课程打下基础。 2.设计思路 2.1 课程设计思想 2.1.1设计内容 设计一个猜数字游戏程序,要求具体如下特性: (1) 输入任意一个数字。数字的要求是0-1000的自然数即可。 (2)系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成的数相比较, 如果输入的数字和位置都正确。则提示为A,如果数字正确,位置错误,则提示为B。 (3)每猜测一次,系统会记录下来。显示剩余的猜数次数。 2.1.2设计要求 设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如0A1B,0A 表示用户没有猜对一个数字和位置都正确的数,1B 表示用户猜对了一个数字,但数字的位置是错的。 2.2功能需求 一个较完善的猜数字游戏的程序功能,应该具有产生随机数、用户输入数字、如何猜数等功能。 所以要求完成以下功能: (1)首先计算机内部产生一个随机数。 (2)由用户输入数字,根据程序的格式限制,来判断用户输入的数格式是否正确。 (3)如何进行猜数,并显示出猜数的次数以及剩余的次数。 2.3软硬件运行环境及开发工具 (1)编成语言:Java语言。 (2)开发环境:Microsoft Windows 7、JDK,Eclispse。

Java课程设计--猜数字游戏

Java课程设计--猜数字游戏

JavaEE课程设计报告 课题猜数字游戏 班级10中韩软工1班 学号10130305 姓名顾文宾

一、设计任务与要求 1.1 设计任务与要求 课程设计的任务是:根据所选课题“猜数游戏”,完成课程设计的分析、设计和编码,并用字符界面或图形界面实现。且写出课程设计报告。 课程设计的要求是:设计一个猜数游戏,系统自动生成一个数字,然后由玩家进行猜测,然后系统根据玩家输入的数字跟系统的进行比较,并给出提示。直到玩家猜对为止。 1.2 选题目的与意义 通过猜数游戏的设计过程,深刻了解掌握面向对象程序设计语言JavaEE的核心概念和特性;了解编程技术知识,会处理异常情况。学会制作图形界面;掌握JavaEE 应用软件的开发环境和开发过程;灵活选择程序设计思想。 通过撰写课程设计论文,锻炼科技论文写作能力。 二、需求分析 2.1 用户需求分析 设计一个猜数游戏,游戏规则如下 (1).首先由系统随机生成一个范围再1-100之间数。 (2).然后玩家进行猜数,输入一个数字。 (3).如果玩家输入的数字与系统随机生成数相比较,比随机生成的数小。系统将提示,猜小了并给出已猜次数。然后重新输入。 (4).如果玩家输入的数字与系统随机生成数相比较,比随机生成数大。系统将提示,猜大了并给出已猜次数。然后重新输入。 (5).如果玩家输入的数字与系统随机生成数相符。系统将提示,恭喜,猜对了。 2.2 开发环境分析 本程序使用WINDOWS环境下的Myeclipse6.5软件开发。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。

java课程设计猜数游戏课程设计报告

《面向对象程序设计》 课程设计报告 题目:下拉列表运算器设计 专业 : XXXXX 班级:XXX 姓名:XX 指导教师:XX XXXX 年X 月XX 日 XX

目录 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 设计结果与分析...................................................... 1..0. 5.1登录界面 ...................................................... 1..0. 5.2游戏界面 ...................................................... 1..0. 5.3猜数举例 ...................................................... 1..1. 参考文献....................................................................... 1..2. .

java课程设计(扫雷游戏)

成绩评定表

课程设计任务书

目录 1.设计目的----------------------------------------------------------------------------- 4 2.总体设计----------------------------------------------------------------------------- 4 2.1设计需求------------------------------------------------------------------------------------------ 4 2.2程序功能模块图----------------------------------------------------------------------------------- 4 3.关键技术----------------------------------------------------------------------------- 7 4.程序流程----------------------------------------------------------------------------- 8 5.主要源代码-------------------------------------------------------------------------- 8 6.运行结果及结论------------------------------------------------------------------- 27 7.参考文献--------------------------------------------------------------------------- 29

java猜数字游戏课程设计

目录 一、设计任务与要求.................................................................... 错误!未定义书签。 1.1 设计任务与要求.............................................................. 错误!未定义书签。 1.2 选题目的与意义.............................................................. 错误!未定义书签。 二、需求分析................................................................................ 错误!未定义书签。 2.1 用户需求分析.................................................................. 错误!未定义书签。 2.2 开发环境分析.................................................................. 错误!未定义书签。 三、系统设计................................................................................ 错误!未定义书签。 3.1 系统总体设计.................................................................. 错误!未定义书签。 3.2 功能模块设计.................................................................. 错误!未定义书签。 3.3 类的设计.......................................................................... 错误!未定义书签。 四、程序实现................................................................................ 错误!未定义书签。 4.1程序流程图....................................................................... 错误!未定义书签。 4.2 关键算法与技术实现...................................................... 错误!未定义书签。 4.2.1 游戏菜单设置的具体算法.................................... 错误!未定义书签。 4.2.2 生成随机数的具体算法........................................ 错误!未定义书签。 4.2.3 比较数字大小的具体算法.................................... 错误!未定义书签。 4.2.4 记录与清除成绩的具体算法................................ 错误!未定义书签。 4.2.5 清空成绩的具体算法............................................ 错误!未定义书签。 4.2.6 错误跳转的具体算法............................................ 错误!未定义书签。 五、测试运行................................................................................ 错误!未定义书签。 5.1 系统测试方案.................................................................. 错误!未定义书签。 5.2 运行结果分析.................................................................. 错误!未定义书签。 六、设计体会................................................................................ 错误!未定义书签。

java_扫雷游戏课程设计报告

Java课程设计报告 姓名 学号 院系 班级 专业 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。

(4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2 需实现的主要功能 (1)用户可以自定义级别并且可以任意输入雷数; (2)具有计时功能,即显示用户完成移动盘子所花费的时间; (3)用户可以选择是否有音效; (4)自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 2.2 雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图2-1所示。

java课程设计——猜数字游戏

目录 一、设计任务与要求 (1) 1.1 设计任务与要求 (1) 1.2 选题目的与意义 (1) 二、需求分析 (2) 2.1 用户需求分析 (2) 2.2 开发环境分析 (2) 三、系统设计 (3) 3.1 系统总体设计 (3) 3.1.1 总体设计分析 (3) 3.1.2 程序结构 (3) 3.2 功能模块设计 (5) 3.2.1 功能模块图 (5) 3.2.2 功能模块详细设计 (5) 3.3 类的设计 (7) 四、程序实现 (9) 4.1 程序流程图 (9) 4.2.1 随机数的获取 (10) 4.2.2 输入输出 (10) 4.2.3 判断时间 (11) 4.2.4 自动计数 (11) 4.2.5 结果输出 (11) 4.2.6 图形界面的实现 (12) 4.3 类的实现 (13) 五、测试运行 (15) 5.1 系统测试方案 (15) 5.2 运行结果分析 (15) 六、设计体会 (18)

一、设计任务与要求 1.1 设计任务与要求 功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。游戏结束后给出评语并计算出玩家所用的时间与所猜的次数。 具体要求: 1) 欢迎界面:通过这里提供的选项(或按钮),进入游戏界面。 2) 游戏界面提供“获取随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,通过按“确认”按钮完成输入。每次提示输入猜测结果时,给出猜测的准确度提示。 3) 按“获取随机数”按钮,继续游戏。 4) 游戏结束后给出评语并计算出玩家所用的时间与所猜次数。 界面要示:用图形界面实现。 1.2 选题目的与意义 通过猜数游戏这个课题我可以学到文本框、标签框、按钮、布局、对话框方面的知识和应用,达到设计登陆界面、加入图像显示功能以及设计按钮的目的,让我更加的掌握和理解java面向对象语言的需求分析、系统设计,所以我选择猜数游戏这个课题。

java猜数游戏实验报告

课程设计报告 课程设计名称Java程序设计-猜数游戏 指导教师钟世刚 专业班级信息安全 学号 姓名 成绩 2012年1月5日

目录 一、设计任务与要求 (1) 1.1 设计任务与要求 (1) 1.2 选题目的与意义 (1) 二、设计思想 (1) 2.1 系统总体设计 (1) 2.2 功能模块设计 (1) 2.3 类的设计 (2) 三、程序实现 (3) 3.1关键算法与技术实现 (3) 3.2代码 (3) 四、测试运行 (6) 4.1 运行结果分析 (6) 五、设计体会 (8) 5.1 汪莉琼设计体会 (8) 5.2曾祥平设计体会 (9) 主要参考文献 (9)

一、设计任务与要求 1.1 设计任务与要求 猜数游戏,系统随机出一个1到100的数字,然后用户在网页上猜,猜错了则提醒猜大了还是小了,直到猜对。 1.2 选题目的与意义 通过猜数游戏的设计过程,深刻了解掌握面向对象程序设计语言Java的jsp核心概念和特性;了解编程技术知识,会处理异常情况。掌握Java应用软件的开发环境和开发过程;灵活选择程序设计思想。 二、设计思想 2.1 系统总体设计 该软件功能分析说明图如所示: 总体利用javabean与jsp相结合,来实现简单清晰的程序思路。

2.2 功能模块设计 (1) Javabean 完全利用java 的语言编写,进入游戏系统后,判断猜数次数似否为0,为0则进行猜数,如果没有猜到,则提醒该数大了还是小了,继续猜,直到猜对。要进行下一次游戏则必须推出本次。 (2) jsp 页面 是在eclipse 开发环境里写的jsp 文件,其为动态页面,利用java :usebean 来实现该jsp 页面与javabean 的连接。简单清晰。 2.3 类的设计

JAVA课程设计之赛马游戏

目录 一.需求分析.................................. 错误!未定义书签。 1.1 概述 (2) 1.2 课题分析 (2) 1.3实现功能步骤 (2) 1.4设计工作详解 (2) 1.5外部界面需求 (2) 1.6 运行环境 (2) 二.概要设计 (3) 2.1系统流程图 (3) 2.2功能模块图 (4) 2.3赛马比赛模拟程序初始化块 (4) 2.4赛马比赛区模块 (4) 2.5投注区模块 (5) 2.6线程启动及结束模块 (5) 2.7比赛结果显示区模块 (5) 三.详细设计 (6) 3.1 赛马比赛模拟程序初始化模块 (6) 3.2赛马比赛区模块 (7) 63.3投注区模块.......................... 63.4线程启动及结束模块9 3.5 比赛结果显示区模块.. (126) 3.6 程序流程...................................................12错误!未定义书签。 3.7 系统界面 (6) 四.调试分析 (13) 4.1调试过程中所遇到的问题及解决方法 (13) 4.2经验与体会 (13) 五.用户使用说明 (14) 六.测试结果 (14) 七.参考文献 (18) 八.附录 (18)

一、需求分析 1.1 概述 Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。本次使用的是eclipse 开发软件。 以下就给出这次课题设计的题目: 模拟赛马比赛。 1.2 课题分析 a.课设题目:模拟赛马比赛 内容: 1.设计一个模拟赛马比赛软件,比赛显示赛马过程,每匹马每个时刻的加 速度都是随机的。 2.能统计每匹马所跑完所需的总时间,最终的名次。 3.支持用户对马进行投注,并记录输赢,保存到文件或数据库中。 b.从这个题目来分析,要做的主要有四大点: 1.第一点就是要设计用户登录赛马的页面,登陆后才能进行赛马和投注等功能。 2.第二点就是要能在页面上进行投注和赛马。其中包括: (1)用户进行选马,和对选中的马进行有效的投注。 (2)开始赛马,期间用户不得进行其他操作。 (3)赛马结束,显示比赛输赢和投注金额的变化。 3.第三点就是用户能进行重新比赛等操作。 1.3 实现功能步骤 程序开始后,会进入用户登录界面,用户输入自己的姓名和密码后,选择登录会进入到赛马比赛的界面,这时可以看见赛马场和马匹的编号,用户可以选择任何一个编号的马进行投注,输入有效的投注金额(因为系统设置了初始金额,所以不得投注的超过初始金额)。投注完成后用户可以选择开始比赛,赛马期间用户不得进行任何操作,赛马结束后,用户可以重新进行新一轮的赛马比赛,方法上同。 1.4 设计工作详解 通过这个分析,我认为主要是通过线程来实现马的运动,thread的子类创建线程,线程的开始使马进行运动,再通过线程的休眠,随机获得休眠时间使马获得随机的加速度,最后线程的终止使马停止运动。期间还包括用Draw类以及各种repaint()等方法来绘制马匹。 1.5 外部界面需求 本程序JFrame类其子类创建的对象是窗体,通过按钮JButton及标签组件

Java课程设计-21点小游戏

《面向对象程序设计》 课程设计报告 题目: 21点小游戏 专业: 班级: 姓名: 指导教师: 成绩: 2016—2017学年 第二学期

计算机学院 2017年5月16日 1.课程设计的目的 (1) 2.设计思路 (1) 3.设计结果与分析 (2) 4.设计体会 (3) 5.参考文献 (3) 6.附录 (4)

1.设计目的 面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过这次设计,掌握了以下内容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。常用工具类与算法的实现(数组、向量、字符串、链表),、中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。 游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。2.设计思路 本游戏选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。假如庄家没爆掉,而玩家也没有爆掉,那么玩家就与庄家比点数大小,大为赢。一样的点数则庄家赢。

Java猜拳小游戏程序设计实验报告

Java程序设计实验报告 班级:学号:姓名: 实验题目:猜拳小游戏 实验要求: 用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。 实验内容: 1、问题分析过程: (1)首先分析猜拳游戏本身的玩法: 人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。 (2)用面向对象的思想来分析: 在游戏过程中有几个对象组成 人 电脑 游戏规则 抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢? 属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst()选择性 Computer类有哪些属性和行为呢? 属性:名字name,输赢次数(比分)score 行为:出拳showFist()随机 Game类有哪些属性和行为呢? 属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计比赛结果calcResul() 2、主要实现代码: import java.util.*; public class StartGame { public static void main(String[]args){ Game start = new Game();//实例化游戏类 start.initial(); //调用初始化方法 start.startGame(); //调用游戏开始方法 start.showResult(); //调用游戏结果显示方法 } }

import java.util.*; public class Person { String name;//名字属性 int score;//积分属性 //出拳方法 public int showFist(){ System.out.print("\n请出拳:1.剪刀2.石头3.布(输入相应数字):"); Scanner input = new Scanner(System.in); int num = input.nextInt(); String fist = "";//保存出拳 switch(num){ case 1: fist = "剪刀"; break; case 2: fist = "石头"; break; case 3: fist = "布"; break; } System.out.println(name + "出拳:" + fist); return num; } } import java.util.*; public class Game { //Person person; //甲方 //Computer computer; //乙方 int count; //对战次数 Person person = new Person(); //实例化用户类 Computer computer = new Computer(); //实例化计算机类 //初始化方法 public int initial(){ count = 0; return count; } //游戏开始方法 public void startGame(){ //显示游戏开始界面 System.out.println(" ---------------欢迎进入游戏世界--------------\n"); System.out.println("\t\t******************************"); System.out.println("\t\t** ^_^ 猜拳,Start ^_^ **"); System.out.println("\t\t*****************************");

java课程设计——猜数字游戏

通信专业课程设计二(论文) 太原科技大学 课程设计(论文) 设计(论文)题目:基于MyEclipse平台猜数字游戏的设计 姓名张壮阔 学号 200822080132 班级通信082201H 学院华科学院 指导教师郑秀萍 2012 年 1 月 6 日

太原科技大学课程设计(论文)任务书 学院(直属系):华科学院电子信息工程系时间: 2011年12月23 日

目录 基于MyEclipse平台猜数字游戏的设计.............................. - 2 - 第1章猜数字游戏设计概述....................................... - 2 - 1.1 MyEclipse平台介绍 ....................................... - 2 - 1.2 设计任务与要求概述....................................... - 3 - 第2章猜数字游戏系统设计....................................... - 4 - 2.1 系统总体设计............................................. - 4 - 2.1.1 总体设计分析......................................... - 4 - 2.1.2 程序结构............................................. - 4 - 2.2 功能模块设计............................................. - 6 - 2.2.1 猜数字游戏功能模块图................................. - 6 - 2.2.2 功能模块详细设计..................................... - 6 - 2.3 类的设计................................................. - 8 - 第3章猜数字游戏程序实现...................................... - 10 - 3.1 猜数字程序流程.......................................... - 10 - 3.2 关键算法与技术实现...................................... - 10 - 3.2.1 随机数的获取........................................ - 10 - 3.2.2 输入输出............................................ - 10 - 3.2.3 判断时间............................................ - 11 - 3.2.4 自动计数............................................ - 11 - 3.2.5 结果输出............................................ - 11 - 3.2.6 图形界面的实现...................................... - 11 - 3.3 类的实现................................................ - 13 - 第4章游戏系统测试结果........................................ - 15 - 4.1 系统测试方案............................................ - 15 - 4.2 运行结果分析............................................ - 15 - 第5章总结.................................................... - 18 - 参考文献....................................................... - 19 -

相关文档
最新文档