C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat
Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember
A C++ programozási nyelv
Soós Sándor
1/12
Input-output C++ -ban ● ● ●
C++ -ban is használható minden C-beli megoldás Újítás: Streamek Mi az a stream? – adatfolyam – egy olyan osztálycsomag (package), ami nagyon hatékony és kényelmes input-output kezelést tesz lehetővé. – egységes módon kezelhetjük a kiírást és beolvasást console-ra (képernyő, billentyűzet), file-okba, vagy bármilyen más I/O eszközre.
A C++ programozási nyelv
Soós Sándor
2/12
A streamek használata ●
●
● ● ● ●
●
Létrehozzuk és megnyitjuk a streamet, amivel adatcserét akarunk folytatni. A rendszer automatikus létrehozza és megnyitja a cin, cout, cerr streameket: – cin: standard input (pl. billentyűzet) – cout: standard output (pl. monitor) – cerr: standard hibakimenet (pl. monitor) – mindhárom átirányítható az operációs rendszerben Írás, olvasás, vezérlés Bezárjuk a streamet A rendszer automatikus bezárja a cin, cout, cerr streameket. Egyelőre csak a standard I/O-val foglalkozunk, a többi streammel később Ehhez az iostream.h-t kell "includálni"
A C++ programozási nyelv
Soós Sándor
3/12
Hogyan írunk, olvasunk a streamekkel? ●
●
●
Minden streammel és minden típussal ugyanazt az operátort használjuk: – streamre írás: <<, pl. cout << "Hello Világ"; – stream-ről olvasás: >>, pl. cin >> str; A stream operátorok láncolhatók: – cout << "Az x értéke: " << x << endl; A kiírás formátuma ugyanilyen módon vezérelhető az iomanip műveleteivel – Lásd a következő dián!
A C++ programozási nyelv
Soós Sándor
4/12
A kiírás módosítása: iomanip.h ●
●
●
"Includáljuk" az iomanip.h header file-t – #include
A következő manipulátorokat használhatjuk: – setw(int): beállítja a kiírás szélességét – setfill(int): beállítja a kitöltő karaktert – setprecision(int): beállítja a lebegőpontos számok pontosságát – hex: bekapcsolja a hexa kiírást – dec: bekapcsolja a decimális kiírást Hasonlóképpen használhatjuk az endl-t soremelésre
A C++ programozási nyelv
Soós Sándor
5/12
Példaprogram streamekre #include #include int main(int argc, char* argv[]) { int number = 901; cout << setw(10) << setfill('#') << number << endl; cout << dec << number << endl; cout << hex << number << endl; cout << setw(12) << number << endl; cout << setw(16) << setfill('@') << number << endl; cout << "Text" << endl; cout << 123 << endl; cout << setw(8) << setfill('*') << "Text" << endl; double d1 = 3.141592; double d2 = 45.9876; double d3 = 123.9577; cout << "d1 is " << d1 << endl; cout << "setting precision 3 " << setprecision(3) << d1 << endl; cout << d2 << endl; cout << d3 << endl; cout << 4214.8968 << endl; return 0; } A C++ programozási nyelv
Soós Sándor
6/12
A program kimenete #######901 901 385 #########385 @@@@@@@@@@@@@385 Text 7b ****Text d1 is 3.14159 setting precision 3 3.14 46 124 4.21e+003 Press any key to continue
A C++ programozási nyelv
Soós Sándor
7/12
Emlékeztető az előadásról ● ● ●
Az objektum orientált programozás alapfogalmai A struktúra, record fogalma Különbségek a C és a C++ között – tagfüggvények – automatikusan lefutó függvények ● konstruktorok ● destruktorok – hozzáférési hatáskörök szabályozása – öröklés
A C++ programozási nyelv
Soós Sándor
8/12
Tervezzük meg a következő programot! ●
●
Autókat fogunk nyilvántartani a következő adatokkal: – rendszám – átlagfogyasztás – típus – súly – ajtószám – a kilométeróra állása – hengerűrtartalom – gyártási év A következő információkat szeretnénk megtudni egy autóról: – Hány éves az autó? – Mennyibe kerül egy út ezzel az autóval? – Mennyi az éves súlyadó erre az autóra? – Hány liter üzemanyagot használt el eddig az autó? – Melyik a legfiatalabb, legöregebb autó a flottában? – Ellenőrizzük, hogy csak helyes értékeket lehessen megadni az autóról!
A C++ programozási nyelv
Soós Sándor
9/12
Tervezzük meg a programot hagyományos módon! ● ● ●
Egy struktúra Különböző függvények a válaszok előállítására Különböző függvények a mezők ellenőrzött beállítására
A C++ programozási nyelv
Soós Sándor
10/12
Tervezzük meg a programot objektum-orientált módon! ● ● ● ● ●
Egy struktúra Tagfüggvények a válaszok előállítására Tagfüggvények a mezők ellenőrzött beállítására Konstruktorok Hozzáférési jogosultságok beállítása
A C++ programozási nyelv
Soós Sándor
11/12
Összefoglalás ●
● ● ● ● ● ● ● ● ● ●
C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat Input-output C++ -ban A streamek használata Hogyan írunk, olvasunk a streamekkel? A kiírás módosítása: iomanip.h Példaprogram streamekre A program kimenete Emlékeztető az előadásról Tervezzük meg a következő programot! Tervezzük meg a programot hagyományos módon! Tervezzük meg a programot objektum-orientált módon!
A C++ programozási nyelv
Soós Sándor
12/12