资源简介
保龄球规则介绍:
一局(GAME)保龄球分为10格,每格里有两次投球机会,如在第一次投球时全中,就没有需要投第二球。每一格可能出现三种情况:
1.失球(MISS)
无论何种情况,在一格的两次投球时,未能击倒10个瓶,此格的分数为击倒的瓶数, 一个未击中用 (-) 0符号表示。
2.补中(SPARE)
当第二次投球击倒该格第一球余下的全部瓶子,称为补中,用一个(/)符号表示。补中的记分是10分加上一次投球击倒的瓶数。
3.全中(STRIKE)
当每一格的第一次投球击倒全部竖立的十个瓶时,称为全中,用一个(X)符号表示。全中的记分是10分加该球员下两次投球击倒的瓶数。
但在第十格中情况比较特殊:
(1) 如果全中,则追加二次投球机会,第十格得分为10分加上追加的两次击倒的瓶数。因此从第一格到第十格的两次追加投球,都为全中,则为12个全中,得分为满分300分
(2)如果补中,则追加一次投球机会,第十格得分为10加上追加一次投球击倒瓶数。
(3)如果失球,不追加。
代码片段和文件信息
#include “Data.h“
#include “DataType.h“
#include
#include
#include
#include “DealData.h“
#include
using namespace std;
Data::Data(void)
{
}
bool Data::DealDataOne(tagPerScoreInfo sDB)
{
for (list::const_iterator i=this->PInfoDB.begin(); i!=this->PInfoDB.end(); i++)
{
if ((*i).spNO == sDB.spNO && (*i).srNO == sDB.srNO)
{
return true;
}
}
return false;
}
bool Data::DealDataTwo(tagPerScoreInfo sDB)
{
if ((sDB.sScore.compare(“/“)!=0 || sDB.sScore.compare(“-“)!=0
|| sDB.sScore.compare(“X“)!=0) && atoi(sDB.sScore.c_str())<10)
{
return true;
}
return false;
}
void Data::GetPInfo()
{
ifstream infile(“Person.bat“ ios_base::in);
tagPersonInfo pDB;
string spDBline sTemp;
int iFlag[3] = {0};
if (infile.is_open())
{
while (!infile.eof())
{
infile>>spDBline;
iFlag[0] = spDBline.find(‘‘);
pDB.spNO = spDBline.substr(0iFlag[0]);
sTemp = spDBline.substr(iFlag[0]+121);
iFlag[1] = sTemp.find(‘‘);
pDB.spName = spDBline.substr(iFlag[0]+1iFlag[1]);
sTemp = spDBline.substr(iFlag[0]+iFlag[1]+2 21);
iFlag[2] = sTemp.find(‘‘);
pDB.spSex = spDBline.substr(iFlag[0]+iFlag[1]+2 iFlag[2]);
pDB.srNO = spDBline.substr(iFlag[0]+iFlag[1]+iFlag[2]+3 5);
this->PInfoDB.push_back(pDB);
}
}
else
{
cout<<“文件没有打开“;
}
infile.close();
}
void Data::GetScoreInfo()
{
ifstream infile(“Score.bat“ ios_base::in);
tagPerScoreInfo sDB;
string ssDBline sTemp;
int iFlag[4] = {0};
if (infile.is_open())
{
while (!infile.eof())
{
infile>>ssDBline;
iFlag[0] = ssDBline.find(‘‘);
sDB.srNO = ssDBline.substr(0iFlag[0]);
sTemp = ssDBline.substr(iFlag[0]+121);
iFlag[1] = sTemp.find(‘‘);
sDB.spNO = ssDBline.substr(iFlag[0]+1iFlag[1]);
sTemp = ssDBline.substr(iFlag[0]+iFlag[1]+2 21);
iFlag[2] = sTemp.find(‘‘);
sTemp = ssDBline.substr(iFlag[0]+iFlag[1]+2 iFlag[2]);
sDB.iCount = atoi( sTemp.c_str() );
sTemp = ssDBline.substr(iFlag[0]+iFlag[1]+iFlag[2]+3 21);
iFlag[3] = sTemp.find(‘‘);
sTemp = ssDBline.substr(iFlag[0]+iFlag[1]+iFlag[2]+3 iFlag[3]);
sDB.iShootCount = atoi(sTemp.c_str());
sDB.sScore = ssDBline.substr(iFlag[0]+iFlag[1]+iFlag[2]+iFlag[3]+4 1);
if (this->DealDataOne(sDB) && this->DealDataTwo(sDB))
{
this->PScoreDB.push_back(sDB);
}
}
}
else
{
cout<<“文件没有打开“;
}
int kk = this->PScoreDB.size();
infile.close();
}
void Data::GetPerpScore()
{
list Score;
int iTemp1 = 0 iTemp2 = 0 Flag = 0;
for (list::const_iterator i=this->PInfoDB.begin(); i!=this->PInfoDB.end(); i++)
{
tagPerTotalScoreInfo perScore;
tagIntScore TempSocre;
for (list::const_iterator j=this->PScoreDB.begin(); j!=this->PScoreDB.end(); j++)
{
if ((*j).spNO.compare
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 144384 2011-09-09 00:20 Exam3\Debug\Exam3.exe
文件 615132 2011-09-09 00:20 Exam3\Debug\Exam3.ilk
文件 1281024 2011-09-09 00:20 Exam3\Debug\Exam3.pdb
文件 5499 2011-09-09 00:20 Exam3\Exam3\Data.cpp
文件 1006 2011-09-08 23:40 Exam3\Exam3\Data.h
文件 1582 2011-09-08 23:36 Exam3\Exam3\DataType.h
文件 1883 2011-09-06 23:25 Exam3\Exam3\DealData.cpp
文件 752 2011-09-06 23:25 Exam3\Exam3\DealData.h
文件 6178 2011-09-09 00:20 Exam3\Exam3\Debug\BuildLog.htm
文件 557526 2011-09-09 00:20 Exam3\Exam3\Debug\Data.obj
文件 663 2011-09-08 23:41 Exam3\Exam3\Debug\Exam3.exe.em
文件 728 2011-09-08 23:41 Exam3\Exam3\Debug\Exam3.exe.em
文件 621 2011-09-09 00:20 Exam3\Exam3\Debug\Exam3.exe.intermediate.manifest
文件 39282 2011-09-08 23:46 Exam3\Exam3\Debug\Main.obj
文件 67 2011-09-09 00:20 Exam3\Exam3\Debug\mt.dep
文件 273408 2011-09-09 00:20 Exam3\Exam3\Debug\vc90.idb
文件 339968 2011-09-09 00:20 Exam3\Exam3\Debug\vc90.pdb
文件 4215 2011-09-07 23:53 Exam3\Exam3\Exam3.vcproj
文件 1417 2011-11-09 22:01 Exam3\Exam3\Exam3.vcproj.YANGZHIJIE.Administrator.user
文件 2951 2011-09-07 21:19 Exam3\Exam3\GetScore.cpp
文件 322 2011-09-08 23:36 Exam3\Exam3\getscore.h
文件 292 2011-09-08 23:46 Exam3\Exam3\Main.cpp
文件 363 2011-09-07 22:39 Exam3\Exam3\Person.bat
文件 6930 2011-09-03 11:27 Exam3\Exam3\Score.bat
文件 1920000 2011-11-09 22:01 Exam3\Exam3.ncb
文件 881 2011-09-04 09:32 Exam3\Exam3.sln
..A..H. 26112 2011-11-09 22:01 Exam3\Exam3.suo
目录 0 2011-09-09 00:20 Exam3\Exam3\Debug
目录 0 2011-09-09 00:20 Exam3\Debug
目录 0 2011-09-09 00:20 Exam3\Exam3
............此处省略4个文件信息
评论
共有 条评论