Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
arashdehghani1400 committed Jan 21, 2021
2 parents 69bafc2 + 04cadc4 commit bdcac03
Show file tree
Hide file tree
Showing 15 changed files with 302 additions and 25 deletions.
18 changes: 16 additions & 2 deletions Barzegari/Student/models/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
Expand Down Expand Up @@ -264,20 +265,33 @@ Student* Student::first(bool filteredData = false)
{
this->studentModel = *it;
break;

}
}
}
else
{
this->studentModel = this->students.front();
}

return this;
}

Student* Student::last(bool filteredData = false)
{
if (filteredData)
{
for (RStudentIterator it = this->students.rbegin(); it != this->students.rend(); it++)
{
if(it->filtered)
{
this->studentModel = *it;
break;
}
}
}
else
{
this->studentModel = this->students.back();
}
return this;
}

Expand Down
17 changes: 16 additions & 1 deletion Hosseinihashemi/student/models/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
Expand Down Expand Up @@ -368,6 +369,20 @@ Student* Student::first(bool filteredData = false)

Student* Student::last(bool filteredData)
{

if (filteredData)
{
for (RStudentIterator it = this->students.rbegin(); it != this->students.rend(); it++)
{
if (it->filtered)
{
this->studentModel = *it;
break;
}
}
}
else
{
this->studentModel = this->students.back();
}
return this;
}
14 changes: 13 additions & 1 deletion KhaleqiYekta/Projects/Student/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,27 @@ int main()
cout << student->getError() << endl;
}

c::printlnSeparator('*',40);
student->setAverage(20)->filter(Field::Average)->first(true)->debug();
c::printlnSeparator('*',40);
student->setAverage(20)->filter(Field::Average)->last(true)->debug();

/*
c::printlnSeparator('*',40);
student->setAverage(20)->filter(Field::Average)->list(true);
c::printlnSeparator('*',40);
student->setName("Ali")->filter(Field::Name)->list(true);
*/

/*
c::printlnSeparator('*',40);
student->sort(Field::Average,SortMode::Desc)->list(true);
*/

/*
c::printlnSeparator('*',40);
student->sort(Field::Average)->limit(1)->list();
c::printlnSeparator('*',40);
*/

delete student;

