Не знаю как удалять студентов из класса Групп.Студенты добавляются из файла или с помощью функции addStudent.Буду признателен за ваши замечания к коду.
class Student
{
public:
Student(std::string studentInformation);
Student(std::string firstName,std::string lastName,int ntb,double mark);
std::string getFirstName();
std::string getLastName();
std::string getName();
int getNtb();
double getMark();
private:
std::string firstName; //имя
std::string lastName; //фамилия
int ntb; //номер зачётки
double mark; //cр.бал
};
Student::Student(string studentInformation)
{
stringstream studentStream(studentInformation);
studentStream >> firstName;
studentStream >> lastName;
studentStream >> ntb;
studentStream >> mark;
}
Student::Student(string firstName,string lastName,int ntb,double mark)
{
this->firstName = firstName;
this->lastName = lastName;
this->ntb = ntb;
this->mark = mark;
}
string Student::getFirstName()
{
return firstName;
}
string Student::getLastName()
{
return lastName;
}
string Student::getName()
{
return firstName + " " + lastName;
}
int Student::getNtb()
{
return ntb;
}
double Student::getMark()
{
return mark;
}
class Group
{
public:
Group(std::string filePath);
void setNameGroup();
string getNameGroup();
vector<Student> getValedictorian();
vector<Student> getHonorRollStudents();
vector<Student> getFailingStudents();
void addStudent(string filePath);
void printStudent(Student student);
private:
string nameGroup;
vector<Student> students;
};
Group::Group(string filePath)
{
ifstream studentFile(filePath);
string lineContents;
while (!studentFile.eof())
{
getline(studentFile, lineContents);
Student s(lineContents);
students.push_back(s);
}
studentFile.close();
sort(students.begin(), students.end(), [](Student &s1, Student &s2)
{
return s1.getMark() > s2.getMark();
});
}
void Group::printStudent(Student student)
{
cout << "Имя:" << student.getName() << endl;
cout << "Номер зачётки: " << student.getNtb() << endl;
cout << "Cр.бал: " << student.getMark() << endl;
cout << endl;
}
void Group::setNameGroup()
{
cout << "Введите имя группы";
cin >> nameGroup;
}
string Group::getNameGroup()
{
return nameGroup;
}
vector<Student> Group::getValedictorian()
{
for (Student s : students)
{
if (s.getMark() > 0 )
break;
else
students.push_back(s);
}
return students;
}
vector<Student> Group::getHonorRollStudents()
{
vector<Student> toReturn;
for (Student s : this->students)
{
if (s.getMark() < 90)
break;
else
toReturn.push_back(s);
}
return toReturn;
}
vector<Student> Group::getFailingStudents()
{
vector<Student> toReturn;
for (vector<Student>::reverse_iterator iter = students.rbegin(); iter < students.rend(); iter++)
{
if (iter->getMark() >= 89)
break;
else
toReturn.push_back(*iter);
}
return toReturn;
}
void Group::addStudent(string filePath)
{
string firstName; //имя
string lastName; //фамилия
int ntb; //номер зачётки
double mark; //cр.бал
ofstream studentFile(filePath, ofstream::app);
if (!studentFile.is_open())
{
cout << "Ошибка открытия файла!" <<endl;
}
else
{
cout << "Введите имя студента ";
SetConsoleCP(1251);
cin >> firstName;
SetConsoleCP(866);
cout << "Введите Фамилию студента ";
SetConsoleCP(1251);
cin >> lastName;
SetConsoleCP(866);
cout << "Введите номер зачетки ";
cin >> ntb;
cout << "Введите средний бал студента ";
cin >> mark;
studentFile <<"\n" << firstName << " " << lastName << " " << ntb << " " << mark;
Student newStudent(firstName,lastName,ntb,mark);
students.push_back(newStudent);
}
studentFile.close();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Собираю ANGLE в студии VS2017, под windows, по инструкцииЗадаю конфигурацию x86 (32bit) и генерирую проект для студии с помощью:
Вот фрагмент кода игрыНужно чтобы пушка могла одновременно двигаться и стрелять но когда двигаю пушку например налево пушка останавливается...