Java - Problem z dodawaniem przedmiotów do tablicy.

0

Witam, mam problem, dopiero uczę się Javy, napisałem taki program kasy fiskalnej, jednak zamiast wypisywać to co dodaje w mainie wypisuje 3 razy :
nazwa 1szt. 1.0 = 1.0 - czyli to co podane domyślnie, podaję kod i proszę o pomoc ;)

/**
 * 
 */
package kasa;

/**
 * @author Samheady
 *
 */

class Pozycja
{
	String nazwa;
	int liczba;
	Double cena;
	Double suma;
	
	Pozycja(String nazwa, int liczba, Double cena){
		this.nazwa = nazwa;
		this.liczba = liczba;
		this.cena = cena;
		this.suma = liczba*cena;
	}
}

class Paragon{
	int i=0;
	Double podatek;
	Double naleznosc;
	Pozycja[] tab_poz = new Pozycja[100];
	
	Paragon(){
		for(int k=0; k<tab_poz.length; k++)
		{
	        tab_poz[k] = new Pozycja("nazwa", 1, 1.0);
		}
		podatek=0.0;
		naleznosc=0.0;
	}
	
	boolean dodaj(String name, int amount, Double price)
	{
		if(i<100)
		{
			tab_poz[i].nazwa=name;
			tab_poz[i].liczba=amount;
			tab_poz[i].cena=price;
			i++;
			return true;
		}
		else return false;
	}
	
	Double sumuj()
	{
		for(int j=0; j<i; j++)
		{
			naleznosc+=tab_poz[i].suma;
		}
		return naleznosc;
	}
	
	void drukuj()
	{
		for(int j=0; j<i; j++)
		{
			System.out.println(tab_poz[i].nazwa + "  " + tab_poz[i].liczba + "szt.  " + tab_poz[i].cena + "  =  " + tab_poz[i].suma);
		}
		System.out.println("Do zapłaty: " + sumuj());
	}
}

public class kasa 
{

	/**
	 * @param args
	 */
	
	public static void main(String[] args) 
	{
		Paragon p = new Paragon();
		p.dodaj("Bluza",1,150.00);
		p.dodaj("Spodnie",2,200.00);
		p.dodaj("Buty",1,249.99);
		p.drukuj();

	}

}

0

Twoje zmienna w metodzie drukuj nazywa się j, a Ty wyświetlasz tab_poz[i], zamiast tab_poz[j].

Hint:

  • poczytaj, co to jest ArrayList
  • poczytaj o pętli foreach
0
        for(int j=0; j<i; j++)
        {
            System.out.println(tab_poz[j].nazwa + "  " + tab_poz[j].liczba + "szt.  " + tab_poz[j].cena + "  =  " + tab_poz[j].suma);
        }
0

po pierwsze dlaczego Double zamiast double? Druga sprawa, skoro w konstruktorze wypełniasz całą tablicę, to jak później chcesz dodać cokolwiek do niej, skoro jest już pełna? Trzecia rzecz, to co już wyżej inni napisali.

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