Необходимо разработать приложение на языке Java с графическим типом интерфейса пользователя.
Программа должна позволять тайно встраивать короткие сообщения в текст произведения (романы Дарьи Донцовой). Текст сообщения состоит из даты, времени и места (Пример: 28.10 в 11 у Ленина 9).
Программой пользуются два пользователя (Боб и Алиса).
Ввод сообщения может производиться как из программы, так и текстовым файлом (txt).
Действия пользователя №1 (Боб):
- Ввод конфиденциального сообщения в программу;
- Указание пути к произведению (роману)*;
- Отправление преобразованного произведения (романа) по электронной почте пользователю №2 (Алиса).
В программе должен быть реализован следующий функционал:
- определять в произведении (романе) уникальные слова из перечня (Приложение к настоящим функциональным требованиям). Каждое уникальное слово (глагол) имеет значение (0 или 1). У каждого уникального слова (например со значением «0», первый столбец таблицы) существует синоним (со значением «1», второй столбец таблицы) и наоборот;
- осуществлять замену слов, чтобы встроить конфиденциальное сообщение пользователя №1 (Боба) в бинарном виде;
- Кнопка «С» приложения запускает процесс встраивания сообщения в произведение (роман)
- Кнопка «D» приложения выводит текст (в программе/в отдельный файл) конфиденциального сообщения встроенного в текст произведения (романа)
- Исходный файл и результатирующий файл должны выбираться стандартным диалогом выбора файла операционной системы и являются обязательным.
Стандарт кодирования текста должен быть UTF 8
Пример:
- Боб вводит сообщение «28.10 в 11 у Ленина 9»
- Преобразование в бинарный вид:
0011001000111000001011100011000100110000001000001101000010110010001000000011000100110001001000001101000110000011001000001101000010011011110100001011010111010000101111011101000010111000110100001011110111010000101100000010000000111001 - Исходный фрагмент произведения
«…Через секунду Александр Михайлович ВОРОТИЛСЯ (1)*, неся на подносике три пластиковых стаканчика, над которыми ПОДНИМАЛИСЬ (0) облачка пара. Тут же НАХОДИЛИСЬ (1) пакетики. Я терпеть не могу растворимый кофе, но в этой забегаловке просто не ВАРЯТ (0) ничего приличного, а на хороший ресторан ни у Андрюшки, ни у Александра Михайловича денег нет. Они всего лишь сотрудники МВД, да еще не ВОЗЬМУТ (1) взяток. Ну откуда, скажите, в такой ситуации у них возьмется тугой бумажник? Впрочем, могла бы сама ПОЗВАТЬ (1) их в любой дорогой ресторан, а потом преспокойненько ЗАПЛАТИТЬ (0) по счету. У меня-то нет никаких финансовых затруднений, но Дегтярев и Крахмальников люди старой закваски. В их понимании мужик, обедающий за счет дамы, сродни сутенеру. Вот поэтому-то безропотно ПЫТАЮСЬ (1) отодрать от зубов кусок липкого теста…»
*в фрагменте прописным текстом и жирным шрифтом выделяется исключительно для наглядности
- Фрагмент текста произведения после преобразования:
«…Через секунду Александр Михайлович ВЕРНУЛСЯ (0)*, неся на подносике три пластиковых стаканчика, над которыми ПОДНИМАЛИСЬ (0) облачка пара. Тут же НАХОДИЛИСЬ (1) пакетики. Я терпеть не могу растворимый кофе, но в этой забегаловке просто не СТРЯПАЮТ (1) ничего приличного, а на хороший ресторан ни у Андрюшки, ни у Александра Михайловича денег нет. Они всего лишь сотрудники МВД, да еще не БЕРУТ (0) взяток. Ну откуда, скажите, в такой ситуации у них возьмется тугой бумажник? Впрочем, могла бы сама ПРИГЛАСИТЬ (0) их в любой дорогой ресторан, а потом преспокойненько ОПЛАТИТЬ (1) по счету. У меня-то нет никаких финансовых затруднений, но Дегтярев и Крахмальников люди старой закваски. В их понимании мужик, обедающий за счет дамы, сродни сутенеру. Вот поэтому-то безропотно СТАРАЮСЬ (0) отодрать от зубов кусок липкого теста…»
*в фрагменте прописным текстом и жирным шрифтом выделяется исключительно для наглядности. В программе ключевые слова в преобразованном тексте должны сохранять стилистику произведения.
Действия пользователя №2 (Алиса):
- Сохраняет полученное произведение на своем ПК;
- Указывает в программе путь к произведению (роману) в программе;
- Ознакомление со встроенным сообщением от пользователя №2 (Боба).
В программе должен быть реализован следующий функционал:
- определение в произведении (романе) уникальных слов и выводит их в отдельный файл сохраняя последовательность;
- преобразование уникальных слов в файле в бинарный вид;
- составление сообщения из бинарного кода (получая исходное конфиденциальное сообщение, введенное Бобом).
Пример:
- Поиск уникальных слов в произведении:
«…Через секунду Александр Михайлович ВЕРНУЛСЯ (0)*, неся на подносике три пластиковых стаканчика, над которыми ПОДНИМАЛИСЬ (0) облачка пара. Тут же НАХОДИЛИСЬ (1) пакетики. Я терпеть не могу растворимый кофе, но в этой забегаловке просто не СТРЯПАЮТ (1) ничего приличного, а на хороший ресторан ни у Андрюшки, ни у Александра Михайловича денег нет. Они всего лишь сотрудники МВД, да еще не БЕРУТ (0) взяток. Ну откуда, скажите, в такой ситуации у них возьмется тугой бумажник? Впрочем, могла бы сама ПРИГЛАСИТЬ (0) их в любой дорогой ресторан, а потом преспокойненько ОПЛАТИТЬ (1) по счету. У меня-то нет никаких финансовых затруднений, но Дегтярев и Крахмальников люди старой закваски. В их понимании мужик, обедающий за счет дамы, сродни сутенеру. Вот поэтому-то безропотно СТАРАЮСЬ (0) отодрать от зубов кусок липкого теста…»
…
- Выведение слов в отдельный файл:
"…, ВЕРНУЛСЯ, ПОДНИМАЛИСЬ, НАХОДИЛИСЬ, СТРЯПАЮТ, БЕРУТ, ПРИГЛАСИТЬ, ОПЛАТИТЬ, СТАРАЮСЬ, …"
- Преобразование слов выведенных в отдельный файл в бинарный вид:
0011001000111000001011100011000100110000001000001101000010110010001000000011000100110001001000001101000110000011001000001101000010011011110100001011010111010000101111011101000010111000110100001011110111010000101100000010000000111001
- Далее программа должна декодировать сообщение в графическом интерфейсе или в текстовый файл (txt). Преобразование двоичного кода в текст осуществляется, используя транслятор, который работает с кодировкой unicode формата UTF-8, который кодирует кириллические символы двумя байтами. Преобразованный текст выводится в приложении, либо в отдельный файл следующий текст:
28.10 в 11 у Ленина 9