Sprawdzenie zadania

Odpowiedz Nowy wątek
2011-07-26 15:57
0

Jestem początkującym programistą, ale ze względu na pracę musiałem odłożyć na jakiś czas pisanie i teraz gdy znalazłem chwilkę postanowiłem zrobić kilka prostych zadanek znalezionych w necie... Proszę was o sprawdzenie poprawności kodu okiem bardziej doświadczonych programistów ;p Program działa jak należy, ale nie jestem do końca pewien poprawności sposobu na wypełnianie tabeli...

Zad 1.
Napisz program składający się z dwóch klas, umieszczonych w dwóch plikach (ale w jednym pakiecie). Jeden plik ma zawierać definicję klasy Osoba (z imieniem i nazwiskiem oraz metodami pozwalającymi na odczytywanie i zapisywanie tych atrybutów oraz konstruktorem), drugi ma wczytać od użytkownika dane 10 osób, zapamiętać je w tablicy osób, a następnie wypisać w odwrotnej kolejności.

public class Osoba {
    public Osoba(String aName, String aSurname){
        name = aName;
        surname = aSurname;
    }
 
    public String getName(){
        return name;
    }
 
    public String getSurname(){
        return surname;
    }
 
    public void setName(String aName){
        name = aName;
    }
 
    public void setSurname(String aSurname){
        surname = aSurname;
    }
 
    private String name = "";
    private String surname = "";
}
 
 
import java.util.*;
 
public class Test {
    public static void main(String[] args){
        String[][] osoby = new String [10][2];
 
        Osoba[] person = new Osoba[10];
 
        Scanner in = new Scanner(System.in);
 
        System.out.println("Wprowadź dane 10-ciu osób: [imie ENTER nazwisko ENTER...");
        for(int i=0; i<person.length; i++){
            person[i]= new Osoba(in.nextLine(), in.nextLine());
            osoby[i][0]= person[i].getName();
            osoby[i][1]= person[i].getSurname();                
        }
 
        for(int i=person.length; i>0; i--){
            System.out.println(person[i-1].getName()+" "+person[i-1].getSurname());
        }
    }
}

ps. w tym temacie będę co jakiś czas wklejał kolejne zadania i prosił o dalsze sprawdzenia...

edytowany 2x, ostatnio: madmike, 2011-07-27 22:58

Pozostało 580 znaków

2011-07-26 16:11
bo
1
  1. Do czego służy tablica Osoby?
  2. W zadaniu jest mowa o pakiecie, dodałbym na początku obu klas deklarację
    package malymakar.zadanie1;

Pozostało 580 znaków

2011-07-26 16:27
0

W tablicy osoby przechowuje dane o osobach, ale po co to juz nie wiem ;p Domyślam się, że źle zrozumiałem...
Fragment "zapamiętać je w tablicy osób" dotyczy mojej tablicy person tak?

edytowany 1x, ostatnio: malymakar, 2011-07-26 16:30

Pozostało 580 znaków

2011-07-26 16:43
bo
1

Tak, choć logiczniejsza byłaby nazwa persons.

raczej people - mwili 2011-07-26 20:11

Pozostało 580 znaków

2011-07-26 16:53
0

Okej, a teraz jeszcze jeżeli chodzi o fragment "Jeden plik ma zawierać definicję klasy Osoba (z imieniem i nazwiskiem oraz metodami pozwalającymi na odczytywanie i zapisywanie tych atrybutów oraz konstruktorem" to nie bardzo rozumiem jaki jest w tym cel... W klasie Osoba mam metody setName oraz setSurname, ale nie mam potrzeby korzystania z nich, bo dane wprowadzam z konstruktora, także ocb w poleceniu zadania?

Pozostało 580 znaków

2011-07-26 19:10
bo
0

To spróbuj zastąpić czymś ten kod

   for(int i=person.length; i>0; i--){
      System.out.println(person[i-1].getName()+" "+person[i-1].getSurname());
  }

jeżeli w klasie Osoba nie ma metod getName() i getSurname().

Pozostało 580 znaków

2011-07-26 19:49
0

Chodzi mi o

malymakar napisał(a)

metody setName oraz setSurname

Pozostało 580 znaków

2011-07-26 20:06
bo
1

Np. jedna z osób wyjdzie za mąż i zmieni nazwisko. W tym zadaniu metody setName() i setSurname() są nadmiarowe. Żeby były konieczne możesz usunąć konstruktor dwuargumentowy i zostawić tylko bezargumentowy. Ale to będzie bardzo nienaturalne.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0