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

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

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

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

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

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

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

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

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

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

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

5
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
04.10.2017, 12:24
Что тебе не понятно то?
0
0 / 0 / 1
Регистрация: 04.10.2017
Сообщений: 14
06.10.2017, 12:09  [ТС]
icpu,
Мне надо всю программу можете просто указать начало вот это Разработать класс-контейнер, содержащий набор объектов предметной области любой пример
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
06.10.2017, 12:14
Игорь Князь, и что тут непонятного? Создаете класс, в нем поля, некоторые с использованием коллекций.
Если Вам это не понятно то откройте любую книгу по джаве и прочитайте 10-15 страниц из первого раздела.
0
0 / 0 / 1
Регистрация: 04.10.2017
Сообщений: 14
06.10.2017, 17:04  [ТС]
Ну понятно
0
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
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
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2017, 15:04
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru