Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 22

Задача на линейный и бинарный поиск фамилии студента по первым буквам и целиком и по части телефонного номера

12.03.2015, 16:56. Показов 3304. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Организовать массив типа Студент со следующими полями: фамилия, имя, год рождения, номер телефона. Разработать программу в которой на основе данного массива структур осуществляется:
а)поиск студента по фамилии (целиком и по первым буквам).
б)поиск студента по части телефонного номера.
При решении задач поиска использовать как линейный, так и бинарный поиск,коллекции использовать нельзя((
Помогите решить пожалуйста, очень нужно))

Добавлено через 40 минут
Пожалуйста, помогите!

Добавлено через 3 часа 55 минут
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
package student;
 
public class Student {
private String surname;
private String name;
private int year;
private long phonenumber;
public String getsurname() {
return surname;}
public void setsurname(String surname ){this.surname=surname;}
public String getsname() {
return name;}
public void setname(String name ){this.name=name;}
public int getyear() {
return year;}
public void setyear(int year ){this.year=year;}
public long getphonenumber() {
return phonenumber;}
public void setphonenumber(long phonenumber ){this.phonenumber=phonenumber;}
 
{Student mas[] = new Student[6];
for (int j = 0; j < 6; j++ )
mas[j] = new Student();}
}
вот начало, как дальше?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2015, 16:56
Ответы с готовыми решениями:

Организуйте поиск номера телефона по первым двум буквам фамилии.
Файл содержит фамилии и номера телефонов, организуйте поиск номера телефона по первым двум буквам фамилии.

Массив: Написать программу линейного поиска записи по первым 3 буквам фамилии.
Добрый вечер! Помогите плиз написать программу. Дан текстовый файл, содержащий список из номеров телефонов(6 цифр) и фамилий. Написать...

Список студентов рассортировать в алфавитном порядке по двум первым буквам фамилии
Здравствуйте все))) помогите решить 'одну задачку)) Список студентов (фамилия, имя, отчество) рассортировать в алфавитном порядке...

3
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
12.03.2015, 20:15
Лучший ответ Сообщение было отмечено ririta как решение

Решение

ririta,
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
import java.util.Arrays;
 
/**
 * Created by Sanan on 12.03.2015.
 */
public class Student {
 
    private String name;
    private String surname;
    private String birthday;
    private String phoneNumber;
 
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getSurname() {
        return surname;
    }
 
    public void setSurname(String surname) {
        this.surname = surname;
    }
 
    public String getBirthday() {
        return birthday;
    }
 
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
 
