Szoftver technikák vizsga, 2004. 12. 23.
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
1. feladat
MFC: milyen alaposztályokkal támogatja a Document/View architektúrát, hogyan függenek össze.
2. feladat
Document/View architektúra általában, hogyan oldja meg, hogy a nézetek konzisztens képet mutassanak akkor is, ha több nézet módosul?
3. feladat
Milyen életciklusmodellt használnál 3 hónapos projektre, miért? (ld. ellenőrző kérdések)
4. feladat
API gyakorlat: egy alkalmazás, amelyben egy négyzetet lehet a kurzorral mozgatni az ablakban, egy menüelem kiválasztására előjön egy modális dialógus, amiben be lehet állítani az oldalhosszát.
5. feladat
Mi az a GDI, mitől eszközfüggetlen, stb...
6. feladat
Doc/View architektúra implementálása KDE alatt, kóddal illusztrálva (hogy éri el a dokumentumot a nézet stb.)
7. feladat
KDE alkalmazás: írd meg a megfelelő függvényeket (updateView, paintEvent), ami kiolvassa a dokumentumból egy téglalap adatait és kettős buffereléssel kirajzolja az ablakba.
A kiadott doksik alapján valami ilyesmi lehet:
View header-jébe:
QPixmap screenBuffer;
paintEvent:
void ::paintEvent(QPaintEvent *e) { QWidget::paintEvent(e); QRect r = e->rect(); bitBlt(this, r.x(), r.y(), &screenBuffer, r.x(), r.y(), r.width(), r.height()); }
updateView:
void ::updateView() { screenBuffer.resize(width(), height()); screenBuffer.fill(Qt::white); int x = getDocument()->getX(); int y = getDocument()->getY(); int w = getDocument()->getW(); int h = getDocument()->getH(); QPainter painter; QPen pen(black, 1); painter.begin(&screenBuffer); painter.setPen(&pen); painter.drawRect(x, y, w, h); painter.end(); repaint(); // update() ? }
8. feladat
Singleton tervezési minta, miért kell, mikor használjuk, C++ implementáció.
-- porolto - 2005.05.04.
-- Peti - 2006.11.20.
-- palacsint - 2007. 01. 29.