您好,欢迎访问三七文档
攀枝花学院课程设计论文-1-攀枝花学院课程设计题目:纸牌游戏的设计与实现院(系):年级专业:姓名:学号:指导教师:二〇〇九年十二月十四日攀枝花学院教务处制攀枝花学院课程设计论文-2-攀枝花学院本科学生课程设计任务书题目纸牌游戏的设计与实现1、课程设计的目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)任务:编号为1-52张牌,正面向上,从第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天程序调试分析和结果第5天课程设计报告和总结指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。攀枝花学院课程设计论文-3-课程设计(论文)指导教师成绩评定表题目名称纸牌游戏的设计与实现评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名:年月日攀枝花学院课程设计论文-4-摘要纸牌游戏是数据结构大作业中比较经典的一个大作业,通过此课程设计能够启发我们的思维,对数据结构中的函数有更加清楚的认识,建立我们对数据结构的兴趣,通过此课程设计设同时也能够使我们对各方面的知识有了更加全面的认识与了解,丰富了我们的知识面,扩展了我们的思维。通过课程设计的实践,我们可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。当前计算机软件技术和网络技术正飞速发展,软件系统日趋大型化、复杂化,软件对于一个计算机系统是至关重要的。因此社会对软件开发者提出了比以往更高的要求,相应的系统要求也有了很大的提高。本系统用C++作为程序语言,设计出的系统功能强大,操作方便灵活。关键词纸牌游戏,数据结构,软件,系统-Ⅰ-攀枝花学院课程设计论文-5-目录摘要…………………………………………………………………………………………Ⅰ1需求分析………………………………………………………………………………………11.1需求来源……………………………………………………………………………………11.2设计目的……………………………………………………………………………………11.3设计要求……………………………………………………………………………………12功能需求描述…………………………………………………………………………………13总体设计………………………………………………………………………………………13.1设计思想…………………………………………………………………………………13.2系统模块结构……………………………………………………………………………23.3系统总设计流程图………………………………………………………………………24概要设计………………………………………………………………………………………44.1抽象数据类型定义…………………………………………………………………………44.2本程序所包含模块…………………………………………………………………………54.3系统功能的实现…………………………………………………………………………55模块设计………………………………………………………………………………………65.1洗牌模块………………………………………………………………………………65.2翻牌模块…………………………………………………………………………66运行与分析……………………………………………………………………………………66.1运行结果……………………………………………………………………………………66.2结果分析……………………………………………………………………………………7致谢……………………………………………………………………………………8参考文献………………………………………………………………………………………9源程序……………………………………………………………………………………10攀枝花学院课程设计论文-6-1需求分析1.1需求来源在本系统的需求分析环节中,会对软件开发的意图、开发的目标、作用范围和有关该软件开的背景材料进行详细的分析。纸牌游戏作为一个用来娱乐的应用软件,在对其进行需求分析的过程中,需用要充分考虑系统的可用性和简单易用性,联系实际娱乐需要,从而得到合理的需求分析结论。1.2设计目的该软件为用户提供一个在Windows系统上运行的纸牌游戏小系统。应达到的目的是:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过。1.3设计要求任意输出一组牌,输出最后正面向上的牌。2功能需求描述纸牌游戏是一个用来娱乐的系统软件,此软件操作简单,每个新手都可以直接使用,不需要登陆注册,按游戏规则游戏即可。游戏使用者主要功能需求如下:系统洗牌后,猜测正面向上的牌,然后系统按设计的规则进行翻牌。洗牌后,使用者就可以看到自己猜得正面向上的牌是否与系统一样了。若一样,则胜利,否则失败。游戏很简单,使用者只要掌握好游戏规则就很容易取胜。3总体设计3.1设计思想在对纸牌游戏进行合理的需求分析之后,对整个系统进行总体设计。首先确定开发与设计的总体思想,在此基础上,用图表的方式给出系统总体的设计架构,攀枝花学院课程设计论文-7-绘制系统模型结构图,并且通过模块功能图对每个模块进行总体设计。开发本设计的总体思想:纸牌游戏是一个简易的游戏系统。开发设计的重点在于对纸牌的洗牌和翻牌按设计要求进行设计,不得出错。纸牌小游戏是供大众娱乐的小游戏,所以无需考虑安全问题。对于洗牌翻牌这两环节要用到程序设计思想中的循环结构。系统采用结构化的设计方法进行设计,采用C语言进行开发。3.2系统模块结构依据需求分析结果,纸牌游戏总体上说就一个模块:翻牌。详细一点可分为2个模块:洗牌模块、翻牌模块。其中翻牌模块就是洗牌的最后一个步骤,即屏幕上显示得最后几张牌。也是用户应该猜得最后结果。系统模块结构如下图:图3-2-13.3系统总设计流程图纸牌游戏洗牌模块翻牌模块攀枝花学院课程设计论文-8-牌的张数自减牌的张数自减开始游戏i=0i++i=1?是否继续将每张牌的牌号设置为1~52i’=1j=随机数%52+1将第i’张牌设置为第j张牌的牌号k=j将第k+1张牌向前移动一位k++k牌的张数?牌的张数自减1将第i’张牌设置为正面朝上,i’++i’=52?输出牌号开始第一轮游戏N结束攀枝花学院课程设计论文-9-图3-3-14概要设计4.1抽象数据类型定义⑴对纸牌进行按规则翻牌AllCards*RandArrange(){}voidTurn_Over(AllCards*C){}i=2j=2第j张牌牌号%i=0?第j张牌是否正面朝上将第j张牌设置为正面朝上j++j=52?i++i=52?输出正面朝上的牌号将第j张牌设置为正面朝下攀枝花学院课程设计论文-10-⑵查询翻牌剩下的最后7张牌voidSearch(AllCards*C){}⑶主函数voidmain(){}根据设计要求,我们知道设计中所有用到的数据记录有纸牌翻转信息,因此要定义相关的数据类型:纸牌最大个数定义为CARDNUM52,翻转状态存储在boolisup中,纸牌放在数组Cards[CARDNUM+1]中等。4.2本程序包含模块⑴主程序模块①#defineCARDNUM52给数组定义一个空间②typedefstruct{}Indexcode;纸牌的信息③typedefstruct{}PreCard;翻转纸牌④typedefstruct{}AllCards;存储纸牌的数组⑵洗牌模块⑶纸牌翻转模块——翻转纸牌各模块关系如下:图4-2-14.3系统功能的实现要实现纸牌按此要求翻转,首先要将52张纸牌序号i为1到52,定义正面朝上的状态Cards[i].isup为true;对52张牌(序号放在i里)对2,3···52(放在j里)按i+1是否是j的倍数进行状态翻转。如果对序号从1到52的牌,对翻转处理后状态仍然是正面的将其输出,一直进行下去,直到以52的基础翻过。程序模块牌的洗牌模块标记牌的翻转模块攀枝花学院课程设计论文-11-5模块设计5.1洗牌模块该模块案设计要求洗牌,是用户进行游戏的前提。该模块主要是按要求进行循环翻牌的过程,要求为:“从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的,直到以52为基数的翻过,输出”。5.2翻牌模块翻牌模块其实就是洗牌模块得最后一个步骤。该模块就是为了显示出最后结果,让用户比较一下自己的结果和系统输出得结果有什么不同。6运行与分析6.1运行结果攀枝花学院课程设计论文-12-6.2结果分析该游戏很简单,只需按规则一步步地进行翻牌,然后将自己所猜的结果与屏幕上的结果对比,在每轮游戏结束后,都可继续游戏。攀枝花学院课程设计论文-13-致谢通过这次设计,使我在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深了对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。在此之前,我脑袋里面没有数据结构的思想,什么数据结构对我而言就是一张空白的纸。当时就感觉自己什么都不会做,什么也不能做,但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就
本文标题:纸牌游戏课程设计
链接地址:https://www.777doc.com/doc-5013241 .html