源代码:https://github.com/hanzhaoyan/jieduizuoye/tree/master

功能要求

该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。游戏结束后给出评语并计算出玩家所用的时间与所猜的次数。

具体要求:

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

(2) 系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。

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

(4) 欢迎界面:通过这里提供的选项(或按钮),进入游戏界面。

(5) 游戏界面提供“获取随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,通过按“确认”按钮完成输入。每次提示输入猜测结果时,给出猜测的准确度提示。

(6) 按“获取随机数”按钮,继续游戏。

(7) 游戏结束后给出评语并计算出玩家所用的时间与所猜次数。

需求分析

1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2.对玩家输入的数字进行判断大小,如果不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入,给出提醒以便玩家进一步选择。

3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及判断。

4.系统根据您猜数字的次数,自动计数.

5.直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.

.程序结构

点击“获取随机数”按钮,系统获取到一个随机数。 玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。 如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出玩家所用的时间和所猜的次数。如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的时间和所猜的次数。

功能模块设计  游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。其中输入输出模块中系统会对玩家给出的数进行判断和输出。判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。

从用户的角度看,Java源程序中的类分两种:

系统定已的类:即Java类库,他是系统定义好的类。Java语言由语法规则和库类两部分组成,语法规则确定Java程序的书写规范;类库则提供了Java程序与运行它的系统软件之间的借口。

用户自定义的类:系统定义的类虽然实现了徐福哦常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。

在Java程序中,用户自定义类的一般格式如下:

class类名

数据成员

成员方法

类的结构是由类说明和类体两部分组成的

类的说明部分由关键字class与类名组成。类名的命名遵循Java标识符的定义规则

类体是类生命中花括号所包括的全部内容,它又是由数据成员和成员方法两部分组成。

数据成员描述对象的属性;成员方法则刻画对象的行为和动作,每一个成员方法确定一个功能或者操作

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

第一步:随机数的产生

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

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

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

num=(int) (Math.random()*100);

String answer;

Scanner input=new Scanner(System in);

第二步:标准输入输出

标准输入输出是指可以被应用程序使用的信息流,应用程序可以标准输入(Standard input)读取数据,想标准输出(Standard output)写数据,把出错信息发送到标准错误

痛处输入输出可应用程序和应用程序之间可以被串联起来使用。虽然标准输入输出是从unix发展出来的概念,在windoes也广泛使用。

猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步;对图形界面的窗口进行设计。

运行结果:

结对人:计科高职13-3杨磊

http://www.cnblogs.com/yangdaxia/p/4507586.html

jiedui的更多相关文章

  1. 结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1

    所选项目名称:文本替换      结对人:傅艺伟 github地址 : https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1 用一个新字 ...

  2. 《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)

    结对对象与其博客链接 20175312陶光远:https://www.cnblogs.com/20175312-tgy/p/10697238.html 需求分析 (一)功能需求 1.自动生成题目(上周 ...

  3. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第二周:整体性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第二周:整体性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  4. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第一周:阶段性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第一周:阶段性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  5. 结对项目junit测试用例

    题目:我们假设我们要写一个整数除法的类,并且给他写测试用例. 结对分工:滕娟负责写代码,搜集资料,整理,潘广玫负责进行测试,处理测试结果 github地址链接: https://github.com/ ...

  6. 结对项目https://github.com/bxoing1994/test/blob/master/源代码

    所选项目名称:文本替换      结对人:曲承玉 github地址 :https://github.com/bxoing1994/test/blob/master/源代码 结对人github地址:ht ...

随机推荐

  1. January 03rd, 2018 Week 01st Wednesday

    My existence is not without reason. I know that I could be a quite a different person. 我的存在必定有意义,我知道 ...

  2. mysql中case的一个例子

    最近遇到一个问题: year amount num 1991 1 1.1 1991 2 1.2 1991 3 1.3 1992 1 2.1 1992 2 2.2 1992 3 3.3 把上面表格的数据 ...

  3. 什么是Java序列化?如何实现序列化?

    一.什么是序列化: 序列化理解成“打碎”是可以的,不过在书本上的名词就是将对象转换成二进制. 二.在java中如何实现序列化: 首先我们要把准备要序列化类,实现 Serializabel接口 例如:我 ...

  4. 洛谷P2057 【SHOI2007】善意的投票

    洛谷P2057 [SHOI2007]善意的投票 题目链接 这道题是最小割的一个经典应用:划分集合. 题目的意思就是就是将所有的小朋友分为两个集合:同意睡觉和不同意睡觉的.不同的集合之间的边都要断开. ...

  5. 阿里巴巴Java开发手册要点笔记 (一)

    1:[强制]Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 正例:"test".equals(object); 反例:obj ...

  6. Excel中Sumproduct函数的使用方法

    1.sumproduct函数的含义 1 1.Sumproduct函数的适用范围,在给定的几组数组中,然后把数组间对应的元素相乘,最后返回乘积之和. 从字面上可以看出,sumproduct有两个英文单词 ...

  7. oracle 索引的几种方式

    一.查询索引的高度 select index_name,blevel,leaf_blocks,num_rows,distinct_keys,clustering_factorfrom user_ind ...

  8. 错误:“Manifest merger failed with multiple errors, see logs”

    今天用Android Studio打开以前写个的项目后,出现如下错误:Manifest merger failed with multiple errors, see logs 现象是:  遇到这个问 ...

  9. Git使用—第一讲:初识版本控制工具

    几乎所有出色的项目都不是一个人完成的,而是由一个团队共同合作开发完成的,这个时候多人之间的代码同步问题就显得异常重要了,因此版本控制工具也就应运而生了.常见的版本控制工具主要有SVN和Git,接下来要 ...

  10. 动手动脑(lesson 6)

    一.继承条件下的构造方法调用 运行结果: 二. 答:构造函数的主要作用是初始化环境,子类是继承的父类,也就是说父类中有的子类全都有,而子类中有的父类不一定有,因此子类运行会调用父类构造函数,而父类不可 ...