Kezdőoldal » Számítástechnika » Programozás » Segítene valaki egy Java...

Segítene valaki egy Java programozási feladatban?

Figyelt kérdés

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.



#Java #ZH #NetBeans #csomagkezelő #fájlból-olvasás
2023. jan. 3. 17:50
 1/9 anonim ***** válasza:
Meddig jutottál benne? Mi az ahol elakadtál?
2023. jan. 3. 18:22
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Még kb az elejénél tartok. Szeretnék csinálni egy csomagok nevű listát, amibe be akarnám tölteni az adatokat a csv fájlból. Annyi megvan, hogy van egy csomag nevű osztály, amiben van 3 adattag (string id, double suly, string kontinens), van hozzá getter is, meg egy konstruktor ami kéri mindhárom adattagot. Van egy csomagApp osztály, abban van a main. Meg van egy csomagmanager osztály, abban hoztam létre egy csomag listát, meg BufferedReader in=new BufferedReader(new FileReader("packages.csv")); is megvan. Még az exception kezelés hiányzik, meg a lista feltöltése a fájlban lévő adatokkal.
2023. jan. 3. 18:34
 3/9 anonim ***** válasza:

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

2023. jan. 3. 18:53
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
Nem.
2023. jan. 3. 19:14
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

#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).

2023. jan. 3. 19:38
 6/9 anonim ***** válasza:
Mondom NEM.
2023. jan. 3. 20:32
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
Listába olvasás: soronként beolvasod a CSV fájlt, pontos veszök szerint split-eled a sort és abból már tudsz csinálni egy csomagot, amit hozzáadsz a listához
2023. jan. 3. 20:44
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

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.

2023. jan. 4. 03:43
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

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;

}

}

2023. febr. 3. 20:55
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!