猜拳游戏课程设计.doc

上传人:laozhun 文档编号:2387582 上传时间:2023-02-17 格式:DOC 页数:35 大小:186.50KB
返回 下载 相关 举报
猜拳游戏课程设计.doc_第1页
第1页 / 共35页
猜拳游戏课程设计.doc_第2页
第2页 / 共35页
猜拳游戏课程设计.doc_第3页
第3页 / 共35页
猜拳游戏课程设计.doc_第4页
第4页 / 共35页
猜拳游戏课程设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《猜拳游戏课程设计.doc》由会员分享,可在线阅读,更多相关《猜拳游戏课程设计.doc(35页珍藏版)》请在三一办公上搜索。

1、 计算机学院计算机科学与技术专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2011年12月30日猜拳游戏设计报告目录第一章程序设计的目的和要求41.1课程设计的目的41.2课程设计的目标51.3课程设计的要求6第二章 课程设计任务内容32.1课程设计的题目72.2背景7第三章 程序流程图及概况图8第四章 系统测试及调试结果104.1调试结果及截图11第五章 游戏规则说明12第六章 课程设计总结及心得13附录 参考文献27附录 程序代码271.1课程设计的目的C+语言课程设计的主要目的是培养学生综合运用C+程序设计课程所学到的知

2、识,编写C+程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C+语言程序的基本技巧,充分理解结构化程序设计的基本方法。C+语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C+语言程序及编写设计报告。本次课程设计是通过设计一个较为简单的“猜拳系统”,进一步熟悉C+中有关各种知识的运用与掌握。了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境

3、的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C+编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础1.2课程设计的目标本课程设计的目标:1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握;2. 掌握C+语言编程和程序调试的基本技能;3. 掌握利用C+语言进行软件设计的方法;4. 提高书写程序设计说明文档的能力;5. 提高运用C+语言解决实际问题的能力。1.3课程设计要求基本要求:1.题目:设计一个“猜拳游戏系统”软件;2.了解该系统软件开发的相关背景;3.参考相关书籍学习课程设计的基本知识;4.清楚所开发系统软件的各个相关功能,以便顺利开发系

4、统软件;5.对系统功能模块进行分析,写出设计说明文档;6.设计完成的软件要便于操作和使用;7.对自己所设计的程序进行调试,并不断完善;8.在设计过程中熟练掌握软件编程的相关知识;9.详细体会并记录相关过程,并将心得体会写在课程设计报告中;10.设计完成后提交课程设计报告。第二章 课程设计任务内容2.1 课程设计题目猜拳游戏系统 该游戏是根据童年时候,我们经常玩的“剪刀、石头、布”和“斗兽旗”这两个小游戏,相互借鉴,经过组合创新,改出来的新游戏,其中多了几种变化,使游戏更丰富,更加的有趣,改变过去传统的玩法,让你多一种选择。2.2 背景 在以前玩过的游戏或生活中看到的事物里,选出4种相互克制的事

5、物,组成猜拳游戏的四个基本单位,在此基础上实现猜拳游戏的可行性。通过程序运行实现人机对战。第三章 程序详细设计及流程图1是否继续?输出结果输入选择开始 YN结束1 重新开始程序判断胜负输入选的对象开始游戏游戏设计概况游戏设计概况图 第四章 系统测试及调试结果程序1运行结果 图一 图二程序2运行结果图三图四图五 图六第五章 游戏规则说明游戏根据剪刀、包袱、锤这个小游戏改编,在原有的单个相克的基础上,增加了一个单位,出现了一个可以胜两个的关系。使游戏更加的复杂,增加了一种选择,使游戏更加有趣。新规定的游戏规则如下:游戏根据斗兽棋中的规则,选择其中象、虎、狐、鼠,四种动物作为单位,以其中的相克作为判

