问题描述
我发现调用 add 函数很困难。请帮我调用add函数并输入分数和玩家。
#include<iostream>
#include<string>
using namespace std;
class GameEntry
{
private:
string playerName;
int playerscore;
GameEntry*next;
friend class scoresList;
public:
void setData(const string &name,int score )
{
playerName = name;
playerscore = score;
}
};
class scoresList
{
public:
scoresList(); //constructor to assign maxEnt
void add(const GameEntry& e);
void remove(int i);
void removeLast();
void printEntries() ;
bool empty() const;
private:
GameEntry*headNode;
int scoreCounter;
};
这是我需要在主类中调用的添加函数。
-
void scoresList::add(const GameEntry& e)
void scoresList::add(const GameEntry& e)
{ GameEntry*buffNode = new GameEntry;
buffNode->playerName = e.playerName;
buffNode->playerscore = e.playerscore; buffNode->next = NULL;if(headNode == NULL) { headNode = buffNode; scoreCounter++; } else { if(e.playerscore > headNode->playerscore) { buffNode->next = headNode; headNode = buffNode; scoreCounter++; } else { GameEntry *tempNode; tempNode = headNode; while(tempNode->next != NULL) { if(tempNode->playerscore > buffNode-> playerscore && buffNode-> playerscore >= tempNode->next->playerscore) { buffNode->next = tempNode->next; tempNode->next = buffNode; scoreCounter++; } tempNode = tempNode->next; } if(tempNode->playerscore >= buffNode-> playerscore) { cout << "\n Sorry! the score is insufficient to make it to the top 10."; } else { tempNode -> playerName = e.playerName; tempNode -> playerscore = e.playerscore; scoreCounter++; } } } if(scoreCounter >= 11) removeLast();
} }
*** 如何调用添加函数输入 10 scores and Name.***
int main() {
return 0;
}
编辑 * 谢谢,我现在有了答案。
int main() {
cout<<"Enter Player's Name : ";
cin>>playerName;
cout<<"Enter Player's score : ";
cin>>playerscore;
GE.setData(playerName,playerscore);
GE.displays();
sl.add(GE);
返回0; }
解决方法
从 main
函数获取输入并将该值传递给类中的函数,使用该函数的调用语句
示例:
#include<iostream>
#include<string>
class Student
{
private :
string name;
int student_id;
public :
void getData(string name,student_id)
{
this->name=name;
this->student_id=student_id;
}
void display ()
{
cout<<"STUDENT NAME : "<<name<<endl;
cout<<"STUDWNT ID : "<<student_id<<endl;
}
};
int main()
{
Student s1; // Student object
string name;
int id;
cout<<"Enter Student Name : "; //get input here
cin>>name;
cout<<"Enter Student ID : "; //get input here
cin>>id;
s1.getData(name,id); // pass values to getData function
s1.display();. // display values
return 0;
}
,
我认为您可以使用循环和构造函数来获取 10 个输入并传递给类。在数组中创建 10 个对象并将值传递给构造函数
示例:
#include<iostream>
#include<string>
using namespace std;
class Student
{
private :
string name;
int student_id;
public :
Student (string name,int student_id)
{
this->name=name;
this->student_id=student_id;
}
void display ()
{
cout<<"NAME : "<<name<<endl;
cout<<"ID : "<<student_id<<endl;
}
};
int main()
{
string name;
int id;
for(int c=0;c<=9;c++)
{
cout<<"Enter Student Name : ";
cin>>name; //get input here
cout<<"Enter Student ID : ";
cin>>id; //get input here
Student s[c](name,id); //student object array
s[c].display();. // display values
}
return 0;
}