首页 (草稿)C语言课程设计---猜数字游戏报告

(草稿)C语言课程设计---猜数字游戏报告

举报
开通vip

(草稿)C语言课程设计---猜数字游戏报告C语言课程设计----猜数字 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以在开始游戏时,选择不同的难度来进行游戏。当用户选择了适合的难度时,系统会在内部产生对应范围内的随机数,以供用户进行猜测,用户每次猜数字后系统会给出本次猜数字的结果提示,先比较用户猜测数字是否等于系统产生的随机数,若相等则提示用户猜数字成功,然后输出用户猜测的次数和本局游戏所用时间,并根据猜测次数给出评价。如果用户猜测数字不等于系统产生的随机数,则提示该数字与随机数比较时大了还是小了,并输出比较结果,同时...

(草稿)C语言课程设计---猜数字游戏报告
C语言课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 ----猜数字 摘要 该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以在开始游戏时,选择不同的难度来进行游戏。当用户选择了适合的难度时,系统会在内部产生对应范围内的随机数,以供用户进行猜测,用户每次猜数字后系统会给出本次猜数字的结果提示,先比较用户猜测数字是否等于系统产生的随机数,若相等则提示用户猜数字成功,然后输出用户猜测的次数和本局游戏所用时间,并根据猜测次数给出 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 。如果用户猜测数字不等于系统产生的随机数,则提示该数字与随机数比较时大了还是小了,并输出比较结果,同时记录当前用户猜测的次数。直至用户成功猜中随机数。且用户在游戏过程可输入对应指令,返回难度选择菜单,再根据个人喜好选择其它难度或者退出游戏。。 关键词:游戏模块 猜数字 随机数 中途退出 目录 摘要……………………………………………………………………1 一.设计要求……………………………………………………………3 二.开发环境……………………………………………………………3 三.设计目的……………………………………………………………3 四.需求分析……………………………………………………………3 五.系统设计……………………………………………………………4 (一)总体设计…………………………………………………………4 (二)系统流程描述……………………………………………………6 (三)详细设计…………………………………………………………7 六.程序测试……………………………………………………………11 七. 心得体会 决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载 ……………………………………………………………12 八.参考文献……………………………………………………………13 附录:源程序…………………………………………………………13 一.设计要求 1).功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜, 直至猜到,给出所用时间和评语。 2).界面要示:图形方式界面 二.开发环境 开发语言:C语言。C语言功能丰富,表达力强,使用灵活,应用面广,目标程序效率高, 可移植性好,既有高级语言的优点,又有低级语言的许多优点。 开发工具:TC++3.0速度快 功能强大稳定兼容性强调试方便,适合初学者使用 三.设计目的 为了巩固和加深对编程课程的基本知识的理解和掌握,并且能够掌握编程和程序调试的基本技能。 通过程序的设计训练和提高学生的基本技能,掌握字符串的表示方法和字符串函数的功能、编程软件操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高解决实际问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的能力,巩固语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。 四.需求分析 猜数游戏的目标是按照设定的游戏规则为玩家提供一个简单而愉快的游戏界面,同时给玩家一些特定的功能,便于更好的使用该游戏软件。 本游戏突破一般游戏的娱乐功能,在娱乐的同时开拓了玩家的思维及应变能力。猜数字游戏是一种看似简单但事实很难的游戏,我们在玩的同时要不停地动脑筋,计算着数字的概率,这就锻炼着我们对数字的敏感和对概率的熟悉。这个游戏不仅学生可以玩,成人也是很适合的,我们在玩游戏的同时也在不停的锻炼我们的耐心和横心。 由于我们是初学者,设计过程中有很多不足之处,所以我们的游戏并没有排行等功能。程序代码中有,级别选择的机会,选择合适难度后可正式进入游戏模块。该游戏可能有点难度,但我认为这或许会更好,我们玩的时候也是和我们自己比赛,不停的超越自己。 功能需求描述: 猜数字游戏软件的总体目标是按照特定游戏规则为用户提供一个方便友好的游戏界面,同时给用户提供玩家根据个人意向选择不同难度进行游戏的机会。游戏规则如下。 游戏软件随机产生1个数字,但不显示,给用户提供输入提示符,让用户猜这个数字的值。如果正确地猜中这个数字,则猜数字成功。 玩家猜数字的次数不限,游戏过程中玩家可输入特定指令放弃游戏返回主界面。 玩家每次输入猜测数字,统会将输入数字与本次游戏产生的随机数比较,相等则猜数字成功,不相等则根提示猜测数字与随机数比较,大了还是小了并记录当前游戏猜测次数。 当玩家成功猜中数字时,系统会输出本局所用时间和玩家猜测次数,并根据游戏次数对游戏结果作出评价。 本游戏软件需要实现以下一些基本功能。 主界面区:当玩家运行程序后,程序会输出一个主界面,其中包括3个不同难度选择和1个推出程序的选项。 游戏区:玩家可以在游戏区逐次猜数字,系统会给玩家每次猜数字后的提示,猜测数字与随机数比较,是大了还是小了,玩家在游戏过程可输入特定指令跳出游戏并返回主界面。 游戏结果评价:当玩家成功猜中数字时,系统会输出本局所用时间和玩家猜测次数,并根据游戏次数对游戏结果作出“Wonderful”,“Perfect”,“Cool”等评价。 五.系统设计 (一)总体设计: 在前面对猜数字游戏进行需求分析的过程中,已经初步明确了系统的主要功能模块和用户需求,下面将在总体设计过程中,给出猜数字的模块结构,流程描述及界面布局,并使得系统的总体设计符合软件工程中总体设计的基本原则。 ⒈开发与设计的总体思想 猜数字游戏是一种大众娱乐游戏,开发与设计的重点在于游戏供玩家进行猜数字游戏的原始数字的产生和用户每次进行猜数字操作之后的游戏提示,这两方面的规则设计往往决定了软件运行的正确性和质量。 2.系统模块设计结构图 依据需求分析结果,猜数字游戏可以分为三个模块:主界面区模块,游戏区模块,游戏结果评价模块。系统模块结构如图(A)所示。 SHAPE \* MERGEFORMAT (A) 3.模块设计 ⑴主界面区模块 该模块为玩家提供难度选择和退出程序功能,选择不同选项将执行不同函数程序,同时若用户输入错误信息会谈出提示语句,要求用户正确输入。 ①低级难度:产生1个1到10 范围内的随机整数,执行游戏区模块,开始游戏。 ②中级难度:产生1个1到10 0范围内的随机整数,执行游戏区模块,开始游戏。 ③高级难度:产生1个1到10 00范围内的随机整数,执行游戏区模块,开始游戏。 ④退出程序:结束游戏,退出程序。 排行榜模块功能树如图(B)所示。 SHAPE \* MERGEFORMAT (B) ⑵ 游戏区模块 该模块为玩家提供猜数字游戏的主体功能,在主界面模块选择难度后对应由系统产生1个随机的整数,以供用户进行猜测该数字的数值。用户在游戏工程可输入特定指令放弃本局游戏并返回主界面。用户猜中数字则提示用户游戏成功,并显示系统随机产生原始数字,同时输出本局游戏时间猜数次数,并根据猜测次数对游戏结果进行评价。该模块有3个子功能。 ①产生原始数字:由系统产生1个对应选择范围的随机数,作为游戏的原始数字供玩家进行猜数字游戏,同时计时器开始工作。 ②游戏提示:用大了(Too Higjh),小了(Too Low)的形式提示玩家当前猜数字的匹配情况,并记录当前游戏猜测次数。用这种方式提示用户对自己的猜测进行调整。 ③放弃游戏:用户在游戏过程了输入“E”或“e”并二次确认后选择放弃游戏,再次返回主界面,以选择其它难度重新开始游戏或退出程序。 ④游戏结果统计评价:用户猜中数字后提示用户游戏成功,并显示系统随机产生原始数字,同时输出本局游戏时间猜数次数,并根据猜测次数对游戏结果进行评价。 模块功能树如图(C)所示. (C) ⑶游戏结果评价 该模块的功能是当玩家成功完成游戏猜中数字时,系统会停止计数器,显示本局游戏系统所产生的原始随机数,即正确答案。同同时输出本局游戏所用时间和玩家猜测次数,并根据游戏次数对游戏结果作出“Wonderful”,“Perfect”,“Cool”等评价。产生新记录模块功能树如图(D)所示。 (D) (D) (二)系统流程描述 系统的主体处理流程如图(E)所示。 SHAPE \* MERGEFORMAT (E) (三)详细设计 1.游戏模块设计 ⑴模块描述 游戏区模块是猜数字游戏软件的核心部分,用户进入模块之后,系统产生1个对应范围内的随机整数,计时器开始工作,并在玩家每一次猜数后都给玩家当前猜测结果的提示。大了表示猜测数字比随机数大,小了表示猜测数字比随机数小。 ⑵源文件定义 #include #include #include #include ⑶函数的声明 ①vido mian()函数 功能:软件执行的入口,在函数所在的程序头部包含了部分系统必需的头文件和完成其他功能的源文件。在该函数中还提供了系统功能选择的平台,提示用户系统可用的功能有哪些和这些功能的选项代码。并给用户提供了输入功能选项代码的接口,当用户输入选项代码后,则显示给用户相应的功能处理界面或结果。 输入:用户想要使用的系统功能代码。 处理: a.接受玩家输入的选项代码 b.引导玩家进入相应的功能界面。 输出: 系统功能选择平台。 2. 游戏功能模块 开始游戏和进行游戏过程,,提示玩家依次猜数字,每次给出提示,直至放弃游戏或正确猜中数字。 程序: void test(int gess) { char num=NULL; char newchoose=NULL; int sum=1; int tum; long ti; system("CLS"); clrscr(); //清空屏幕内容 srand((unsigned)time(NULL)); //计时器开始运行 t=time(NULL); //计时器统计秒数赋值给t int temp = (num-'0'); while(temp!=gess) //游戏主程序 { printf("\n"); printf("\n (Input E can display a menu)\n"); printf("\n Please input number:"); scanf("%s",&num); if(num == 'e') //输入小写e,统计猜测次数和所用时间,回到主界面 { tum = sum-1; ti=time(NULL)-t+1; printf("\n Input 'Y' to QUIT the game..\n"); //再次确认是否返回主界面 printf("\n Input 'N' to CONTINUE the game..\n"); printf("\n (Y/N)"); scanf("%s",&newchoose); if(newchoose == 'y') //输入小写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } else if(newchoose == 'Y') //输入大写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } } else if(num == 'E') //输入大写E,统计猜测次数和所用时间,回到主界面 { tum = sum-1; ti=time(NULL)-t+1; printf("\n Input 'Y' to QUIT the game..\n"); printf("\n Input 'N' to CONTINUE the game..\n"); printf("\n (Y/N)"); scanf("%s",&newchoose); if(newchoose == 'y') //输入小写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } else if(newchoose == 'Y') //输入大写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } } temp = num-'0'; if(temp>gess) //比较输入数字与随机数的大小,并输出比较情况 { system("CLS"); clrscr(); //清空屏幕 printf("\n --------%d Is Too High--------",temp); //输出提示语,猜测数字太大 sum++; } else if(temp 心得 信息技术培训心得 下载关于七一讲话心得体会关于国企改革心得体会关于使用希沃白板的心得体会国培计划培训心得体会 体会 经过几个星期的C语言课程设计,感觉自己收获不少! 本程序涉及的知识虽然简单,却也是C语言必备的基本知识。在做课程设计的过程中,我见识到了C语言的重要性和我在程序设计方面的不足,让我了解到要把书本知识转换为可以实际操作的东西是需要扎实的理论基础和严谨的逻辑思维的,同时我也发现了平时很多没有注意到的问题,弥补了我C语言方面的不足,比如说数组,在本程序中出现的很频繁,我必须用心的一个一个分析,调试,每一次的调试成功,都带给了我莫大的欣喜。 回顾起此次C语言的课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 八.参考文献 [1] 作者:谭浩强 C程序设计(第三版) 出版单位:清华大学出版社 [2] 作者:黄明 梁旭 万洪莉 C语言课程设计 出版单位:电子工程出版社 附录:源程序(因函数定义等原因,保存文件名以CPP为后缀程序放可正常运行) #include #include #include #include int dif_1(); //定义各变量 int dif_2(); int dif_3(); long t; int ch; void menu_1(); int menu_in(); int dif_1() { int dif_1; dif_1 = rand()%10+1; //产生1到10之间的随机数 return dif_1; } int dif_2() { int dif_2; dif_2 = rand()%100+1; //产生1到100之间的随机数 return dif_2; } int dif_3() { int dif_3; dif_3 = rand()%1000+1; //产生1到1000之间的随机数 return dif_3; } void menu_1() //主界面代码 { //不同选项对应不同难度 int i; { clrscr(); for(i=0;i<7;i++) printf("\n"); printf(" Difficuty Choose\n "); printf("\n\n"); printf(" 1--Between 1 and 10\n\n"); //产生在1到10范围内的随机数 printf(" 2--Between 1 and 100\n\n"); //产生在1到100范围内的随机数 printf(" 3--Between 1 and 1000\n\n"); //产生在1到1000范围内的随机数 printf(" 4--Exit\n\n"); //退出程序 } } int menu_in() { int choose; printf(" Choose:"); scanf("%d",&choose); //输入数字,选择对应函数 return choose; } void test(int gess) { char num=NULL; char newchoose=NULL; int sum=1; int tum; long ti; system("CLS"); clrscr(); //清空屏幕内容 srand((unsigned)time(NULL)); //计时器开始运行 t=time(NULL); //计时器统计秒数赋值给t int temp = (num-'0'); while(temp!=gess) { //游戏主程序 printf("\n"); printf("\n (Input E can display a menu)\n"); printf("\n Please input number:"); scanf("%s",&num); if(num == 'e') //输入小写e,统计猜测次数和所用时间,回到主界面 { tum = sum-1; ti=time(NULL)-t+1; printf("\n Input 'Y' to QUIT the game..\n"); //再次确认是否返回主界面 printf("\n Input 'N' to CONTINUE the game..\n"); printf("\n (Y/N)"); scanf("%s",&newchoose); if(newchoose == 'y') //输入小写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } else if(newchoose == 'Y') //输入大写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } } else if(num == 'E') //输入大写E,统计猜测次数和所用时间,回到主界面 { tum = sum-1; ti=time(NULL)-t+1; printf("\n Input 'Y' to QUIT the game..\n"); printf("\n Input 'N' to CONTINUE the game..\n"); printf("\n (Y/N)"); scanf("%s",&newchoose); if(newchoose == 'y') //输入小写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } else if(newchoose == 'Y') //输入大写Y返回主界面 { printf("\n You used %d times,and %d seconds.\n",tum,ti); //显示猜测次数和所用时间,退回主界面 printf("\n Press ENTER to quit..."); break; } } temp = num-'0'; if(temp>gess) //比较输入数字与随机数的大小,并输出比较情况 { system("CLS"); clrscr(); //清空屏幕 printf("\n --------%d Is Too High--------",temp); //输出提示语,猜测数字太大 sum++; } else if(temp
本文档为【(草稿)C语言课程设计---猜数字游戏报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_884403
暂无简介~
格式:doc
大小:173KB
软件:Word
页数:19
分类:互联网
上传时间:2013-06-08
浏览量:188