




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程设计实验报告姓名:XXX学号:XXXXXXX班级:XXXXXX指导教师:盛完成日期:XXXX年 X 月 X 日目录一、问题简述(2)二、需求分析及系统设计(2)(一)需求分析(2)(二)系统设计(2)三、程序测试结果(4)四、问题及解决方案和收获与心得(7)(一)问题及解决方案(7)(二)收获与心得(7)五、程序源代码(8)、问题简述本题目(参考题五)要求设计并实现一个打字游戏,游戏要求如下: 游戏开始后,屏幕上方同时有四个数字分四列下落, 每个数字由三位组成 (随 机生成,但首位不可相同) 。玩家用键盘依次输入数字,如果输入的数字序列与 某一列正在下落的数字三位全部相同,则给玩家加
2、10 分,该列数字消失,该列 新产生数字并下落; 如果输入的数字某一位不相同, 则输入的数字序列全部作废, 重新接收输入。某一列数字到达屏幕底部则游戏结束。对于本题目我采用C+进行设计并实现。二、需求分析及系统设计(一)需求分析 需要设计的这个游戏程序,其规则在上述问题简述中已经进行了详细描述。其中有几个方面是这个程序所需要的主要模块:(1)生成四组随机的三位数,并且所生成的四组随机数要求首位不相同;(2)分析并选取合适的方式来存储这些随机数;(3)所有显示出的数能够按照一定频率向下进行滚动;( 4)键盘输入一组数字,并在输入匹配的情况下消除与之匹配的数,然后 产生一个不同于其他三组的新随机数
3、;( 5)判断游戏结束的标准并输出分数。(二)系统设计通过分析, 选择二维数组作为存储并处理这些随机数的容器, 所有主要步骤 都在这个二维数组中设计并实现; 在随机数的生成上选择以当前系统时间为随机种子来生成所需要的四组随机数;该程序包含的模块:class GRN - (该类负责生成随机数 Generate Random Number)void generate()-(生成随机数)int RN()- (将生成的随机数返回 n ) class Run - (该类负责实现程序的其他主要功能)void initialize()-(对数组以及各类参数进行初始化)void importing()-(将生
4、成的符合要求的随机数导入到数组中)void show()-(显示游戏运行过程)void judge()-(判断所输入的数是否满足消去条件并进行记分)void act(int t)-(执行,消去满足条件的数并在该列顶端生成新随机数)系统流程图:三、程序测试结果 (OS:Windows 8 编译: VS2012)1. 游戏程序开始执行界面2. 输入数字每次移动的时间间隔(单位 ms)3. 游戏开始运行4. 游戏进行中5. 游戏结束6. 经过测试,游戏能够正常运行并且所得分数正确。四、问题及解决方案和收获与心得(一)问题及解决方案在设计开始时,希望能把这个游戏程序做成 windows图形界面来显示,
5、但是 由于时间和能力不足,最终选择将程序实现在DOS窗 口界面下。在设计过程中,对游戏进行时的滚动速度想实现成逐渐加快的模式,但是实 现过程发现有一些缺陷,于是改善成由用户自己手动输入 Sleep(t )中t的数值 来设置游戏中数字的滚动速度,这样用户可以有不同的体验。(二)收获与心得通过完成本次C+游戏程序的设计与实现,我对 C+程序的设计有了更深一 层的了解,锻炼了使用C+编程的熟练程度,对程序的设计步骤与相关细节的实现 有了更好的认识;在完成程序的过程中,会出现一些错误,但是有些错误只要细 心一点就可以避免,这样写程序的效率就会提咼,另外,整洁的代码对于所写程 序的质量也有很好的帮助与提
6、升。五、程序源代码#inelude #include #include #include #include using namespacestd;class GRNenerate();a1.ge nerate();a2.ge nerate();a3.ge nerate();if (a0.RN()/100!=a1.RN()/100 & a1.RN()/100!=a2.RN()/100 & a2.RN()/100!=a3.RN()/100& a0.RN()/100!=a2.RN()/100 & a0.RN()/100!=a3.RN()/100 & a1.RN()/100!=a3.RN()/100)
7、N();n 01=a1.RN();n 02=a2.RN();n0 3=a3.RN();void Run:show()for (i=0;i25;i+)for (j=0;j4;j+)if (nij!=0)cout n ijvv;elsecout;if (_kbhit()sk=_getch();k+;coute ndl;void Run:judge()if (k=3)s3= 0;num=atoi(s);if (num=a0.RN() | num=a1.RN() | num=a2.RN() | num=a3.RN()N()en erate();if (a0.RN()/100!=a1.RN()/100
8、& a0.RN()/100!= a2.RN()/100 & a0.RN()/100!=a3.RN()/100) break;n l-1-z00=0;z0=l-1;if (num=a1.RN()enerate();if (a0.RN()/100!=a1.RN()/100 & a1.RN()/100!= a2.RN()/100 & a1.RN()/100!=a3.RN()/100) break;nl-1-z1 1=0;z1 = l - 1;if (num=a2.RN()enerate();if (a2.RN()/100!=a1.RN()/100 & a0.RN()/100!= a2.RN()/10
9、0 & a2.RN()/100!=a3.RN()/100) break;n l-1-z22=0;z2=l-1;if (num=a3.RN()enerate();if (a3.RN()/100!=a1.RN()/100 & a3.RN()/100!= a2.RN()/100 & a0.RN()/100!=a3.RN()/100) break;n l-1-z33=0;z3=l-1;k=0;s0= 0 ;_ void Run:act( int t) for (l=1; ;l+)show(); judge();n l-z0-10=0;nl-z1-11=0;n l-z2-12=0;n l-z3-13=0;n l-z00=a0.RN();nl-z11=a1.RN();n l-z22=a2.RN();n l-z
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级经济师考前模拟试题及答案
- 2025年中级经济师温习必用试题及答案
- 高效备考公共关系学的试题及答案
- 安全与经济性的有效平衡分析试题及答案
- 行政管理中公共关系制度建设的重要性试题及答案
- 2025年工程项目管理答题技巧试题及答案
- 公共关系的网络传播工具应用试题及答案
- 公共关系学不可不知的试题及答案
- 公共关系学国际视野试题及答案
- 2025年工程项目管理前瞻性试题及答案
- 2025团员考试试题及答案
- 2025年全国防灾减灾日专题培训课件
- 2025-2030中国氯氧化铋行业市场发展趋势与前景展望战略研究报告
- 2025年中考语文二轮复习:说明文阅读 测试卷(含答案解析)
- 视频监控介绍课件
- 统计学试题及答案解析
- 跨学科实践制作微型密度计人教版物理八年级下学期
- 2025届高考语文作文备考之审题立意30道选择题训练(附答案)
- 21. 三黑和土地 课件
- 挖掘机理论试题及答案
- 2025年银行从业资格考试个人理财真题卷权威解读
评论
0/150
提交评论