Program do obsługi zamówień, pomoc w napisaniu

0

Witam,

Mam problem z pewnym zadaniem, jako że dopiero zaczynam swoją przygodę z programowaniem chciałabym prosić o pomoc/ wyjaśnienie jak rozwiązać w pełni to zadanie:

Napisać program do obsługi zamówień. Program powinien składać się z dwóch
klas: Zamowienie oraz Pozycja , przy czym każde zamówienie zawierać może
jedną lub więcej pozycji.
Klasa Pozycja powinna zawierać następujące pola:
• nazwaTowaru (String)
• ileSztuk (int) – liczba zamówionych sztuk
• cena (double) – cena pojedynczej sztuki
oraz metody:
• konstruktor z parametrami umożliwiającymi ustalenie wartości pól klasy,
• metodę double obliczWartosc() zwracającą wartość pozycji zamówienia,
• metodę String toString() zwracającą łańcuch w formacie: nazwa towaru
(20 znaków), cena (10 znaków), liczba sztuk (4 znaki), wartość zamówienia
(10 znaków), przykład:
Cukier 4,00 zł 3 szt. 12,00 zł
Klasa Zamowienie powinna zawierać następujące pola:
• pozycje (tablica obiektów kl. Pozycja) – pozycje składowe zamówienia,
• ileDodanych (int) – liczba pozycji w zamówieniu,
• maksRozmiar (int) – maksymalna liczba pozycji w zamówieniu
oraz metody:
• konstruktor bezparametrowy – maksRozmiar ustalany na wartość 10,
• konstruktor z parametrem określającym maksymalną liczbę pozycji w zamó-
wieniu,
• metodę void dodajPozycje(Pozycja p) , która dodaje podaną pozycję do
zamówienia,
• metodę double obliczWartosc() zwracającą wartość zamówienia
metodę String toString() , która zwraca łańcuch zawierający spis pozycji
zamówienia oraz łączną wartość zamówienia.

Tutaj przedstawię to co zdołałam zrobić :

public class Pozycja
    {

        String nazwaTowaru;
        int ileSztuk; //lb.zamówionych sztuk
        double cena; //cena pojedyńczej sztuki
        double wartosc;
        String a;

        Pozycja(String nazwaTowaru, int ileSztuk, double cena)
        {
            this.nazwaTowaru = nazwaTowaru;
            this.ileSztuk = ileSztuk;
            this.cena = cena;
        }
        //metoda double obliczWartosc() zwracającą wartość pozycji zamówienia,
        public double obliczWartosc()
        {
            wartosc = ileSztuk * cena;
            return wartosc;
        }
        //metodę String toString() zwracającą łańcuch w formacie: nazwa towaru
        //(20 znaków), cena (10 znaków), liczba sztuk (4 znaki), wartość zamówienia
        //(10 znaków).

        public String toString(String nazwaTowaru, String cena,
                String ileSztuk, String wartoscZamowienia)
        {
            this.nazwaTowaru = nazwaTowaru;
            this.cena = Double.Parse(cena);
            this.ileSztuk = int.Parse(ileSztuk);
            this.wartosc = Double.Parse(wartoscZamowienia);
            a = nazwaTowaru + " " + cena + " " + ileSztuk + " " + wartosc;
            return a;
        }

     
	
    }







 public class Zamowienie
    {

        int ileDodanych;
        int maxRozmiar;
       Pozycja[] pozycje = new Pozycja[10]; //?

        Zamowienie()
        {
            maxRozmiar = 10;
        }

        Zamowienie(int maxRozmiar)
        {
            this.maxRozmiar = maxRozmiar;
        }

        public void DodajPozycje(Pozycja[] p) //??
        {
            this.pozycje = p; //??
        }

        public double ObliczWartosc()
        {
            double wartoscZam = 10; //??
            return wartoscZam;
        }

       // public String toString()
       // {
            
       // }
    }

Nie bardzo wiem jak powinny wyglądać metody klasy Zamówienie.. byłabym bardzo wdzięczna za pomoc.

0

Skorzystaj z klasy Array lub lepiej Listy - List<Pozycja> Pozycje = new List<Pozycja>() i potem przy dodawaniu pozycji: Pozycja.Add(new Pozycja(){właściwości}

0

Te konstruktory moim zdaniem powinny wyglądać tak:

         Pozycja[] pozycje; //?
         int maxRozmiar;
        public Zamowienie() : this(10)
        {
        }

        public Zamowienie(int maxRozmiar)
        {
            this.maxRozmiar = maxRozmiar;
            pozycje = new Pozycja[maxRozmiar];
        }

Metoda DodajPozycje powinna przeszukać tablicę i w pierwszym wolnym indexie dodać obiekt

if(pozycje[i] ==nul)
    pozycje[i] = new Pozycja();

ObliczWartość wydaje mi sie że też powinna iterować po tablicy dodając do siebie pozycja.obliczWartość();

Też poleciłbym listę zamiast tablicy, ale to pewnie musi być tak jak w zadaniu. Jestem ciekaw kto wymyślił że nazwy metod mają być z małej litery i pola zamiast właściwości.

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