ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:94.21KB ,
资源ID:8233647      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8233647.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序课程设计猜数字游戏Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言程序课程设计猜数字游戏Word文档下载推荐.docx

1、(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。二基础题题目用选择法对10个数进行排序。有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。先定义一个10个元素的一维数组a10,然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b11,同时再从电脑输入一个数同a10一起赋值给b11,然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。流程图子函数流程图如图1所示:图1 基础题

2、子函数流程图主函数流程图如图2所示:图2 基础题主函数流程图源代码基础题源代码见附录A。运行及测试结果运行及测试结果如图3所示:图3 基础题运行及测试结果截图三改错题#include int fun()int a33,sum;int i,j;_;for(i=0;i3;i+) for(j=0;jj+) scanf(%daij); sum=sum*aii;printf(累乘积=%dn,sum);main()fun();程序的功能:这是一个求3*3矩阵主对角线元素累乘积的程序。程序分析:可以看出源程序中,先声明了一个子函数,并定义子函数fun()累乘积函数(这个函数就是先定义了一个3*3的二维数组,

3、然后从键盘输入数值对这个二维数组进行了数组赋初值,赋值过程中使用了for循环语句,然后利用for循环语句对主角线的元素做每个数的乘积,最后是输出这个累乘积。)。最后就是主函数main(),主函数中使用一次子函数fun()。错误分析错误一:原程序中对sum没有设置初值,应设置为“sum=1;”;错误二:scanf()函数中没有使用地址运算符,应在数组前加“&”错误三:子函数也没设返回值,返回值应为 “return sum;”。改错后的源代码改错后的源代码见附录B。运行及测试结果如图4所示:图4 改错题运行及测试结果截图四综合题设计课题四:猜数字游戏一问题描述该游戏可以由程序随机产生或由用户输入四

4、个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。如果4A0B,表示游戏成功。每次猜错会有提示,如果八次都未猜对,游戏失败,显示正确答案。按任意键可以返回主菜单。主要应运数组和循环实现改功能。(对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。)二功能要求 1.游戏显示这样的菜单: (1)随机产生数据 (2)用户输入数据 (3)退出游戏2.游戏成功与否都能返回主菜单三算法提示1.数据结构:数组2.用简单的程序设计方法四测试数据测试数据

5、:3792第一次输入: 12340A2B 第二次输入: 5678 0A1B 第三次输入: 0867第四次输入: 9786 1A1B 第五次输入: 1794 2A0B 第六次输入: 27932A2B 第七次输入: 3792 4A0B 游戏成功!五其它对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:设计思路此游戏程序通过不断输入以及逐渐数位对应的方法,一步一步的缩小猜测范围最终猜测出机器内已经存储的数字,达到健脑益智的效果。这种策略非常直接每次都猜可能答案中的一个。例如:首先猜测 1234 ,如果得到的反馈是 2A2B 那么可能的答案包括 1256 1257 5326 523

6、6 等等。根据简单策略,下一次就猜 1256 ,因为 1256 是所有可能答案中最小的数字。简单策略是程序运行速度非常快,缺点是所猜测的次数较多。利用主函数调用子函数来实现模块化程序设计。将游戏的每一个功能设计成一个子函,数调用完成游戏。主要分为两大模块:随机模式和用户模式。猜数字游戏的主要功能,由系统自动产生4个随机排列的整数,或者由用户输入4个不同的整数,并给用户8次机会猜测数字的数值和排列顺序。如果用户在8次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功。可以对系统在实现系统基本功能后,完善系统的其它功能,如:主程序流程图如图5所示: 图5 主程序流程图源代码见附录C

7、。开始界面如图6所示:图6 开始界面结果截图使用说明界面如图7所示:图7 使用说明界面截图成功进行了一次游戏如图8所示:图8 完整一次游戏截图总结C程序课程设计是理论和实际的结合,通过这次程序的设计,提高了我的c语言水平,比如,查阅资料的重要性,对程序的整体性把握。而且对整体的掌控,还有对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,积累了经验,但是当自己根据此思路设计出程序时,程序的运行出现了一些问题,这些问题出现时,我通过查阅资料,并且和同学交流,最终经过几次的修改,运行结果和期待的相同。通过这次的课程设计,我感觉到自己的C语言知识很少,这次题目,可以让我掌握更多的知识,更好的