6、断胜负的标准。其中:1 象胜虎和狐 2 虎胜狐和鼠3 狐胜鼠4 鼠胜象其中,象、虎、狐、鼠分别对应0、1、2、3第六章 课程设计总结及心得课程设计刚开始的时候,我真的感觉到无从下手。因为已经过去一个学期了,期间又没有怎么看书,大一的时候学的c+,不过基本上已经忘光了,而且那时候学的不深,如果单单写一个比较的小的程序还可以,大程序基本写不了。当老师把题目发给我们之后,刚开始是一筹莫展,不过短时间内就已经觉醒,重新对题目分析了一遍,了解了一下要用到哪方面的知识,然后着手去看书,重新熟悉一下以前的知识。然后去图书馆借了一些关于数据结构和c+的书。看过那些书之后,信心增加了不少,对接下来的程序编译有很

7、大帮助。通过这三周的课程设计,我独立完成了一个较大的C+语言程序的设计,并认真完成了课程设计报告。回忆这三周的时间,我收获很大。首先,我熟练地运用了所学的知识编写程序,并成功的完成,感觉成就感很强,这大大激发了我编程的兴趣;其次,在设计的过程中遇到了一些困难,我会认真的去思考,或者充分利用网络资源来寻求帮助,提高获取信息的能力。课程设计期间,我有向老师和同学寻求帮助,在交流中共同进步。最后,我了解了软件开发的大体过程及各个步骤,这对将来的学习和工作是很有帮助的。对于信管专业的大学生来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。而程序设计综合课程设计就是积累实战经验的一个过

8、程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。经过两个星期的上机实践学习,使我对C+语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己编程粗心大意,经常出错,通过学习也有所改进;再有对C+语言的一些标准函数不太了解,还有对函数调用的正确使用不够熟悉,以及对C+语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。这次的课程设让我认识到很多C+的内在要素:1. 程序设计语言是程序设计的工具。这是我通过两周课程设计深深体会的一点,并且发现如

9、果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,掌握其语法知识。2. 学习程序设计必须重视时间环节,多读程序,多编写程序,多上机实践。这次的课程设计就使得课堂教学、式样和实践之间的关系更为紧密。对我的学习有着很深远的影响。3. 我发现作为一个程序设计人员,需要掌握面向过程的程序设计,也要掌握面向对象的程序设计。从前,人们通过C+语言学习面向过程的程序设计,再通过C+学习面向对象的程序设计。其实C+并不是纯粹的面向对象的语言,它是一种混合语言。学习C+既可以编写面向过程的程序,也可以编写面向对象的程序。这一点是我通过可课程设计所的实践发现的。4. 深切的感受到

10、了C+语法的复杂,内容的繁多。发现如果对它缺乏系统的了解,将难以真正的运用,编出来的程序错误百出。 在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。 另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。

11、在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。【收获及体会】C语言课程设计和现代计算机技

12、术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Turbo C的使用技巧。 另外,实习中老师对我们进行了细心、耐心的指导,鼓励

13、我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.一个多礼拜的挣扎,绞尽脑汁终于带着麻木的手指和大脑脱出那堆“泥潭”。现在的心情是如鱼得水,干涩的眼睛前方是万里晴

14、空。终于,所有的努力即将化成了一个个铅字,打印机“滋滋”的声音仿佛已经宛如天籁般悦耳地在耳畔响起。此时此刻,真想把一切抛上天空。高呼:“出来了!我的成果即将出来了!”,心里也在默默的感慨着:“有志者,事竟成,破釜沉舟,百二秦关终归楚。苦心人,天不负,卧薪尝胆,三千越甲可吞吴。” 这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序

15、设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。 高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生成为统一式模子加工出来的“标准件”。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我

16、可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。并且,它无形中促进我们自主学习,使我们对C语言有了更深刻地了解,对程序设计有了更高的操作水平。通过这次实践我明白:人是在与他人交往中认识世界,在交流中不断调整和修正自己的错误,从而使之更全面,更透彻。这套运算器的程序都由我们自己互相帮助,经过无数次的修改而成,老师只是辅导。我们知道老师不再是全知全能的权威,不再是知识的来源,他们只是学生的协作和促进者,只有我们才是学习的主人。 请允许我把这种课堂模式称作“放水养鱼”模式,它很自由,有利与培养我们的独立思考、求异思维,创新能力,使我们获得更多的知识和更强的能力。我觉得这次

