南京理工大学C++课程设计—扑克游戏

C++课程设计实验报告

姓名 郑星鑫 学号 913104210332 班级9131042103 任课教师 赵琦 时间 4月12日 选择题目 扑克牌游戏 难易级别 A级 实验报告成绩

一、 程序功能简介

创建一副扑克牌,并完成洗牌等操作。

二.课程设计要求和目的

1. 增加大王和小王。

2. 删去一张指定的扑克后,余牌显示。

3. 创建一副扑克,显示一副扑克,洗牌,依次发给四个人并显示。

4. 需要对原程序做一些修改,保留生成牌和洗牌的部分,主要是修改main函数的结构,依次为:生成牌,洗牌,发牌,然后循环显示菜单,询问是否删除一张,删除一轮,面值排序,花色排序等,在main函数中定义所生成的那副牌,并将其作为参数(对象引用),所有新增类的操作均以那副牌作为数据进行运算。

三. 课程设计中要解决的问题分析和调试

1.首先,去掉源程序的注释,以免修改程序时自己的注释与源文件注释混淆,便于找出修改程序时可能产生的错误。

2.添加大小王:修改类Deck,将一副扑克牌对象内的扑克牌个数增加两张,对这两张牌的面值及花色分别赋值“S”1(小王),“B”2(大王)。

3.游戏中四个人玩牌,要新建两个类:Per_Deck类表示某个人拿的牌,Play_Deck类表示四个人玩牌的过程。Perdeck是Deck和PlayDeck的友元类。 class Per_Deck {

public:

Playing_Card m_Card[20]; //最多有20张牌 int nNum; //实际张数 Per_Deck(); //构造函数 void MakePerDeck(Deck &,int,int); //对象初始化 void Show(); //显示

void SortFace(); //按面值排序 void SortSuit(); //按花色排序

int Delete(int n); //删除牌号为n的那张 };

//**************************四个人玩牌的过程******************* class Play_Deck {

public:

Per_Deck m_deck[4]; //一共是四个人玩牌 Play_Deck(); //构造函数

void PlayCard(Deck &); //用指定的那副牌对四个人分别赋值 void Show(); //显示

int DeleteOne(int row,int column); //删除参数为第row个人的第column张牌

void SortDeckFace(); //对整副牌面值排序 void SortDeckSuit(); //对整副牌花色排序

int s(int a); //用于调用私有数据来显示排序后的牌 };

4.添加人性化界面,初始运行程序时加了一个友好的界面,用p,u,k,e这四个字母拼成了中文的”扑克”二字,增加游戏的趣味性,并附带输出了自己的姓名和学号。

5.在主函数中调用DeckMakeDriver()函数,通过DeckMakeDriver()中的一个do循环控制主菜单的循环出现,并对可能出现的玩家输入问题进行分析修改。

5.进入四个不同功能的游戏界面时,操作后询问是否显示被操作后的牌,再询问是否返回主菜单,否的话退出游戏。

6.在对玩家的牌的面值以及花色排序时,在类PlayDeck()中增加int s()函数,用于调用私有数据来显示排序完后的牌。

四、 源程序结构流程框图与说明

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4