我只是好奇,如果我的思維方式不正確。我的思維方式工作,還是我需要在我的代碼指針/引用?你會如何處理這個問題?在這一點上,我只是粗略勾畫。看看我的意見,我的擔憂。主要對我是否應該使用指針以及如何引用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