Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
04.10.2017, 11:44

Класс-справочник

04.10.2017, 11:44. Показов 3521. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать класс-справочник, содержащий набор объектов соответствующей предметной области : справочник расстояний до областных центров

Последовательность шагов для выполнения работы:

1. Для заданной предметной области определить набор ключевых атрибутов, описывающих ее объекты и создать соответствующие классы для их представления со всеми необходимыми методами.

2. Разработать класс-контейнер, содержащий набор объектов предметной области. При проектировании необходимо использовать классы-коллекции.

3. Разработать для класса-контейнера набор методов для добавления новых элементов и изъятия уже существующих, эффективного поиска по ключевым полям каталога / справочника, получения списка всех элементов каталога / справочника отсортированного по определенному ключевому критерию.
Помогите пожалуйста буду благодарен.
0
Лучшие ответы (1)
04.10.2017, 11:44
Ответы с готовыми решениями:

Справочник по Java SE
Подскажите пожалуйста хороший справочник по Java например такой как этот http://www.cplusplus.com/reference/ что-бы там было описание...

Телефонный справочник
Пишу телефонный справочник. После того как написал метод print, java кидает "Exception in thread "main"...

Телефонный справочник
Добрый день, подскажите как создать ТС из 50 записей, с возможностью добавления, изменений, удаления и редактирования данных. Записи...

5
3639
04.10.2017, 12:24
Что тебе не понятно то?
0
06.10.2017, 12:09
icpu,
Мне надо всю программу можете просто указать начало вот это Разработать класс-контейнер, содержащий набор объектов предметной области любой пример
0
06.10.2017, 12:14
Игорь Князь, и что тут непонятного? Создаете класс, в нем поля, некоторые с использованием коллекций.
Если Вам это не понятно то откройте любую книгу по джаве и прочитайте 10-15 страниц из первого раздела.
0
06.10.2017, 17:04
Ну понятно
0
164
07.10.2017, 15:04
Лучший ответ Сообщение было отмечено Игорь Князь как решение

Решение

Class City
Кликните здесь для просмотра всего текста
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
public class City {
    private final String name;
    private final double distance;  // from center
    private final int count; // peoples
 
 
    public City(String name, double distance, int count ) {
        this.name = name;
        this.distance = distance;
        this.count = count;
    }
 
    public int getCount() {
        return count;
    }
 
    public double getDistance() {
        return distance;
    }
 
    public String getName() {
        return name;
    }
 
    @Override
    public String toString() {
        return name + " distance: " + distance + " peoples: " + count;
    }
}

Class CityList
Кликните здесь для просмотра всего текста
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
 
 
public class CityList {
    private ArrayList<City> list;
 
    private static final Comparator<City> cName = (o1, o2) -> o1.getName().compareTo(o2.getName());
    private static final Comparator<City> cDistance = new Comparator<City>() {
        @Override
        public int compare(City o1, City o2) {
            return Double.compare(o1.getDistance(), o2.getDistance());
        }
    };
 
 
    public CityList() {
        this.list = new ArrayList<>();
    }
 
    public CityList(ArrayList<City> list) {
 
        this.list = new ArrayList<>(list);
    }
 
 
    private boolean isEmpty() {
        return list == null || list.isEmpty();
    }
 
 
    public void add(City city) {
        list.add(city);
    }
 
    public City get(int index) {
        if (isEmpty() || index < 0 || index >= list.size()) {
            return null;
        }
 
        return list.get(index);
    }
 
    public City remove(int index) {
        if (isEmpty() || index < 0 || index >= list.size()) {
            return null;
        }
 
        return list.remove(index);
    }
 
    public boolean remove(City city) {
        if (isEmpty() || city == null || list.contains(city)) {
            return false;
        }
        return list.remove(city);
    }
 
    public City findByName(String name) {
        int index = Collections.binarySearch(list, new City(name, 0, 0), cName);
        if (isEmpty() || index < 0 || index > list.size()) {
            return null;
        }
        return list.get(index);
    }
 
