Számítógépes házi feladat

Találjon ki saját magának egy feladatot

Például

Összetettebb alapvetően adatfeldolgozási feladat dinamikus tárkezeléssel (keresés, beszúrás, törlés, rendezett és/vagy szűrt listák készítése, tárolás pld. XML-ben, binárisan, text-ben):

könyvtár, könyvesbolt, CD, videotár katalógusa

telefonkönyv, cím adatbázis

akármilyen banki, ügyviteli adathalmaz feldolgozása (pld. rendelések, szállítások nyilvántartása és lekérdezése)

hallgatói tanulmányi adatok nyilvántartása

időjárás adatok kezelése (napi hőmérséklet, csapadék, szélerősség adatok rögzítése, statisztika készítése, naponkénti lekérdezés)

határidőnapló (overbooking figyelmeztetés, emlékeztető)

sportverseny adatok kezelése (versenyzőnkénti lekérdezés, átlag, sorrend)

sportesemény-naptár (permutáción alapuló feladatok)

Összetettebb algoritmus

órarend készítés (backtrack)

műveletek nagy mártixokkal (dinamikus memóriakezeléssel)

tetszőleges pontosságú egész aritmetika, kalkulátor

szimuláció (digithez is kapcsolódhat)

gráf bejárása

programozható zsebkalkulátor emuláció

 

Egyéb ötletek

 

Nagy Gergely ötletei

 

Pool László jegyzetének végén levő ötletek

 

Zsóka Zoltán ötletei

 

Figyelem! A fentiek csak ötletadó, részben régebbi anyagok. A saját feladatát mindenképpen egyeztesse a gyakorlatvezetőjével!

 

A megoldás tegyen eleget a következő követelményeknek:

  • a feladatot megoldó forrás szabványos C programozási nyelven íródik, azaz szabványos C fordítóval lefordítható hibaüzenet (ERROR) és figyelmeztetés (WARNING) nélkül (Lehetősége van a megoldást "szépíteni" nem szabványos elemekkel, de ebben az esetben ezen elemeket a feltételes fordítás használatával kell beilleszteni a programba, nem pedig írni egy szabványos és egy nem szabványos, pld. Borland változatot.)
  • a lefordított program elindulás után eleget tesz a feladatának szabványos környezetben is (Nem szabványos környezetben lehet a megoldás színvonalát emelni.)
  • a program legyen logikusan tagolt, moduláris (több forrásmodulra szegmentált program legyen)

·         a megoldás során szükség van

-         legalább közepesen bonyolult algoritmikus elemekre

-         dinamikus memóriakezelésre

-         fájlkezelés alkalmazására

·         a forrásprogram terjedelme 500-1000-2000 sor körüli

Hordozhatóság

A feladat értékelése során nagy hangsúlyt helyezünk a hordozhatóságra. A hordozhatóság legegyszerűbb ellenőrzése, ha a programot lefordíjuk és futtatjuk Windows és Unix (ural2) operációs rendszer alatt is.

A szabványos C nyelvben nem valósítható meg grafikus alkalmazás. Ha valaki mégis ragaszkodik ilyen feladathoz, akkor először mérlegelni kell, nem oldható-e meg mégis a feladat szabványos elemekkel. Pédául, ha a program eredményként egy grafikát készít, akkor maga a program lehet teljesen szabványos, de az eredmény ebben az esetben egy elterjedt (pld. BMP, TIFF, JPG, WMF) grafikus formátumú bináris fájl, amelynek a megjelenítése már ismert eszközökkel lehetséges.

Ha valaki interaktív grafikához ragaszkodik, akkor az így elkészített programnak is minél inkább hordozhatónak kell lennie, azaz olyan grafikus hátteret kell használni, aminek létezik több operációs rendszeren is megvalósítása. Ilyen például a wxWindows vagy az OpenGL. Javasoljuk, hogy ilyen feladatot csak a programozásban jártasabb hallgatók válasszanak, mert a grafika kezelése nem része a tananyagnak, így konzultációra is csak korlátozottan van lehetőség.

A feladat beadása

-        A program működésének bemutatása személyesen.

-        Beadandó:

-        dokumentáció

kinyomtatott formában

vagy elektronikusan, ha elterjedt formátumú (pld. doc,rtf,pdf,tex,...)

-        a program forrásai elektronikusan (*.c,*.h)

Az elektronikusan beadandó részek elküldhetők a gyakorlatvezető címére, de csak akkor tekinhetők beadottnak, ha a levélre azt nyugtázó válasz érkezik.

A dokumentáció a következő elemekből épül fel:

1) A feladat értelmezése, korlátok - részletes specifikáció

Részletesen le kell írni a feladatot. A megoldás során nem kell feltétlenül minden eshetőségre felkészülni, de a korlátokat egyértelműen jelezni kell.

2) Programozói dokumentáció

A dokumentáció ezen része a többi programozónak készül, tehát ennek tartalmaznia kell az alkalmazott adatszerkezet leírását, a felhasznált algoritmusok vázlatos ismertetését, a program moduljainak szerkezetét, valamint az egyes függvények leírását. Ez utóbbi adja meg a függvény funkcióját, a bemeneti paraméterek jelentését, az esetleges hívási konvenciókat, a visszatérési értéket és annak értékkészletét, amennyiben ez nem egyértelmű.

3) Felhasználói dokumentáció

A dokumentáció ezen része a felhasználónak készül, tehát ennek tartalmaznia kell a program pontos inputját, outputját, valamint a használatához szükséges ismereteket.

4) A munka értékelése, tesztelés

Ebben a szakaszban a megoldást kell értékelni. Célszerű utalni a hiányosságokra, a továbbfejlesztési lehetőségekre és az esetleges gyakorlati hasznosításra.

A forrásszöveg szerves részét alkotják a megjegyzések.

A feladat nem fogadható el, ha nincs dokumentáció, nem fordítható le a program vagy a lefordított program nem működik.

Első határidő: 9. oktatási hét

            Beadandó a feladat pontos specifikációja elektronikusan (a dokumentáció 1. fejezete).

A beadási határidő: 13. oktatási hét.

Pótbeadás a 14. oktatási héten lehetséges.

Ha valakit nem adja be a feladatát az utolsó oktatási hét péntek 12.00-ig, akkor a félévét nem ismerjük el. Ha a feladatot elfogadtuk, az azt jelenti, hogy legalább elégséges (2) osztályzatot kap. A pontos értékelés a beadást követően történik, de legkésőbb a vizsgaidőszak első napjáig befejeződik.