私の思考方法が間違っているのは単なる好奇心です。私の考え方がうまくいくのでしょうか、コード内にポインタ/参照が必要でしょうか?どのようにこれにアプローチしますか?私はこの時点でちょっとスケッチしています。私の懸念に対する私のコメントを見てください。主に私がポインタを使うべきかどうか、そして私のStudentクラスでクラスを参照する方法について興味があります。どうすればこの問題を解決できますか?オールドファッションの学生/コース/学校コード。ここに私のアプローチがあります:
短縮例問題:あなたができるプログラムを作成します。 1)学校 2からの学生を作成/削除)学校 3からコースを作成/削除)コース から学生を追加/削除4.)学生が中にあるコースのリストを印刷します)もちろん 5の学生のリストを出力します。
class Student
{
public:
string name;
int id;
Student(){};//Default Construct
Student(int idin,string namein)
{
id=idin;
name=namein;
}
void PrintClasses()
{
//Umm... I can't create a Class Vector yet because Class is declared under this.. Hmm... Not sure on this part.
}
};
class Class
{
public:
int id;
string name;
Student students_in_class; //Is this the right way to store students in the class?
Class(){};//Default Constructor
Class(int idin, string namein)
{
id=idin;
name=namein;
}
void PrintStudents()
{
for (i=0;i<students_in_class.size();i++)
{
cout<<students_in_class.id<<'\n';
}
}
};
class School
{
public:
Vector<Student> studentlist;
Vector<Class> classlist;
//This is where you do everything.
void StudentAdd(int id,string name)
{
//Adds a student to the school
Student mystudent=Student(id,name);
studentlist.push_back(mystudent);
}
void StudentAdd2Course(int student_id,int course_id)
{
for (i=0;i<classlist.size();i++)
{
if(classlist[i].id==course_id)
{
//Correct Class ID Found. Now find student Id
for (int j=0;j<studentlist.size();j++)
if(studentlist[j].id==student_id)
classlist[i].students_in_class.push_back(studentlist[j]);//Push Student in class list
}
}
}
void StudentRemoveFromCourse(int student_id,int course_id)
{
for (i=0;i<classlist.size();i++)
{
if(classlist[i].id==course_id)
{
//Correct Class ID Found. Now find student Id
for (int j=0;j<studentlist.size();j++)
if(studentlist[j].id==student_id)
classlist[i].students_in_class.erase(studentlist[j]);//Push Student in class list
}
}
}
//Other functions like create class, delete class, etc
};
'Class'クラスの' students_in_class'プロパティは 'Vector'ではないでしょうか? –
xbonez
これはC++の問題よりもデータベースに似ています。 –
@Kerrek - インタビューの質問のように聞こえる...... – Soren