17、程序设计课相当成功,学校应多多开展。 一个星期前的现在,当听到老师布置给我们的这个题目时,我们都蒙了,这么难的题目我们怎么会啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。上网查资料是我们迈开的第一步,有类似的题目,可是不一样,我们失望而回,然后再是去图书馆查,肯定没有现成的,我们只能查相关的函数,经过两三天的努力,我们把框架弄出来了,可是还有计算和闪烁这两大难题摆在我们面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我们那个急啊,可是急也没有用。29个人总归可以搞定,这是我们可以坚

18、持到现在的信念,终于工夫不负有心人,我们参照类似程序,改改和添添,终于大功告成,我们欢呼我们雀跃,终于相信我们自己是足够的伟大。这一个多星期以来,我们坐在电脑旁,又累又热,可是当程序做出来了之后,那点累那点苦又算得了什么呢。当现在敲打这些字的时候,满足感油然而生,如果有人问我物质和精神哪个更让人满足,那答案一定是精神,那种感觉只有自己体会了才能懂。这可不是大话,原来一直认为这样一个程序我们是不能完成的,可是现在我会很自信的说:没有什么可以难倒我们。程序设计提升了我们的自信心,真的是受益匪浅啊。这当然得感谢刘金平老师和全班同学的帮助。我们不仅仅是尽力,更是竭尽全力。这就是年少轻狂的我们什么都敢做

19、,什么都不怕,就算跌倒了,再爬起来,没有什么大不了。 通过这段时间的课程设计,我认识到C语言是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。刚开始做这个程序的时候,感到完全无从下手,觉得让我完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献:谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999;徐金梧、杨德斌、徐科著.TurboC实用大全.北京:北京机械工业出版社,1996。之后便开始着手写程序,写完运行时有很多问题,如输入的数据总是覆盖之前的数据,在做按键的

20、闪烁时,闪烁后的按键不能变回原来的颜色等,后来花了很长时间才解决了这些问题。我的程序有许多值得改进的地方,如可以增加一些函数:cos、sin、ln、sqrt等;在画界面矩形的时候可以使用for语句。总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识:C语言功能高、表达能力强、使用灵活方便、目标程序效率高。C语言是在国内外广泛使用的一种计算机语言,我相信除了以上优点之外还有许多,希望能在以后的学习中有更深入的认识。 在大学以前我从来就没见过C语言,这东西对我来说是十分陌生的。刚开始学C语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入手。但学了一段时间后逐渐对C语言有了认识,并

21、能进行简单操作。现在我们又要开始进行课程设计,我的天空突然彻底BLACK了,阿门!不过我不会放弃,前辈们都说:“坚持到底就是胜利!”,恩!我也是这么认为的。万事开头难,只要我找到方法,我一定可以的,嘿,嘿,嘿!不过我们都知道,我们是一定会成功的,因为我们有我们的太阳,至于是谁呢,我就不说了,大家都知道了,是吧!刚开始编程时,那个“error”啊,多得已经无法用“多”来形容了,那是“很多”啊!于是我开始了漫长而繁琐的地毯式搜查,我累的地暗天黑都已无所谓,那个疯狂的人,是我,是我,还是我!海阔凭鱼跃,天高任我飞!我曾经花了整整一个上午的时间来弄一个麻烦的闪烁,那做出来后的感觉,就能用一个字来形容,

22、那就是“爽”,人生最幸福的事也就莫过于此,这小小的成功使我的信心十足,我看到希望了,来西牙!于是,我开始了更为艰巨的任务,那就是把整体结构弄出来,我为此都“白”了少年头。在我们整个宿舍的团结合作下,终于把框架弄出来了。接下来就应该改错误了,随着一个个错误的纠正,终于一个程序浮出了水面!我们成功了,高兴啊,真高兴!通过这次课程设计,我对C语言更有兴趣了,我相信以后我一定赶上我们的太阳的。 学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一

