ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:225.25KB ,
资源ID:6280892      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6280892.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(我的c#课程设计报告书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

我的c#课程设计报告书.docx

1、我的c#课程设计报告书课程设计任务书 课程名称: 计算机语言C#课程设计 起讫时间: 2011-6-202011-7-1 院 系: 计算机工程系 班级: 指导教师: 系 主 任: 一、课程设计课题本课程设计要求学生运用C#.NET独立设计、编程开发一个完整的Windows应用程序,并完成课程设计报告。可以从以下题目中选择:绘图板二十一点游戏科学计算器弹珠游戏日记本屏幕保护程序挖地雷游戏调色板文本编辑器井字棋 也可自选课题(须征得指导教师同意)不建议选择贪吃蛇、华容道等难度比较高的题目,需要由本人完成大部分代码,不建议根据网上或书上的现成代码调试编写。二、课程设计要求1、设计选题:学生可以在“W

2、indows应用程序设计课程设计选题”指定的题目中选取课程设计题目,具体题目以此文件为准。也可以自选,但自选的题目必须在课程设计开始前得到指导教师的认可。2、设计结果:学生需按所选题目的具体要求使用C#完成程序设计,同时还要完成课程设计说明书,以介绍课程设计的情况,说明书中应该至少包括以下几部分: 题目说明 总体设计:概述程序的基本结构和主要技术。 详细说明:选择几个功能模块详细说明设计时的想法和所用的技术。 遇到的问题和解决方法 心得体会3、考核要求学生需提交完整的C#源程序(电子版)和课程设计说明书(打印稿),要求程序运行稳定可靠,能实现题目中所要求的功能。课程设计说明书符合要求,并能对程

3、序的设计思路或具体代码做出正确的解释。三、课程设计工作量1、程序中应有不少于100300行的自行编写的代码。2、软件界面美观大方,操作简洁易用,功能完备可靠。3、说明书中摘用关键代码部分,应标注详细的代码说明。4、课程设计报告以A4纸打印,其中正文不少于6页,正文主要用于解释实现思路和关键代码,完整代码作附件。四、课程设计说明书内容(有指导书的可省略)课程设计说明书中至少应该包括以下几部分:1、 封面2、 摘要3、 目录4、 选题说明5、 总体设计:概述程序的基本结构和主要技术。6、 详细说明:关键技术模块的详细说明,列出主要方法的声明、功能、调用参数及使用场合和方法,对其作用和实现思路进行解

4、释。7、 遇到的问题和解决方法8、 心得体会9、 参考文献10、 附件:源程序课程设计说明书正文不少于6页,源程序只算附页。课程设计说明书名称 计算机语言C#课程设计 21点扑克牌游戏软件的设计与实现 2011年6月20日 至 2011年7月1日 共 2 周院 系 计算机工程系 班 级 姓 名 学 号 系主任 教研室主任 指导教师 目 录一、系统功能分析 31.1. 主体功能分析 31.2. 异常情况分析 3二、功能的设计与实现 32.1. 功能设计 32.2. 代码实现 32.3. 技术细节 42.4. 实现效果 4三、功能的设计与实现 53.1. 功能设计 53.2. 代码实现 53.3.

5、 技术细节 63.4. 实现效果 6四、功能的设计与实现 64.1. 功能设计 64.2. 代码实现 74.3. 技术细节 74.4. 实现效果 8五、遇到的问题和解决方法 8六、总结 9附录:参考文献 9一、系统功能分析1.1. 主体功能分析这个游戏的设计主要包括两个界面:一个是游戏的开始与进行界面,另一个是游戏的规则界面。在游戏进行的这个界面上有游戏的开始(Go)、两个重复的玩家发牌按钮、一个电脑发牌按钮,还有一个重新开始按钮(Again),双方各有四张牌。a)开始按钮的主要操作是先玩家和庄家各出两张牌。b)发牌按钮就是玩家选择是否要出牌,要是出牌了(一次就只能出一张),就要开始判断玩家的

6、点数是否超过了21点,如果此时就超过了21点,结果是玩家爆了,电脑赢了,那么整个游戏结束。c)不要牌就是玩家不想要牌了或者是玩家的牌已经出完了,要电脑出牌了(此时电脑的牌全部出了),再判断电脑的牌的点数是否超过了21点,超过了21点,就是电脑爆了,玩家赢了。如果牌都出完了的时候双方的点数都不大于21点,那么就进行比较,点数多的就获胜。d)Again再一次出牌,这个主要斯用在了,双方那个已经判断出结果后向再一次进行游戏。除了这几个主要的按钮外,还设定了一个可以直接进入游戏规则的按钮,可以查看游戏规则,和一个退出游戏的按钮,直接退出游戏。还有最主要的一点是点数的显示,通过按钮所的实现,而后对牌的点