    public String getPhoneNumber() {
        return phoneNumber;
    }
 
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
 
 
    public Student(String name, String surname, String birthday, String phoneNumber) {
        this.name = name;
        this.surname = surname;
        this.birthday = birthday;
        this.phoneNumber = phoneNumber;
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
 
        Student student = (Student) o;
 
        if (birthday != null ? !birthday.equals(student.birthday) : student.birthday != null) return false;
        if (name != null ? !name.equals(student.name) : student.name != null) return false;
        if (phoneNumber != null ? !phoneNumber.equals(student.phoneNumber) : student.phoneNumber != null) return false;
        if (surname != null ? !surname.equals(student.surname) : student.surname != null) return false;
 
        return true;
    }
 
    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (surname != null ? surname.hashCode() : 0);
        result = 31 * result + (birthday != null ? birthday.hashCode() : 0);
        result = 31 * result + (phoneNumber != null ? phoneNumber.hashCode() : 0);
        return result;
    }
 
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", surname='" + surname + '\'' +
                ", birthday='" + birthday + '\'' +
                ", phoneNumber='" + phoneNumber + '\'' +
                '}';
    }
 
 
    public static int fullSurnameBinarySearch(Student[] st, String surname) {
 
        int low = 0;
        int hight = st.length - 1;
 
        while (low <= hight) {
            int med = (low + hight) / 2;
            if (surname.compareTo(st[med].getSurname()) > 0) {
                low = med + 1;
            }
            if (surname.compareTo(st[med].getSurname()) < 0) {
                hight = med - 1;
            } else return med;
        }
        return -1;
    }
 
    static int halfSurnameBinarySearch(Student[] st, String halfSurname) {
        int low = 0;
        int hight = st.length - 1;
 
        while (low <= hight) {
            int med = (low + hight) / 2;
            String S = st[med].getSurname();
            if (!S.startsWith(halfSurname)) {
                if (halfSurname.compareTo(S) > 0) {
                    low = med + 1;
                }
                if (halfSurname.compareTo(S) < 0) {
                    hight = med - 1;
                }
            }
            if (S.startsWith(halfSurname)) {
                return med;
            }
 
        }
        return -1;
    }
 
    static int fullSurnameLinearSearch(Student[] st, String surname) {
 
        for (int i = 0; i < st.length; i++) {
            if (st[i].getSurname().equals(surname)) {
                return i;
            }
        }
 
        return -1;
    }
 
    static int halfSurnameLinearSearch(Student[] st, String halfSurname) {
 
        for (int i = 0; i < st.length; i++) {
            if (st[i].getSurname().startsWith(halfSurname)) {
                return i;
            }
        }
 
        return -1;
    }
 
 
    static int halfPhoneNumberBinarySearch(Student[] st, String halfPhoneNumber) {
        int low = 0;
        int hight = st.length - 1;
 
        while (low <= hight) {
            int med = (low + hight) / 2;
            String S = st[med].getPhoneNumber();
            if (!S.startsWith(halfPhoneNumber)) {
                if (halfPhoneNumber.compareTo(S) > 0) {
                    low = med + 1;
                }
                if (halfPhoneNumber.compareTo(S) < 0) {
                    hight = med - 1;
                }
            }
            if (S.startsWith(halfPhoneNumber)) {
                return med;
            }
 
        }
        return -1;
    }
 
    static int halfPhoneNumberLinearSearch(Student[] st, String phoneNumber) {
 
        for (int i = 0; i < st.length; i++) {
            if (st[i].getPhoneNumber().startsWith(phoneNumber)) {
                return i;
            }
        }
 
        return -1;
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
import java.util.Comparator;
 
/**
 * Created by Sanan on 12.03.2015.
 */
public class PhoneNumberComparator implements Comparator<Student> {
    @Override
    public int compare(Student o1, Student o2) {
        return o1.getPhoneNumber().compareTo(o2.getPhoneNumber());
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Comparator;
 
/**
 * Created by Sanan on 12.03.2015.
 */
public class SurnameComparator implements Comparator<Student> {
 
    @Override
    public int compare(Student o1, Student o2) {
        return o1.getSurname().compareTo(o2.getSurname());
    }
}
1
0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 22
12.03.2015, 23:55  [ТС]
Спасибо,А как будет выглядеть главная функция Main?

Добавлено через 2 минуты
В данной задаче можно задать самим фамилии, имя, год и номера
0
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
13.03.2015, 00:35
ririta,
Остальные методы аналогично

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test {
    
 
    public static void main(String[] args) {
 
        Scanner s= new Scanner(System.in);
 
 
        Student alice = new Student("Alice","Cooper","12:05:1985","56329872");
        Student alan = new Student("Alan","Keth","23:07:1996","76543126");
 
        Student [] students = new Student[2];
        students[0]=alice;
        students[1]=alan;
 
        int n = Student.fullSurnameBinarySearch(students,"Cooper");
        System.out.println(n);
 
 
 
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2015, 00:35
Помогаю со студенческими работами здесь

Удаление фамилии из списка по первым двум буквам (или по первой и последней букве)
Рерят, мне нужно чтобы третья кнопка удаляла фамилию и имя из списка по первым двум или по первой и последней букве! Помогите пожалуйста ...

Поиск по первым буквам слова
Добрый день. Подскажите пожалуйста код для поиска по первым буквам слова. В компонент tableView_5 выгружается информация из таблицы, и...

Поиск по первым буквам из формы!
Есть массив, в нём имена. Надо чтобы &quot;что-то&quot; выводило те имена у которых начало на букву &quot;А&quot;. Как такое реализовать?...

Поиск слова по первым 5 буквам
Есть база слов, все слова разной длинны, находятся в текстовом документе на раб. столе. Я открываю свой софт и пишу(если слово 10 знаков...

Поиск по первым буквам в StringGrid
Здравствуйте есть база данных StringGrid, есть поиск , но как сделать что бы искало по первым буквам не знаю.Пожалуйста посмотрите архив и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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