Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
122 / 90 / 47
Регистрация: 24.09.2013
Сообщений: 559
1

Работа с конструктором

27.09.2014, 16:06. Показов 583. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте форумчане! Не пинайте сильно, я начинающий программер и у меня возникли такие проблемы:
При вводе ФИО, если ввести только Фамилию (без пробелов), тогда программа отработает все нормально, если ввести так Имя_Фамилия_Отчество (_ это пробел), тогда сразу появляется две строки сразу. Сам код:
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
import java.util.Scanner;
 
public class brigadir{
    public static String FIO;
    public static int Staj;
    public static String Prof;
    public static int Rab;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Scanner in1 = new Scanner(System.in);
        int x, counter=0;
        System.out.println("Введите количество бригадиров:");
        x = in.nextInt();
        for(int i=0; i<x; i++)
        {
            counter++;          
        System.out.println("Введите Ф.И.О " +  counter +"-го Бригадира:");
        FIO = in.next();
        System.out.println("Стаж работы " +  counter +"-го Бригадира:");
        Staj = in1.nextInt();
        System.out.println("Профессия "+  counter +"-го Бригадира:");
        Prof = in.next();
        System.out.println("Количество работников в " +  counter +"-ом составе:");
        Rab = in1.nextInt();
        }
        
    }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2014, 16:06
Ответы с готовыми решениями:

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами,...

Работа с конструктором
Сейчас написал небольшой класс с конструктором но выводит данные не понятно для меня как . class...

Работа с конструктором
Доброго времени суток. Обращаюсь к вам с двумя проблемами. Во-первых, Code Blocks выдаёт у меня...

Работа с конструктором
Всем доброго времени суток. Получил задание по программированию в универе. Писать задание за...

8
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
27.09.2014, 16:35 2
Поменяй на
Java
1
FIO = in.nextLine();
0
122 / 90 / 47
Регистрация: 24.09.2013
Сообщений: 559
27.09.2014, 16:36  [ТС] 3
Sanan07, Так тоже пробовал, все таки так выходит.
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
28.09.2014, 11:24 4
Надо удалить из буфера предыдущую строку сначала чтобы nextLine не ухватил её, либо можно читать FIO по кусочкам:
Java
1
2
3
4
5
6
7
8
9
10
11
        System.out.println("Введите количество бригадиров:");
        x = in.nextInt();
        if(in.hasNextLine())
            in.nextLine();
            ...
            System.out.println("Введите Ф.И.О " +  counter +"-го Бригадира:");
            FIO = in.nextLine();
            ...
        }
 
    }
Либо можно собрать фио из трёх строк и тогда не надо никакие очистки буфера, в принципе этот вариант, как по мне, выглядит логичнее:
Java
1
2
            FIO = String.format("%s %s %s", in.next(), in.next(), in.next());
            System.out.println("Стаж работы " +  counter +"-го Бригадира:");
1
122 / 90 / 47
Регистрация: 24.09.2013
Сообщений: 559
28.09.2014, 11:48  [ТС] 5
Gepar, Спасибо, сделал вторым способом, теперь работает.
Возник теперь еще один вопрос, заполнил данные двух Бригадиров, но при выводе как список, выводится только последний список Бригадира и еще два раза. Куда делись данные первого Бригадира?
Код:
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
import java.util.Scanner;
 
public class brigadir{
    public static String FIO;
    public static int Staj;
    public static String Prof;
    public static int Rab;
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x, counter=0;
        int s=1;
        System.out.println("Введите количество бригадиров:");
        x = in.nextInt();
        for(int i=0; i<x; i++)
        {
            counter++;          
        System.out.println("Введите Ф.И.О " +  counter +"-го Бригадира:");
        FIO = String.format("%s %s %s", in.next(), in.next(), in.next());
        System.out.println("Стаж работы " +  counter +"-го Бригадира:");
        Staj = in.nextInt();
        System.out.println("Профессия "+  counter +"-го Бригадира:");
        Prof = in.next();
        System.out.println("Количество работников в " +  counter +"-ом составе:");
        Rab = in.nextInt();
        }
        System.out.println("Список Бригадиров:");
        System.out.println("№ |       Ф.И.О       |Стаж|Профессия|Кол работников");
        for(int i=0; i<x; i++)
        {
        System.out.println(s++ +" | " +FIO +"| "+Staj +"| " +Prof +"| " +Rab);
        }
        
    }
    }
Добавлено через 11 минут
Как я понял, тут надо подключать массивы, это так?
0
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
28.09.2014, 12:30 6
Да каждый раз при вводе ин-ии сразу заносите в массив, а потом пройдитесь по массивам и выведите.
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
28.09.2014, 12:45 7
Цитата Сообщение от Аркалык Посмотреть сообщение
заполнил данные двух Бригадиров, но при выводе как список, выводится только последний список Бригадира и еще два раза
Ну так данные же не сохранялись ни в какую коллекцию так что ничего удивительного, читай массивы/списки.
1
122 / 90 / 47
Регистрация: 24.09.2013
Сообщений: 559
28.09.2014, 14:09  [ТС] 8
Вроде получилась, проверьте пожалуйста!
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
import java.util.Scanner;
 
public class brigadir{
    public static String FIO[];
    public static int Staj[];
    public static String Prof[];
    public static int Rab[];
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x=0, counter=0;
        int s=1;
        System.out.println("Введите количество бригадиров:");
        x = in.nextInt();
        FIO = new String[x];
        Staj = new int[x];
        Prof = new String[x];
        Rab = new int[x];
        for(int i=0; i<x; i++)
        {
            counter++;          
        System.out.println("Введите Ф.И.О " +  counter +"-го Бригадира:");
        FIO[i] = String.format("%s %s %s", in.next(), in.next(), in.next());
        System.out.println("Стаж работы " +  counter +"-го Бригадира:");
        Staj[i] = in.nextInt();
        System.out.println("Профессия "+  counter +"-го Бригадира:");
        Prof[i] = in.next();
        System.out.println("Количество работников в " +  counter +"-ом составе:");
        Rab[i] = in.nextInt();
        }
        System.out.println("Список Бригадиров:");
        System.out.println("№ |       Ф.И.О       |Стаж|Профессия|Кол работников");
        for(int i=0; i<x; i++)
        {   
        System.out.println(s++ +" | " +FIO[i] +"| "+Staj[i] +"| " +Prof[i] +"| " +Rab[i]);
        }
Возник еще один вопрос, как можно упорядочить выведенные данные как в таблице? В С++ это можно было сделать через setw(); выделяя динамическое место на определенное количество символов, а в JAVA такое можно сделать?
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
28.09.2014, 16:44 9
Есть привычный программистам си printf позволяющий сделать то же самое что и манипуляторы для потоков, но описав это короче.
http://web.cerritos.edu/jwilso... erence.pdf
http://docs.oracle.com/javase/... atter.html
0
28.09.2014, 16:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2014, 16:44
Помогаю со студенческими работами здесь

Работа с конструктором
Доброе время. Такое вот дело:Я пишу примитивную игру. У меня есть вот такой код. Это клас...

Работа с массивами и конструктором
Задание: В программе должно быть не менее двух классов связанных отношением наследования. Наличии...

Работа с классами и конструктором
Написать программу работы с классами. Реализовать класс Date с конструктором, принимающим 4...

Прекращена работа программы, неполадки с конструктором
При запуске выбывает &quot;Прекращена работа программы&quot;. Скорее всего проблемы с конструктором для ...


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

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