Kezdőoldal » Számítástechnika » Programozás » Java nyelven kellene megírnom...

Java nyelven kellene megírnom egy programot, de nem tudom hogy csináljam meg. Ötletek?

Figyelt kérdés

Számítógépes hálózat szimulációja:


Ebben a feladatban egy számítógépes hálózat szimulációjának egyszerűsített implementációját kell elkészítenünk. A részfeladatok megoldása során ügyeljünk arra, hogy a megadottakon kívül egyetlen osztály se tartalmazzon más publikus metódust vagy adattagot! A megoldás minden osztályát tegyük a router csomagba!


A hálózatban levő számítógépek címeinek ábrázolása:


A hálózaton összekapcsolt gépeket ún. IP-címekkel fogjuk azonosítani. Az IP-címeknek többféle szabványa is létezik, ezek közül mi most az IPv4-et fogjuk választani, ahol a címek négy, pontokkal elválasztott, 00 és 255 közti egész számból állnak, például 127.0.0.1, 8.8.4.4 vagy 255.255.255.255.


Ezeket az IP-címeket reprezentáljuk egy külön IPAddress osztállyal! Az osztály tartalmazzon:


- egy konstruktort, amely paraméterként kap egy egészekből álló tömböt, amely tartalmazza az IP-cím egyes komponenseit, és ennek elemeit másoljuk is le.


A paraméterül kapott nem feltétlenül négy elemű. Ha rövidebb, egészítsük ki a végén 0-kal. Ha hosszabb, akkor csak az első négy számot tároljuk el.


- egy osztályszintű fromString() metódust, amely egy, csak az IP-címek szöveges leírásának megfelelő, például "12.100.32.76" String értékből állít elő egy IPAddress objektumot. (Segítségül: figyeljünk arra, hogy ha reguláris kifejezéseket használunk a megoldásban, akkor pontra illeszkedő reguláris kifejezés a "\\.", míg a "." egy tetszőleges karakterre illeszkedő kifejezés.) Ha a paraméter nem bontható fel négy komponensre vagy négynél több komponensből áll, úgy a metódus adjon vissza null referenciát.


- egy logikai értékkel visszatérő isTheSame() metódust, amely eldönti, hogy a paramétereként átadott, IP-címet ábrázoló objektum megegyezik az objektumban tárolt IP-címmel.


- egy logikai értékkel visszatérő insideRng() függvényt, amely eldönti, hogy az adott IP-cím a paraméterként megadott másik két cím közé esik-e. Akkor mondjuk, hogy két cím közé esik egy harmadik, ha lexikografikus rendezés szerint az elsőtől nagyobb vagy egyenlő és a másodiktól kisebb vagy egyenlő.


Példák:


- 127.0.0.0 - 127.0.0.255 tartományon belül: 127.0.0.1


- 127.0.0.0 - 127.0.0.255 tartományon kívül: 10.0.0.1


- 0.0.0.1 - 63.127.127.127 tartományon belül: 23.0.0.0


- 0.0.0.1 - 63.127.127.127 tartományon kívül: 64.0.0.2


-egy String visszatérési értékű toString() metódust, amely formázott szövegként jeleníti meg az adott IP-címet. Ez formátum a korábbiak szerint négy, ponttal elválasztott számot fog jelenteni, például: "12.100.32.76".


2017. márc. 16. 14:49
 1/4 anonim ***** válasza:

Hol tartasz? Mit nem értesz? Min akadtál el? Milyen a kódod eddig?

Ha csak idevágod a feladat leírását, akkor mi mondani fogunk egy jó nagy összeget és egy számlaszámot és miután átutaltad a pénzt küldjük a megoldást.

2017. márc. 16. 15:30
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Kezdetnek ott, hogy (- egy konstruktort, amely paraméterként kap egy egészekből álló tömböt, amely tartalmazza az IP-cím egyes komponenseit, és ennek elemeit másoljuk is le. ) mibe másoljuk át a tömb elemeit?
2017. márc. 16. 15:37
 3/4 Hominida ***** válasza:
Egy ötlet: mindenekelőtt keresd ki valahol, hogy mi is az a pár függvény és metódus, amelyekről szó esik.
2017. márc. 16. 23:31
Hasznos számodra ez a válasz?
 4/4 sharkxxx ***** válasza:

class IPAddress {

private int[] addr = { 0,0,0,0 };

public IPAddress(int[] ipaddr) {

if (ipaddr.length < 4) {

for (int i = 0; i < ipaddr.length; i++) {

this.addr[i] = ipaddr[i];

}

for (int i = this.addr.length; i < 4; i++) {

this.addr[i] = 0;

}

} else {

for (int i = 0; i < 4; i++) {

this.addr[i] = ipaddr[i];

}

}


}

public boolean isTheSame(IPAddress ip) {

return (ip.addr[0] == this.addr[0])

&& (ip.addr[1] == this.addr[1])

&& (ip.addr[2] == this.addr[2])

&& (ip.addr[3] == this.addr[3]);

}

public String toString() {

return addr[0]+"."+addr[1]+"."+addr[2]+"."+addr[3];

}

}


class IPAddressTest {

public static void main(String args[]) {

System.out.println("Starting IPAddressTest...");

int[] ipaddr1 = { 168,192,100,1 };

int[] ipaddr2 = { 168,192,100,2 };

IPAddress ip1 = new IPAddress(ipaddr1);

IPAddress ip2 = new IPAddress(ipaddr2);

System.out.println(ip1);

System.out.println(ip2);

System.out.println(ip1.isTheSame(ip2));

}

}


A fromString() és az insideRng() metódusok még nincsenek megírva.

2017. márc. 17. 23:02
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!