【vfp精品源码栏目提醒】:网学会员,鉴于大家对vfp精品源码十分关注,论文会员在此为大家搜集整理了“【精品】21点纸牌游戏课程设计报告(李志文) - 大学课件”一文,供大家参考学习!
《高级语言程序设计》 课程设计报告设计题目 21 点纸牌游戏设计专 业 计算机科学与技术(教育方向)班 级 06 教育班姓 名 李志文学 号 061114052 2007 年 6 月 4 日 目 录1.设计目标………………………………………………………………22.设计思想………………………………………………………………23.类及对象设计…………………………………………………………54.程序源代码……………………………………………………………65.调试记录………………………………………………………………196.总结……………………………………………………………………22 21 点纸牌游戏设计1.课程设计题目描述、要求及设计目标1.1 题目描述 一个 21 点的扑克牌游戏 。
本程序取点于手机游戏,游戏规则与手机游戏相同。
玩家一共可以要 5 张牌,但如果牌的点数超过 21,则暴了,自动出局;在不超过 21 点的情况下,玩家与庄家比牌的点数大小,大者为赢。
1.2 要求及设计目标 (1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。
(2)程序中一共有 13 张扑克牌可以随机抽取,大于 10 的点数为 10,A 根据情况点数不同,当前点数小于 11 时为 11 点,大于 10 时则为 1 点。
(3)要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于 21 点,则拒绝,当然,在游戏规则上不能泄露这点秘密。
(4)高级玩家可以查看下一张牌,即按 H 键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。
(5)将界面的提示说明全部设计为中文界面,界面的解释详细友好,可以吸引更多的玩家。
2.设计思想 本程序设计了一个 Game_21 类,包含 16 个类成员函数。
考虑达到更好的封装性,程序所有功能都在类里实现,主函数只调用了一个类的开始成员函数充分体现了类的面向对象编程的优点。
程序中一共有 13 张扑克牌可以随机抽取,设计了一个 random 函数实现。
大于 10 的点数为 10,A 根据情况点数不同,当前点数小于 11 时为 11 点,大于 10 时则为 1 点。
用 if判断语句控制。
庄家永远不会暴庄,庄家取下一张牌之前先判定取牌后总点数是否会大于 21 点,大于的话就拒绝取下一张,小于时就继续取牌,在函数中首先随机产生下一张牌,接着用条件语句判定原有点数与新牌的点数之和是否大于 21 点,然后决定是否取牌。
随机产生的 113 的数据为整型,设计一个转换函数 changechar 将其转换为扑克的字符形式,主要考虑到对 10 的转化输出,此函数设计为指针函数。
可以查看下一张牌,即按 H 键,然后按要求输入密码, 密码正确可以看下一张牌,并决定是否要牌。
设计一整型成员函数 chkkey,判定玩家是否继续要牌之前加入对玩家是否输入 H 键的判定,如果输入 H 则调用为处理玩家输入密码而单独编写的成员函数,在该函数中,首先判定玩家的密码输入是否正确,不正确则返回 0,正确则返回 1。
一个好程序首先应该界面清晰易读。
本程序对界面设计处理做了很多努力,尽量使程序运行界面易于分辨。
本程序针对字符输入和数字输入的错误处理问题做了很好的设计。
,如在宿舍同学相互讨论中,我们想到用指针的方式处理较好。
对于判断输入如(Y/N) 果只用一般方式,当一次输入多个字符时易产生循环,用指针的方式动态申请字符数组,然后只对第一个字符判断即可很好地处理此问题。
如检验函数的使用。
举例如: 下面一个程序,要求输入 Y 则输出 YES,输入 N 则输出 NO: //普通方式 : 当输入多余 1 个字符时就会出现循环问题: include include void main int n1 do char m coutm if my cout