Совсем недавно мы с вами создавали программу для хранения номеров телефонов. Следующая программа будет
будет немного схожа по тематике. Нужно написать программу для хранения пропущенных звонков, используя
уже изученные коллекции, в том числе коллекцию TreeMap
. Программа должна хранить список пропущенных вызовов в формате:
дата и время
звонка и, конечно, имя контакта
.
- Добавление контакта (имя, фамилия, номер телефона, группа контакта: работа, друзья, семья);
- Добавление пропущенного вызова;
- Вывод всех пропущенных вызовов с указанием фамилии и имени. Если контакта нет в списке контактов, вывести только номер телефона;
- Очистка пропущенных вызовов.
После запуска программа должна предложить пользователю выполнить любое действие из списка выше, а после завершения действия (например, ввода данных нового контакта), снова вывести список доступных действий (меню).
Программа: пропущенные вызовы.
Меню:
1. Добавить контакт
2. Добавить пропущенный вызов
3. Вывести все пропущенные вызовы
4. Очистить пропущенные вызовы
5. Выход
Выберите пункт из меню (1-4):
2 <enter>
Добавьте номер пропущенного вызова
+7(918)-918-18-18 <enter>
Добавлен.
Меню:
1. Добавить контакт
2. Добавить пропущенный вызов
3. Вывести все пропущенные вызовы
4. Очистить пропущенные вызовы
5. Выход
Выберите пункт из меню (1-4):
3 <enter>
Список пропущенных вызовов:
14:20:39 2019-03-21 +7(918)-918-18-18
Меню:
1. Добавить контакт
2. Добавить пропущенный вызов
3. Вывести все пропущенные вызовы
4. Очистить пропущенные вызовы
5. Выход
5 <enter>
Выход
- Создадим класс-файл
Contact.java
со следующими полями:
- Name (Имя — String);
- Surname (Фамилия — String);
- Phone (Номер телефона — String);
- Group (Группа — Enum).
Переопределим метод toString
для этого класса в удобочитаемый вид.
- Создадим класс-перечисление
Group.java
(enum):
- WORK("Работа");
- FRIENDS("Друзья");
- FAMILY("Семья").
- Для хранения контактов предлагаю использовать
HashMap
, в качестве ключа использовать номер телефона, а в качестве значения хранить контактные данные. Лучше вынести эту коллекцию в отдельный классContacts.java
, где добавить методы для работы с этой коллекцией.
Map<String, Contact> contacts = new HashMap<>();
Нужно реализовать следующие public
методы:
- Добавление контакта (имя, фамилия, номер телефона, группа контакта: работа, друзья, семья).
- Удаление контакта по имени и фамилии.
- Поиск контакта по номеру.
Переопределим метод toString в удобочитаемый вид.
- Для хранения пропущенных вызовов использовать
TreeMap
, где ключ —время пропущенного вызова
, а значение —номер телефона
. Для хранения времени звонка подойдет тип данныхLocalDateTime
— у него уже определен методcompareTo
для использования в коллекцииTreeMap
. Нужно также создать отдельный класс для хранения и работы с этой коллекциейMissedCalls.java
.
Map<LocalDateTime, String> missedCalls = new TreeMap<>();
Нужно реализовать следующие public
методы:
- Добавление пропущенного вызова.
- Возвращение списка пропущенных вызовов.
- Очистка списка пропущенных вызовов.
- Необходимо создать класс
Main.java
, в котором после запуска программы предоставить пользователю выбор следующих методов:
- Добавление контакта (имя, фамилия, номер телефона, группа контакта: работа, друзья, семья).
- Добавление пропущенного вызова.
- Вывод всех пропущенных вызовов с указанием фамилии и имени. Если контакта нет в списке контактов, вывести только номер телефона.
- Очистка пропущенных вызовов.
- Завершить работу программы (выход).
Для этого нужно будет создать в классе Main.java
объекты классов Contacts.java
и MissedCalls.java
и передавать
пользовательские вызовы в эти объекты.
Добавить возможность редактирования и удаления контактов из телефонной книги.