c语言编程--猜数字游戏.doc_第1页
c语言编程--猜数字游戏.doc_第2页
c语言编程--猜数字游戏.doc_第3页
c语言编程--猜数字游戏.doc_第4页
c语言编程--猜数字游戏.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机实习报告面向过程编程用C语言求解实际问题一、问题描述游戏类第15个任务猜数字游戏任务描述:计算机从09这10个数字中任意选择n个不重复数字(n10)组成一个5位数(0不出现在首位),然后让玩家猜该数。若玩家猜对该数,游戏则结束;若玩家猜得不对,则计算机告知玩家,数字猜对了且位置也正确的数字有几个;数字猜对了但位置不正确的数字有几个,然后让玩家继续猜。对每个数玩家最多有m(m0)次猜的机会。功能要求:玩家可自行设置被猜数的位数n和最多猜测机会数m。玩家可用键盘输入其所猜数,也可通过鼠标点选数字给出其所猜数。当玩家没有猜对时,用不同颜色的文字显示数字猜对了且位置也正确的数字个数和数字猜对了但位置不正确的数字个数,且显示文字要直观、易理解。例如,正确答案为52467,玩家所猜为53269,则有2个数字(即5和6)数字对位置也对;有1个数字(即2)数字对但位置对。玩家猜测m次后仍未猜对,则向玩家公布答案,并询问玩家是否继续进行新游戏。此时玩家可以选择继续进行新游戏或退出游戏。当玩家猜对时,输出“恭喜你猜对了”,并询问玩家是否继续进行新游戏。此时玩家可以选择继续进行新游戏或退出游戏。玩家可以在游戏进行过程中选择放弃继续猜数。玩家放弃继续猜数后,询问玩家是否继续进行新游戏。此时玩家可以选择继续进行新游戏或退出游戏。若玩家猜对数字后选择退出游戏时,询问玩家是否记录其成绩,如果选择记录,则进一步要求玩家输入用户名;否则,直接退出。游戏维护一个排行榜,按照猜对一个5位数所用猜测次数由少到多的顺序排序,并在记录完玩家成绩后显示给玩家。二、需求分析1)猜数字游戏软件的功能有:进入主菜单,输入挑战的次数,输入猜测的数字,若在此次数之内没有猜对,则提示挑战失败,是否继续挑战。若挑战过程中途放弃,则提示是否继续挑战。若挑战成功,则提示是否记录成绩,输入用户名,计入排行榜。排行榜会按照猜测次数由小到大进行排序。在猜数字的过程中,每猜一个数字都会提示,数字正确且位置正确的个数是,数字正确但位置不正确的个数是,提示用户继续输入。2)输入要求:应用程序运行后,在屏幕上显示一个菜单。用户可以根据需要,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。3) 输出要求:(1)应用程序运行后,在屏幕上显示一个菜单。(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。三、程序设计针对需要做如下设计: (1)数据结构设计1、定义一个结构体数组,储存用户名。struct paihang char nameN;/*用户名*/sN,s1,s2;2、第一一个全局变量的数组,存储用户输入与系统随机数比较中相同的数字int wN;int q=0;(2)模块设计本模块主要实现功能的选择1. 定义一个主函数菜单,选择开始游戏,退出,进入排行榜。2. 比较用户输入的数与系统随机数是否相同,利用取余的方法,用用户输入的个位数与系统随机数的个位相比,十位与十位相比,以此类推,相同记录加一,得到数字相同,位置也相同的个数。利用取余的方法,用用户输入的个位数与系统随机数的每一位比较,相同加一,并将相同的数字存储到数组中方便查询。然后,比较输入的数字的每一位,利用取余的方法,用个位与十位相比,若相同,则比较数组中是否含有这个数,含有则减一,跳出循环,由十位与百位相比,不含有则继续,以此类推,得到数字相同的个数,用数字相同的个数减去数字相同位置不同的数字个数。3. 建立一个排行榜,将猜对的次数进行保存,并按由小到大的次数进行排行。(3)主程序设计调用一个菜单函数,显示开始进入游戏,排行榜,退出游戏,排除非法输入。四、程序实现(这一部分主要是说子程序的实现,以及引用的语言资源。具体来说,就是给出程序模块的实现)(1)程序总体思路:进入主页面菜单,选择管理员模式或用户模式。管理员模式要输入密码,方可进入。选择录入,修改和删除歌曲信息。用户模式中,包含各种查询功能,按编号,属性,歌曲名笔画,歌手名字的字典顺序,作者名字的字典顺序进行查询,点播。(2)各模块函数的实现1. void menu()主菜单信息函数进入主菜单,输入挑战的次数,排除非法输入。2. void cai()实现猜数字功能函数 输入一个五位数,排除非法输入,当玩家没有猜对时,用不同颜色的文字显示数字猜对了且位置也正确的数字个数和数字猜对了但位置不正确的数字个数。当玩家猜对时,输出“恭喜你猜对了”,并询问玩家是否继续进行新游戏。此时玩家可以选择继续进行新游戏或退出游戏。玩家可以在游戏进行过程中选择放弃继续猜数。玩家放弃继续猜数后,询问玩家是否继续进行新游戏。此时玩家可以选择继续进行新游戏或退出游戏。若玩家猜对数字后选择退出游戏时,询问玩家是否记录其成绩,如果选择记录,则进一步要求玩家输入用户名;否则,直接退出。3. void amenu()排行榜功能函数按照猜对一个5位数所用猜测次数由少到多的顺序排序。 4 void jieshu()结束游戏函数提示谢谢您的参与,再见!(3)菜单的实现程序主菜单在主程序中,实现伪代码是:先输出菜单的基本信息,再进行选择:int number,ret; printf(nt*nn);printf(t*欢迎进入猜数字游戏*nn);printf(tt1.开始游戏); printf(tt3.结束游戏nn); printf(tt2.排行榜); printf(nnt*n);dodoprintf(n 请选择选项(1-3):);ret=scanf(%d,&number);if(ret!=1)printf(输入错误,请重新输入);fflush(stdin);while(ret!=1);while(number3);switch(number)case 1: system(cls);cai();break;/开始游戏case 2: system(cls);amenu();break;/排行榜case 3: system(cls);jieshu();break;/结束游戏开始用户输入,开始游戏输入一个五位数输入挑战次数判断是否与随机数相同相同否是进行下一次判断结束五、程序测试猜数字游戏主菜单游戏中退出游戏六、设计小结本程序完成了猜数字游戏的功能,可以实现每猜一次数字,都提示数字与位置都相同和数字相同但位置不同的个数,以及记录成绩,实现排行榜等。优点是,用不同颜色的文字显示数字猜对了且位置也正确的数字个数和数字猜对了但位置不正确的数字个数,且显示文字要直观、易理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论