0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
1

Создание интерактивной программы для работы с массивом Strings (без использования ArrayLists)

26.01.2016, 01:16. Показов 1142. Ответов 4

Author24 — интернет-сервис помощи студентам
Всем доброго вечера!

Столкнулся с очередной проблемой, а именно. Нужно создать интерактивную программу не используя ArrayLists, разрешено использовать только Scanner и Arrays.

Программа должна выглядеть таким образом:

How many names do you want to add?
4
I ve made for you list with 4 names.
Please, add 4 Names: Muller Neumann Bayer Maier

I ve saved it: Muller Neumann Bayer Maier

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
5

Error, please type 1-4

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
1

You want to find: Bayer
Your name have Index 2!

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit

1
You want to find: Riemann
Name is not in your Array

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
2

You want to add name: Altbacher
Name added in your list: Muller Neumann Bayer Maier Altbacher

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit

3
sort: Altbacher Bayer Maier Müller Neumann

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
4 Exit!

На первый взгляд простое задание, но без библиотек не так все просто. В данный момент столкнулся с некоторыми проблемами, описываю в комментах в коде:

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
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
        System.out
                .println("How many names do you want to add?   ");
        a = in.nextInt();
 
        String[] arr = new String[a + 2]; // создал специально побольше, чтобы потом можно было добавить
        System.out.println("I ve made for you list with  " + a // условие, использование только статический массивов
                + " names. ");
        System.out.println("Please, add " + a + " Names: ");
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("I ve saved it:   ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        System.out.println("\n");
        System.out.println("What do you want to do? ");
        System.out.println("1 : name search ");
        System.out.println("2 : new name add ");
        System.out.println("3 : sort the list    ");
        System.out.println("4 : exit ");
 
        int u1 = in.nextInt();
 
        if (u1 >= 5) {
            System.out.println("Error, please get 1-4");
            System.out.println("\n");
            System.out.println("What do you want to do? ");
                System.out.println("1 : name search ");
                    System.out.println("2 : new name add ");
                    System.out.println("3 : sort the list    ");
                System.out.println("4 : exit ");
 
        } else { //до этого момента все работает как нужно :)
 
            if (u1 == 1) {
 
                System.out.println("You want to find:  ");
                String su = in.nextLine();
 
                if (linSuche(arr, su) == -1) //здесь почему-то отказывается работать мой метод, и автоматом выбивает "элемент не найден"
 
                    System.out.println("Name is not in your Array!");
                else
                    System.out.println("Your name have Index: "
                            + linSuche(arr, su));
 
            }
 
            else {
 
                if (u1 == 2) {
                    System.out.println("You want to add name:    ");
                    String adw = in.nextLine();
                    String[] arr2 = { adw }; //создаю новый массив с одним элементом, чтобы соединить с первым
// сюда не успел прописать использование метода, который написан ниже
                }
 
            }
        }
    }
 
    public static int einfuegen(String[] arr, String[] arr2) {
 
        int[] array3 = new int[arr.length + arr2.length];
 
        int k = 0;
        for (int i = 0; i < arr.length; i++) {
            array3[k] = arr[i]; //здесь проблема, т.к. не могу соединить два массима
            k++;
        }
 
        for (int i = 0; i < arr2.length; i++) {
            array3[k] = arr2[i]; // и здесь. String не может быть как Int, но другого способа без библеотек я не знаю
            k++;
        }
 
        for (int i = 0; i < array3.length; i++) {
            System.out.print(array3[i] + " , ");
        }
 
    }
 
    public static int linSuche(String[] arr, String s) { //это мой отдельный метод поиска (не уверен, что линейный сюда подходит)
 
        for (int i = 0; i < arr.length; i++) {
 
            if (s == arr[i]) {
                return i;
            }
        }
 
        return -1;
 
    }
 
}
P.s. метод сортировки есть мною написанный для int массивов (Bubblesort или Insertion). Подскажите, пожалуйста в чем ошибки, завтра уже нужно с утра сдать Огромное спасибо!

Добавлено через 3 часа 35 минут
123

Добавлено через 9 минут
С программой вопрос решил
Как сделать бесконечный ввод с клавиатуры в моем коде?
Кратко о программе: интерактивная программа, сделанная не используя ArrayLists, разрешено использовать только Scanner и Arrays.

