- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验设计方案
1、实验内容与目的(简单介绍实验内容,说明实验目的)
实验目的:实现扑克牌游戏:对于任意的四个 1 到 13 的整数(四张扑克牌) ,求能 算出 24 的表达式;运算符有 ()+-*/ ;若无解则输出相应的信息。
实验内容: 你的具体选择(要详细)
文件输入( input.txt )输出 (output.txt) ,输出全部结果;
2、实验准备工作(阐述解决问题所涉及的算法思想,至少要画一个算法流程图来说明)
本次实验相当于,给出四个数字,要求,在其间添加运算符和括号,使得计算结果 等于 24 。
括号的放置即为决定哪几个数先进行计算。所以,我们先确定首先进行计算的两个 相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间添加符号;然后再 决定在这三个数中哪两个相邻的数先计算。由此,我们就成功解决了数字的运算次序问 题,此时不需要再考虑不同运算符号的优先级问题,因为括号的优先级高于加减乘除。
通过循环,我们可以得到第一第二第三次计算的运算符,再通过计算,就可以得出 和,若和等于 24 ,即为所求解。
在输出格式中,由于括号的放置共六种情况,故根据计算先后顺序的不同,输出时 在不同地方放置括号;
以下为循环计算的流程图:
表示循环获取;
I 表示计算数值
以下为计算函数的流程图:
二、实验步骤、测试与结果分析
1、源程序的设计(在此附上源程序(CPP文件)清单)
#include ViOStream
#inelude VfStream
#inelude VCmath
USing namespacestd;
Char Sign[4] ={+,- ,* ,/ };
//定义一个全局变量,用于储存加减乘除符号,方便下面符号判断
class game24point
//24点纸牌游戏类
{
PriVate :
double a[4];
//为实现精确计算,防止计算结果为小数却被强制转换为整数,采用 double变量
PUbIiC :
game24po in t();
//构造函数
double CaICUte( double , double , char);
// 计算函数,给出一个符号两个有顺序的数,计算结果 void search();
// 搜索函数,用于寻找合适的解
void print();
// 打印得到的四张纸牌的数值
};
game24point :: game24point()
{
char ch[4];
//由于纸牌中除了数字还有AJQ等字符,故使用字符数组 ifstream infile( input.txt );
if (! infile)
// 若打开失败
{
cout 打开文件 input.txt 失败! endl; exit(1);
}
for (int i =0;i 4;i ++) infile ch[i]; //在inPut文件中读取数据
cout
11
TfTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTf
endl;
cout
##
##
endl;
cout
##
正在从in put.txt中读取数据
##
endl;
cout
##
##
endl;
cout
11
TfTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTfTfTTffTfTTffTfTTffTf
endl;
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;
else
if
(ch[i]
==8
) a[i]
=8;
else
if
(ch[i]
==9
) a[i]
=9;
else
{
cout 第 i +1 个数据输入有误 ! endl; exit(1);
}
}
// 纸牌字符转换为数值
infile . close();
} double game24po
您可能关注的文档
最近下载
- 一年级迎春杯数学试卷.doc VIP
- 汉语言文学专业《古代汉语》课程教学大纲 (2).pdf VIP
- 思遵高速公路SZTJ标的施工组织研究设计.doc VIP
- 思遵高速公路SZTJ-11标的施工组织设计.doc VIP
- 财信证券-基金深度报告:美国REITs梳理专题.pdf
- 绩效评估公平感对员工敬业度的影响分析.doc VIP
- 《如何写好科研论文》期末考试答案(分类好的).pdf VIP
- 2021年天津外国语大学攻读硕士学位研究生入学考试《意大利语语言文学》试题(原卷).pdf VIP
- 在线网课学习课堂《实验室安全培训(首都医大)》单元测试考核答案.docx VIP
- 《小小营养师》幼儿园大班健康PPT课件.ppt VIP
文档评论(0)