Szoftver technikák vizsga, 2004. 12. 23.

A VIK Wikiből
(SzoftverTechnikakV20041223 szócikkből átirányítva)

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.

Megoldás

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?

Megoldás

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.