Dwa programy - pomoc

Dyskusje na temat Javy.
cieslak
Nowicjusz
Posty: 3
Dołączył(a): piątek, 12 listopada 2010, 15:37

Dwa programy - pomoc

Post przez cieslak »

Witam. Ostatnio miałem sprawdzian w dwóch programów, jednakże nie umiem sobie z nimi do końca poradzić. Mianowicie... Pierwszy polegał na wyświetleniu 10 liczb z tablicy,
wypisaniu 100 liczb od początku i od końca, wylosowaniu i wyświetleniu liczb większych od 50 z tablicy oraz na randomowym ich wypisaniu. Napisałem coś takiego, ale nie wiem, czy dobrze. Imo wszystko ładnie wypisuje, ale chciałbym, by ktoś na to luknął okiem.

Code: Zaznacz cały

package tablica;
import java.util.Random;

public class Main {

   public static void main(String[] args)
   {
       int tab[] = new int[10];
       int licznik = 0;
       Random los= new Random();
       for (int i=0; i<10; i++)
       {
           tab[i]=los.nextInt(100);
           if (tab[i]>50)
           {
               licznik++;
           }
           System.out.println("Wylosowana liczba "+i+": "+tab[i]+"");


       }

       System.out.println("Istnieje: "+licznik+" liczb > 50");

   }

}

Drugi zaś program polega na wypisaniu kilku studentów, nadaniu im numeru indeksu oraz przydzieleniu im pewnego semestru. Do tej pory imo łatwe, bo używamy "string", prawda? Ale potem zaś muszę zrobić coś takiego, że szukam danego studenta przez numer indeksu albo semestr - i tego nie wiem, jak zrobić, proszę o pomoc.

Pozdr.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Dwa programy - pomoc

Post przez Morfidon »

Hej,

Ten program, który napisałeś wygląda całkiem OK.

Jeśli chodzi jednak o Twoje pytanie.

Napisz klasę Student i stwórz w niej pola: indeks, i jakieś tam opisujące studenta. Stwórz listę i stwórz metodę getStudent, która zwraca studenta po podanym argumencie indeks.

Pozdrawiam,

Arkadiusz
cieslak
Nowicjusz
Posty: 3
Dołączył(a): piątek, 12 listopada 2010, 15:37

Re: Dwa programy - pomoc

Post przez cieslak »

Do końca nie jestem pewien, czy o to panu chodziło, lecz skorzystałem z pana lekcji i napisałem coś takiego:

Code: Zaznacz cały

package klasyabstrakcyjne;

public class Main 
{
    public static void main(String[] args) 
    {
        Osoba[] ktos = new Osoba[4];
        
        ktos[0] = new Student("Radoslaw", "Kiczka", "221", "drugi");
        ktos[1] = new Student("Lukasz", "Ciesielski", "2367", "pierwszy");
        ktos[2] = new Student("Przemek", "Barański", "1111", "pierwszy");
        ktos[3] = new Student("Zbigniew", "Zięcina", "999", "piąty");
        

        for (int i = 0; i < ktos.length; i++)
        {
            if (ktos[i] instanceof Osoba)
              System.out.println(ktos[i].opis());
        }
    }
}

abstract class Osoba
{
    public Osoba()
    {
        this.imie = "";
        this.nazwisko = "";
        this.indeks = "";
        this.semestr = "";
    }
    public Osoba(String imie, String nazwisko, String indeks, String semestr)
    {
        this.imie = imie;
        this.nazwisko = nazwisko;
        this.indeks = indeks;
        this.semestr = semestr;
    }
    public String pobierzImie()
    {
        return this.imie;
    }
    public String pobierzNazw()
    {
        return this.nazwisko;
    }

    public String pobierzInd()
    {
        return this.indeks;
    }

    public String pobierzSem()
    {
        return this.semestr;
    }
    abstract public String opis();
    
    private String imie;
    private String nazwisko;
    private String indeks;
    private String semestr;
}


class Student extends Osoba
{
    public Student(String imie, String nazwisko, String indeks, String semestr)
    {
        super(imie, nazwisko, indeks, semestr);
    }
    
    public String opis()
    {
       return "Student\nImię: "+this.pobierzImie()+"\nNazwisko: "+this.pobierzNazw()+"\nIndeks: "+this.pobierzInd()+"\nSemestr: "+this.pobierzSem();
    }    
}

Co do pierwszego... Trochę go poprawiłem.

Code: Zaznacz cały

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package kol2;

import java.util.Random;

/**
 *
 * @author wnuCzu
 */
public class Main {




 int n;

public static void main(String[] args) {

 Random los = new Random();

    int T[]=new int[10];


 for(int i=0; i<10; i++) {
 T[i]=(los.nextInt(100));
 System.out.println(T[i]);
 }

int x=0;

 for(int i=0; i<10; i++) {
 if(T[i]>50) {
 x++;
 }
    }
 System.out.println("ilosc =" +x);


}
}
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Dwa programy - pomoc

Post przez Morfidon »

Tak też może być ^^ Jednak lepiej skorzystać z list do przechowywania obiektów, a później porównywania. O listach jednak mówię dopiero w Java Aspekty Zaawansowane.
cieslak
Nowicjusz
Posty: 3
Dołączył(a): piątek, 12 listopada 2010, 15:37

Re: Dwa programy - pomoc

Post przez cieslak »

Hehe, na pewno spojrzę. :) Anyway, thx.
Post Reply