📄 player.h
字号:
#ifndef _player_h_
#define _player_h_
#include<string>
using namespace std;
class player
{
string player_name; //姓名
string player_nation; //国籍
string player_club; //所属俱乐部
string dateofbirth; //出生日期
int age; //年龄
string position; //位置
int ability; //能力
long player_value; //标价
int caps; //代表国家队参赛场数
int wage; // 工资
int transferstatus; //转会状态
// 技术参数
int pace; //速度
int strength; //力量
int stamina; //体力
int heading; //头球
int passing; //传球准确性
int tackling; //抢断
int finishing; //射门能力
int technique; //技术水平
int teamwork; //团队配合能力
int handling; //处理球能力
public:
bool content;
player():content(0){}
bool player_search(string formula);
bool transfer(string formula);
bool player_check(int item,long least,long most,string name);
//设定和修改球员属性的接口
void set_name(string tmp){ player_name=tmp;}
void set_nation(string tmp) { player_nation=tmp;}
void set_club(string tmp) { player_club=tmp;}
void set_birth(string tmp) { dateofbirth=tmp; }
void set_age(int tmp) { age=tmp; }
void set_position(string tmp) { position=tmp ; }
void set_ability (int tmp) { ability=tmp; }
void set_value (long tmp) {player_value=tmp;}
void set_caps (int tmp) {caps=tmp;}
void set_wage (int tmp) {wage=tmp;}
void set_tran (int tmp) {transferstatus=tmp;}
void set_pace (int tmp) {pace=tmp;}
void set_strength (int tmp) {strength=tmp;}
void set_stamina (int tmp) {stamina=tmp;}
void set_heading (int tmp) {heading=tmp ;}
void set_passing (int tmp) {passing=tmp;}
void set_tackl (int tmp) { tackling=tmp;}
void set_fin (int tmp) {finishing=tmp ;}
void set_tech (int tmp) {technique=tmp ; }
void set_teamwork (int tmp) {teamwork=tmp ; }
void set_handling (int tmp) {handling=tmp ; }
//
//输出
void show()
{
cout<<player_name<<endl;
}
//
int getransf()
{
return transferstatus;
}
long getvalue()
{
return player_value;
}
string get_club()
{
return player_club;
}
string getnation()
{
return player_nation;
}
friend bool compute(string formula);
};
bool player::player_check(int item,long least,long most,string name)
{
switch(item)
{
case 1: return(player_name==name);break;
case 2: return(player_nation.find(name)<player_nation.size());break;
/*{
string nation;
bool compare=0;
int i=0;
while(i<player_nation.size())
{
int j=0;
while((player_nation[i]!='/')&&(i<player_nation.size()))
{
nation.insert(j,player_nation[i]);
i++;
j++;
}
compare=compare||(nation==name);
i++;
}
return(compare);break;
}*/
case 3: return(player_club==name);break;
case 4:
{
long birth_time;
birth_time=atoi(dateofbirth.substr(0,2).c_str())+atoi(dateofbirth.substr(3,2).c_str())*100+atoi(dateofbirth.substr(6,4).c_str())*10000;
return((birth_time>=least)&&(birth_time<=most));break;
}
case 5:
{
string str;
bool compare=0;
int i=0;
while(i<position.size())
{
int j=0;
while((position[i]!=' ')&&(i<position.size()))
{
string aa="";
aa=aa+position[i];
str.insert(j,aa);
i++;
j++;
}
compare=compare||(str==name);
i++;
}
return(compare);break;
}
case 6: return((age>=least)&&(age<=most));break;
case 7: return((ability>=least)&&(ability<=most));break;
case 8: return((player_value>=least)&&(player_value<=most));break;
case 9: return((caps>=least)&&(caps<=most));break;
case 10: return((wage>=least)&&(wage<=most));break;
case 11: return((transferstatus>=least)&&(transferstatus<=most));break;
case 12: return((pace>=least)&&(pace<=most));break;
case 13: return((strength>=least)&&(strength<=most));break;
case 14: return((stamina>=least)&&(stamina<=most));break;
case 15: return((finishing>=least)&&(finishing<=most));break;
case 16: return((handling>=least)&&(handling<=most));break;
case 17: return((heading>=least)&&(heading<=most));break;
case 18: return((passing>=least)&&(passing<=most));break;
case 19: return((tackling>=least)&&(tackling<=most));break;
case 20: return((teamwork>=least)&&(teamwork<=most));break;
case 21: return((technique>=least)&&(technique<=most));break;
}
}
bool player::transfer(string formula)
{
string str,name;
int i=1;
long num,least=-1,most=4000000000;
if(formula.find("Name")<formula.size())
{
num=1;
name=formula.substr(6,formula.size()-7);
}
else if(formula.find("Nation")<formula.size())
{
num=2;
name=formula.substr(8,formula.size()-9);
}
else if(formula.find("Club")<formula.size())
{
num=3;
name=formula.substr(6,formula.size()-7);
}
else if(formula.find("Date of Birth")<formula.size())num=4;
else if(formula.find("Position")<formula.size())
{
num=5;
name=formula.substr(10,formula.size()-11);
}
else if(formula.find("Age")<formula.size())num=6;
else if(formula.find("Ability")<formula.size())num=7;
else if(formula.find("Value")<formula.size())num=8;
else if(formula.find("Int Caps")<formula.size())num=9;
else if(formula.find("Wage")<formula.size())num=10;
else if(formula.find("Transfer Status")<formula.size())num=11;
else if(formula.find("Pace")<formula.size())num=12;
else if(formula.find("Strength")<formula.size())num=13;
else if(formula.find("Stamina")<formula.size())num=14;
else if(formula.find("Finishing")<formula.size())num=15;
else if(formula.find("Handling")<formula.size())num=16;
else if(formula.find("Heading")<formula.size())num=17;
else if(formula.find("Passing")<formula.size())num=18;
else if(formula.find("Tackling")<formula.size())num=19;
else if(formula.find("Teamwork")<formula.size())num=20;
else if(formula.find("Technique")<formula.size())num=21;
if(num=4)
{
string birthtime;
if(count(formula.begin(),formula.end(),'<')==2)
{
birthtime=formula.substr(1,formula.find('<')-1);
if(formula.find('<')==formula.find("<="))
least=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000;
else
least=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000+1;
formula=formula.erase(1,formula.find('<')-1);
}
if(count(formula.begin(),formula.end(),"<=")==1)
{
birthtime=formula.substr(formula.find("<=")+2,formula.size()-formula.find("<=")-3);
most=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000;
}
else if(count(formula.begin(),formula.end(),'<')==1)
{
birthtime=formula.substr(formula.find('<')+1,formula.size()-formula.find('<')-2);
most=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000-1;
}
else if(count(formula.begin(),formula.end(),">=")==1)
{
birthtime=formula.substr(formula.find(">=")+2,formula.size()-formula.find(">=")-3);
least=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000;
}
else if(count(formula.begin(),formula.end(),'>')==1)
{
birthtime=formula.substr(formula.find('>')+1,formula.size()-formula.find('>')-2);
least=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000+1;
}
else
{
birthtime=formula.substr(formula.find('=')+1,formula.size()-formula.find('=')-2);
most=atoi(birthtime.substr(0,2).c_str())+atoi(birthtime.substr(3,2).c_str())*100+atoi(birthtime.substr(6,4).c_str())*10000;
least=most;
}
}
if(num>5)
{
if(count(formula.begin(),formula.end(),'<')==2)
{
if(formula.find('<')==formula.find("<="))
least=atoi(formula.substr(1,formula.find('<')-1).c_str());
else
least=atoi(formula.substr(1,formula.find('<')-1).c_str())+1;
formula=formula.erase(1,formula.find('<')-1);
}
if(count(formula.begin(),formula.end(),"<=")==1)
most=atoi(formula.substr(formula.find("<=")+2,formula.size()-formula.find("<=")-3).c_str());
else if(count(formula.begin(),formula.end(),'<')==1)
most=atoi(formula.substr(formula.find('<')+1,formula.size()-formula.find('<')-2).c_str())-1;
else if(count(formula.begin(),formula.end(),">=")==1)
least=atoi(formula.substr(formula.find(">=")+2,formula.size()-formula.find(">=")-3).c_str());
else if(count(formula.begin(),formula.end(),'>')==1)
least=atoi(formula.substr(formula.find('>')+1,formula.size()-formula.find('>')-2).c_str())+1;
else
{
most=atoi(formula.substr(formula.find('=')+1,formula.size()-formula.find('=')-2).c_str());
least=most;
}
}
return(player_check(num,least,most,name));
}
bool player::player_search(string formula) //球员查询
{
int i=0;
string formula1;
while(i<formula.size())
{
string str;
if(formula[i]=='(')
{
int j=0;
do
{
string aa="";
aa=aa+formula[i];
str.insert(j,aa);
i++;
j++;
}
while((formula[i]=='(')||(formula[i]==')')||(i>=formula.size()));
if(formula[i]=='(')
formula1.insert(formula1.size(),str);
else if(formula[i]==')')
{
string aa="";
aa=aa+formula[i];
str.insert(j,aa);
aa="";
aa=aa+char(transfer(str)+48);
formula1.insert(formula1.size(),aa);
i++;
}
}
else
{
string aa="";
aa=aa+formula[i];
formula1.insert(formula1.size(),aa);
i++;
}
}
return(compute(formula1));
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -