扑克牌接龙游戏代码c语言,C++点扑克牌游戏(含源码).doc
實驗設計方案
實驗內容與目的(簡單介紹實驗內容,說明實驗目的)
實驗目的:實現撲克牌游戲:對于任意的四個1到13的整數(四張撲克牌),求能算出24的表達式;運算符有()+-*/;若無解則輸出相應的信息。
實驗內容:你的具體選擇(要詳細)
文件輸入(input.txt)輸出(output.txt),輸出全部結果;
——————————————————————————————————————
2、實驗準備工作(闡述解決問題所涉及的算法思想,至少要畫一個算法流程圖來說明)
本次實驗相當于,給出四個數字,要求,在其間添加運算符和括號,使得計算結果等于24。
括號的放置即為決定哪幾個數先進行計算。所以,我們先確定首先進行計算的兩個相鄰的數,計算完成后,就相當于剩下三個數字,仍需要在它們之間添加符號;然后再決定在這三個數中哪兩個相鄰的數先計算。由此,我們就成功解決了數字的運算次序問題,此時不需要再考慮不同運算符號的優先級問題,因為括號的優先級高于加減乘除。
通過循環,我們可以得到第一第二第三次計算的運算符,再通過計算,就可以得出和,若和等于24,即為所求解。
在輸出格式中,由于括號的放置共六種情況,故根據計算先后順序的不同,輸出時在不同地方放置括號;
以下為循環計算的流程圖:
表示循環獲取;
表示計算數值
以下為計算函數的流程圖:
——————————————————————————————————————
二、實驗步驟、測試與結果分析
1、源程序的設計(在此附上源程序(cpp文件)清單)
#include
#include
#include
using namespace std;
char sign[4]={'+','-','*','/'};
//定義一個全局變量,用于儲存加減乘除符號,方便下面符號判斷
class game24point
//24點紙牌游戲類
{
private:
double a[4];
//為實現精確計算,防止計算結果為小數卻被強制轉換為整數,采用double變量
public:
game24point();
//構造函數
double calcute(double,double,char);
//計算函數,給出一個符號兩個有順序的數,計算結果
void search();
//搜索函數,用于尋找合適的解
void print();
//打印得到的四張紙牌的數值
};
game24point::game24point()
{
char ch[4];
//由于紙牌中除了數字還有AJQK等字符,故使用字符數組
ifstream infile("input.txt");
if(!infile)
//若打開失敗
{
cout<
exit(1);
}
for(int i=0;i<4;i++) infile>>ch[i];
//在input文件中讀取數據
cout<
cout<
cout<
cout<
cout<
for(i=0;i<4;i++)
{
if(ch[i]=='A') a[i]=10;
else if(ch[i]=='J') a[i]=11;
else if(ch[i]=='Q') a[i]=12;
else if(ch[i]=='K') a[i]=13;
else if(ch[i]=='1') a[i]=1;
else if(ch[i]=='2') a[i]=2;
else if(ch[i]=='3') a[i]=3;
else if(ch[i]=='4') a[i]=4;
else if(ch[i]=='5') a[i]=5;
else if(ch[i]=='6') a[i]=6;
else if(ch[i]=='7') a[i]=7
總結
以上是生活随笔為你收集整理的扑克牌接龙游戏代码c语言,C++点扑克牌游戏(含源码).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker运行centos镜像发布py
- 下一篇: dw网页插入java小程序_DW网页设计