21点纸牌游戏_C++课程设计报告

  • 格式:doc
  • 大小:443.00 KB
  • 文档页数:21

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州轻工业学院

课程设计报告

课程设计名称: 21点纸牌游戏

课程名称:面向对象程序设计(C++)

姓名:谢先斌

院(系):计算机与通信工程学院

专业班级:计算机10-1

学号:541007010144

指导教师:王秉政、郭锋

成绩:

时间:2011年12月26日至2011年12月30日

郑州轻工业学院

学生课程设计任务书

一、题目(任选一题)

21点纸牌游戏

公司员工管理系统

二、学生信息

专业计算机科学与技术学号541007010144 姓名谢先斌三、基本要求及约束条件

(一)“21点纸牌游戏”设计

1、需求及内容

21点是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或者11分(由玩家自己选择一种分值),J、Q和K人头牌都是10分。庄家对付1~7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到它们的所有牌以及总分,而专家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会依次再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只有庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。

编写程序实现游戏,计算机作为庄家,1~7个人作为普通玩家参与游戏。游戏程序运行输出如下所示:

2、要点及分析

首先定义表示扑克牌花色与面值的枚举类型,这样程序可读性更强,具体定义如下:

typedef enum

{ // 扑克牌面值:ACE(A),TWO(2)~TEN(10),JACK(J), QUEEN(Q), KING(K)

ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING

} RankType;

typedef enum

{ // 扑克牌花色:CLUBS(梅花), DIAMONDS(方块), HEARTS(红桃)和SPADES(黑桃) CLUBS, DIAMONDS, HEARTS, SPADES

} SuitType;

struct Card

{ // 扑克牌结构体

RankType rank; // 扑克牌面值

SuitType suit; // 扑克牌花色

};

(二)“公司员工管理系统”设计

1、需求及内容

为了方便对公司员工基本信息进行电子化管理,利用面向对象的程序设计技术实现对员工信息的自动化管理。

系统应能满足如下的需求:

➢增加员工数据信息

➢更新员工数据信息

➢查询员工数据信息

➢删除员工数据信息

➢良好的人际交互界面、方便操作

2、要求及要点分析

设计一个虚基类Staff(员工),包括编号、姓名和年龄保护数据成员以及

相关的成员函数;由Staff派生出工程师类Engineer包含专业和职称保护数据成员以及相关的成员函数,再由Staff派生出领导类Leader,包括职务和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader类派生出主任工程师类Chairman。

设计一个利用文件处理方式实现对公司人员(包括工程师、领导和主任工程师)进行管理,具有增加数据、更新数据、查询数据、删除数据的功能。

编写程序实现游戏,按照要求实现程序。游戏程序运行输出如下所示:

四、难度分析及目标

该课题涉及到面向对象程序设计技术,难度适中,工作量适中。

该次课程设计的总体目标是培养学生对系统开发总体流程的了解,经过本次课程设计,学生应能对系统开发的步骤和面向对象程序设计的思路有较好的理解和掌握。

五、设计要求、技术参数及设计规格

1、设计的系统能够运行,提交压缩程序;

2、提交课程设计报告,按“课程设计报告要求”撰写

3、程序设计环境为Visual C++ 6.0和WindosXP或Windows2000。

4、所有的设计工作需要同学自己真实地、独立地完成。

六、工作量

日期任务描述

2011.12.26 查找相应资料、阅读程序;写出“21点纸牌”游戏或“公司员工管理系统”等的需求分析、算法整体设计

七、考核形式、考核时间、考核指标及成绩评定

课程设计成绩由下面构成:课程设计纪律、课程设计态度和平时表现占20%;课程设计结果占50%;课程设计报告占30%。

考核形式:1)老师每日对学生的考察、评估和考核;2)最后对课程设计项目完成的质量进行考核和验收。

完成期限: 2011年12月30日

指导教师签章:王秉政、郭锋

专业负责人签章:

教学院长签章:

年月日

一、需求说明

21点纸牌游戏是一个很具有使用价值的扑克牌小游戏。首先,要从21点游戏的古老的起源说起,21点小游戏的起源与民间,其主要是用于打发人们休闲使用,茶钱饭后经常看到人们在玩。再次,21点游戏也是能满足人们赌性心理的一款首选游戏,且所需条件简单只需一副扑克牌而已,易于被人们接受。综上,编写21点游戏的前途是十分光明的,其应用空间又是十分宽广的。

当今计算机已经在全国大部分地区得到了广泛的普及,为满足人们对21点纸牌游戏的软件使用需求,21点游戏的软件开发又是一件十分急迫又有前景的开发。随着社会的发展科技的进步,计算机的应用在社会各领域中都得到了普及。越来越多的人都感受到利用计算机来玩各种游戏的快捷,且更能满足人们消耗业余时间的心理。

21点游戏是一款典型的纸牌游戏,其使用面积极广,应用人说极多,界面要求低,是一款不错的上机编写程序实例。

它要方便的实现玩家通过界面来控制游戏的是否要牌,是否开始新游戏等一系列操作。总体任务是实现了21点游戏的的系统化﹑规范化和自动化。

二、功能描述

21点纸牌游戏最多允许7位玩家,在开始时每一位玩家都先发两张牌,只有庄家的第一张牌隐藏,其余的牌都是明着的,接下来,只要愿意,各个玩家都有机会依次再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只有庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。

三、系统设计及实现

软件规格要求合理,基于C++程序设计,通过类与对象的编写,最终在有限空间达到效果最优化。

2.1设计要求

用C++实现“21点游戏系统”。

2.2系统功能:

(1)系统启动后,出现欢迎界面,满足人机交互的命令行设计。

(2)能实现基本信息的输入与游戏开始分开。