李大叔吖 - 云代码空间
——
一、题目:
猜数字游戏
二、设计思路
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年12月25日