Kodutöö II

Selgitused võtmete kohta (PK/FK)

Kodutöö II raames tuleb luua programm ja koostada lühendatud aruanne tehtud töö kohta

Kodutöö eest saadud punktid on osa hindest.

Kodutöö ülesanne

Kodutöö II variandid antakse kätte individuaalselt praktikumi tunnis.

Dokumentatsioon

  • Tiitelleht
  • Autorideklaratsioon
  • Programmi töövoo ja põhimõtete selgitus
    • Töövoo üldine kulgemine
    • Kuidas lahendatakse eriolukordi?
    • Funktsioonide kirjeldused (eesmärk, parameetrid ja nende esitatavad nõuded, tagastused, kõrvalmõjud, semantiline tähendus)
    • Struktuuride kirjeldus
  • Sisend- ja väljundfailide struktuuri kirjeldus
  • Ekraanitõmmised

Nõuded

  • Kõik toimingud on korratavad programmist väljumata! (loo menüü struktuur)
  • Algandmed pärinevad kahest tekstifailist, vormistus vali ise (CSV, reavahetus, tühik jne).
  • Andmed failides on seotud omavahel võtmete abil. Kehtib üks mitmele suhe (nt ühel õpilasel võib olla deklareeritud mitu õppeainet)
  • Lähteandmetes on minimaalselt 10 kirjet faili kohta. Üks-mitmele suhte jaoks peab vähemalt ühe kirje puhul olema teises failis mitu vastavat rida!
  • Programmi töö tulemused kuvatakse ekraanil ja salvestatakse faili. Faili salvestused toimuvad logi stiilis (st kõik päringud programmi vahendusel salvestatakse)
  • Teostatud on kõik vajalikud kontrollid veakindluse tagamiseks (faili avamine, mälu küsimine jne)
  • Kuupäevade puhul on kasutusel alamstruktuur
  • Fikseeritud suurusega massiivide asemel on kasutatud dünaamilist mäluhaldust (va puhvrid). Sealhulgas peab programm töötama dünaamilise andmehulgaga. St, kui lisada n täiendavat kirjet või eemaldada olemasolevaid, peab programm jätkuvalt toimima
  • Ka tekstiväljad tee dünaamiliselt (st char[] asemel char*)
  • Kasutatud on sobilike andmestruktuure
  • Programmis puuduvad mälulekked, raisatud või vabastamata ressursid.
Varasemast meeldetuletuseks
  • Kood on jaotatud otstarbekohaselt funktsioonideks (vähemalt 3 lisaks main funktsioonile).
    Kui oled pidanud juba 2 korda kirjutama sama ideega koodilõiku, siis tõenäoliselt oleks otstarbekas luua ka selleks täiendav funktsioon.
  • Andmevahetus toimub funktsioonidega ainult parameetrite kaudu
  • Täidetud on koodimisstiilis etteantud nõuded, sh
    • Puuduvad maagilised numbrid
    • Kasutusel ainult vajalikud teegid
    • Faili ja funktsioonide päised
    • Korrektne treppimine, arusaadav muutujate nimetamine,  tühikud kus vaja, kommentaarid
    • jne

Soovi korral tule küsi praktikumis üle, kas kõik on nõuetekohane

Tähtajad ja punktid

Teise kodutöö väärtus on 15p.

Maksimaalse tulemuse saamiseks tuleb jälgida nii koodimisstiili kui ka kinni pidada üldnõuetest.

Terviklik kodutöö tuleb esitada hiljemalt 08.04.2018

Tähtaja ületamisel iga hilinetud nädal võtab 1p maksimumist alla kuni 10p piirini.  Maksimaalne punktisumma on 15p.

Viimne võimalus: 21.05.18 kell 12:00. Pärast seda kuupäeva pole kodutöö esitamine võimalik.

Boonuspunktid / edasijõudnutele

Kodutöö eest on võimalik saada 2 boonuspunkti. Boonuspunktid lisanduvad kodutöö punktidele hinde panekul.

Kui kodutöö rahuldab boonuspunktide saamise nõudeid, siis hilinenud nädalaid ei arvestata.

Lisaks baasnõuetele tuleb täita järgmised punktid:

Esitamine

Esitamise kuuluvad failid:
  • Aruanne (pdf)
  • Kõik kasutatud koodifailid
  • Vajalikud andmefailid programmi jooksutamiseks
  • Kui esitad mitu koodifaili või kasutad mõnda standardit peale C90, siis lisa Linuxi jaoks makefile!

Esitamine käib ainult elektroonselt. Kindlasti järgi järgmisi nõudeid, et su töö ikka kenasti kohale jõuaks ja hinne õigele inimesele saaks.

Nimetamisskeem: Kodutoo_II_<eesnimi>_<perenimi>_<matrikkel>

Failide nimed: Kodutoo_II_Eesnimi_Perenimi_123456ABCD
Kirja teemaks: Kodutoo_II_Eesnimi_Perenimi_123456ABCD

Kiri saada aadressile: risto.heinsar [ät] ttu.ee