7、数进行一步一步的相加,每次加牌都要让点数自动相加起来,显示在庄家与玩家的对应位置。1.2. 异常情况分析当进入游戏界面是,只有Go开始游戏和游戏规则这两个按钮可以用,其他的按钮都是处于无法操作状态。还有只要有一方的点数爆了,即使时双方的牌还没出完,Go、发牌、不要了这几个都处于不可用状态,就只有Again这个键可以用。二、功能的设计与实现2.1. 功能设计当刚进入游戏的窗体的时候就应该设置哪些按钮是可以用的而哪些按钮是暂时不可以用的,我在这个界面中就设置了发牌和不要了这两个按钮此时不可用,因为一旦这两个按钮可以用,就会出现游戏还没开始的时候就有机会发牌的状况。游戏开始的时候,按下按钮Go 就可

8、以进入游戏的开始状态了,此时电脑和玩家各有随机出的两张牌。下面由玩家选择是否要牌了,每要一次牌,玩家就会增加一张牌,还要通过计算看看游戏是否可以结束,在没结束的状态下,玩家还可以选择不要牌了,那么此时就相当于电脑出牌,而且是电脑的牌全部出完,同时也计算最终的结果了。不过在这个思路中,我也明确了在牌都还没发完的情况下有一方出现爆的时候,我也要设置好按钮的可用性。2.2. 代码实现private void Form1_Load(object sender, EventArgs e)/这是在游戏还未开始的时候的按 /钮的状态。 button10.Enabled = false; button4.En

9、abled = true; button5.Enabled = false; button6.Enabled = false; button7.Enabled = true;Random ran = new Random(); /这里主要实现的时随机出牌RandKey6 = ran.Next(0,51);if (RandKey6 = RandKey1|RandKey6=RandKey2|RandKey6=RandKey5)RandKey6 = ran.Next(0,51); / 判断牌不能重复以及重复的时候又该怎样出牌。this.pictureBox3.Image = this.imageLi

10、st1.ImagesRandKey1;/这个是出牌时的代码if (sum2 21)/出牌当中按钮 textBox3.Text = 玩家你爆了,电脑赢了,你要加油啦!; button4.Enabled = false; button5.Enabled = false; button6.Enabled = false; button7.Enabled = true; button10.Enabled = false; Else button4.Enabled = false; button5.Enabled = false; button6.Enabled = true; button7.Enab

11、led = true; button10.Enabled = true; 2.3. 技术细节随机出牌的代码的实现,还要注意牌是不能重复的。在玩家发牌也就是出第三张随机牌的时候,就必须要判断玩家的牌是否超过了21点,超过了的话,就要让Go、发牌、不要了这三个按钮处于不可以操作状态,出第四张牌同样也要做这样的判断,结果亦然。还有在不要牌的时候,电脑出了两张牌,还要判断是否超过了21点,2.4. 实现效果 /实现了按钮的可用于不可用/下面的这张图实现了在发牌过程中进行判断是否超过21点的效果,超过了就显示结果,结束游戏而也只有Again这个键可用,其他的不可用了。三、功能的设计与实现3.1. 功能设

12、计电脑和玩家的点数的设计用于显示在linklabel1和linklabel2中,我们的牌是放在了imagelist中的。点数的根本计算的思路是根据数组的下标的数,然后通过下标与13的余数再加上一九可以算出某张牌的对应的点数,而且J、Q、K的点数大小都按照大小为10来计算的。当每出一张牌的时候就要把牌的相应的点数相加起来,然后显示在对应的linklabel中。3.2. 代码实现 double sum1 = 0, sum2 = 0;/sum1代表庄家,sum2代表玩家。 private void button4_Click_1(object sender, EventArgs e)/说明了sum2

13、在整个代码中的联系 sum2 = a+b; linkLabel2.Text = sum2.ToString(); private void button5_Click_1(object sender, EventArgs e) sum2 +=c; linkLabel2.Text = sum2.ToString(); c = RandKey7 % 13 + 1 ; /计算点数 while(c 10) c = 10; /J、Q、K按照点数为10来计算 sum2 +=c; /把每出一张牌的点数相加起来 linkLabel2.Text = sum2.ToString(); /把点数显示在linklab

