⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.h

📁 足球俱乐部游戏的管理软件 能够完成交易等
💻 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 + -