C语言程序设计大作业设计说明书.doc_第1页
C语言程序设计大作业设计说明书.doc_第2页
C语言程序设计大作业设计说明书.doc_第3页
C语言程序设计大作业设计说明书.doc_第4页
C语言程序设计大作业设计说明书.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计大作业设计说明书概述: 处在Microsoft Visual C+软件下的Developer Studio集成开发平台中进行开发。 已实现了基本功能中的:1、随机生成没有重复的4个数。(每个数字在0-9范围内)。2、 用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有 x个数数值和位置都相同!有 y个数数值相同,但位置不同。”3、 控制用户的尝试次数为10次。4、 计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。5、 有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!4:游戏设置!0:退出程序! 还实现了扩展功能里的:1. 对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。2. 能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。(1) 修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。(2) 修改可以尝试的次数。 未实现的功能是扩展功能里的:1、若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。2、能对积分榜的成绩进行排序和输出。 经多次运行尝试,虽然编辑、编译、连接都没有错误,可以运行,但是在运行的时候有时会卡住,要等一会才会显示出来。程序概要设计:程序流程是:开始运行到主界面,在主界面中可选择:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!,然后选择开始游戏后,程序会生成4个不重复且在0-9之间的随机数,然后玩家需输入4个不同的数0-9之间的数,接着程序会判断玩家输入的4个数与程序生成的随机数的数值和位置是否相同,并提示4个数的数值跟位置相同和不同有几个,就这样一直循环到4个数的数值和位置都正确,或玩家尝试次数已超过10次。程序会在循环结束时显示出玩家的得分,并提示输入0返回主菜单;选择查看上次成绩后,程序会显示您的上次得分并提示输入0返回主菜单;选择帮助信息后,程序会显示一段游戏规则并提示输入0返回主菜单;选择游戏设置,程序会先清屏,再显示出新的界面,让玩家设置猜数个数和可尝试次数,并提示输入0返回主菜单; 选择退出游戏后,程序会直接关闭。程序流程图如下: 否是否是是否是否10次是否成功提示成功,保存分数提示失败 结束是否不同的0-9的数设置猜数个数!设置尝试次数! 开始 主界面开始游戏!查看上次成绩!帮助信息!游戏设置!退出游戏! 产生随机数字玩家输入数字 所包含的函数如下:1、exit(1);功能是终止程序,关闭文件。2、 system(cls);功能是执行一个MS DOS命令,在这里就是起清屏作用。3、 printf(%d,am);功能是输出数组a里面的值。4、 scanf(%d,&z);功能是扫描输入的z值。5、 rand()%10;功能是生成一个随机数。6、 srand(time(0);功能是生成一个种子,初始化随机数产生器。7、 int main();功能是软件执行的入口,在函数所在的程序头部包含可部分系统必须的头文件和完成其他功能的源文件。在该函数中还提供了系统功能选择的平台,提示用户系统可用的功能有哪些和这些功能的选项代码。并给用户提供输入功能选项代码的接口,当用户输入选项代码后,即显示给用户相应的功能处理界面或结果。8、 void begin();功能是显示主界面。9、 void help();功能是显示帮助信息的内容。10、void set();功能是显示游戏设置的界面。程序详细设计:关键代码分析如下:1、 srand(time(0); /生成一个种子。整个程序只写一次即可。 for(i=0;i=f-1;i+) /循环的次数(f)和赋予数组a的值(i)。a:ai=rand()%10; /生成i个随机数。for(j=0;ji;j+) / 保证在生成随机数不重复,重复情况下将用goto转到a:if(aj=ai) 出口,再生成随机数,直至随机数不重复。goto a; / /for(m=0;mg-1) /laber:为goto的出口;printf(本次游戏结束,没有猜对,本次得分为:0分!n); /用if语句判断尝试次数并给予提示printf(正确答案是:); /分数和正确答案for(m=0;m=f-1;m+)printf(%d,am); /正确答案输出。printf(n输入0返回上级菜单:);scanf(%d,&z);if(z=0)system(cls); /清屏main(); /输出函数main()else x+;h=100-(x-1)*10); /分数设定printf(输入您猜测的4位不同的数(用空格隔开):);for(n=0;n=f-1;n+) scanf(%d,&bn);for(k=0;k=f-1;k+) /设置输入数字的数量for(j=0;jk;j+)if(bj=bk) /判断输入数字的重不重复printf(输入错误,有相同的数,请重新输入!nn);goto laber; /返回上面的laber:if(bk9) /判断输入数字是不是在0-9之间printf(输入错误,数字不在09之间,请重新输入!nn);goto laber; /返回上面的laber:for(i=0,w=0;i=f-1;i+) /利用for语句循环确定产生的随机数if(ai=bi) w+; /跟玩家输入数字的数值和位置的关系for(o=0,r=0;o=f-1;o+) /并每次给予提示。for(p=0;p=f-1;p+)if(ao=bp) r+;if(w=f) /制定循环和设置循环出口printf(恭喜!猜对了!n); /提示玩家已猜对并结束循环printf(本次得分是:%dnn,h);printf(输入0返回上级菜单:);scanf(%d,&z);if(z=0)system(cls);main();elseprintf(有%d个数的数值和位置相同!有%d个数数值相同但是位置不同!nn,w,r-w);goto laber; /返回上面的laber: 本段代码的功能主要是:实现玩家尝试猜数字次数控制在10次,若10次以内猜对数字,则根据尝试次数的多少确定分数和保存分数,并跳出循环,若10次后也没猜对数字,也跳出循环;变量g可以控制玩家尝试猜数字的次数;确保玩家输入数字是不重复并且在0-9之间的;程序能对玩家输入的数与随机生成的数的数值和位置进行匹配,并给出提示信息:“有w个数数值和位置都相同!有r-w个数数值相同,但位置不同。”在设计这段代码的时候,用设计确保随机数不重复和在0-9之间的代码直接放到玩家输入数字上,很快就实现了此功能。在设计程序对玩家输入的数与随机生成的数的数值和位置进行匹配时,刚开始用if语句来判断w、r的数值,写出来的代码不仅仅长,而且十分乱,经常少加中括号或多加中括号,导致代码无法编译。花费了大量的时间纠正了后,但是w、r的值不对应,又花费了大量的时间寻找错误,在久久不可纠正的情况下,我虚心向周围的同学请教,他们说用for语句可以很好的实现这功能,我才将if语句改为for语句。用了for语句,短短时间内就解决这个功能。在设计玩家得分时,刚开始直接用变量h来定义,然而因为变量的位置放在循环外面,导致玩家得分一成不变。修改过后,在查看上一次成绩的时候变量h无法转到case 2:去,导致查看上一次成绩时显示的分数固定不变。在询问了几个同学后,用指针*h来定义得分,然而还是不行。最后在帮其他同学寻找程序错误时,发现他的变量直接放在最上面,不受主函数循环影响。因此才实现了查看上一次成绩的功能。使用情况:1、 随机生成没有重复的4个数。(每个数字在0-9范围内)。2、用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有 x个数数值和位置都相同!有 y个数数值相同,但位置不同。”3、控制用户的尝试次数为10次。4、计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。5、有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!6、 对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。7、能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。(1)修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。(2)修改可以尝试的次数。总结:程序经过多次调试,现在可以良好的运行。曾经在调试过程中出现不能退出循环的情况,或者出现两次循环之后两次猜数字得到的结果无故相加,造成结果错误,再或者完成修改之后发现不能运行,但经过多次修改后,如今猜数字游戏程序可以顺利运行。 这个程序的优点就是代码清晰,无运行错误;缺点是无法实现扩展功能里的:1、若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。2、能对积分榜的成绩进行排序和输出。本人在编制程序过程中,出了不少错误,但也收获了不少。在程序编制过程中出现的做多的就是程序中有错误,不能运行,如缺少分号,缺少大括号等因马虎的原因所致的错误,还有由于知识掌握不牢固,而不能熟练使用的指针,结构共用体,导致某些程序复杂

温馨提示

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

评论

0/150

提交评论