Библиотека (сервис) для работы со словарем Java


Новая задача на Java, есть готовое решение: исходники с комментариями, проект IntelliJ IDEA; либо просто два файла java. Текст задачи

Java Core. Разработать библиотеку (сервис) для работы со словарем. В словаре построчно хранятся пары слов (ключ - слово на гипотетическом языке, значение - перевод иностранного слова на русский) сам словарь хранится в файле на диске. Требования:

а) Словарь должен обеспечивать следующую функциональность:

  • чтение списка пар из файла
  • удаление записи по ключу
  • поиск записи по ключу
  • добавление записей при условии соответствия требованиям конкретного словаря
б) Должно быть предоставлено консольное приложение, работающее с сервисами словаря:

  • Обеспечить возможность работы со словарями двух языков: в первом языке длина слов может быть только 4 символа и эти символы только буквы латинской раскладки, второй язык - длина слов может быть только 5 символа и эти символы только цифры.
  • Интерфейс должен предоставлять следующую функциональность пользователю:
    • просмотр содержимого обоих словарей
    • удаление, поиск по ключу, добавление записи в одном из словарей, заранее выбранном пользователем


Ход решения

Логично предположить, что будет два файла, два класса. Первый файл – это непосредственно словарь. Структура его будет такая:

public class Dict {

    Map<String, String> map = new HashMap<String, String>();
    String fileName;
    int tip;

//список методов
…..
}
То есть три поля: map (где мы и будем хранить слово-перевод в памяти программы), fileName – адрес файла словаря (а тут уже слово-перевод будет физически храниться) и tip – эти тип словаря, по которому мы будем определять ограничения.

Список методов, которые необходимо реализовать в данном классе

//условия добавления
    Boolean isDefWord(String key) {
..
    }

    //конструктор
    Dict(int tip, String filename) {
..
    }

    //вывод результата
    void printStr(String str) {
…
    }

    //запись в файл
    String writeToFile(String fileName, String text) {
..
    }

    //добавление записи
    String setWord(String wordEng, String wordRus) {
..
    }

    //удаление записи
    String removeWord(String wordEng) {
..
    }

    //поиск записи
    String getWord(String wordEng) {
		…
    }

    //вывод всех пар ключ-значение
    String getAllWord() {
        String text = "";
        for(Map.Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            text = text + "\n" + key+","+value;
        }
        return text;
    }
Все методы разбиты по принципу единственной ответственности.

Второй файл содержит класс Main. В этом классе реализуется логика работы с пользователем. Так как в ТЗ указано использовать консольное приложение, то задействуем класс Scanner для получения команд. Команды получаем с помощью метода nextLine() и потом обрабатываем. Сначала спрашиваем у пользователя какой тип словаря нужен, потом просим ввести адрес файла со словарем и далее уже работаем с ним:



В настоящий момент цена исходников программы словаря с комментариями составляет 600 рублей. Это гораздо дешевле, чем писать аналогичную программу на заказ. За отдельную плату я могу подкорректировать программу, добавить некоторые функции, как-то изменить – любые модификации по вашему желанию.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, java, задачи




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 34. Функциональные выражения JavaScript
Урок 13. Знакомство с хелпером, группами маршрутов и посредниками Laravel
Уроки по объектно-ориентированному программированию C#