Darbo tikslai
- Išmokti kurti klases, tenkinančias nurodytą sąsają;
- Išmokti atskirų objektų apdorojimo bendriniuose sąrašuose būdus (sukūrimas, įdėjimas, peržiūra, atranka), pasinaudojant duotos sąsajos metodais;
- Išmokti testavimo klasių kūrimo pradmenis;
- Sukurti bendravimo su vartotoju imitatorių eksperimentiniam tyrimui;
Atsiskaitymas
- modifikuoti individualią klasę;
- sukurti ar modifikuoti apdorojimo metodus;
Darbo eiga
Duota: du paketai studijosKTU (su atskiru aprašymu) ir Labor2, kuriuose yra pateiktos toliau naudojamos sisteminės klasės ir demo variantas laboratorinio darbo vykdymui.
Reikia sukurti: naują paketą Lab2Pavarde su klasėmis individualioms užduotims spręsti.
Tyrimo ir analizės dalis:
- Išnagrinėti klasės ValdymoModulis pradinį metodą main, kuriame komentarų pagalba reikia aktyvuoti tiriamus metodus;
- Išnagrinėti sisteminės klasės Ks metodus, panaudojant klasę DemoKTUsystem. Bandydami demo variantus iššaukite klaidų situacijas, parašykite naujus demo metodus;
- Išnagrinėti elemento klasės Automobilis struktūrą, išbandyti jo metodus, panaudojant klasę AutomobiliųTestai;
- Išbandyti klasių ListKTU ir ListKTUx metodus, ištirti sąrašo metodų sąveiką su DataKTU tipo elementais; tiriama klasių AutomobiliųTestai ir AutomobiliuApskaita struktūra;
Individuali klasių konstravimo dalis:
- Pagal duotą Automobilio klasės pavyzdį sukurti individualiai pasirinkto objekto klasės (4 ir daugiau objekto charakteristikos, laukų tipai būtinai skirtingi nuo Automobilio), tenkinančias DataKTU interfeisą; programinį kodą rašyti į individualų paketą Lab2Pavarde.
- Patikrinti individualios klasės veikimą testo klasės pagalba;
- Sudaryti individualių elementų apskaitos klasę, kurioje būtų elementų peržiūra ir jų atranka pagal įvairius kriterijus;
- Sudaryti elementų apskaitos klasės testus;
- Išnagrinėti klasės ValdymoModulis metodą bendravimasSuKlientu ir jį pritaikyti individualios klasės duomenų apdorojimui;
- Realizuoti papildomus ListKTU metodus add(int k, Data data), set(int k, Data data), remove(int k); sukurti metodus sąrašų prijungimui, bendrų elementų radimui;
Individualiai pasirenkamų duomenų tipai yra suderinami su laboratorinių darbų dėstytoju, galimi pavyzdžiai:
prekės iš didmeninės ir mažmeninės prekybos asortimento, elektronikos komponentai, kompiuteriai, knygos, multimedijos kūriniai, kelionės, sporto varžybų ir dalyvių duomenys ir kitokie elementai, turintys po 4 ir daugiau juos apibūdinančias charakteristikas.
Paketo studijosKTU aprašymas
Pakete studijosKTU yra pateikiamos klasės Ks, ListKTU ir ListKTUx bei sąsajos DataKTU ir ListADT.
Klasė Ks (santrumpa nuo KTUsystem) sukurta kaip dalinis Javos klasės System pakeitimas, siekiant supaprastinti duomenų įvedimo-išvedimo programavimą laboratorinių darbų metu.
Joje yra metodų Ks.giveString, Ks.giveInt, Ks.giveDouble, Ks.giveLong, … rinkinys, skirtas dialogo duomenų paėmimui iš klaviatūros. Vartotojui nereikia rūpintis formatų kontrole, išimčių apdorojimu. Kelių metodų programavimas paliktas savarankiškam darbui.
Metodų, skirtų informacijos išvedimui į output ir error srautus, paskirtis nurodoma taip:
Ks.ou atitinka: System.out.print |
Ks.er atitinka: System.err.print |
Ks.oun atitinka: System.out.println | Ks.ern atitinka: System.err.println |
Ks.ouf atitinka: System.out.printf | Ks.erf atitinka: System.err.printf |
Pavadinimai parenkami trumpi, kadangi jų pagalba atvaizduojama informacija turi būti pakankamai išsami.
Klasės ListKTU metodai apibrėžiami interfeisu (sąsaja) ListADT ir sudaro vieną iš galimų minimalių branduolių sąrašų kūrimui. Sąsajos metodų pasirinkimas argumentuojamas tokia lentele.
KTU pirmas kursas | Paketas studijosKTU | Paketas java.util |
void Pradzia(); | boolean add(Data data) | boolean add(E e) |
void Sekantis(); | boolean add(int k, Data data) |
void add(int index, E element) |
bool Pabaiga(); | Data get(int k) | E get(int index) |
int ImtiDuomenis(); | Data getNext() | - atitinka iteratoriaus metodas |
void DetiDuomenis(int x); |
Data set(int k, Data d) | E set(int index, E element) |
void DetiIPradzia(int x); | Data remove(int k) | E remove(int index) |
void DetiIPabaiga(int x); | void clear() | void clear() |
boolean isEmpty() | boolean isEmpty() | |
int size() | int size() | |
nėra atitinka Data get(0) | E getFirst() | |
nėra atitinka Data get(size()) | E getLast() |
KTU pirmo kurso sąsaja skirta pradiniam mokymuisi ir su žinomais standartais nesiderina. Mūsų pasirinktoje sąsajoje yra reikalaujama, kad į sąrašą būtų dedami tik nenuliniai objektai. Todėl naudojamasi galimybe, metodu getNext() gavus nulinį objektą, fiksuoti iteracijos pabaigą (kol kas tai bus naudojama kaip supaprastintas iteratorius).
Klasė ListKTU realizuoja interfeisą ListADT, realizacijos ypatybės aptariamos paskaitoje.
Klasė ListKTUx (extented) yra sukurta įvedimo-išvedimo metodų realizavimui, o taip pat sąrašo formavimui, kai nauji objektai formuojami metodu add(String data). Į ją galima dėti tik objektus, tenkinančius interfeisą DataKTU, kurio ypatybės yra metodai:
DataKTU create(String dataString); // sukuria naują objektą iš eilutės
String validate(); // patikrina objekto reikšmes
void fromString(String e); // suformuoja reikšmes iš eilutės
Paketas studijosKTU yra mokomasis, studentams suteikiama teisė juo naudotis laisvai, be jokių apribojimų