Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Windows native programozás

    A tantárgy angol neve: Windows Native Programming

    Adatlap utolsó módosítása: 2016. január 19.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Villamosmérnöki szak
    Mérnök informatikus szak
    Szabadon választható tantárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIHVAV09   0/0/2/f 2  
    3. A tantárgyfelelős személy és tanszék Dr. Csurgai-Horváth László,
    A tantárgy tanszéki weboldala http://hvt.bme.hu/~csurgai/Mswin/mswin.htm
    4. A tantárgy előadója Dr. Csurgai-Horváth László, egyetemi docens
    5. A tantárgy az alábbi témakörök ismeretére épít C programozási nyelv ismerete
    6. Előtanulmányi rend
    Ajánlott:

    Ajánlott a programozás alapjai 1. (VIEEA100/VIEEAA00/VIHIA106/VIHIAA01 valamelyike).

    A tárgyat nem vehetik fel azok a hallgatók, akik teljesítették a tárgy előd tantárgyát (VIMH9143 vagy VIHVJV43)

    7. A tantárgy célkitűzése

    Jelenleg az egyik legelterjedtebb személyi számítógépes operációs rendszer a Microsoft Windows. Az alatta futó applikációk megírása speciális programozói ismereteket igényel, melyhez számos fejlesztői eszköz áll rendelkezésre különféle programozási nyelveken és platformokon. Ennek a tantárgynak az elsődleges célkitűzése, hogy a megismertesse a Windows native módú, Win32 API (Application Programming Interface) használatára épülő programozást és a megszerzett ismereteket konkrét példákon keresztül elmélyítse (megjelenítés, adatfeldolgozás, kommunikáció perifériákkal, stb.). A tantárgy ismerteti továbbá a Windows 8-tól bevezetésre került WinRT (Windows Runtime Library), majd UWP (Universal Windows Platform) alapjait is, amely C++ nyelven számos újítást bevezetve biztosít a Win32 API-hoz hasonló jellegű funkcionalitást.
    Kitekintés jelleggel foglalkozunk az eszközmeghajtók fejlesztési kérdéseivel is, így a korábbi DDK (Windows Driver Development Kit) illetve a jelenlegi WDK (Windows Driver Kit) alkalmazásával.

    8. A tantárgy részletes tematikája

    Windows alapfogalmak és programozói fejlesztőrendszerek.
    GUI, az egységes felhasználói felület, multitasking, memóriakezelés, üzenet alapú működés.
    Egy egyszerű Windows program felépítése API használatával. Több ablakos applikációk.
    Szövegek kezelése, GDI, handler fogalma, scrollbar.
    Grafikai elemek: vonalak, felületek, a mapping mode fogalma, régiók és útvonalak, bitmap, metafile, betűtípusok.
    A billentyűzet és az egér kezelése.
    A Windows timer.
    A child window fogalma, nyomógombok, scrollbar, edit-box, list-box használata.
    Erőforrások: ikon, cursor, bitmap, menük és gyorsítógombok, modális és nem-modális dialógusablakok, message box-ok, közös dialógusablakok.
    Dynamic Link Library (DLL).
    A WinRT (Windows Runtime Library) és az UWP (Universal Windows Platform).
    A driverfejlesztés software eszközei.
    A fentiek mérnöki alkalmazásokon keresztül történő bemutatása.

    Heti bontásban:

    1.hét: Windows alapfogalmak, a Windows kialakulása, különféle verziók. Programozói fejlesztőrendszerek. A grafikus felhasználói felület alapfilozófiája, felhasználói interface és  üzenetvezérelt működés. Memóriakezelés és multitasking. Egy egyszerű Windows API program felépítése. A kód fő részei. Típusok, elnevezési konvenciók, handlerek.

    2.hét: Szöveges információ kezelése, képernyő output. A GDI (Graphics Device Interface) használata. Egy szöveges outputtal rendelkező program megírása, kiegészítése scrollbar használattal. Grafikai elemek: vonalak, felületek, régiók, útvonalak, színek kezelése. Egy konkrét alkalmazás: függvény ábrázolása, illetve mérési adatsor beolvasása fileból és annak megjelenítése.

    3.hét: A mapping mode fogalma, használata. Egy grafikus outputtal rendelkező program felépítése. Logikai és eszközkoordináták: példaprogram nagyméretű ábra átméretezésére és megjelenítésére. A Windows API által támogatott képformátumok. Képek létrehozása, használata; beolvasás és megjelenítés fileból. Nem konvencionális ablakformák.

    4.hét: Beviteli eszközök: a billentyűzet és az egér kezelése. Karakterkészletek, betűtípusok, nemzetközi karakterek. A Windows API használata ábrák és felirataik megjelenítésében.

    5.hét: Időzítés Windows programokban. Az időzítő működésének alapja, beállítása, használhatósági korlátai. Példaprogram a timer használatával: változó adatok megjelenítése szöveges és grafikus formában.

    6.hét: A felhasználói felület javítása a child-window segítségével. Nyomógombok fajtái, görgetősáv, edit-box, list-box használata és ezek különféle stílusai. Egy összetett felhasználói felületű program elkészítése.

    7.hét: Az erőforrások használata, a resource editor működése. Resource file és resource compiler. Alkalmazási példa: erőforrások használata a program grafikus elemeinek és adattömbjeinek tárolására.

    8.hét: Menük és típusaik: system, main, popup, floating popup. A resource editor használata a menük létrehozásához. Menühasználat ábrák egyedi ablakokban történő megjelenítésére.

    9.hét: Modális és nem-modális dialógusablakok. A dialógusablakok kezelése a programban. Message box-ok és a common dialog box library használata. Példaprogram a dialógusablakok használatára: paraméterbeállítás és átadás.

    10.hét: A DLL-ek felépítése, használata és alkalmazási lehetőségei. Programozási gyakorlat: egy DLL megírása és hívása egy alkalmazásból. Team munka és feladatmegosztás nagyobb projektek esetén.

    11.A Windows Runtime Library és a Universal Windows Platform: platformfüggetlen programfejlesztés. Áttekintés: a Win32 API továbbfejlesztése.

    12.hét: Nagy ZH megírása.

    13.Egy Metro-stílusú applikáció elkészítése Windows 10 platformon.

    14.Hardware eszközök támogatása Windows alatt: eszközmeghajtók. Fejlesztőeszközök ismertetése; a Windows Driver Kit, egy példaprogram bemutatása.

     

     

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    A tantárgyat számítógépteremben oktatjuk ahol minden egyes hallgató az oktató instrukcióinak megfelelően, önállóan végzi el a kitűzött feladatokat. Az órák elméleti bevezetőből és hozzá kapcsolódó programozási gyakorlati feladatokból állnak.

    10. Követelmények

    a.    A szorgalmi időszakban:

    A hallgatók a tárgy sikeres elvégzése esetén félévi jegyet kapnak. A félévi jegy megszerzésének a feltételei:


    - Egy nagy zárthelyi legalább elégségesre történő megírása a tanóra keretében. A ZH egy konkrét programozási feladat számítógépen történő elvégzése.


    - Házi feladat elkészítése, beadása és elfogadása a szorgalmi időszak végéig. A házi feladat egy az oktatóval egyeztetett C vagy C++ program elkészítése Windows API használatával. A házi feladat osztályzása ötfokozatú skálán, érdemjegyekkel történik.


    - A félévi jegy a zárthelyire és a házi feladatra kapott jegyek átlaga, a hagyományos kerekítési szabályok szerint.

    b.    A vizsgaidőszakban: -

    c.    Elővizsga: -

    11. Pótlási lehetőségek

    Sikertelen zárthelyi a szorgalmi időszakban a pótzárthelyin pótolható.

    A sikertelen (pót)zárthelyi a pótlási héten különeljárási díj ellenében egy további alkalommal pótolható.

    A házi feladat különeljárási díj ellenében a pótlási héten pótolható.

    12. Konzultációs lehetőségek

    Az oktatóval történő egyéni megbeszélés szerint.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Az MSDN online dokumentációi: https://msdn.microsoft.com/

     

    Charles Petzold: Programming Windows

    Microsoft Press, 1998

    ISBN 1-57231-995-X

     

    Sipos Mariann: A Visual C++ és az MFC

    ISBN: 963640979

     

    http://www.hvt.bme.hu/~csurgai/Bsc/WinProg.pdf

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra28
    Félévközi készülés órákra5
    Felkészülés zárthelyire5
    Házi feladat elkészítése14
    Kijelölt írásos tananyag elsajátítása8
    Vizsgafelkészülés-
    Összesen60
    15. A tantárgy tematikáját kidolgozta Dr. Csurgai-Horváth László, BME-HVT