用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

李大叔吖    -  云代码空间

——

猜数字游戏

2018-01-21|982阅||

摘要:一、题目: 猜数字游戏 二、设计思路 1、总体设计 1) 分析程序的功能  由计算机产生一个随机数,然后用户开始猜数字,根据提示猜出正确的数字(开始时输入要猜的数字的位数,这样计算机可以根据输入的位数随机分配一个符合要求的数据,计算机输出guess后


一、题目:

猜数字游戏

二、设计思路

1、总体设计

1) 分析程序的功能

 由计算机产生一个随机数,然后用户开始猜数字,根据提示猜出正确的数字(开始时输入要猜的数字的位数,这样计算机可以根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字进行猜测,要求数字间用空格或者回车符来分隔,计算机会根据输入信息给出相应的提示信息:A表示数字和位置均正确的个数,B表示数字正确但位置不正确的个数,这样便可以根据提示信息进行下次猜测,直到猜对为止。这时会根据输入的次数给出相应评价。

2) 系统总体结构:

有计算机产生一个随机数,玩家开始猜测。根据提示信息猜测数字,直至猜对,计算机会根据输入的次数给出相应评价,或者玩家想结束。

 

2、各功能模块的设计:说明各功能模块的实现方法

1)srand((unsigned)time(NULL))函数,计算机生成一个满足条件的随机数;

2)玩家输入自己猜的数字,并根据提示不断改正;

3)计算机给出最后的评价,计算机给出答案

3、设计中的主要困难及解决方案

设计中用到的rand函数在最初使用的时候总是取得相同的随机数序列,经过查阅资料得知,在使用rand函数之前必须先用srand函数设置随机数种子,最后在程序中利用time函数返回时钟周期数作为种子的编号。

4、你所设计的程序最终完成的功能

1) 说明你编制的程序能完成的功能

根据提示,猜数字

2) 准备的测试数据及运行结果

1.进入界面:

 

2. 如果想了解规则,可根据提示进入规则界面:

3.输入想要猜测的数,如:5000

 

 

4. 当你猜对数字时,系统会根据你猜的次数给予相应的评价:

 

 

 

5.如果要继续:

 

 

如果想结束:

 

 

三、程序清单

1)main函数

#include<iostream>

#include<time.h>

using namespace std;

void main()

{

int  y, r, a,k=0;

cout << "   -------------------------------------------------------------------------" << endl;

cout << "   ****               ^_^  你好,欢迎来到猜数字游戏  ^_^              *****" << endl;

cout << "   ------------------------------------------------------------------------" << endl;

cout << "   ****             如果想了解游戏规则请按1,直接进入请按0            *****" << endl;

cout << "   ------------------------------------------------------------------------" << endl;

cout << "   ****               李大叔吖猜数字游戏1.0版本                       *****" << endl;

cout << "   ------------------------------------------------------------------------" << endl;

cin >> y;

if (y)

{

cout << "   *-*-*-*-*-*-*-*-*-*             游戏规则          *-*-*-*-*-*-*-*-*-*-*" << endl;

cout << "   |       您要输入四位数字,程序会随机产生一个随机数如: 若电脑数字      |" << endl;

cout << "   *        是1234,而你输入的是1439,则会提示您输入的数字过大哦!       *" << endl;

cout << "   |   若你输入的是1111,则会提示您输入的数字过小哦!一直到您猜对这个数字|" << endl;

cout << "   *---------------------------------------------------------------------*" << endl;

cout << "   |                             欢迎进入游戏                            |" << endl;

cout << "   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl;

}

while (y != -1)

{

srand((unsigned)time(NULL));

r = 999 + (rand() % 1000);

cout << r << endl;

cout << "欢迎使用李大叔吖猜数字程序" << endl<< "现在我这有一个四位数" << endl << "请你来猜猜这个数是多少 ? " << endl << "告诉我此刻你脑海中浮现的那个数。" << endl;

cin >> a;

while (r != a)

{

for (k = 0; r != a; k++)

{

if (r > a)

cout << "你输入的数字过小了哦!请重新输入哦!" << endl;

else

cout << "你输入的数字过大了哦!请重新输入哦!" << endl;

cin >> a;

}

}

cout << "恭喜你,猜对了!本次的数字为" << r << "!!" << endl;

cout << "----------------------------------" << endl;

cout << "congratulation!您一共猜了" << k << "次" << endl;

cout << "----------------------------------" << endl;

cout << "系统给您的评价是:" << endl;

if (k < 4)

cout << "神一般的猜测!" << endl;

if (k > 3 && k < 11)

cout << "你真是太厉害了!" << endl;

if (k > 10 && k < 21)

cout << "还不错,继续努力!" << endl;

if (k > 20)

cout << "你太逊了,猜了这么多次!" << endl;

cout << "您希望继续猜数字游戏吗?(输入-1退出 输入0继续)" << endl;

cin >> y;

}

system("pause");

}

2)rand函数

srand((unsigned int(time(NULL))));  

      r=rand()%1000+999;

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

我的程序较好的完成了任务中规定的设计内容,并完成了创新要求的设计,运行正确。

2、对课题提出更完善的方案

实现更多位数数字的猜测

五.关系框图



 

六、收获及心得体会

猜数字游戏是一个简单但又好玩的小游戏,在设计这个游戏的过程中唯一的困难就是产生一个随机数;这个困难在查阅资料后也解决了。

     在自己设计程序的过程中,自己也成长了很多,懂得了设计程序的过程,也了解了程序员在做程序时的困难,难得不是写源码,真正难得是创造。

 

日期: 2017年1225   

顶 1踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 李大叔吖
    • 等级: 初级程序员
    • 积分: 0
    • 代码: 2 个
    • 文章: 1 篇
    • 随想: 0 条
    • 访问: 1 次
    • 关注

    人气文章

    人气代码

    标签

    最新提问

      站长推荐