Cześć , mam problem jestem na pierwszym roku informatyki więc nie bardzo potrzebuje bardzo skomplikowanych rozwiązań , wykładowca kazał wykonać program .
Zad. Zamówienie
- 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,
19
• metodę String toString() , która zwraca łańcuch zawierający spis pozycji
zamówienia oraz łączną wartość zamówienia.
Przykładowa metoda korzystająca z wspomnianych klas:
public static void main(String [] args) throws IOException {
Pozycja p1 = new Pozycja("Chleb", 1, 3.5);
System.out.println(p1);
Pozycja p2 = new Pozycja("Cukier", 3, 4);
System.out.print(p2);
Zamowienie z = new Zamowienie(20);
z.dodajPozycje(p1);
z.dodajPozycje(p2);
System.out.println(z);
}
Przykładowy wynik:
Chleb 3,50 zł 1 szt. 3,50 zł
Cukier 4,00 zł 3 szt. 12,00 zł
Zamówienie:
Chleb 3,50 zł 1 szt. 3,50 zł
Cukier 4,00 zł 3 szt. 12,00 zł
Razem: 15,50 zł - W klasie Zamowienie :
• zaimplementować metodę void usunPozycje(int indeks) , która usuwa
z zamówienia pozycję o podanym indeksie
• zaimplementować metodę void edytujPozycje(int indeks) , która umożliwi edycję wybranej pozycji zamówienia, tj. nazwy towaru, ceny oraz liczby
sztuk
• zmodyfikować metodę void dodajPozycje(Pozycja p) , tak by w stytuacji, gdy dodawany jest ten sam towar nie dodawała kolejnej pozycji, lecz
zwiększała liczbę sztuk w już istniejącej - W klasie Pozycja :
• zaimplementować metodę double obliczWartoscZRabatem , która oblicza
wartość pozycji zamówienia po uwzględnieniu rabatu zależnego od liczby
sztuk:
– 5–10 szt. rabat 5%,
20
– 10–20 szt. rabat 10
– powyżej 20 szt. rabat 15%. - Zmodyfikować metodę obliczWartosc w klasie Zamowienie, tak by również wyświetlała informacje o rabacie i łączny koszt zamówienia po jego uwzględnieniu.
- zmodyfikować metodę toString , by wyświetlała również naliczony rabat i wartość z rabatem.
- W obu klasach zaimplementować interfejs Serializable umożliwiający zapis i
odczyt danych z pliku realizowany przez metody:
• metodę public static void zapiszZamowienie(Zamowienie z, String nazwaPliku) ,
która zapisze podane w parametrze zamówienie do pliku o nazwie podanej
drugim parametrem.
• metodę public static Zamowienie wczytajZamowienie(String nazwaPliku) ,
która wczyta z pliku o podanej nazwie zamówienie i zwróci je jako wynik.
Nie proszę o zrobienie takiego programu , tylko o powiedzenie mi co robię zle w aktualnym ze nie czyta mi Geterów,
taki błedy Type mismatch: cannot convert from Pozycja[] to Zamowienie
Type mismatch: cannot convert from Pozycja[] to Zamowienie
Type mismatch: cannot convert from Pozycja to Zamowienie
Type mismatch: cannot convert from Pozycja to Zamowienie
The method getNazwaTowaru() is undefined for the type Zamowienie
The method getIleSztuk() is undefined for the type Zamowienie
The method getCena() is undefined for the type Zamowienie
The method getCenarazem() is undefined for the type Zamowienie
import java.io.*;
import java.utill.*;
public class Pozycja{
private String nazwaTowaru;
private int ileSztuk;
private double cena;
public Pozycja(String n, int sz, double c){
nazwaTowaru = n;
ileSztuk = sz;
cena = c;
}
public String getNazwaTowaru(){
return nazwaTowaru;
}
public int getIleSztuk(){
return ileSztuk;
}
public double getCena(){
return cena;
}
public void raiseCena(double byPercent){
raise= Cena * byPercent / 100;
}
public double getCenarazem(){
Cena *= ileSztuk;
}
}
public class Zamowienie {
public Zamowienie(String n, int sz, double c) {
super(n, sz, c);
}
public static void main(String[] args) {
Zamowienie as1 = new Pozycja[1];
Zamowienie as2 = new Pozycja[2];
as1 = new Pozycja ("cukier", 3, 4);
as2 = new Pozycja ("chleb", 3, 5);
System.out.println("nazwa: " ,( +getNazwaTowaru()), "ilość :" + getIleSztuk(), "Cena: " + getCena() , "razem : " + getCenarazem());
}
}