Пожалуйста помогите решить задачу по программированию
Вы преподаватель и читаете лекцию в одном известном институте. Чтобы понять, кто из студентов присутствовал у вас на занятии, а кто нет, вы решили создать журнал. В журнал можно добавлять фамилии людей, но нельзя вычеркивать.
В аудиторию заходят студенты, и у каждого из них вы спрашиваете имя, после этого записываете в журнал.
Также иногда вас интересует, а не зашел ли студент с определенным именем(Например, потому что он никогда не посещает ваши занятия), и вы ищете это имя в журнале.
Наконец, бывает так, что вы хотите узнать, сколько уже людей вошло в аудиторию, и вы также определяете это по журналу.
В этой задаче вам предлагается написать структуру для этого журнала, а именно:
Напишите стуктуру NamesHolder. У неё должно быть 3 метода:
Метод AddName, принимает 1 аргумент типа std::string -- имя, которое нужно добавить в журнал. Добавляет это имя в журнал. Гарантируется, что у всех студентов разные имена.
Метод HasName, принимает 1 аргумент типа std::string. Проверяет, есть ли это имя в журнале. Возвращает bool. true - если имя в журнале есть, false - иначе
Метод Size, возвращает количество фамилий в журнале
Таким образом, общий вид вашей структуры будет таким:
struct NamesHolder {
void AddName(std::string);
bool HasName(std::string);
unsigned long long Size();
}
Можете использовать константные ссылки, так будет правильнее:
struct NamesHolder {
void AddName(const std::string&);
bool HasName(const std::string&);
unsigned long long Size();
}
Реализацию конкретных методов, а также небходимые для работы поля определите сами.
В систему отправляйте только код структуры и необходимые для работы #include
Пример проверки программы:
NamesHolder holder;
holder.AddName("Alice");
holder.AddName("Bob");
assert(holder.HasName("Mark") == false);
assert(holder.HasName("Alice") == true);
assert(holder.HasName("Bob") == true);
assert(holder.Size() == 2);
#include <set>
struct NamesHolder {
std::set<std::string> holder;
void AddName(const std::string& name) {
holder.insert(name);
}
bool HasName(const std::string& name) {
return holder.contains(name);
}
size_t Size() const {
return holder.size();
}
}; Спасибо