Expand Down
16 changes: 12 additions & 4 deletions KhaleqiYekta/Projects/Student/models/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
Expand Down Expand Up @@ -365,11 +366,11 @@ Student* Student::first(bool filteredData)
{
if (filteredData)
{
for (auto &student : this->students)
for (StudentIterator it = this->students.begin(); it != students.end(); ++it)
{
if (student.filtered)
if (it->filtered)
{
this->studentModel = student;
this->studentModel = *it;
return this;
}
}
Expand All @@ -386,7 +387,14 @@ Student* Student::last(bool filteredData)
{
if (filteredData)
{
//TODO: Complete this!
for (RStudentIterator rIt = this->students.rbegin(); rIt != students.rend(); ++rIt)
{
if (rIt->filtered)
{
this->studentModel = *rIt;
return this;
}
}
}
else
{
Expand Down
1 change: 1 addition & 0 deletions Oroji/student/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ int main()
student->setCode(4)->setName("hasani")->setAverage(20)->add();
student->sort(Field::Name)->list();
student->sort(Field::Average)->list();
student->setAverage(20)->filter(Field::Average)->sort(Field::Name)->list();
/* if(student->setName("ali")->find(Field::Name))
{
student->debug();
Expand Down
63 changes: 61 additions & 2 deletions Oroji/student/model/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,14 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
private:
StudentModel studentModel;
list<StudentModel> students;

size_t limitCount;
bool error;
string errorMessage;

Expand All @@ -52,19 +53,23 @@ class Student
bool find(Field searchField);
Student* filter(Field filterField);
Student* sort(Field sortField, SortMode sortMode = SortMode::Asc);
Student* limit(size_t count);

void debug();

bool fail();
Student* clearError();
Student* setError(string errorMessage);
string getError();
Student* first(bool FilteredData = false);
Student* last(bool FilteredData = false);
};

Student::Student()
{
this->error = false;
}
this->limitCount = 0;
}

Student::~Student()
{
Expand Down Expand Up @@ -106,17 +111,24 @@ float Student::getAverage()

Student* Student::list(bool showFilterData)
{
size_t counter = 0;

if (this->students.size() <= 0)
return this;

for (StudentIterator it = students.begin(); it != students.end(); it++)
{
if (showFilterData && (!it->filtered))
continue;

cout << "Code : " << it->code << endl;
cout << "Name : " << it->name << endl;
cout << "Average: " << it->average << endl;
cout << "----------------------------" << endl;
counter++;

if ((this->limitCount > 0) && (counter >= this->limitCount))
break;
}

return this;
Expand Down Expand Up @@ -301,6 +313,12 @@ Student* Student::sort(Field sortField, SortMode sortMode)
return this;
}

Student* Student::limit(size_t count)
{
this->limitCount = count;
return this;
}

void Student::debug()
{
cout << endl;
Expand Down Expand Up @@ -334,3 +352,44 @@ string Student::getError()
{
return this->error ? this->errorMessage : "";
}
Student* Student::first(bool FilteredData = false)
{
if (FilteredData)
{
for (StudentIterator it = this->students.begin(); it != this->students.end(); it++)
{
if (it->filtered)
{
this->studentModel = *it;
break;
}

}

}
else
{
this->studentModel = this->students.front();
}

return this;
}
Student* Student::last(bool filteredData)
{
if (filteredData)
{
for (RStudentIterator it = students.rbegin(); it != students.rend(); it++)
{
if (it->filtered)
{
this->studentModel = *it;
break;
}
}
}
else
{
this->studentModel = this->students.back();
}
return this;
}
20 changes: 20 additions & 0 deletions Pakparvar/Student/models/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
Expand Down Expand Up @@ -377,5 +378,24 @@ Student* Student::first(bool filteredData = false)
}
Student* Student::last(bool filteredData = false)
{
if (filteredData)
{
for (RStudentIterator it = this->students.rbegin(); it != this->students.rend(); it++)
{
if (it->filtered)
{
this->studentModel = *it;
break;
}


}
}
else
{
this->studentModel = this->students.back();
}

return this;

}
4 changes: 3 additions & 1 deletion Pishva/Student/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ int main ()
cout << "---------------------------------------------------" << endl;
//student->sort(Field::Average, SortMode::Desc)->list();
//student->sort(Field::Name, SortMode::Desc)->list();
student->setAverage(19)->filter(Field::Average)->sort(Field::Name)->limit(1)->list(true);
//student->setAverage(19)->filter(Field::Average)->sort(Field::Name)->limit(1)->list(true);
//cout << student->first()->getName() << endl;
student->setAverage(19)->filter(Field::Average)->last(true)->debug();
cout << "**************************************************" << endl;

/*
Expand Down
15 changes: 14 additions & 1 deletion Pishva/Student/models/student.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class StudentModel
};

typedef list<StudentModel>::iterator StudentIterator;
typedef list<StudentModel>::reverse_iterator RStudentIterator;

class Student
{
Expand Down Expand Up @@ -352,7 +353,19 @@ Student* Student::first(bool filteredData)
}
Student* Student::last(bool filteredData)
{

if (filteredData)
{
for (RStudentIterator it = this->students.rbegin(); it != this->students.rend(); it++)
{
if ( it->filtered )
{
this->studentModel = *it;
break;
}
}
}
else
this->studentModel = this->students.back();

return this;
}
10 changes: 8 additions & 2 deletions Rahimipour/Student_project/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,24 @@ int main()
student->setCode(4)->setName("Reza")->setAverage(18)->add();
student->setCode(5)->setName("Mohammad")->setAverage(10)->add();
student->setCode(6)->setName("Yasin")->setAverage(12.5)->add();
student->setCode(7)->setName("Javad")->setAverage(20)->add();
student->setCode(7)->setName("Javad")->setAverage(18)->add();
//student->sort(Field::Average)->list2();
//student->sort(Field::Average, SortMode::Desc)->list2();
//student->sort(Field::Name)->list2();

//cout << student->first()->getName() << endl;
student->setAverage(18)->filter(Field::Average)->first(true)->getName();


/*
cout << "*/*/*/*/*/*/*/*/*/*/*" << endl;
student->setAverage(18)->filter(Field::Average)->sort(Field::Name)->limit(1)->list2(true);
//student->list2();
cout << endl << "*/*/*/*/*/*/*/*/*/*" << endl;

cout << "*/*/*/**/" << endl;
student->sort(Field::Average)->limit(2)->list2();

*/


//student->setAverage(20)->filter(Field::Average)->list2(true);
Expand Down
Loading

0 comments on commit bdcac03

Please sign in to comment.