23、些关于这门课的知识 这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,对这门课充满了希望,自己有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要你有很强的领悟能力,还要你课后的努力,也许是自己之前太有信心学好这门课了吧,中间遇到了很大的瓶颈,一度陷入无休止的烦恼中编程序时没有一次是成功的,总会遇到很多的error,改完一个又有一个,哎!这时我会想到一句古话“天将降大人于斯人也,必先苦其心志,劳其筋骨,饿其体肤”,也许以后会有些许光明吧。之后,随着时间的推移,慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始

24、的时候好了一点,至于编程序吗还是有错误,但比以前少了,呵呵,总让我看到希望了。这次的课程设计要求我们编一个简易计算器,刚开始的时候我一头雾水,丈二摸不着头脑,不知从哪里下手,后来经过老师和同学的帮助,从最简单的编框开始,慢慢的到最关键的算法,这其中经历了很多弯路,也犯过了很多错误,但是还是一一攻克了,好比红军长征两万五千里终于到达了终点。看到最后自己编写出来的计算器感到格外的高兴,暂且不说计算器的功能方面吧,但毕竟是自己写的第一个正式的程序吗,感到格外的高兴。在编写程序的过程中受到了其他同学的指点,也许在某些程序方面会和有的同学想类似,另外老师也帮助了很多,一个好的学生离不开一个好老师吗,虽说

25、我不算一个好学生,但是老师在我编程序过程中也起到了很大的作用,就像刘老师说的一句话一样“革命尚未成功,同志仍需努力”,我们在C语言这门课上还会继续走下去,以后还会经常碰到,我会努力的。附录 参考文献C+ Primer Plus 中文版本第5版 1附录 程序代码程序1:#include#include #include void show(int input)switch(input)case 0:cout(出的是象);break;case 1:cout(出的是虎);break;case 2:cout(出的是狐);break;case 3:cout(出的是鼠);break;default:;vo

26、id compare(int inputPlay,int inputComputer)if(inputPlay=0&inputComputer=1&inputComputer=2|inputPlay=1&inputComputer=2&inputComputer=3|inputPlay=2&inputComputer=1)cout(n玩家胜!n);else if(inputPlay=inputComputer)cout(n平局!n);elsecout(n电脑胜!n);void main()char isGoOn;int inputPlay;int inputComputer;cout(猜拳游戏

27、n);cout(游戏说明:nn);cout(象-0 虎-1 狐-2 鼠-3n);srand(time(NULL); docoutinputPlay;if(inputPlay=0&inputPlay=2)cout(您);show(inputPlay);inputComputer=rand()%4;cout(电脑);show(inputComputer);compare(inputPlay,inputComputer); elsecout(您输入有错误!n);cout(n说明 象-0 虎-1 狐-2 鼠-3n);coutisGoOn;while(isGoOn!=N|isGoOn!=n); 程序2:

28、#include#includeusing namespace std;class Playpublic: int People; unsigned long Computer;public: Play(); Play(); void Set_People(int _p) People=_p; void Set_Computer(unsigned long _C) Computer=_C; int Judge() switch(People) case 0: cout你所选择的是象:; break; case 1: cout你所选择的是虎 :; break; case 2: cout你所选择的

29、是狐 :; break; case 3: cout你所选择的是鼠:; break; switch(Computer) case 0: cout电脑选择的是象; break; case 1: cout电脑选择的是虎; break; case 2: cout电脑选择的是狐; break; case 3: cout电脑选择的是鼠:; break; coutendl; if(People+1&People+2=Computer | People=3&People-3=Computer) return 1; if(People=Computer) return 0; return -1; ;void m

30、ain() Play play; int a=5; int failure=0,win=0,tie=0; unsigned long begin; while(a!=-1) begin=GetTickCount(); cout* 请选择 *endl; cout*0象 1虎 2狐 3鼠 4退出*endl; couta; system(cls); if(a-1) play.Set_People(a); play.Set_Computer(begin%4); switch(play.Judge() case 1: cout恭喜你赢了endl; win+; break; case 0: cout你未获胜,请继续endl; tie+; break; case -1: cout不幸,你输了了endl; failure+; break; else if(a!=-1) cout选择错误 ,请重新选择endl; cout你总共下了: failure+win+tie次 你赢了: win次 输了:failure次 平局:tie次endl;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号