Podjetje Embi d.o.o. izdeluje embalaže vseh vrst (kartonske, plastične, kovinske...) in oblik (kocka, piramida...). Sestavi jim osnovni razred za vse embalaže Embalaza, če veš, da vsaka embalaža vsebuje podatke o:
- tipu embalaže: ker izdelujejo le končno mnogo tipov embalaže, se sme tip izbrati le izmed nekaj v naprej definiranih. V razredu Embalaza zato definirajte tabelo nizov, ki predstavljajo dovoljene tipe embalaže. Tip embalaže naj bo možno spremeniti tako, da direktno povemo tip embalaže kot niz ali pa tako, da podamo indeks tipa embalaže v tabeli tipov. Če tak tip embalaže ne obstaja, naj se vrže napaka. Poznamo vsaj plastično in kartonsko embalažo.
- obliki embalaže: za obliko veljajo enaka pravila kot za tip, le da zaenkrat poznamo le oblike: kocka, tetraeder in valj.
- barvo embalaže: barva je lahko poljuben neprazen niz.
- maso embalaže: pozitivno število.
- ceno izdelave: ker cene izdelave za splošno embalažo ne poznamo, naj bo nastavljena na 0.
Seveda mora razred vsebovati metode za nastavljanje in branje teh lastnosti ter vsaj konstruktor brez parametrov, ki ustvari embalažo s smiselnimi lastnostmi. Poleg tega podjetje zanima tudi, koliko embalaže so izdelali. V ta namen bo potrebno v razred dodati razredno spremenljivko, ki se poveča vsakič ko se ustvari nov objekt tipa Embalaza in metodo, ki vrača njeno vrednost. Nikakor pa ne smete dodati metode za spreminjanje te vrednosti! Zakaj?
Seveda je takšna embalaža še povsem neuporabna (ne vemo npr. na kakšni temperaturi jo lahko skladiščimo...), dodatne lastnosti embalaže pa so močno odvisne od materiala, iz katerega je embalaža izdelana. Denimo, da nas trenutno najbolj zanima plastična embalaža. Zato iz razreda Embalaza izpelji razred PlasticnaEmbalaza, ki vsebuje lastnosti:
- vrsta plastičnega materiala, iz katerega je narejena ta embalaža (izbira iz nekaj vnaprej definiranih možnosti)
- temperaturno območje, v katerem je embalaža primerna za skladiščenje. To je lastnost razreda in ne posameznega objekta!
- maksimalna nosilnost embalaže - odvisna od vrste plastičnega materiala in je enaka za vse embalaže, ki so narejene iz določene vrste plastike!
- ali je primerna za skladiščenje hrane: nekatere vrste plastike niso primene za skladiščenje hrane. Ker pa je stvar odvisna tudi od načina izdelave, je potrebno to posebej povedati za vsak objekt posebej.
- cena za kg embalaže: koliko stane 1kg plastične embalaže. Predpostavi, da vsaka plastična embalaža stane enako za kg.
Razred naj vsebuje tudi nekaj smiselnih konstruktorjev.
Vsebuje naj metodo, ki pove koliko kilogramov tovora še lahko spravimo v embalažo. Je linearno odvisna od mase emblaže(v embalaži, ki tehta 1kg, lahko shranimo 5kg tovora), a ne večja od neke v naprej določene vrednosti, ki je shranjena v maksimalni nosilnosti embalaže, in jo dobimo na podlagi testiranja našega plastičnega materiala. Ker se metodologija testiranja lahko spremeni, se lahko tudi največja nosilnost velikokrat spremeni.
Vsebuje naj tudi metodo, ki pove, koliko stane določena plastična embalaža. Cena je odvisna od teže te embalaže, ter od oblike. Izdelava v obliki tetraedra podraži izdelavo za 20%, izdelava v obliki valja pa za 35%.
Razred tudi preizkusi: ustvari tabelo 100 plastičnih embalaž z naključnimi začetnimi podatki. Nato med njimi poišči tako, v kateri bi lahko prepeljali hrano težko 10kg, ki stane najmanj (oblika ni pomembna, pomembno pa je, da je material ustrezen - torej tak, da dovoljuje pakiranje hrane). Ali nas stane kaj manj, če namesto hrane želimo prepeljati računalniško opremo iste teže?
Kaj pa, če je pomembna tudi oblika embalaže? Denimo, da letalski prevoznik sprejme le embalažo v obliki kocke. Katera embalaža je najbolj ugodna v tem primeru (torej v prej ustvarjeni tabeli embalaž upoštevaj le tiste, ki so v obliki kocke)?
- Ustvari tudi razred KartonEmbalaza, ki naj ima iste lastnosti kor razred PlasticnaEmbalaza. Vemo, da je ta embalaža vedno primerna za hrano, a ima nižjo nosilnost kot plastična embalaža (embalaža teže 1kg zdrži le okrog 2kg tovora) in nekoliko nižje stroške izdelave (izdelava embalaže težke 1kg nas stane 900 SIT).
Razred preveri na enak način kot razred PlasticnaEmbalaza.
Opomba: z "najprimernejša" seveda mislimo najcenejša.
Na koncu še izpiši, koliko embalaže si ustvaril tekom programa. Pri tem si lahko pomagaš le z lastnostmi razreda Embalaza.