《纸牌游戏课程设计》由会员分享,可在线阅读,更多相关《纸牌游戏课程设计(17页珍藏版)》请在金锄头文库上搜索。
1、攀枝花学院课程设计题 目: 纸牌游戏的设计与实现 院 (系): 年级专业: 姓 名: 学 号: 指导教师: 二九年十二月十四日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目纸牌游戏的设计与实现1、课程设计的目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)任务:编号为1-52张牌,正面向上,从第2
2、张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?3、主要参考文献1 严蔚敏.数据结构 C语言.清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3数据结构.高教出版社 4 李春保.数据结构习题.清华大学出版社5 严蔚敏.数据结构习题.清华大学出版社4、课程设计工作进度计划第1天 完成方案设计与程序框图 第2、3天 编写程序代码第4天 程序调试分析和结果
3、第5天 课程设计报告和总结指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 年 月 日注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表题目名称纸牌游戏的设计与实现评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05
4、应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求
5、。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日摘 要纸牌游戏是数据结构大作业中比较经典的一个大作业,通过此课程设计能够启发我们的思维,对数据结构中的函数有更加清楚的认识,建立我们对数据结构的兴趣,通过此课程设计设同时也能够使我们对各方面的知识有了更加全面的认识与了解,丰富了我们的知识面,扩展了我们的思维。通过课程设计的实践,我们可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。当前计算机软件技术和网络技术正飞速发展
6、,软件系统日趋大型化、复杂化,软件对于一个计算机系统是至关重要的。因此社会对软件开发者提出了比以往更高的要求,相应的系统要求也有了很大的提高。本系统用C+作为程序语言,设计出的系统功能强大,操作方便灵活。 关键词 纸牌游戏,数据结构,软件,系统-目 录摘 要1需求分析1 1.1需求来源1 1.2设计目的1 1.3设计要求12 功能需求描述13 总体设计13.1 设计思想13.2 系统模块结构23.3 系统总设计流程图24 概要设计4 4.1抽象数据类型定义4 4.2本程序所包含模块5 4.3系统功能的实现55 模块设计65.1洗牌模块65.2翻牌模块66 运行与分析6 6.1运行结果6 6.2
7、结果分析7致谢8参考文献9源程序101 需求分析1.1需求来源在本系统的需求分析环节中,会对软件开发的意图、开发的目标、作用范围和有关该软件开的背景材料进行详细的分析。纸牌游戏作为一个用来娱乐的应用软件,在对其进行需求分析的过程中,需用要充分考虑系统的可用性和简单易用性,联系实际娱乐需要,从而得到合理的需求分析结论。1.2设计目的该软件为用户提供一个在Windows系统上运行的纸牌游戏小系统。应达到的目的是:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为
8、基数,是4的倍数的牌翻一次,直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过。1.3设计要求任意输出一组牌,输出最后正面向上的牌。2 功能需求描述 纸牌游戏是一个用来娱乐的系统软件,此软件操作简单,每个新手都可以直接使用,不需要登陆注册,按游戏规则游戏即可。 游戏使用者主要功能需求如下:系统洗牌后,猜测正面向上的牌,然后系统按设计的规则进行翻牌。洗牌后,使用者就可以看到自己猜得正面向上的牌是否与系统一样了。若一样,则胜利,否则失败。游戏很简单,使用者只要掌握好游戏规则就很容易取胜。3 总体设计3.1设计思想在对纸牌游戏进行合理的需求分析之后,对整个系统进行总体设计。
9、首先确定开发与设计的总体思想,在此基础上,用图表的方式给出系统总体的设计架构,绘制系统模型结构图,并且通过模块功能图对每个模块进行总体设计。开发本设计的总体思想:纸牌游戏是一个简易的游戏系统。开发设计的重点在于对纸牌的洗牌和翻牌按设计要求进行设计,不得出错。纸牌小游戏是供大众娱乐的小游戏,所以无需考虑安全问题。对于洗牌翻牌这两环节要用到程序设计思想中的循环结构。 系统采用结构化的设计方法进行设计,采用C语言进行开发。3.2系统模块结构 依据需求分析结果,纸牌游戏总体上说就一个模块:翻牌。详细一点可分为2个模块:洗牌模块、翻牌模块。其中翻牌模块就是洗牌的最后一个步骤,即屏幕上显示得最后几张牌。也
10、是用户应该猜得最后结果。系统模块结构如下图: 洗牌模块纸牌游戏翻牌模块图3-2-13.3系统总设计流程图开始游戏i=0i+开始第一轮游戏 i=1?N结束是否继续将每张牌的牌号设置为152i=1j=随机数%52+1将第i张牌设置为第j张牌的牌号k=j将第k+1张牌向前移动一位k+k牌的张数?牌的张数自减牌的张数自减牌的张数自减1将第i张牌设置为正面朝上,i+i=52?输出牌号i=2j=2第j张牌牌号%i=0?将第j张牌设置为正面朝下第j张牌是否正面朝上将第j张牌设置为正面朝上j+j=52?i+i=52?输出正面朝上的牌号图3-3-14 概要设计4.1抽象数据类型定义对纸牌进行按规则翻牌AllCards* RandArrange() void Turn_Over(AllCards* C) 查询翻牌剩下的最后7张牌void Search(AllCards* C) 主函数void main() 根据设计要求,我们知道设计中所有用到的数据记录有纸牌翻转信息,因此要定义相关的数据类型:纸牌最大个数定义为CARDNUM 52,翻转状态存储在bool isup中,纸牌放在数组CardsCARDNUM+1中等。4.2本程序包含模块主程序模块#define CARDNUM 52 给数组定义一个空间