扑克牌游戏(c++版)
(图片来源网络,侵删)
面向对象C++程序设计课程设计报告
实验一 扑克牌游戏
一、问题描述
创建一副扑克,并完成洗牌等操作。
二、基本要求
1.增加大小王。
2.删去一张指定的扑克后,余牌显示。
3.创建一副扑克,显示一副扑克,洗牌,依次分发给4个人并显示。
- 需求分析
1.输入形式与范围是按照提示语句输入相应的数字或是(Y)否(N)的英文字母。
2.输出形式即为提示语句所说明的内容。
3.该程序基本任务是完成扑克洗牌,显示玩家手牌,按花色或牌面整理手牌(排序)。
4.测试数据为 54 张扑克牌面值以及花色,无需手动设置。
5.正确的输入将使得程序按说明运行,错误输入默认直接退出程序。
四、概要设计
cpp 文件,共 6 个,说明如下:
main 函数 主调函数
deck 包含 deck类的函数
perdeck 包含 perdeck类的函数
playdeck 包含 playdeck类的函数
PlayingCard 包含playingCard 类的函数
main 函数调用的函数
五、详细设计
#include #include #include #include #include #include using namespace std; void Program_Init(); int main(); void Center_Text(char[]); int get_number(); char Get_Key(); void DeckMakeDriver(); int getRandInt(int min, int max); void prog_close(); class PerDeck; class Playing_Card //扑克类 { private: int m_Value; char m_Face[3]; //扑克的数字大小 char m_Suit; //扑克的花色(黑、红、梅、方) public: Playing_Card(); // CONSTRUCTOR void showcard(); // Displays an object of class Playing_Card void Card_Make(int); friend class PerDeck; }; class Deck //一副扑克(54张) { private: Playing_Card m_cardarray[54]; // Object array of class Playing_Card int m_lastdelt; public: Deck(); // CONSTRUCTOR initializes empty Deck object void MakeDeck(); // makes a complete object of class Deck void Deal_One(); // Deals a card from top of the deck void ShowDeck(); // Displays a Deck object to the screen void DeckShuff(int); // "Shuffles" a Deck object for int times void Remove_Card(); friend class PerDeck;// Removes used card from Deck Prevents }; // mistakenly using a nonexistant card class PerDeck { Playing_Card mCard[20]; int nNum; public: PerDeck() { nNum = 0; } void MakePerDeck(Deck&, int); void Show(); void SortFace(); void SortSuit(); int Delete(int n); }; class PlayDeck { PerDeck mDeck[4]; public: PlayDeck() {} void PlayCard(Deck&); void Show(); int DeleteOne(int row, int column); int DeleteAll(int, int, int, int); void SortDeckFace(int); void SortDeckSuit(int); void s(int); }; void PerDeck::MakePerDeck(Deck & d, int a) { nNum = a; int i = 0; while (i > c >> d; if (a + b + c + d > 54) { Center_Text("张数超过牌总张数,退出游戏"); exit(0); } mDeck[0].MakePerDeck(k, a); mDeck[1].MakePerDeck(k, b); mDeck[2].MakePerDeck(k, c); mDeck[3].MakePerDeck(k, d); } void PlayDeck::Show() { Center_Text("玩家1"); cout
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。