powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с решением
3 сообщений из 3, страница 1 из 1
Помогите с решением
    #38418411
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дали задание - написать записную книжку, данные хранить в файле, написал пока что программу, кот. сохраняет всё в памяти, сейчас хочу дописать сохранение в xml. Как создать/записать xml я знаю, но не знаю, как сделать это лучше, чтобы код был красивым. Ещё мучает вопрос - программа и так получилась маленькая, а если я ещё буду сохранять всё в xml, а не в памяти, то от нее вообще ничего не останется - одно чтение и запись xml. Как лучше сохранять данные в файле, но в то же время чтобы и от ООП что-нибудь осталось, что можно продемонстрировать?
Вот пока то что есть

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
package NotebookMenu;
public class Notebook2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String command = "";
        Helper helper = new Helper();

        while (!(command = input.nextLine()).equals("5")) {
            try {
                switch (command) {
                    case "1": {
                        error = "";
                        System.out.print("Enter name: ");
                        String name = input.nextLine();
                        ..........
                        Contacts contact = new Contacts(name, phoneNumber, email);
                        helper.addNewContact(contact);
                    }
                    break;

                    case "2": {
                        List<Contacts> list = helper.displayAllContacts();
                    }
                    break;

                    case "3": {       
                        String name = input.nextLine();
                        String result = helper.findContactByName(name);
                    }
                    break;

                    case "4": {       
                        String name = input.nextLine();
                        helper.removeContactByName(name);                
                    }
                    break;
                    case "5": {
                    }
                    break;
                    default:
                        error = "";
                        break;
                }
            } catch (Exception e) {
                System.out.println("Error occured.. Please, try again..");
            }
            System.out.println(error + "" + menu);
        };

        System.out.println("\nExit..");

    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
package notebook;

public class Contacts {

    private String name;
    private int phone;
    private String email;

    public Contacts(String name, int phone, String email) {
        this.name = name;
        this.phone = phone;
        this.email = email;
    }

   // тут всякие геттеры и сеттеры
    
    @Override
    public String toString(){
        return "Contact (Name: " + this.name + ", phone number: " + this.phone + ", E-mail: " + this.email + ")\n";
    }
}




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
public class Helper {

    private List<Contacts> contactsList;

    public Helper() {
        this.contactsList = new ArrayList<Contacts>();
    }

    public void addNewContact(Contacts contact) {
        this.contactsList.add(contact);
    }

    public List<Contacts> displayAllContacts() {
        String result;
        
        return contactsList;
    }

    public String findContactByName(String name) {
        String result = "";

        for (Contacts contact : contactsList) {
            if (contact.getName().equals(name)) {
                result = contact.toString();
                result += "\n" + this.contactsList.get(contactsList.indexOf(contact)).toString() + "\n";
            }
        }
        return result;
    }

    public void removeContactByName(String name) {

        contactsList.remove(name);
    }
}


код местами сократил для наглядности
...
Рейтинг: 0 / 0
Помогите с решением
    #38418746
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витяй1991Ещё мучает вопрос - программа и так получилась маленькая, а если я ещё буду сохранять всё в xml, а не в памяти, то от нее вообще ничего не останется - одно чтение и запись xml.
Темная сторона силы манит тебя, Люк!

Мало кода это не недостаток, а преимущество обычно.
Добавь функционала, например группировки контактов типа: друзья, однокурсники, семья. А лучше когда юзер сам сможет заводить группы. Добавь поиск по каким-нибудь параметрам (хоть по первой букве, как в бумажной записной книжке). Минимальную проверку email на корректность. Проверку на дубликаты.
Код сам вырастет.

case "1", case "2" - магически цифры. К дьяволу (в enum)
...
Рейтинг: 0 / 0
Помогите с решением
    #38418842
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витяй1991,

учитывая отсутствия оверрайда метода equals в класс contact, непонятно, как работает contactList.remove(name) ?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с решением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]