Skip to content

PovilasID/Lab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



Laboratorinis darbas: Sąrašinių duomenų struktūrų kūrimas


Darbo tikslai

  1. Išmokti kurti klases, tenkinančias nurodytą sąsają;
  2. Išmokti atskirų objektų apdorojimo bendriniuose sąrašuose būdus (sukūrimas, įdėjimas, peržiūra, atranka), pasinaudojant duotos sąsajos metodais;
  3. Išmokti testavimo klasių kūrimo pradmenis;
  4. Sukurti bendravimo su vartotoju imitatorių eksperimentiniam tyrimui;

Atsiskaitymas

  • Pateikiama atlikta individuali darbo dalis ir ataskaitos elektroninė versija;

  • Operatyviai atliekamos dėstytojo nurodytos užduotys:
    - modifikuoti individualią klasę;
    - sukurti ar modifikuoti apdorojimo metodus;

  • Atsakoma į klausimus apie studijosKTU paketo klasių struktūrą ir 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:

    1. Išnagrinėti klasės ValdymoModulis pradinį metodą main, kuriame komentarų pagalba reikia aktyvuoti tiriamus metodus;
    2. Išnagrinėti sisteminės klasės Ks metodus, panaudojant klasę DemoKTUsystem. Bandydami demo variantus iššaukite klaidų situacijas, parašykite naujus demo metodus;
    3. Išnagrinėti elemento klasės Automobilis struktūrą, išbandyti jo metodus, panaudojant klasę AutomobiliųTestai;
    4. 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:

    1. 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.
    2. Patikrinti individualios klasės veikimą testo klasės pagalba;
    3. Sudaryti individualių elementų apskaitos klasę, kurioje būtų elementų peržiūra ir jų atranka pagal įvairius kriterijus;
    4. Sudaryti elementų apskaitos klasės testus;
    5. Išnagrinėti klasės ValdymoModulis metodą bendravimasSuKlientu ir jį pritaikyti individualios klasės duomenų apdorojimui;
    6. 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ų

    About

    SarasaiKurimas

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages