Segítene valaki egy Java programozási feladatban?
Még elég kezdő vagyok, és ez a tárgy elég sokban tér el a többi programozás tárgyamtól (pl tanár nem rakta fel az órai anyagokat, meg ez a zh feladat).
Ez lenne a feladat amihez kéne segítség:
Egy csomagelosztó központ az alábbi szabályok szerint dolgozik. A központba beérkező (feladott) csomag Európa, Amerika vagy Ázsia irányába indul. A célirány mellett ismerjük a csomagok súlyát és az azonosítóját. Minden csomag adatait beérkezéskor rögzítjük, majd a szortírozó terem a címzett alapján továbbítja a csomagokat az adott kontinensek csomagjait kezelő termekbe. A feldolgozó termekben az 1 kg-nál könnyebb csomagokat egyesével postára adják, a nehezebbek konténerben gyűlnek. Amint egy konténer megtelik (pl. 50 kg súlyhatár), azt egy szállítóvállalat elszállítja. A feldolgozó termek rögzítik, hogy melyik csomag ment el postán és melyik konténerben.
Írj programot, ami megvalósítja a fent leírt rendszer működését! Az alap változat tartalmazzon osztályokat a feldolgozó központ és termek, a csomagok stb. reprezentálására. A teljes verzió legyen képes lekérdezni az egyes termek állapotát, illetve jelezze, ha egy konténer megtelt és elindul. A csomagok felvétele menüből vagy file-ból történjen, a feldolgozás rögzítése file-okba írással valósuljon meg.
Egyébként van egy csv fájl, ami tartalmaz rengeteg csomagot. ID, súly, kontinens neve van egy sorban, és mindhárom között pontosvessző van elválasztóként.
A válaszokat előre is köszönöm.
Akkor kell még egy teremosztály, amibe 1-esével rakod be a csomagokat (pl. fv hívással) úgy, hogy kiveszed az eredeti listából. Ez a terem osztály fogja hasonló módon a kontinenseket reprezentáló terem osztályokba rakni a csomagokat a kontinensek alapján. Ezek a terem osztályok pedig súly alapján eldöntik, hogy postára adás legyen (ami gondolom itt egy kontinens-posta file-ba írást jelent), vagy konténerbe kerül. A konténer pedig ha meg telt, akkor megintcsak file-ba ír (a konténerben én eltárolnám az eddigi össz súlyt, hogy ne kelljen mindig kiszámolni). Így lesze 3 kontinens terem és mindegyikben egy konténer
Persze nem kell így csinálni, ötleteket akarok adni
A lekérdezés része nekem nem teljesen egyértelmű, mert ez elég gyorsan lefut így. Kell tudni kézzel hozzáadni csomagokat? Vagy elég lenne a file-ba írt csomagokat megnézni, hogy melyikben van a csomag, és az alapján vissza adni, hogy posta, vagy konténerrel szállító cég?
Egyébként lehet telhesen máshogy is csinálni, pl. csak egy csomag lista van, de a csomagoknak van állapot mezője, amit a termek módosítanak feldolgozás során
#3 köszönöm az ötleteket. Még az kell először, hogy a listába be tudjam olvasni a fájlból az adatokat (meg a FileNotFoundException, és IOException).
Egy kis segítség a funkciókhoz:
(mivel zh feladat volt, ezért jegyek alapján tudom felsorolni a program funkcióit, amiket meg kell valósítania)
2-es: A program tartalmazza az alap osztályokat, rendelkezik egy működést vezérlő karakteres menüvel, fel tud venni csomagokat és azok legalább egy kontinens irányába továbbíthatók, melyről a képernyőn ad tájékoztatást.
3-as: Mint a 2-es, de a program mindhárom kontinenst kezeli, a termek elvégzik a súly alapú feldolgozást. A csomagfelvétel adatai (időpont, csomag azonosító, célirány) fájlban tárolódnak.
4-es: Mint a 3-as, de a program kezeli a postai feladást és a konténerelszállítást is további osztályok (pl. posta, fuvarozó) segítségével. Minden konténer elküldése után a képernyőre írt üzenettel tájékoztat az elküldésről.
5-ös: A feldolgozás befejezése után a program részletes jelentést készít kontinensek szerint (szállítási módok, összsúly), amit fájlba írással rögzít (pl. Ázsia - postán 32 db, 8db konténerben 13 db (csomag) - összsúly:421kg).
ChatGPT?
Én is most például egy olyan Javás függvényt írtam, ahol egy linked listába kellett adott paraméterek alapján sorrendben beszúzni az adatokat és megtudtam volna nélküle csinálni, de rég használtam a linked listához tartozó iterátort, így csak ChatGPT-ben beírtam mit kell csinálni a függvénynek, milyen objectumokkal.
Rögtön kidobta a tökéletes választ.
Furcsa mód szoftver design-al kapcsolatban is tud néha egész jól válszolni, bár az tényleg csak "tesztelgetés" ként végeztetem vele, mert abban azért nem jó annyira.
Tehát valószínűleg egyetemi ZH feladatot / házit lazán megtudsz vele iratni majdnem hogy tökéletesen pár jól irányított kérdéssel.
class PackageProcessingCenter {
private List<Package> packages;
private List<ProcessingRoom> rooms;
public PackageProcessingCenter() {
this.packages = new ArrayList<>();
this.rooms = new ArrayList<>();
}
public void addPackage(Package package) {
this.packages.add(package);
}
public void addRoom(ProcessingRoom room) {
this.rooms.add(room);
}
public void processPackages() {
for (Package package : this.packages) {
for (ProcessingRoom room : this.rooms) {
if (room.getContinent() == package.getContinent()) {
room.addPackage(package);
}
}
}
}
}
class ProcessingRoom {
private String continent;
private List<Package> packages;
private int maxWeight;
public ProcessingRoom(String continent, int maxWeight) {
this.continent = continent;
this.maxWeight = maxWeight;
this.packages = new ArrayList<>();
}
public String getContinent() {
return this.continent;
}
public void addPackage(Package package) {
this.packages.add(package);
}
public int getWeight() {
int weight = 0;
for (Package package : this.packages) {
weight += package.getWeight();
}
return weight;
}
public boolean isFull() {
return this.getWeight() >= this.maxWeight;
}
public List<Package> getPackages() {
return this.packages;
}
}
class Package {
private int id;
private int weight;
private String continent;
public Package(int id, int weight, String continent) {
this.id = id;
this.weight = weight;
this.continent = continent;
}
public int getId() {
return this.id;
}
public int getWeight() {
return this.weight;
}
public String getContinent() {
return this.continent;
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!