Chcę zrobić poniższe zadanie od deski do deski w 100% tak jak autor miał na myśli i mam problem z wypisaniem Zamówienia. Wartości są przypisane do odpowiednich indeksów zdaje się prawidłowo. Dlaczego mój wynik jest różny od wyniku autora zadania?
Na załączonym przez niego listingu on też deklaruje 20-elementową tablice, jednak na ekranie, linia wypisująca obiekt z na ktorym pracuje, drukuje mu ładnie 2 pozycje. W mojej wersji wpisanie analogicznej metody: **Console.WriteLine(z) **daje wynik: **Obsluga_Zamówien.Zamówienie ** - nazwe namespacea? Proszę o jakieś nakierowanie bo próbuje sobie z tym poradzić od tak długiego czasu, że aż wstyd się przyznać, a bez efektów.
Zadanie: http://www.jkozak.pl/przedmioty/java/zadania7.pdf
Klasa Pozycja:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obsluga_Zamowien
{
class Pozycja
{
public string nazwaTowaru;
public int ileSztuk;
public double cena;
public Pozycja(string nT, int iS, double c)
{
nazwaTowaru = nT;
ileSztuk = iS;
cena = c;
}
public double obliczWartosc()
{
double wartosc = cena * ileSztuk;
return wartosc;
}
public string toString()
{
string lancuch;
lancuch = nazwaTowaru +" "+ cena+" zł " + ileSztuk+" szt. " + obliczWartosc()+" zł";
return lancuch;
}
}
}
Klasa Zamówienie:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obsluga_Zamowien
{
class Zamówienie
{
Pozycja [] pozycje;
public int ileDodanych;
public int maksRozmiar;
public Zamówienie()
{
maksRozmiar = 10;
}
public Zamówienie(int ileDodanych)
{
this.ileDodanych = ileDodanych;
pozycje = new Pozycja[this.ileDodanych];
}
public void dodajPozycje(Pozycja p)
{
for (int i = 0; i < ileDodanych; i++)
{
pozycje[i] = p;
Console.WriteLine(pozycje[i].toString());
}
}
}
}
Main:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obsluga_Zamowien
{
class Program
{
static void Main(string[] args)
{
Pozycja p1 = new Pozycja("Cukier", 10, 2.5);
p1.obliczWartosc();
Console.WriteLine(p1.toString());
Pozycja p2 = new Pozycja("Chleb", 5, 2.38);
Console.WriteLine(p2.toString());
Zamówienie z = new Zamówienie(20);
z.dodajPozycje(p1);
z.dodajPozycje(p2);
Console.WriteLine(z);
Console.ReadLine();
}
}
}