Jak widać z tytułu, jestem zupełnie nowy w programowaniu i nie mam pojęcia, od czego zacząć. Otrzymałem zadanie stworzenia systemu zarządzania logowaniem się gości kampusu z tymczasowym przechowywaniem danych i ograniczoną liczbą osób. Jestem studentem pierwszego roku i nadal nie omawialiśmy SQL, ponieważ jest on przeznaczony tylko dla studentów drugiego roku. A mój nauczyciel zasugerował użycie tablic, ponieważ wciąż jestem początkującym. Wszelkie wskazówki i pomysły będą bardzo mile widziane. Do tej pory to jest to, co do tej pory wymyśliłem,

        System.out.print("Enter number of visitors: ");
        int number = input.nextInt();

        //visitor's Information
        String name[] = new String[number];
        String department[] = new String[number];
        String reason[] = new String[number];

        System.out.println();

        for(int i = 0; i<name.length;i++){
            System.out.print("Enter full name: ");
            name[i] = input.next();
            System.out.print("\nEnter department: ");
            department[i]= input.next();
            System.out.print("\nEnter reason: ");
            reason[i]= input.next();
        }
        System.out.println();


        for(int i = 0; i<name.length;i++){
            System.out.println("Name: "+name);
            System.out.println("Department: " +department);
            System.out.println("Reason: "+reason);
        }


        //visitor's id number
        for(int i = 0; i<reason.length; i++)    {
            System.out.println(name[i]);
        }
}

}

Z jakiegoś powodu wyniki pokazują adresy zamiast nazwy, działu i powodu. Jestem teraz zagubiony

1
Deanielle Dagondon 15 grudzień 2019, 11:51

1 odpowiedź

W pętli for nie uzyskujesz dostępu do indeksów tablic. Obecnie drukujesz metodę toString klasy String (typ referencyjny twoich tablic), drukując obiekt na konsoli bez podawania indeksu.

Zmiana

for(int i = 0; i<name.length;i++){
        System.out.println("Name: "+name);
        System.out.println("Department: " +department);
        System.out.println("Reason: "+reason);
    }

Do

for(int i = 0; i<name.length;i++){
        System.out.println("Name: "+name[i]);
        System.out.println("Department: " +department[i]);
        System.out.println("Reason: "+reason[i]);
    }

Daj mi znać, jeśli ci to pomogło.

Aby jeszcze bardziej ulepszyć swój kod, możesz spróbować utworzyć kilka dodatkowych metod, które wykonują jedną rzecz. Na przykład wydrukowanie wyników zawierających nazwisko, dział i powód. Tę funkcjonalność można przenieść do metody o nazwie printResults.

Kiedy masz większe doświadczenie w programowaniu, spróbuj sięgnąć po książkę o nazwie Clean Code, napisaną przez Roberta C. Martina. Korzystanie z najlepszych praktyk wymienionych w jego książce pomoże Ci stworzyć lepszy i wielokrotnego użytku kod. Osobiście uważam, że jest to lektura obowiązkowa dla każdego profesjonalnego programisty.

0
M. Groenhout 15 grudzień 2019, 12:10