cplusplusupdated 120814031902 phpapp02

231 299 0
cplusplusupdated 120814031902 phpapp02

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tìm hiểu ngôn ngữ C++ dành cho những ai đam mê ngành công nghệ thông tin. C++ là ngôn ngữ lập trình thuộc hướng đối tượng và nó cũng khá phổ biến. Có khá nhiều chương trình được viết bằng ngôn ngữ này. Tài liệu này là tài liệu mang tính cơ bản những chương trình đầu tiên của C++

C++ L NG NG Tài li u h c t p Trang | PH L C GI I THI U .7 NG PHÁT TRI N TÍCH H P IDE 10 N V C++ 23 CH BI N VÀ CÁC KI U D LI U 26 T khóa 26 Ki u d li u nguyên th y 27 Khai báo bi n 28 Ph m vi tác d ng c a bi n 29 Kh i t o giá tr cho bi n 30 Kh i t o giá tr cho bi n 31 Gi i thi u v xâu kí t 32 H NG 34 H ng s nguyên 34 H ng s th c có d u ch ng 34 H ng kí t h ng xâu kí t 35 H ng logic 36 t h ng #define 36 Khai báo h ng const 37 TOÁN T 38 Toán t gán 38 Toán t th c hi n phép toán s h c 39 Toán t gán h p nh t 40 Toán t m 40 Toán t logic 42 Toán t u ki n 43 Toán t phân tách 45 Trang |2 C++ Toán t so sánh 41 Toán t d ch bit 45 Toán t chuy i ki u d li u 48 Các toán t khác 49 Th t a toán t 49 XU T NH N 52 Xu t d li u chu n cout 52 Nh p d li u chu n cin 53 Nh p d li u nh l p stringstream 55 U TRÚC L C u trúc l U KHI N 58 u ki n: if else 58 C u trúc l p 60 C u trúc l a ch n: switch 67 HÀM 72 Khai báo s d ng hàm 73 Ph m vi tác d ng c a bi n 77 Hàm không tr v giá tr - Hàm void 78 Tham bi n tham tr 79 Giá tr m nh c a tham s hình th c 82 Ch ng ch t hàm 83 Hàm n i n 84 quy 85 UD LI U CÓ C U TRÚC 88 M ng 88 Xâu kí t 91 CON TR 93 Toán t tham chi u & 93 c * 94 Khai báo bi n tr 96 Con tr , m ng xâu kí t 98 Trang |3 C++ Toán t tham chi Các phép toán s h c tr 100 Con tr tr vào tr 102 Con tr void 104 Con tr null 105 Con tr hàm 105 B NH NG 107 Toán t new new[] 107 Toán t delete delete[] 109 UD LI U STRUCT VÀ CON TR STRUCT 110 Struct 110 Con tr struct 114 Struct l ng 115 c b nh c a struct 115 CÁC KI U D Ki u d li u t Ki u d li LI U KHÁC 117 117 ng 117 Ki u d li u union n danh 118 Ki u d li u enum 118 NG 120 L ch s hình thành 120 L p ng 126 Hàm t o hàm h y 130 Ch ng ch t hàm t o 132 Sao chép hàm t o 133 Encapsulation 139 Con tr c khai báo nh t khóa struct union 141 Con tr this 141 T khóa static 143 Trang |4 C++ L ng 140 Hàm b n l p b n 144 Ch ng ch t toán t 147 Tính k th a - Inheritance 153 Các m c truy c p 156 th a Multiple Inheritance 159 Polymorphism 160 Tính tr ng hóa - Abstraction 172 Hàm m u Template Function 173 L p m u Template class 173 178 T khóa namespace 178 T khóa using 179 Ph m vi c a namespace 180 nh danh cho namespace 181 Namespace std 181 NGO I L 182 M 182 M throw 182 n chu n exception 183 C V I FILE 186 M file 186 188 n 188 Ki m tra tr ng thái c a c hi u 189 Con tr get put 190 File nh phân 192 ng b hóa 193 CÁC L N 194 L p s ph c complex 194 Trang |5 C++ B L p stack 196 L i queue 197 L p vector 198 L p string 200 L p list 203 L p map 203 L p set 204 Các l n nh p xu t 204 NG D N TH C HÀNH 212 BÀI TH C HÀNH S 212 BÀI TH C HÀNH S 213 BÀI TH C HÀNH S 214 BÀI TH C HÀNH S 215 BÀI TH C HÀNH S 215 BÀI TH C HÀNH S 216 BÀI T P NÂNG CAO 218 BÀI T P L N 225 DANH SÁCH HÌNH 228 TRA C U T KHÓA 229 C++ TÀI LI U THAM KH O 230 Trang |6 GI I THI U C u trúc c a giáo trình c chia làm 17 m i c chia làm m c khác c s p x p theo trình t t l p trình ng th t nl ng l vi n c gi có th truy c p vào m c b t kì t ph n ph l c n m u sách Nhi u m c bao g m ví d mô t cách s d ng Tôi khuyên b c ví d có th hi u m n mã p theo M t cách th c t ng ki n th c nh s a, b sung mã l nh m i d a ví d m c a b n thân t hi u m ti c nh uy c a v n i dung mà ta c xong giáo trình, cung c p m t s t p th c hành ngh c gi nên th nghi m Hãy gi i nh ng t p này, chúng s r t h u ích giúp b l i ki n th c môn h c hi u sâu s n lý thuy t M u n a mà c gi c n c trang cu i c a cu n n c m t s thu t ng anh-vi c s d ng giáo trình Tôi ng s d ng tên g i phù h p nh t v i giáo trình hi n hành Tuy nhiên, c gi m thu t ng ti có th tham kh o thêm tài li u chuyên môn ti ng anh M t vài ý v s a C C++ Chu n ANSIc m t t ch c tiêu chu n qu c t th ng nh c th c m t l i vào Trang |7 C++ Khi vi t giáo trình này, không th tránh kh i sai sót R t mong s n quý báu c a b c gi ng nghi p M i s a ch email: dnhthanh@hueic.edu.vn Hi v ng v i ý ki a b n, giáo trình s ngày hoàn thi nt t th i gian t nhi u trình d ch không h tr i bao g m c chu n ANSI-C++ Giáo trình c xây d ch hi i h tr chu n ANSI-C++ m b o r ng ví d s ho ng t t n u c gi s d ng m t trình d ch h tr ANSI-C++ Có nhi u s ch n l a, có th mi n phí ho c ph n m i Trong giáo trình này, gi i thi n các b n hai công c biên d ch C++ GCC MinGW mi n phí Visual C++ i Trình biên d ch c xây d ng ch y u ch d ng ch b hi n th k t qu M i trình d u h tr ch d ch console V i m t ng phát tri n tích h p IDE cho C++ mi n phí, có th s d Codeblocks ho c Eclipse Chúng ng phát tri n tích h p h tr so n th o biên d ch C++ Chúng h tr biên d ch c C C++ V i CodeBlocks, có th t i ph n m m t i a ch http://www.codeblocks.org/downloads i v i Eclipse, m t trình so n th o biên d ch ngôn ng l p trình chuyên nghi toàn mi n phí (vì ta có th c u hình k t h p v i công c biên d ch t ng phát tri n tích h p cho ngôn ng l p trình khác nhau) Chúng ta có th so n th o biên d ch Java, PHP, JSP n nhiên c C/C++ t d án mã ngu n m , tiêu t n hàng tri la c a IBM t i v b n m i nh t cho n th Helios, ta có th truy c n a ch i1 i v i Eclipse, nên s d ng k t h p v i trình biên d ch C++ MinGW, t d án m Chúng ta có th t iv t a ch i2 V i Eclipse, công vi c c u i ph c t p t trình so n th o t v i Ta có th s d so n th o nhi u ngôn ng l p trình b t thêm plugin h tr Nhi u nhà phát tri d ng Eclipse làm n n t i http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/helios/R/eclipse-cpp-helioswin32.zip http://nchc.dl.sourceforge.net/project/mingw/Automated%20MinGW%20Installer/mingw-getinst/mingw-get-inst-20100831/mingw-get-inst-20100831.exe Trang |8 C++ Các ví d cu cho vi c phát tri n ng d ng c a mình: Embarcadero s d phát tri n JBuider, Adobe s d phát tri n Flash Buider r t nhi u hãng ph n m m n i ti ng khác N u m t l p trình viên Java, Eclipse m t s l a ch n không th b qua N u phát tri n Flash theo d án mã ngu n m t Adobe, Eclipse l a ch n hoàn h o N u phát tri n C/C++, v i trình so n th l a ch n không t i Vi c s d ng thành th o Eclipse s m t l i th cho ti n hành nghiên c u Java, l p sau i thi u ng phát tri n tích h p i trình biên d ch chuyên nghi p n i ti ng nh t h u hành Windows Ta có th s d phát tri n ng d ng n n NET ho c ng d ng Win32 N u mu n phát tri n ng d ng theo ng c a Microsoft, ta nên s d ng Visual Studio Phiên b n m i nh t n th m VS 2010 c n ng, nghiên c u Visual C++, ch n l a phiên b n dành cho Win32 mà không ph i ng d ng CLI (common language infrastructure) b c phát tri n n n NET Và Visual C++ for NET có m t s khác bi t so v i Visual C++ for Win32 C++ Bên c Trang |9 Ph n Th c hành L BÀI TH C HÀNH S tr u ng C++ Xây d ng m t l tr u ng Vector ch c o thu n túy dài), SinGoc (tính sin c a góc gi a hai Vector), TrucGiao (tìm vector tr c giao t c vector vuông góc v i vector trên), hai thu c tính thành viên t c setter (không s d ng hàm t ng h p này, l p tr u ng kh t o m t s th hi n, hàm t c th a k ); ho c s d ng c tham chi u getter tr u Xây d ng l p Vector3D th a k t l thêm t c getter, s c o thu n túy nêu vector chi u (có ba t Bài th c hành s m t C m i tr u u (ch có hai t x, y z) 20 15 70-80 +1 - M i th c hành có th th c hi n i h n ng Vector th c thi ng Vector (b sung ng) th c thi x y); Vector3D 20 15 60-70 80-90 +1.5 nhà ho c l p 20 10 90-100 +2 in p - H n n p m i th c h ng v i bu i th c hành Ví d : Bài th c hành s ph i n n vào bu i th nh t (m mt u mu n m t bu i, tr m N u n p t t c vào bu i cu i cùng, t t t T r a n g | 216 C++ Xây d ng l p Vector2D th a k t l c o thu n túy nêu Ph n Th c hành m m Quá trình s m Th c hành/10 i C++ m t ng k t môn h c g m có c Quá trình m chuyên c n; m Quá trình 2, ng v i tr c nghi m; m Quá trình m thi cu i s b ng k t qu thi cc m t ng k t s c tính theo công th c: T r a n g | 217 Ph n Bài t p BÀI T P NÂNG CAO Bài t p Xây d tính t n , x k tham s nh p vào t bàn phím Bài t p Khai báo chu i kí t b ng cách s d ng tr th c hi n câu sau: - m s kí t có giá tr a - o xâu kí t - ot - ms t - Nhóm kí t lo i Ví d : u: aaabbbaacbd Xâu in ra: 5a4b1c1d - Thu t toán nén d li u RLE (Run length Encoding) thu t toán nén không m t d li u loss cs d nén nh i v i nh d ng bmp Thu t toán RLE s th c hi n m s kí t gi ng liên ti p, sau Trang | 218 Ph n Bài t p thay th toàn b dãy kí t gi ng b ng s kí t kí t ng Ví d : c u: aaaabbbbcdddAA Xâu sau nén: 4a4b1c3d2A + Hãy xây d + Hãy xây d phím nén d li u V i d li u nh p vào t bàn phím gi i nén d li u V i d li u nh p vào t bàn Bài t p Xây d ng hàm th c hi n ch b ng hai cách: khai báo theo ki m ng m t chi u ng khai báo b ng tr - Hàm nh p d li u cho m ng chi u - Hàm xu t d li u cho m ng chi u - Hàm tính t ng ph n t c a m ng - Hàm tính t ng ph n t c a m ng s nguyên t - Hàm tính t ng ph n t c a m ng s - Hàm tính t ng s nguyên t c a m ng l - Hàm tính t ng ph n t c a m ng s - Hàm m s ph n t c a m ng s nguyên t - Hàm m s ph n t c a m ng s - Hàm m s ph n t c a m ng s nguyên t l - Hàm m s ph n t c a m ng s n n - Hàm tìm ki m ch s ph n t có giá tr x c a m ng - Hàm tìm ch s c a ph n t có giá tr nh nh t - Hàm tìm ch s c a ph n t có giá tr l n nh t T r a n g | 219 C++ - Hàm tính giá tr trung bình c a m ng Ph n Bài t p - Hàm s p x p m ng theo th t x p b t kì) n (có th s d ng thu t toán s p - Hàm tính giá tr trung bình c a ph n t c a m ng có giá tr ch n - Hàm d n t t c ph n t ch n v m t phía, ph n t l v m t phía Ví d , m u là: k t qu s - nh ph n t có giá tr g n v i giá tr trung bình c a m ng nh t y ph n t c a m ng lên n v trí Ví d m N u n = 2, m c s B sung hàm main ch nh Các hàm c u n nh cm t c khai báo theo prototype hoàn Bài t p Xây d th c hi n ch b ng hai cách khai báo: theo ki u ng hai chi u ng khai báo b ng tr - Hàm nh p giá tr cho m ng hai chi u - Hàm xu t giá tr c a m ng hai chi u theo d ng ma tr n - Hàm c ng hai ma tr n - Hàm nhân hai ma tr n - Hàm thay th t t c ph n t có giá tr l c a ma tr n thành - Hàm thay th t t c ph n t ng âm c a ma tr n b ng ph n t - Hàm thay th ph n t có giá tr nh b ng ph n t a c a ma tr n vuông Các hàm yêu c c xây d ng theo prototype Các ma tr n (m ng hai chi u) t p ma tr n vuông B vi n c n thi cm nh Bài t p T r a n g | 220 C++ - trung bình c a ma tr n Ph n Bài t p Hãy ch n l l p trình gi p l ng a) Xây d ng l p TamGiac (tam giác) g m có ba c nh v sau: c - Các p chép hàm t o c kh i t o cho tam giác: không tham s , có tham s - Các p c Getter không - cho bi t có ph i m t tam giác th c s g th c tính di n tích tam giác n u m t tam giác th c s - Các p c nh p/xu t cho tam giác Xây d ng theo toán t b) Xây d ng l sau: m) g m có t - c kh i t o - c c Getter - c tính kho ng cách gi m Xây d ng l p Vector g m có hai thu m mút) Hãy b Vector: - ng c sau cho l p c kh i t o - ng v c Getter - g th dài c a vector c c ng hai vector Xây d ng theo toán t - ng c a hai vector - c tính cosin góc gi a hai vector - c tính tích h T r a n g | 221 ng c a hai vector C++ - Ph n Bài t p Xây d ng l p HinhCau (hình c u) g m hai thu ng v i tâm hình c u bán kính R Hãy b sau cho l p HinhCau: - c kh i t o - ng Diem c c Getter - c tính di n tích hình c u - nh v trí i gi a hình c u m - nh v m i gi a hai hình c u Yêu c u chung: b sung hàm toán t nh p xu t cho m i l ng i Bài Xây d ng l p ConNguoi g m có hai thu c tính thành viên là: tên tu i Các c kh i t ng L p NhanVien th a k t l p ConNguoi, b ng cách b sung thêm hai thu c B sung c kh i t c Getter Các công ty qu n lý nhân viên c ng CongTy có thu c tính: tên công ty, m n, ngân sách hi n có, ngu n thu theo tháng, ngu n chi theo tháng Gi s ngu n chi không bao g m chi phí tr ng CongTy c n d c sa th sa th i nhân viên M t nhân viên s b sa th i, n u m góp chu n c a công ty a h nh m Bài Hãy xây d ng T r a n g | 222 ng d ng theo mô t sau C++ M t công ty s tuyên b phá s n n u v u l c a h b âm V i u l t ng ngân sách hi n có c ng v i m a m i nhân viên tr cho ngu n chi theo tháng tr ti p cho t cho toàn b nhân viên Hãy xây d th c thi mô t Ph n Bài t p -L i dùng g m thu c tính: username, password, câu h i b o m t câu tr l i B ng cho phù h p Khi ch i dùng nh p vào username password N u trùng kh p v i username pas o h th ng thông p thành công i dùng có quy n tri u g th c tính toán c a l p s ph c phân s (c n xây d ng thêm hai l p này) -N có ph i h l -N p không thành công, yêu c u h xác minh r ng t kh u hay không b ng m t câu h i b o m t N u tr i m t kh u p không thành công tr l i sai câu h i b o m t, in i thành viên n thoát Bài M vi n, màu n n, n ch n hay không u có có thu c tính: màu n bên trong, th b c, tình tr c c kh i t i giá tr cho m i thu c c setter) Hãy t o m t m ng 10 ph n t Shape Các giá tr th b trùng (và phân b t 0ng này, t i m i th ch tình tr ng ch n N ng tr ng ch n, ta m i có quy i giá tr cho Hãy b c c n thi c m, tình th c hi n yêu c u Bài i h c T mô hình nh qu n lý sinh viên Trong mô i 10 l ng G i ý: Các l ng mô hình bao g m Sinh viên, Giáo viên ch nhi m, Phòng Công tác h o, Phòng Tài oàn TN, L p, Phòng h c, Môn h Bài 10 T r a n g | 223 C++ Hãy phân tích mô hình qu c, xây d hình này, yêu c u qu Ph n Bài t p ng mô hình qu qu n lý N có tính b c c u c thu nh c thu nh Bi t r ng B GD S GD B Yt S Yt B B Qu c Phòng B Nông Nghi p K th a qu c C++ Hình 23 T r a n g | 224 Ph n Bài t p BÀI T P L N D án Phân tích, thi t k xây d m b o ch n - Trong mô hình qu n lý c m b o thông tin: mã sách, tên sách, tên tác gi t b n, nhà xu t b n, s trang, giá s ng - Cho phép b sung thêm m t ho c nhi u quy n sách - C p nh p l i s n/tr sách - Tìm ki m sách theo tên tác gi ho c tên sách - Ki m tra tình tr ng sách hay không - c thi hình Console Có menu tùy ch n D li u vào t i d ng mã hóa nh phân D án Phân tích, thi t k xây d n lý website bán m b o ch - Trong mô hình qu n lý này, c m b o thông tin: mã hàng, màu s c, c s n xu t, hãng, giá ti n, s ng, th i gian b o hành th u hành hay không, a ch khác hàng, s n tho i khách hàng - Tìm ki m m t hàng theo tên hãng, giá ti c s n xu t - Ki m tra tình tr ng hàng hay không - B sung (nh p thêm hàng) ho c xóa b (bán hàng) D c thi hình Console Có menu tùy ch n D li u vào t i d ng mã hóa nh phân án Phân tích, thi t k xây d T r a n g | 225 n lý nhân viên m b o ch C++ - Ph n Bài t p - Trong mô hình qu n lý này, c m b o thông tin: mã nhân viên, h s u công tác, tình tr ng hôn nhân, b ph n làm vi c - Tìm ki m nhân viên theo h tên - Th ng kê s ng nhân viên theo b ph n làm vi c - B sung (tuy n d ng) ho c xóa b (k t thúc h - ng) c thi hình Console Có menu tùy ch n D li u vào t i d ng mã hóa nh phân D án Phân tích, thi t k xây d ng game FarmVille (m t game n i ti ng Facebook) Trong game này, c m b o ch - Trong mô hình qu n lý này, c m b o thông tin: , t ng s ti n ng game: ng, tr giá, th i gian kh i t o, th i gian thu ho ch - Tìm ki - Th ng kê s ti - B sung i theo h tên cc am ng game - Khi thu ho ch m ng, tr giá c ng s c c p nh p vào cho t ng ti n c ng th i b h y i ng ch có th c thu ho ch n u: th i gian hi n t i th i gian kh i t o >= th i gian thu ho ch - u n, không yêu c u t o giao di h a - Phân tích mô hình lên gi y (n p b n in) T r a n g | 226 C++ Ghi chú: Các sinh viên n th c bu i th s h i nh c t p l n Khi nh c t p l n, yêu c u b sung c a gi ng viên, sinh viên c n th c thi thên yêu c u sau: Ph n Bài t p hoàn ch nh t p ng C++ Gi ng viên C++ -N tin word (*.doc; *.docx) ph sinh viên, l p p l n: L ng d T r a n g | 227 DANH SÁCH HÌNH Hình T o m i d án CodeBlocks 10 Hình Kh i t c 11 Hình C u hình MinGW Eclipse Helios 12 Hình Ch ng d c bin c a MinGW 13 Hình - T o m i d án 13 Hình - C c c a m t d án 14 Hình - Biên d ch m t d án 14 Hình - H p tho i t o m i class 15 Hình - Giao di n t ng th c a Visual Studio 2010 17 Hình 10 - T o d án Win32 Console 18 Hình 11 - Win32 Application Wizard 18 Hình 12 - B sung thêm m t t p tin 20 Hình 13 - B sung thêm l ng 20 Hình 14 - T o l p b ng Class Wizard 21 Hình 15 - Xem bi l p 22 Hình 16 minh h a vi c s d ng hàm 72 Hình 17 Tham chi u tr 94 Hình 18 Tham chi u ng c tr 95 Hình 19 a ch c a tr 101 Hình 20 Minh h l p 125 Hình 21 Tính k th a 153 Hình 22 L o 164 Hình 23 c 224 Trang | 228 TRA C U T M T S THU T NG ANH-VI CS D NG TRONG GIÁO TRÌNH D ch sang ti ng Vi t tr u ng u ng s h c gán / L p cha d ch bit L Tính tr Toán t Toán t L Toán t L p L p Toán t phân tách Toán t gán h p nh t Toán t u ki n Ngo i l Toán t chuy i ki u d li u Toán t m Che d u/ n d u thông tin Tính th a k / Tính k th a S th hi n Toán t logic ak th a ng Toán t Ch ng ch t toán t Ch ng ch t Quá t i Tí nh Nguyên m u Hàm o thu n túy Tham chi u Toán t quan h so sánh C++ Nguyên b n ti ng Anh Abstract base class Abstraction Arithmetic operators Assignment operators Base class Bitwise operators Child class/SubClass Class Comma operators Compound assignment operator Conditional operators Encapsulation Exception Explicit type casting operators Increase and decrease operators Information hiding Inheritance Instance Logical operators Multiple inheritance Object Operator Operator overloading Overload Override Polymorphism Prototype Pure virtual function Reference Relational and equality operators KHÓA T r a n g | 229 TÀI LI U THAM KH O C++ [1] http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index jsp // M c: XL C/C++ V8.0 for AIX // Language Reference [2] http://msdn.microsoft.com/enus/library/3bstk3k5%28v=VS.80%29.aspx [3] Ivor Horton// Beginning Visual C++ 2010// Wrox pub [4] C++ for Mathematicians// An introduction for Student and Professional//Edward Scheinerman//Chapman & Hall/CRC T r a n g | 230

Ngày đăng: 11/07/2016, 04:07

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan