- interaktív CD melléklettel Szerzők: Benkő Tiborné - Dr.Poppe András ComputerBooks Kiadó, 2004 Javított, bővített kiadás 2007 368 oldal ISBN: 963 618 324 4
A könyvről
Könyvünk alapvető célja, hogy feladatokon keresztül megismertesse az objektum-orientált C++ nyelv használatát.Valójában egy C++ tankönyv, ami egyaránt segíthet a tanulóknak, hogy önállóan elsajátítsák a C++ nyelv alapjait, és segíthet az oktatóknak is, hisz a tananyag az alapkönyvet kiegészítő, 16 gyakorlati foglalkozásra bontva, óravázlatként is felhasználható.A feladatokhoz rövid elméleti magyarázatot fűztünk, azonban részletesebb leírást talál az Olvasó a ComputerBooks Kiadó egy másik kiadványában, a Programozzunk C++ nyelven! című könyvben.Az egyes fejezetekben a programkészítés módszerének elsajátításához mutatunk be gyakorló feladatokat, melynek megértése és a kiírt feladatok megoldása hozzájárul az önálló tanuláshoz. Csak röviden világítunk rá azokra az elméleti ismeretekre, amelyek feltétlenül szükségesek a feladatok megoldásához.A C++ nyelv támogatja a hagyományos, algoritmikus programkészítést, ezért könyvünk első "A C++ mint egy jobb C nyelv" része is ezt a megközelítést tűzte a zászlajára. A C nyelvet ismerő Olvasók nagy lépésekkel haladva dolgozhatják fel az ide tartozó fejezeteket, a kezdő programozók pedig elsajátíthatják a C++ nyelv alapjait (típusok, definíciók, utasítások, függvények).A könyv második "Az objektum-orientált C++ nyelv" része a napjainkban nagyon elterjedt programfejlesztési módszerrel, az objektum-orientált programozással ismerteti meg az olvasót. Lépésről-lépésre haladva feltárulnak az osztályok, azok különböző tagjai, az öröklés és végül a nagyobb rendszerek fejlesztéséhez nélkülözhetetlen sokalakúság.Fontos része a műnek a függelék. Az F2. függelék olyan oktatási anyagot tartalmaz, amely gyakorlati foglalkozásonként csoportosítja a különböző témaköröket. A feladatlapok PDF-formátumban a CD-mellékleten is megtalálhatók. A feladatsorok felölelik a könyv teljes tartalmát, azonban más feladatokon keresztül mutatják be a C++ lehetőségeit, rendszerezetten végighaladva az alapismereteken. Minden gyakorlati foglalkozás elején röviden ismertetjük az aktuális témakört és a hozzá tartozó mintafeladatokat. A kidolgozott mintafeladatok nagyban segíthetik a programozási lépések, fogások hatékony elsajátítását. A kiírt gyakorlati feladatok három részre oszthatók: * Némely feladathoz ajánlott deklarációt és definíciót javasolunk, illetve megadjuk az elkészítendő függvények prototípusát. Egyes feladatoknak várható futási eredményét is közöljük. * Vannak olyan feladatok is, amelyek részmegoldást tartalmaznak, azonban a befejezéshez bizonyos programrészeket önállóan kell elkészíteni. * Néhány feladatnak csak a kiírása szerepel, ezeket teljesen önállóan kell megoldani.
A CD-melléklet a könyv anyagához tartozó programok forráskódján és bizonyos elektronikus formátumú fejezeteken túlmenően egy szabadon terjeszthető C/C++ fejlesztőeszközt is tartalmaz. A DevCppdevcpp4970-gcc295.exe állományával Windows alatt futtatható, ANSI C/C++ fejlesztőeszköz telepíthető a rendszerünkbe. Minden tanulási folyamat fontos része az önellenőrzés, amihez a CD-melléklet Teszt könyvtárában elhelyezett, a Windows98/2000/XP alatt működő tesztprogram, illetve az itt található feladatsorok nyújtanak hathatós segítséget.
A könyv tartalomjegyzéke
Bevezetés I. A C++ MINT EGY JOBB C NYELV C++ program szerkezete Az első C++ program Megjegyzések használata Több modulból álló C++ program
Alaptípusok, változók és konstansok A C++ nyelv típusai Típuselőírások, típusmódosítók A felsorolt típus (enum) Saját típusok előállítása Konstansok a C++ nyelvben Értékek, címek, mutatók A void* típusú általános mutató Többszörös indirektségű mutatók
Operátorok és kifejezések Aritmetikai operátorok Léptető operátorok Bitműveletek Biteltoló műveletek A sizeof operátor A vessző operátor A fetételes operátor Az érvényességi kör (hatókör) operátor Statikus és dinamikus helyfoglalású változók használata A new és a delete operátorok használata Konstansok használata Saját típus előállítása Szabványos I/O használata
A C++ nyelv utasításai Utasítások és blokkok Az if utasítás A switch utasítás Ciklusutasítások A while ciklus A for ciklus A do-while ciklus
Származtatott típusok Tömbök, sztringek és mutatók Egydimenziós tömbök Többdimenziós tömbök Karaktersorozatok (sztringek) Felhasználó általdefiniált adattípusok A struct struktúratípus Struktúratömbök
Függvények Függvények definíciója és deklarációja A függvények paraméterezése és a függvényérték A függvényhívás Különböző típusú paraméterek Aritmetikai típusú paraméterek Felhasználói típusú paraméterek Tömbök átadása függvénynek Sztringparaméterek A függvény, mint argumentum Alapértelmezés szerinti (default) argumentumok Változó hosszúságú paraméterlista A main() függvény paraméterei és visszatérési értéke Rekurzív függvények használata Inline függvények Függvénynevek átdefiniálása (overloading) Általánosított függvények (template)
Névterek és modulok használata Saját névterek kialakítása és használata Az extern tárolási osztály Több modulból álló C++ program
Algoritmusok programozása Osztók, legnagyobb közös osztó, legkisebb közös többszörös keresése Rendezési algoritmusok Interpolációk
Láncolt lista Előre-hátra láncolt lista
Fájlkezelés struktúrák felhasználásával Struktúrák írása állományba és olvasása állományból
II. AZ OBJEKTUM-ORIENTÁLT C++ NYELV Bevezetés az objektum-orientált C++ nyelvbe Mintafeladat: Műveletvégzés struct használatával
Osztályok Az osztály tagjainak elérése Az osztályok friend mechanizmusa Statikus helyfoglalású objektumpéldány
Konstruktorok és destruktorok Konstruktorok Destruktorok
Operátorok túlterhelése (operator overloading) Az osztályok bővítése input/output műveletekkel
Az öröklés (öröklődés) mechanizmusa Származtatott osztályok Korai kötés - bezáródás jelensége Késői kötés - virtuális tagfüggvények Öröklés több osztálytól Öröklés helyett beágyazás
Általánosított osztályok (templates) Specializáció és példányosítás Sablonok alkalmazása öröklött objektumok esetén
Objektum-orientált láncolt-lista Lista készítése előre-hátra láncolással Listaelem törlése a láncból Listaelem beszúrása a láncba névsor szerint
Numerikus módszerek objektum-orientált felfogásban Interpoláció Integrálás Gyök meghatározása érintő módszerrel
Egy osztállyal feljebb léphetünk? A C++ nyelv bővítése a halmaztípussal Saját sztring típus és a hozzá tartozó műveletek definiálása A szabványos sablontár (STL) alkalmazása A fastruktúra (tree) megvalósítása Kettős lista használata
FÜGGELÉK A Dev-C++ fejlesztői környezet használata Objektum-orientált program állományai Új project létrehozása A program futtatása Project betöltése
FC++ óravázlatok 1. Gyakorlat 2. Gyakorlat 3. Gyakorlat 4. Gyakorlat 5. Gyakorlat 6. Gyakorlat 7. Gyakorlat 8. Gyakorlat 9. Gyakorlat 11. Gyakorlat 12. Gyakorlat 13. Gyakorlat 15. Gyakorlat 16. Gyakorlat
A CD-melléklet tartalomjegyzéke Tárgymutató
|