Программу написал, но остался главный вопрос, как можно сделать цикл бесконечным, без вывода ошибок? Чтобы использовать программу без перезапуска. Спасибо

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
import java.util.Arrays;
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
 
        System.out
                .println("Wie viele Namen möchtest Du in die Liste eintragen?  "); //сколько имен вы хотите добавить в список
        a = in.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe für Dich eine Liste mit " + a
                + " Einträgen angelegt. "); //добавлено .. имен
        System.out.println("Bitte " + a + " Namen eingeben: "); //введите .. имен
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: "); //список сохранен
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        int qw = 0;
        while (qw < 100) { //ВОТ ЗДЕСЬ ПРОБЛЕМА
            System.out.println("\n");
            System.out.println("Was möchtest Du jetzt tun? "); //что вы хотите сделать
            System.out.println("1 : Namen suchen "); //поиск имени
            System.out.println("2 : neuen Namen einfügen "); //добавить имя
            System.out.println("3 : Liste sortieren  "); //сортировать массив
            System.out.println("4 : beenden  "); //выход из программы
 
            int u1 = in.nextInt();
            qw++;
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
                System.out.println("Was möchtest Du jetzt tun? ");
                System.out.println("1 : Namen suchen ");
                System.out.println("2 : neuen Namen einfügen ");
                System.out.println("3 : Liste sortieren  ");
                System.out.println("4 : beenden  ");
 
            } else {
 
                if (u1 == 1) {
                    Scanner line = new Scanner(System.in);
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
                    line.close();
 
                } else {
                    Scanner line = new Scanner(System.in);
                    if (u1 == 2) {
                        System.out.println("Einzufügenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefügt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                                line.close();
                            }
                            System.out.print("\n");
                            System.out.print("Sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nächsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2016, 01:16
Ответы с готовыми решениями:

Создание программы без использования Microsoft .NET Framework
Всем привет! Подскажите, можно ли в VB2008 создавать программы без использования Microsoft .NET...

Создание метода для работы с массивом
Помогите создать функцию, которая будет убирать несколько первых элементов массива, после чего с...

Создать класс для работы с односвязным списком (без использования коллекций)
Задание: Создать класс для работы с односвязным списком (без использования коллекций). Класс должен...

Построить плотность распределения вероятности для этой программы без использования hist
построить плотность распределения вероятности для этой программы без использования...

4
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,926
26.01.2016, 01:34 2
Vipcars, много букв и не по существу =) Вникать лень
Цитата Сообщение от Vipcars Посмотреть сообщение
разрешено использовать только Scanner и Arrays
В Arrays, насколько я помню, есть метод который который копирует один массив в другой. Создаете больший массив, когда заполняется предыдущий, и копируйте в него.
Цитата Сообщение от Vipcars Посмотреть сообщение
как можно сделать цикл бесконечным
Java
1
2
while(true){
}
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
26.01.2016, 01:58  [ТС] 3
reisal78, да там вникать не надо) сделал бесконечный while, вот только когда второй раз запускается вылетает

java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Benutzerinteraktion.main(Benutzerinteraktion.java:41)
0
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,926
26.01.2016, 02:34 4
Лучший ответ Сообщение было отмечено Vipcars как решение

Решение

Vipcars,

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
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner line = new Scanner(System.in);
 
        System.out
                .println("Wie viele Namen mГ¶chtest Du in die Liste eintragen?  "); //сколько имен вы хотите добавить в список
        a = line.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe fГјr Dich eine Liste mit " + a
                + " EintrГ¤gen angelegt. "); //добавлено .. имен
        System.out.println("Bitte " + a + " Namen eingeben: "); //введите .. имен
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = line.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: "); //список сохранен
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        int qw = 0;
        while (qw < 100) { //ВОТ ЗДЕСЬ ПРОБЛЕМА
            System.out.println("\n");
            System.out.println("Was mГ¶chtest Du jetzt tun? "); //что вы хотите сделать
            System.out.println("1 : Namen suchen "); //поиск имени
            System.out.println("2 : neuen Namen einfГјgen "); //добавить имя
            System.out.println("3 : Liste sortieren  "); //сортировать массив
            System.out.println("4 : beenden  "); //выход из программы
 
            int u1 = line.nextInt();
            qw++;
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
                System.out.println("Was mГ¶chtest Du jetzt tun? ");
                System.out.println("1 : Namen suchen ");
                System.out.println("2 : neuen Namen einfГјgen ");
                System.out.println("3 : Liste sortieren  ");
                System.out.println("4 : beenden  ");
 
            } else {
 
                if (u1 == 1) {
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
                } else {
 
                    if (u1 == 2) {
                        System.out.println("EinzufГјgenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefГјgt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                            }
                            System.out.print("\n");
                            System.out.print("Sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nГ¤chsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
26.01.2016, 03:23  [ТС] 5
reisal78, большое спасибо за помощь, я в данный момент тоже починил свой код, к сожалению Ваш только сейчас увидел) выкладываю, возможно кому-то поможет.

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
import java.util.Arrays;
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
        Scanner line = new Scanner(System.in);
        System.out
                .println("Wie viele Namen möchtest Du in die Liste eintragen?  ");
        a = in.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe für Dich eine Liste mit " + a
                + " Einträgen angelegt. ");
        System.out.println("Bitte " + a + " Namen eingeben: ");
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
 
        while (true) {
            System.out.println("\n");
            System.out.println("Was möchtest Du jetzt tun? ");
            System.out.println("1 : Namen suchen ");
            System.out.println("2 : neuen Namen einfügen ");
            System.out.println("3 : Liste sortieren  ");
            System.out.println("4 : beenden  ");
 
            int u1 = in.nextInt();
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
 
            } else {
 
                if (u1 == 1) {
 
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
 
                } else {
 
                    if (u1 == 2) {
                        System.out.println("Einzufügenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefügt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                            }
                            System.out.print("\n");
                            System.out.print("Die Liste wurde sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            System.out.print("Die Liste wurde sortiert: ");
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nächsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
 
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
0
26.01.2016, 03:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2016, 03:23
Помогаю со студенческими работами здесь

Подскажите редактор для интерактивной работы с разрабатываемым сайтом
Привет пишу asp.net приложение на visual studio 2017 подскажите можно ли подключить какой либо...

Создание программы с оконным интерфейсом сделать задание как задачу с массивом и использовать stringGrid для отображения
Вычислить среднее арифметическое элементов двумерного массива случайно заполненных из вещественных...

Разработка программы для работы с файлом без типа
1)Создать файл, компоненты (количество &lt;=10) которого являются слова. После создания файла значения...

Разработка программы для работы с файлом без типа
СРОЧНО!!! Помогите пожалуйста.... оч прошу... Создать файл, компоненты (количество &lt;=10)...

Разработка программы для работы с файлом без типа
Создать файл, компоненты (количество &lt;=9) которого являются вещественными числами. После создания...

Создание программы для работы с графами
Мужики, помогите! Пишу курсовую по графам! Нужны идеи!)) Форму, основной код написал! Сохраняет,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru