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