14、el上3.3. 技术细节对于各个变量的声明要放在整个类的上面,而不单单是放在某一个方法中,如果就是放在了某个方法中,虽然说我们可以每次都在方法中声明一下,但是有的变量是要在整个类及每个方法中都是有联系的使用的,比如说sum1和sum2,它们在button4中得到了结果,而这个结果也要用在button5中的及还有更多方法中。3.4. 实现效果 /实现了把点数显示在linklabel上/下面的图实现了J Q K都是代表10点四、功能的设计与实现4.1. 功能设计用了一个textbox来显示最后胜负的结果的,这个主要是根据各自的点数来判断结果的。从Go以后,玩家出牌的话就要计算玩家是否有可能总的点数

15、大于21点,就要在textbox上面显示“玩家爆了,电脑赢了”的结果,然后游戏就可以结束了。而如果玩家在不要牌之前的牌的点数总和就大于21点,textbox上就不显示任何结果。在电脑出牌的时候同样也要判断电脑方的总店书是否大于21点,大于的话就显示“电脑爆了,玩家赢了”,否则两方就进行比较,在显示相应的结果即可。除了这几个主要的按钮,我还设计了供游戏者参考的游戏规则,这个游戏规则按钮的作用就在这里了。4.2. 代码实现if (sum2 21)/玩家发牌的时候进行的比较,看其是否大于21点 textBox3.Text = 玩家你爆了,电脑赢了,你要加油啦!; button4.Enabled =

16、false; button5.Enabled = false; button6.Enabled = false; button7.Enabled = true; button10.Enabled = false;if(sum121) textBox3.Text = 电脑爆了,玩家你赢了!; else if (sum1 sum2) textBox3.Text = 电脑赢了,你要加油哦!; else if (sum1 =sum2) textBox3.Text = 平局; else textBox3.Text = 玩家你赢了哦,继续加油!;4.3. 技术细节双方发两张牌的时候不用比较因为两张牌的最大

17、点数也不回超过20点的,但是到发第三张的时候就一定要进行比较,此时就有能有21点的可能性,只要有了大于21点的情况,就会结束游戏,如果不判断就会使游戏失去其21点的真正的目的。4.4. 实现效果五、遇到的问题和解决方法A)一开始是按钮的问题,当玩家发牌的时候,我只能发一张牌出去,然后再想发牌的时候,按钮就不好用了;我的解决方法是用了两个重复的按钮,一个用的时候另一个是不可用的,这样两个按钮就交互使用而不会出现同时出现的状况。B)无法计算点数,每次计算出来都只能得出此时单张牌的面值而不是同时也能把前面出过的牌的点数也加上去;解决这个问题的方法是要把计算总数的这个变量放在整个类的上面而不是单单是放

18、在某个方法里面,这样过后每次sum1和sum2都可以连续再用了。C)还有就是把获得的点数放到linklabel中时出现错误,我是直接就用linklabel.text=”sum1”这个代码的;而最终的解决方法是linklabel.text=sum1.tostring();以至于这个问题就可以解决了。D)把牌放在imagelist是没按照一定的顺序,以致我在随机发牌的时候,虽然有能计算点数的代码,但是随机出现的牌根本就不能和点数相对应;最后的解决办法是把牌按相同的花色从A-K都一次向下排列就可以了六、总结对于做这个游戏程序,我有几点感受。首先,是自己能充分发现自己的问题,我在做这个游戏时就发现了许

19、多我自己无法解决的问题,但针对这些问题,我又必须要寻找解决的办法解决。能解决一点就能收获一点,或者是通过同学的指教,或者是自己去查找一些资料都能让我有意外的收获。在做这个小游戏的整个过程中,可以说花了我很长时间,也许对于别人来说着知识一个简单的小任务,但对于我来说,我对编程的基础还不算怎么好,可我能一步一步的做完,还在最后做成功了,使我深深的感受到了一种喜悦的感觉。第二就是很能体会到一种合作的精神,做这个游戏的我们几个女生都在开始的一个阶段陷入了困境,因为我们也好像找不到什么平时讲过的东西可以参考,而且我们对编程这个东西也不是怎么的了解,然后就相互的交流着,只要有一个人能发现点什么就会在一起讨论,最后是我们就通过这样的一步一步的发现与解决而解决了最终的问题。最后的一点就是发现了学习还是要与实践结合才有用,我们平时学的都是理论,虽说也有上机课,但是老师都会把那些程序代码给我们,而我们就只照上面写,那时候我们根本就不想思考,以致我感觉我现在什么都不会似的。所以平时学的东西要自己主动的去操作,而不总要等老师布置,也许老师就不会布置,那我们要想学好,还是离不开主动的。附录:参考文献1.c#.NET程序设计项目教程2.c#程序设计-基础教程与实验指导

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1