已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字竞猜一 目的通过数字竞猜的课程设计,加深对C语言程序设计课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。二 需求分析1设计题目:数字竞猜输入一个四位数,如:1234 ,可以是有重复数字的四位数,和电脑随机产生的不重复的四位数比较各个数位的数字,如果相同则得一分,比较后显示分数,并对多人游戏排名,排名用比较法;2系统以菜单界面方式(如能采用图形菜单界面更好)工作构造menu() 用来显示菜单界面选择“1”输入数据,选择“2”显示名次(最多前三名),选择“3”退出,如果输入其他数字,程序提醒你输入错误;3程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。程序构造多个函数- menu guess compare ranks -,层次分明,一个函数模块完成一个功能,各个模块相互调用,组成一个整体; 4编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。程序中对函数进行说明,对变量加以注释,增加可读性;5写出规范的课程设计报告,具体要求见相关说明文档。报告分块如下:目的、需求分析、概要设计、详细设计、调试分析、测试结果、用户使用说明、课程设计总结,内容紧扣源程序。 三 概要设计1程序中包含的主要函数如下:menu() 主菜单main () 主函数void guess() 实现输入猜数 调用compare进行比较 变量j保存分数int compare(int) 实现所猜的数和随机数比较 ab储存随机和猜得数各位数字void ranks() 历史排名 t c h k排序时用到的中间变量2程序中包含的数据变量如下:int m4 存储系统产生的随机数int d4 存储玩家所猜数int a4 数组a保存所得分数x3程序中函数调用情况说明:主函数main()主菜单menu()guess()compare()ranks()四 详细设计1:显示主菜单menu() /*主菜单*/ printf(n*n); printf(* Welcome to play this game *n); printf(* 1.Guess numbers *n); printf(* 2.History ranks *n); printf(* 3.eixt *n); printf(*n); printf(n);main()clrscr(); for(;)menu(); /*调用主菜单menu函数*/ printf(Please input you choice here:); scanf(%d,&choice); if(choice=1&choice=3) switch(choice) /*用switch控制主菜单*/ case 1:guess();break; /*调用guess函数*/ case 2:ranks();break; /*调用ranks函数*/ case 3:exit(0); else printf(Sorry,your choice is not right,please choose again.);printf(n Press any key to continue.); getch();clrscr(); 2:输入保存所猜数void guess() /*实现对猜得数的输入保存输出*/ static int j=0; /*定义静态全局变量*/ printf(nPlease input the number you guess:); scanf(%d,&b); /*输入猜得数保存到b中*/ dj=b; /*按次序保存猜所数字*/ printf(n); printf(-tips-n); printf(the number you guessed:%dn,b); /*输出猜得数*/ aj=compare(b); /*保存猜得的分数*/ j+; 3:实现猜得数与随机数的比较 int compare(int b) /*实现猜得数与系统随机产生数的比较*/ int a,a1,x=0,y=0,i,j; /*定义比较操作中的变量*/ int A4,B4; /*保存随机数和所猜数*/ static int q=0; /*定义静态变量*/ srand( (unsigned)time( NULL ) ); /*初始化随机数发生器*/ do a=a1=rand()%9000+1000; /*产生1000-9999的随机数*/ A0=a/1000;a=a%1000;A1=a/100;a=a%100; /*保存随机数各个数位上的数字*/A2=a/10; A3=a%10;while(A0=A1|A0=A2|A0=A3|A1=A2|A1=A3|A2=A3); /*产生四位不同的随机数*/printf(the true_number is:%dn,a1); /*保存系统产生的各数位数字不同数*/mq=a1; /*按次序保存每次产生的随机数*/ q+; B0=b/1000; b=b%1000; B1=b/100; b=b%100; B2=b/10; B3=b%10; if(A0=B0) x=x+1; /*比较千位*/ if(A1=B1) x=x+1; /*比较百位*/ if(B2=A2) x=x+1; /*比较十位*/ if(B3=A3) x=x+1; /*比较个位*/ for(i=0;i4;i+) for(j=0;j4;j+) if(i!=j) if(Ai=Bj) y=y+1; /*逐位比较,计算(x,y)的值*/if(x=4) /*全对*/ printf(Congratulations! you win the game!); printf(you have correct position and value by guessed:n,x,y); printf(-n); return x;4:实现按分排序void ranks() /*按分排序*/ int t,c,h,k; /*定义排序中变量*/ for(k=0;k4;k+) for(j=k+1;j5-j;j+) if(akaj) /*分数比较*/ t=ak; c=dk; h=mk; ak=aj; mk=mj; dk=dj; /*高低分玩家数据换位*/ dj=c; aj=t; mj=h; printf(n); printf(-History ranks-n); printf( ranks core true_number guess_num n); printf(-n); j=1; /*输出排序结果*/ for(i=0;i3;i+) /*保存前三位结果*/ printf( %d%12d%17d%13dn,j,ai,mi,di);j+; printf(-n); printf(n); 五 调试分析以下列出调试时发生的几处错误及对错误的纠正1-无法运行,经检查是TC软件Directories路径错误,把从C盘拷的编程软件放到了D盘,改了路径就可以运行了2-运行出错,无法进行游戏,经检测是变量Choice输出语句错误,应是“%d,&choice”,最终运行成功。六 测试结果程序运行过程如下1,输入命令,输错,系统给出提示;2输入命令1:猜数字3,输入命令2,给出历史排名前三位-输入命令3,退出游戏七 用户使用说明&进入游戏界面后,系统给出主菜单,* Welcome to play this game * * 1.Guess numbers * * 2.History ranks * * 3.eixt * *选择1,进入游戏,系统会提示你输入一个四位数,输入后命令确定,系统给出随机产生的四位数,并进行比较,给出符合游戏规则的数字个数,并给出得分,如果你猜得的数与系统相等,系统会提示你Congratulations! you win the game!&多次游戏后,选择2,系统给出游戏的历史排名-History ranks-ranks score true_number guess_num 1-2-&如果您不想玩了,选择3,退出游戏-八 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。在进行课程设计之前几天,不知从何入手,一脸茫然。为什么呢?因为我们想自己做出来而不参考任何资料,以为这样才可体现我们的智慧和能力,其实这是大错特错的。当然也不是一味强调自己动脑自己做出来不好,从开发方面角度来说是可以的,有些东西也并不是一味的照搬照抄。抱着这样的态度迷茫了三四天只想出了一丁点大致结构。最后决定上网找资料,不查不知道,一查大吃一惊,不但自己的想法网上比比皆是,比自己的想法更完美更合理的多得看都看不完。此时真是自愧不如,如早从网上借鉴,集大家之所成,加上自己的修改完善,早已做出了更好的系统结结构和想法了。现在才知道,一个人的智慧敌不过千万人智慧的集成,能借鉴的尽量借鉴,然后再修改完善,增加自己所需的功能,做出自己的特色。伟大的物理学家牛顿不也说过,他之所以成功,是站在伟人的肩上吗?回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的的东西,同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025员工提前退休合同协议
- 2025年阿勒泰辅警招聘考试题库及答案详解(各地真题)
- 2025年驻马店辅警招聘考试真题及答案详解(必刷)
- 2025年辽源辅警协警招聘考试真题含答案详解(黄金题型)
- 2025年阜新辅警招聘考试真题及答案详解(必刷)
- 2025年阿克苏辅警招聘考试真题及1套参考答案详解
- 2025年鄂州辅警协警招聘考试真题及答案详解(新)
- 2025版短期项目合同范本【标准】
- 2025年长沙辅警招聘考试题库含答案详解(研优卷)
- 2025年绥化辅警协警招聘考试真题含答案详解(a卷)
- 2025年教育系统后备干部面试题及答案
- 2026年中国铁路郑州局集团有限公司招聘普通高等院校本科及以上学历毕业生584人(一)笔试考试参考试题及答案解析
- GB 11174-2025液化石油气
- 统编版九年级下册道德与法治 3.2与世界深度互动2025-课件
- 农村私宅转让协议书
- 5G通信模块设计项目分析方案
- 汽车维修入股协议合同
- 教育家精神课件
- 2025年四川教师公招《教育公共基础知识》试题答案
- 2026蒙牛「星动力」校园招聘笔试考试参考试题及答案解析
- 2025年机械行业安全生产考试题库(行业安全规范试卷)
评论
0/150
提交评论