猜数字游戏
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a=rand(); t=a; for(i=0;i<4;i++) {
b[i]=t%10; t=t/10; } for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(b[i]==b[j]) k++; }
系统各模块N-S流程图及功能特色 简介
主函数main() 主函数主要通过switch()循环语句
,实现菜单界面的操作控制,并且发挥了 界面友好,模块化等特点,追求语句简洁 ,调用简单函数,通俗易懂。
主函数的N-S流程图如下:
调用函数computer(int m)
srand函数是随机数发生器的初始化函数。它需要提供一 个种子,这个种子会对应一个随机数,如果使用相同的种 子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机 数每次重复常常使用系统时间来初始化,即使用 time函 数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型 数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需 要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往 往并不需要经过参数获得的t数据。 srand((int)getpid()); 使用程序的ID(getpid())来作为 初始化种子,在同一个程序中这个种子是固定的
任务要求
要求这个猜数字游戏有一定的容错功能,界面友 好,功能齐全。 游戏规则: (1)一个四位数,各位上的数字不重复,取值 从1~9. (2)按以下提示猜出这个四位数:
每次猜测输入的数据给出类似的提示*A*B。 其中A前的*代表你本次猜对了多少个数字。 其中B前的*代表你本次猜对的数字并且位置正 确的个数
系统总体N-S流程图
文件调试主界面
调试过程
调试过程分析描述
调试过程 调试发现的问题与解决
进行游戏猜数
调试发现的问题与解决
➢ 让电脑自动生成一个各个位上的数均不同的四位数:
此过程中的问题为:while ((a > 1000 ) && (a< 10000)&&(k==0))语句执行后出现的是当数未一 个各个位上的数均不同的四位数时会继续执行循 环及k未初始化。
应改为:while (!((a > 1000 ) && (a< 10000)&&(k==0)))且do-while中应将k初始化为0 。
修改后正确的源代码应为:
int computer(int m) {
int a,i,j,t,k,b[4]; srand((int)time(0)); do {
k=0;//k在循环内初始化,清除上次循环产生的值
一. 综合设计概述 二. 总体设计 三. 详细设计 四. 调试过程分析描述 五.综合设计体会 六.源程序代码 七.参考文献
目录
综合设计概述
➢ 综合设计名称 ➢ 任务要求 ➢ 开发环境 ➢ 应用平台
综合设计名称
猜数字游戏 本程序主要目的是在VC环境中实现由电脑随机产 生一个数字不重复的四位数,并将所猜的数与它 自动产生的数字进行比较,若猜的不对就作出相 应提示:“*A*B” 其中A前的*代表你本次猜对了 多少个数字。B前的*代表你本次猜对的数字并且 位置正确的个数。
电脑产生一个正确的随机数 用户输入一个四位数 比较电脑产生的数与用户输入的数
输出提示测试次数及*A*B
系统功能模块图及各功能模块的目 的与意义
计算机自
动产生一
主
个四位数
模
两 数 给出提示
块
进 行 *A*B及
比 较 猜Βιβλιοθήκη Baidu次数
人猜测一 个四位数
详细设计
➢ 系统各模块N-S流程图及功能特色简介 ➢ 系统总体N-S流程图
开发环境
开发工具为Microsoft Visual C++ 6.0. 20世纪90年代以来,C语言迅速在全世界普 及和推广。Microsoft Visual C++ 6.0作为此语言 的编写平台已而受到广泛应用。Microsoft Visual C++ 6.0功能丰富、使用灵活方便、应用面广、 目标程序效率高、可移植性好、既可以满足高级 语言设计,又具有低级语言编写功能,因此是该 程序设计的首选。
总体设计
✓ 系统功能需求分析 ✓ 系统总体设计框架 ✓ 系统功能模块图及各功能模块的目
的与意义
系统功能需求分析
设计一个猜数字游戏程序,要求具有如下特性: (1)游戏软件能随机产生一个四位数,但不显示
。 (2)用户能输入一个各个位上的数字不重复的四
位数。 (3) 程序随机产生的数能与用户输入的数进行比
应用平台
Windows XP32位。
Windows XP 32位是当今主流的电脑操作系 统平台,虽然2009年windows7已经开始流行, 但是该系统仍然被编程人员所采用。其兼容性高 ,占用内存小,需求配置低,对Microsoft Visual C++ 6.0的兼容性好等特点,在许多领域仍然保 持着良好的口碑。
较,且应具有一定的提示,如: 本次你猜对了多少个数; 本次你你猜对的数字并且位置正确的个数。 (4) 本程序有一定的容错功能。 (5) 此程序还应记录用户一共玩了多少次。
系统总体设计框架
该处理系统包括三个模块和一个主函数。三 个模块分别是由电脑产生一个正确的随机数,读 取用户正确的四位数,电脑与用户数字的比较。 其中电脑产生的随机数函数和主函数为整型,其 它都无返回类型。主函数通过在不断使用三大模 块来实现。该程序采用面向对象的思想来处理函 数之间的调用。
学院: 学号: 姓名: 教师:
摘要
猜数字游戏是一个运行在Windows平台下的小型游 戏软件,依据猜数字游戏的基本规则,给用户提供 一个游戏平台。以VC++作为软件开发环境,利用随 机函数,通过数字比较,编程实现的。它的规则简 单,但玩起来有一定的难度,是消磨时间和锻炼脑 力的好选择。通过选择猜数字游戏这个题目,让我 更深入的了解了编程中的一些问题及以前不知道的 程序。在分析阶段,要面向对象的需求分析,系统 设计,画出相应的需求分析图,系统设计模型图, 学会多角度思考问题。
b[i]=t%10; t=t/10; } for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(b[i]==b[j]) k++; }
系统各模块N-S流程图及功能特色 简介
主函数main() 主函数主要通过switch()循环语句
,实现菜单界面的操作控制,并且发挥了 界面友好,模块化等特点,追求语句简洁 ,调用简单函数,通俗易懂。
主函数的N-S流程图如下:
调用函数computer(int m)
srand函数是随机数发生器的初始化函数。它需要提供一 个种子,这个种子会对应一个随机数,如果使用相同的种 子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机 数每次重复常常使用系统时间来初始化,即使用 time函 数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型 数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需 要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往 往并不需要经过参数获得的t数据。 srand((int)getpid()); 使用程序的ID(getpid())来作为 初始化种子,在同一个程序中这个种子是固定的
任务要求
要求这个猜数字游戏有一定的容错功能,界面友 好,功能齐全。 游戏规则: (1)一个四位数,各位上的数字不重复,取值 从1~9. (2)按以下提示猜出这个四位数:
每次猜测输入的数据给出类似的提示*A*B。 其中A前的*代表你本次猜对了多少个数字。 其中B前的*代表你本次猜对的数字并且位置正 确的个数
系统总体N-S流程图
文件调试主界面
调试过程
调试过程分析描述
调试过程 调试发现的问题与解决
进行游戏猜数
调试发现的问题与解决
➢ 让电脑自动生成一个各个位上的数均不同的四位数:
此过程中的问题为:while ((a > 1000 ) && (a< 10000)&&(k==0))语句执行后出现的是当数未一 个各个位上的数均不同的四位数时会继续执行循 环及k未初始化。
应改为:while (!((a > 1000 ) && (a< 10000)&&(k==0)))且do-while中应将k初始化为0 。
修改后正确的源代码应为:
int computer(int m) {
int a,i,j,t,k,b[4]; srand((int)time(0)); do {
k=0;//k在循环内初始化,清除上次循环产生的值
一. 综合设计概述 二. 总体设计 三. 详细设计 四. 调试过程分析描述 五.综合设计体会 六.源程序代码 七.参考文献
目录
综合设计概述
➢ 综合设计名称 ➢ 任务要求 ➢ 开发环境 ➢ 应用平台
综合设计名称
猜数字游戏 本程序主要目的是在VC环境中实现由电脑随机产 生一个数字不重复的四位数,并将所猜的数与它 自动产生的数字进行比较,若猜的不对就作出相 应提示:“*A*B” 其中A前的*代表你本次猜对了 多少个数字。B前的*代表你本次猜对的数字并且 位置正确的个数。
电脑产生一个正确的随机数 用户输入一个四位数 比较电脑产生的数与用户输入的数
输出提示测试次数及*A*B
系统功能模块图及各功能模块的目 的与意义
计算机自
动产生一
主
个四位数
模
两 数 给出提示
块
进 行 *A*B及
比 较 猜Βιβλιοθήκη Baidu次数
人猜测一 个四位数
详细设计
➢ 系统各模块N-S流程图及功能特色简介 ➢ 系统总体N-S流程图
开发环境
开发工具为Microsoft Visual C++ 6.0. 20世纪90年代以来,C语言迅速在全世界普 及和推广。Microsoft Visual C++ 6.0作为此语言 的编写平台已而受到广泛应用。Microsoft Visual C++ 6.0功能丰富、使用灵活方便、应用面广、 目标程序效率高、可移植性好、既可以满足高级 语言设计,又具有低级语言编写功能,因此是该 程序设计的首选。
总体设计
✓ 系统功能需求分析 ✓ 系统总体设计框架 ✓ 系统功能模块图及各功能模块的目
的与意义
系统功能需求分析
设计一个猜数字游戏程序,要求具有如下特性: (1)游戏软件能随机产生一个四位数,但不显示
。 (2)用户能输入一个各个位上的数字不重复的四
位数。 (3) 程序随机产生的数能与用户输入的数进行比
应用平台
Windows XP32位。
Windows XP 32位是当今主流的电脑操作系 统平台,虽然2009年windows7已经开始流行, 但是该系统仍然被编程人员所采用。其兼容性高 ,占用内存小,需求配置低,对Microsoft Visual C++ 6.0的兼容性好等特点,在许多领域仍然保 持着良好的口碑。
较,且应具有一定的提示,如: 本次你猜对了多少个数; 本次你你猜对的数字并且位置正确的个数。 (4) 本程序有一定的容错功能。 (5) 此程序还应记录用户一共玩了多少次。
系统总体设计框架
该处理系统包括三个模块和一个主函数。三 个模块分别是由电脑产生一个正确的随机数,读 取用户正确的四位数,电脑与用户数字的比较。 其中电脑产生的随机数函数和主函数为整型,其 它都无返回类型。主函数通过在不断使用三大模 块来实现。该程序采用面向对象的思想来处理函 数之间的调用。
学院: 学号: 姓名: 教师:
摘要
猜数字游戏是一个运行在Windows平台下的小型游 戏软件,依据猜数字游戏的基本规则,给用户提供 一个游戏平台。以VC++作为软件开发环境,利用随 机函数,通过数字比较,编程实现的。它的规则简 单,但玩起来有一定的难度,是消磨时间和锻炼脑 力的好选择。通过选择猜数字游戏这个题目,让我 更深入的了解了编程中的一些问题及以前不知道的 程序。在分析阶段,要面向对象的需求分析,系统 设计,画出相应的需求分析图,系统设计模型图, 学会多角度思考问题。