//Search within array of matches and display the results
void SearchMatches(Match* matches,int size,string TeamName)
{
//declare the result array
Match SearchResult[2000];
//initalize the result counter
int SearchResultCount=0;
int SelectedNumber;
//search within the matches array
for(int i=0;i<size;i++)
{
//check if the entered name is the team1 or team2 in the match
if(matches[i].Team1==TeamName || matches[i].Team2==TeamName)
{
//update the search result counter
SearchResultCount++;
//display the seasons
cout<<endl<<"("<<SearchResultCount<<") "<<matches[i].Season;
//store the matched match in the search result array
SearchResult[SearchResultCount] = matches[i];
}
}
cout << endl;
//check for results
if(SearchResultCount>0)
{
cout << "which year would you like to view results "<<endl;
cin>>SelectedNumber;
//display the match information
cout<<SearchResult[SelectedNumber].Season<<endl;
cout<<SearchResult[SelectedNumber].Team1<<endl;
cout<<"Over"<<endl;
cout<<SearchResult[SelectedNumber].Team2<<endl;
cout<<SearchResult[SelectedNumber].Result<<endl;
}
else cout<<"No search result";
cout<<endl;
}
void SearchMatches(Match* matches,int size,string TeamName, int record)
{
//declare the result array
Match SearchResult;
//initalize the result counter
int SearchResultCount=0;
//int SelectedNumber;
//search within the matches array
for(int i=0;i<size;i++)
{
//check if the entered name is the team1 or team2 in the match
if(matches[i].Team1==TeamName || matches[i].Team2==TeamName)
{
//update the search result counter
SearchResultCount++;
if (SearchResultCount == record)
{
//store the
//display the seasons
//cout<<endl<<"("<<SearchResultCount<<") "<<matches[i].Season;
//store the matched match in the search result array
SearchResult = matches[i];
break;
}
}
}
cout<<endl;
//check for results
if(SearchResultCount>0)
{
//display the match information
cout<<SearchResult.Season<<endl;
cout<<SearchResult.Team1<<endl;
cout<<"Over"<<endl;
cout<<SearchResult.Team2<<endl;
cout<<SearchResult.Result<<endl;
}
else cout<<"No search result";
cout<<endl;
}
// This function is used for storing the last search keyword entered to the recallteam.txt
void WriteLastSearchWord(string word)
{
ofstream myfile;
myfile.open("nflSave.txt");
myfile << word;
myfile.close();
}
// This function is used for read the last search keyword enter from the recallteam.txt
void ReadLastSearchWord(string &team, int &record)
{
ifstream inFile("nflSave.txt");
getline(inFile, team);
inFile >> record;
inFile.close();
}
void Football::RunFootball()
{
ifstream inFile("nfl.txt");
//initailze the matches ( array of strcuts )
Match *matches[2000];
// create input stream for file
//It will holds the read lines from the file
string Buffer;
// check if the file is exist
if(!inFile.is_open())
{
//display the error message
//cout<<"Failed to open file"<<endl;
cerr << " File is Missing";
}
// initalize the counter
int matchesCounter=0;
while(!inFile.eof())
{ //&Match::operator =(const Match &)
//read season
matches[matchesCounter] = new Match;
getline(inFile,Buffer);
matches[matchesCounter]->Season = Buffer;
//read team1 name
getline(inFile,Buffer);
matches[matchesCounter]->Team1 = Buffer;
//read the "over" string
getline(inFile,Buffer);
//read team2 name
getline(inFile,Buffer);
matches[matchesCounter]->Team2 = Buffer;
//read result
getline(inFile,Buffer);
matches[matchesCounter]->Result = Buffer;
//read the empty line
getline(inFile,Buffer);
//update the matches counter
matchesCounter++;
}
//its used for Main menu selection
char Check='1';
while(Check !='3')
{
//Display the main menu
cin>>Check;
switch(Check)
{
//Search
case '1':
{
string TeamName="";
getline(cin,TeamName);
system("cls");
cout << "Please Enter Team City And Team Name" <<endl;
getline(cin,TeamName);//free's buffer
WriteLastSearchWord(TeamName);
SearchMatches(matches,matchesCounter,TeamName);
break;
}
//Display the last search team
case '2':
{
string team;
int record;
ReadLastSearchWord(team, record);
system("cls");
cout << "Last Recorded Viewed" <<endl;
SearchMatches(matches,matchesCounter ,team , record);
break;
}
//Exit the program
case '3':
{
exit(0);
}
default:continue;
If in SearchMatches matches is an array of pointers then SearchResult will also need to be a pointer OR you will need to dereference matches[i] in order to make SearchResult = matches[i]; work.