8、了解c程序的编译过程,分析阶段,我的分析思路如下,进行面向对象的需求分析,系统设计,画出相应需求分析图,流程图,有了流程图,可以让我更好的理解这个程序的设计方法。我还感觉到上机操作的重要性,以前我只是在书上看,而没有过多的上机操作,就算一个程序能写出来,上机操作的结果也未必正确,有时候自己对一个程序信心十足,但是如果上机操作,那么就有很多问题,并且遇到错误不要灰心,要一步一步的改,直到能运行出正确的结果为止,还有就是借助资料的重要性,一道题如果不会作,我们要借助资料来对比和解决,学习是一个不断完善的过程,要正视自己的不足之处,遇到不足的之处,要自己完善,比如,我体会到自己c语言知识知道的很少,

9、在以后,我要学习和完善自己的C语言知识,还有,自己的实际操作太少,在以后学习C程序设计的过程中,要注重实际操作,而不只是在书上看看就完了。参考文献1谭浩强着.C程序设计(第四版).北京:清华大学出版社,20102蔡志明着.指针的艺术.中国水利水电出版社,20093谭浩强编着.C程序设计(第三版).北京:清华大学出版社,20054谭浩强着.C程序设计教程.北京:清华大学出版社,20075谭浩强着.C语言程序设计(第2版).北京:清华大学出版社,20086谭浩强编着.C程序设计题解与上机指导(第三版).北京:7谭浩强编着.C+程序设计.清华大学出版社,20048谭浩强着.C程序设计(第四版)学习辅

10、导.北京:9陈明编着.计算机导论.北京:清华大学出版社,200910C编写组编.常用C语言用法速查手册.北京:龙门书局,1995附录附录Avoid main() void fun(int a ,int n);int a10,i,k,b11;请输入十个数:n);10;i+) scanf(,&ai); fun(a,10); 始游戏nn printf(tttt2.使用说明nntttt3.退出游戏nnttt请输入(1-3): fflush(stdin); choice=getchar(); while(choice!=1&choice!23 switch(choice) case: game(); b

11、reak; system(cls printf(tttt欢迎使用本程序nnn游戏说明:输入%d位数字,输入后会有提示XAYB,X表示有几个数字与答案数字相同且位置相同。n ,MANY);Y表示有几位数字与答案数字相同但位置不正确。答案数字是5764,如果输入5481,则会提示1A1B。祝你愉快!nn按任意键返回主目录n getch();确定要退出吗(y/n): fflush(stdin); ch=getchar(); if(ch=y|ch=Y exit(0); else continue; while(1);/*游戏部分*/void game() int guessMANY,answerMAN

12、Y; int times,i,m,j; int key; time_t t; char wantplay,temp; srand(unsigned)time(&t); do /*生成MANY个随机数*/ do u=0; for(i=0;MANY; guessi=rand()%10; same(guess); while(u); printf(请输入%d位不相同的数: for(times=1;times=TIME_OUT+1;times+) /*超过限定数次*/ if(times=(TIME_OUT+1) 正确答案是: for(m=0;mm+) printf(,guessm);n猜了%d次都没猜

13、中,TIME_OUT);第%d次:,times); /*玩家输入*/ temp=getchar(); answerj=temp-48; /*temp是char型*/ /*检查输入有没有重复*/ same(answer); if(u) printf(你输入的数字有重复,请重新输入n continue; ab(answer,guess); /*判断输入数字正确的个数*/ if(a=MANY) 恭喜!你猜对了 break; else %dA%dBn,a,b);还想玩吗(y/n): fflush(stdin); wantplay=getchar(); if(wantplay=|wantplay=) system( menu(); while(wantplay=/*判断输入的数或生成的数有没有重复的函数*/void same(int num) int i,j; for(i=0;MANY-1; for(j=i+1;j+) if(numi=numj) u=1;/*提示XAYB的函数*/void ab(int answer,int guess) a=b=0; if(answeri=guessj) if(i=j) a+; else b+;/*主函数*/ void main() menu();

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2