Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с программированием c++

Олег Ванютин Ученик (89), на голосовании 4 месяца назад
Контекст задачи

У вас есть сервис, в котором люди могут отправлять друг другу сообщения. Чтобы ваше приложение
получало меньше жалоб, вы решили добавить в него логику проверки текста сообщений. Например,
запрещены оскробления или нецензурная лексика. И был написан класс, который проверяет по
сообщению, корректный ли текст у этого сообщения.

К сожалению, вы потеряли доступ к коду этого класса, однако точно помните, что класс объявляли
таким образом:

class SecretClass {
private:
std::string GetRule() const;
protected:
bool CheckMessage(const std::string& message) const;
};

где GetRule возвращает строку, в которой прописаны все правила проверки сообщений, а
CheckMessage по сообщению проверяет, проходит ли оно проверку.
У вас совсем нет времени искать исходный код класса, ведь сообщения уже начали поступать, и их
уже нужно проверять на корректность...

Задача

На вход вашей программе подается одна единственная строка -- текст сообщения
Необходимо вывести 1, если сообщение проходит проверку, и 0 иначе
Гарантируется, что в тестирующей системе к вашему коду будет подключена реализация класса SecretClass
В систему отправляйте весь необходимый для работы вашей программы код, включая функцию main, в которой и будет написан ввод и вывод данных.
Голосование за лучший ответ
вава аваыа Профи (675) 5 месяцев назад
Задача интересная, вперёд
Сергей Мастер (1616) 5 месяцев назад
#include <iostream>
#include <string>

// Предварительное объявление класса SecretClass
class SecretClass {
private:
std::string GetRule() const;
protected:
bool CheckMessage(const std::string& message) const;
};

int main() {
// Создадим объект SecretClass
SecretClass secretClassObj;

// Получаем входное сообщение
std::string message;
std::getline(std::cin, message);

// Проверяем сообщение
bool result = secretClassObj.CheckMessage(message); // Используем метод CheckMessage

// Выводим результат
std::cout << (result ? 1 : 0) << std::endl;

return 0;
}
Олег ВанютинУченик (89) 5 месяцев назад
Спасибо
Factator Мастер (2359) 5 месяцев назад
 #include  
#include

// Предполагаем, что класс SecretClass уже определен где-то в подключаемых библиотеках
class SecretClass {
private:
std::string GetRule() const;
protected:
bool CheckMessage(const std::string& message) const;
};

// Наследуемся от SecretClass
class MessageChecker : public SecretClass {
public:
// Метод для проверки сообщения
bool IsMessageValid(const std::string& message) {
return CheckMessage(message);
}
};

int main() {
std::string message;
std::getline(std::cin, message); // Читаем сообщение из стандартного ввода

MessageChecker checker;
if (checker.IsMessageValid(message)) {
std::cout << 1 << std::endl; // Сообщение прошло проверку
} else {
std::cout << 0 << std::endl; // Сообщение не прошло проверку
}

return 0;
}
Татьяна Просветленный (36384) 5 месяцев назад
 #include  
#include

// Фиктивная реализация SecretClass для компиляции
class SecretClass {
private:
std::string GetRule() const {
return "dummy rule";
}
protected:
bool CheckMessage(const std::string& message) const {
// Простая проверка, чтобы код компилировался
return message.find("badword") == std::string::npos;
}
};

// Создаем производный класс от SecretClass
class MessageChecker : public SecretClass {
public:
bool IsMessageValid(const std::string& message) const {
return CheckMessage(message);
}
};

int main() {
std::string message;
std::getline(std::cin, message);

MessageChecker checker;
if (checker.IsMessageValid(message)) {
std::cout << "1\n";
} else {
std::cout << "0\n";
}

return 0;
}
Ошибок в моем коде нету
СергейГений (59760) 5 месяцев назад
Цитата: Гарантируется, что в тестирующей системе к вашему коду будет подключена реализация класса SecretClass
Похожие вопросы