    public ArrayList<City> findByShorterDistance(double distance) {
        if (isEmpty() || distance <= 0) {
            return null;
        }
        ArrayList<City> clone = new ArrayList<>(list);
        clone.sort(cDistance);
        int index = -1;
        for (City city : clone) {
            if (city.getDistance() > distance) {
                break;
            }
            index++;
        }
        if (index < 0) {
            return null;
        }
        return new ArrayList<>(clone.subList(0, index + 1));
    }
 
    public ArrayList<City> findByLongerDistance(double distance) {
        if (isEmpty() || distance <= 0) {
            return null;
        }
        ArrayList<City> clone = new ArrayList<>(list);
        clone.sort(cDistance);
        int index = -1;
        for (City city : clone) {
            if (city.getDistance() >= distance) {
                break;
            }
            index++;
        }
        if (index < 0) {
            return null;
        }
        return new ArrayList<>(clone.subList(index+1, list.size()));
 
    }
 
    public City findByDistance(double distance) {
        for (City city : list) {
            if (Double.compare(city.getDistance(), distance) == 0) {
                return city;
            }
        }
        return null;
    }
 
 
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        if (isEmpty()) {
            return "[]";
        }
        sb.append("CityList:\n");
        for (City city : list) {
            sb.append(String.format("[ %-12s dist: %4.0f km  peoples: %7d]\n", city.getName(),
                    city.getDistance(), city.getCount()));
        }
 
        return sb.toString();
    }
 
    public static void main(String[] args) {
        System.out.println("Create cities dictionary");
        CityList cityList = new CityList();
        cityList.add(new City("Архангельск", 1261, 351488));
        cityList.add(new City("Иваново", 300, 406933));
        cityList.add(new City("Краснодар", 1382, 881476));
        cityList.add(new City("Мурманск", 1895, 298096));
        cityList.add(new City("Новороссийск", 1500, 270774));
        cityList.add(new City("Омск", 2589, 1178391));
        cityList.add(new City("Самара", 1060, 1169179));
 
 
        System.out.println(cityList);
 
        System.out.println("Cities around 1200 km from Moscow");
        CityList shorter = new CityList(cityList.findByShorterDistance(1382));
        System.out.println(shorter);
 
        System.out.println("Cities father 2000 km from Moscow");
        CityList longer = new CityList(cityList.findByLongerDistance(1500));
        System.out.println(longer);
 
        System.out.println("Find by Name");
        System.out.println(cityList.findByName("Омск"));
        System.out.println(cityList.findByName("Питер"));
 
        System.out.println("Find by Distance");
        System.out.println(cityList.findByDistance(1895));
        System.out.println(cityList.findByDistance(100));
 
    }
}

Смотрите код. Класс объекта хранения City содержит поля name, distance, count
Класс хранения CityList сделан на базе ArrayList.
Для поиска по условиям используется два компаратора cName и cDistance
Эти компараторы испльзуются в сортировке CityList по имени и по дистанции.
В классе CityList создана main() где показан сам список и вывод городов
по расстоянию от Москвы больше, меньше и поиски всякие.
Ну так задачка интересная оказалась.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 Аватар для raxper
raxper
30234
07.10.2017, 15:04

Телефонный справочник
Нужно создать телефонный справочник в виде Hashmapa с добавлением/удалением элементов и т.д., элементы должны вводиться с клавиатуры, вся...

Создать справочник
Создать справочник (минимум 5 человек с адресами) . программа должна выводить данные о человеке по его фамилии или текст &quot; No data...

Справочник по java SE
Нужен справочник по java где все классы например (String Math и т.д.) желательно в формате chm

Справочник по J2SE
У кого-то есть справочник по J2SE на русском? формат не важен

Программа Телефонный справочник
Стр. 185. Г. Шилдт: Как пользоваться аргументами командной строки. Для лучшего понимания пользования аргументами командной строки - ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru