Tài liệu Sách : C++ và lập trình hướng đối tướng ( GS Phạm Văn Ất )

Thảo luận trong 'Lập Trình' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    167
    Điểm thành tích:
    0
    Xu:
    0Xu
    NHÀ XUẤT BẢN KHOA HỌC KỸ THUẬT

    TG : GS PHẠM VĂN ẤT


    Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình thành các hàm, thủ tục, chúng được dùng để xử lý dữ liệu nhưng lại tách rời các cấu trúc dữ liệu. Thông qua các ngôn ngữ Foxpro, Pascal, C đa số những người làm Tin học đã khá quen biết với phương pháp lập trình này.

    Lập trình hướng đối tượng dựa trên việc tổ chức chương trình thành các lớp. Khác với hàm và thủ tục, lớp là một đơn vị bao gồm cả dữ liệu và các phương thức xử lý. Vì vậy lớp có thể mô tả các thực thể một cách chân thực, đầy đủ cả phần dữ liệu và yêu cầu quản lý. Tư tưởng lập trình hướng đối tượng được áp dụng cho hầu hết các ngôn ngữ mới chạy trên môi trường Windows như Microsoft Access, Visual Basic, Visual C. Vì vậy việc nghiên cứu phương pháp lập trình mới này là rất cần thiết đối với tất cả những người quan tâm, yêu thích Tin học.

    C ra đời năm 1973 với mục đích ban đầu là để viết hệ điều hành Unix trên máy tính mini PDP. Sau đó C đã được sử dụng rộng rãi trên nhiều loại máy tính khác nhau và đã trở thành một ngôn ngữ lập trình cấu trúc rất được ưa chuộng.

    Để đưa C vào thế giới hướng hướng đối tượng, năm 1980 nhà khoa học người Mỹ B. Stroustrup đã cho ra đời một ngôn ngữ C mới có tên ban đầu là “C có lớp”, sau đó đến năm 1983 thì gọi là C++. Ngôn ngữ C++ là một sự phát triển mạnh mẽ của C. Trong C++ chẳng những đưa vào tất cả các khái niệm, công cụ của lập trình hướng đối tượng mà còn đưa vào nhiều khả năng mới mẻ cho hàm. Như vậy C++ là một ngôn ngữ lai cho phép tổ chức chương trình theo các lớp và các hàm. Có thể nói C++ đã thúc đẩy ngôn ngữ C vốn đã rất thuyết phục đi vào thế giới lập trình hướng đối tượng và C++ đã trở thành ngôn ngữ hướng đối tượng nổi bật trong những năm 90.

    Cuốn sách này sẽ trình bầy một cách hệ thống các khái niệm của lập trình hướng đối tượng được cài đặt trong C++ như lớp, đối tượng, sự thừa kế, tính tương ứng bội và các khả năng mới trong xây dựng, sử dụng hàm như: đối tham chiếu, đối mặc định, hàm trùng tên, hàm toán tử. Có một số vấn đề còn ít được biết đến như cách xây dựng hàm với số đối bất định trong C cũng sẽ được giới thiệu. Các chương từ 1 đến 10 với cách giải thích tỉ mỉ và với gần 100 chương trình minh hoạ sẽ cung cấp cho bạn đọc các khái niệm, phương pháp và kinh nghiệm lập trình hướng đối tượng trên C++. Mục lục cuối sách sẽ hệ thống ngắn gọn phương pháp phân tích, thiết kế và lập trình hướng đối tượng trên bình diện chung.

    Cuốn sách gồm 10 chương và 6 phụ lục

    Chương 1 hướng dẫn cách làm việc với phần mềm TC++ 3.0 để thử nghiệm các chương trình, trình bầy sơ lược về các phương pháp lập trình và giới thiệu một số mở rộng đơn giản của C++ .

    Chương 2 trình bầy các khả năng mới trong việc xây dựng và sử dụng hàm trong C++ như biến tham chiếu, đối có kiểu tham chiếu, đối có giá trị mặc định, hàm trực tuyến, hàm trùng tên, hàm toán tử.

    Chương 3 nói về một khái niệm trung tâm của lập trình hướng đối tượng là lớp gồm: Định nghĩa lớp, khai báo các biến, mảng đối tượng (kiểu lớp), phương thức, dùng con trỏ this trong phương thức, phạm vi truy xuất của các thành phần, các phương thức toán tử.

    Chương 4 trình bầy các vấn đề tạo dựng, sao chép, huỷ bỏ các đối tượng và các vấn đề khác có liên quan như: Hàm tạo, hàm tạo sao chép, hàm huỷ, toán tử gán, cấp phát bộ nhớ cho đối tượng, hàm bạn, lớp bạn.

    Chương 5 trình bầy một khái niệm quan trọng tạo nên khả năng mạnh của lập trình hướng đối tượng trong việc phát triển, mở rộng phần mềm, đó là khả năng thừa kế của các lớp.

    Chương 6 trình bầy một khái niệm quan trọng khác cho phép xử lý các vấn đề khác nhau, các thực thể khác nhau, các thuật toán khác nhau theo cùng một lược đồ thống nhất, đó là tính tương ứng bội và phương thức ảo. Các công cụ này cho phép dễ dàng tổ chức chương trình quản lý nhiều dạng đối tượng khác nhau.

    Chương 7 nói về việc tổ chức vào - ra trong C++. C++ đưa vào một khái niệm mới gọi là các dòng tin (Stream). Các thao tác vào - ra sẽ thực hiện trao đổi dữ liệu giữa bộ nhớ với dòng tin: Vào là chuyển dữ liệu từ dòng nhập vào bộ nhớ, ra là chuyển dữ liệu từ bộ nhớ lên dòng xuất. Để nhập xuất dữ liệu trên một thiết bị cụ thể nào, ta chỉ cần gắn dòng nhập xuất với thiết bị đó. Việc tổ chức vào ra theo cách như vậy là rất khoa học và tiện lợi vì nó có tính độc lập thiết bị.

    Chương 8 trình bầy các hàm đồ hoạ sử dụng trong C và C++. Các hàm này được sử dụng rải rác trong toàn bộ cuốn sách để xây dựng các đối tượng đồ hoạ.

    Chương 9 trình bầy các hàm truy xuất trực tiếp vào bộ nhớ của máy tính, trong đó có bộ nhớ màn hình. Các hàm này sẽ được sử dụng trong chương 10 để xây dựng các lớp menu và cửa sổ .

    Chương 10 giới thiệu 5 chương trình tương đối hoàn chỉnh nhằm minh hoạ thêm khả năng và kỹ thuật lập trình hướng đối tượng trên C++

    Phụ lục 1 trình bầy các phép toán trong C++ và thứ tự ưu của chúng.

    Phụ lục 2 liệt kê một danh sách các từ khoá của C++.

    Phụ lục 3 trình bầy bảng mã ASCII và mã quét của các ký tự.

    Phụ lục 4 trình bầy một vấn đề quan trọng nhưng còn ít được nói đến trong các tài liệu, đó là cách sử dụng con trỏ void để xây dựng các hàm với số đối không cố định giống như các hàm printf và scanf của C.

    Vì trong C++ vẫn sử dụng các hàm của C, nên trong phụ lục 5 sẽ giới thiệu tóm tắt hơn 200 hàm để bạn đọc tiện việc tra cứu.

    Cuối cùng, phụ lục 6 trình bầy một cách ngắn gọn phương pháp phân tích, thiết kế và lập trình hướng đối tượng trên bình diện chung.

    Khi viết chúng tôi đã hết sức cố gắng để cuốn sách được hoàn chỉnh, song chắc chắn không tránh khỏi thiếu sót, vì vậy rất mong nhận được sự góp ý của độc giả.

    Nhân dịp này chúng tôi xin chân thành cám ơn cử nhân Nguyễn Văn Phác đã tận tình giúp đỡ trong việc hiệu đính và biên tập cuốn sách này.





    MỤC LỤC

    Trang

    Lời nói đầu 3

    - Chương 1. C++ và lập trình hướng đối tượng 6

    §1. Làm việc với TC++ 3.0 6

    §2. C và C++ 7

    §3. Lập trình cấu trúc và lập trình hướng đối tượng 8

    §4. Một số mở rộng đơn giản của C++ so với C 14

    §5. Vào ra trong C++ 20

    §6. Cấu trúc, hợp và kiểu liệt kê 25

    §7. Cấp phát bộ nhớ 28

    §8. Các hàm trong C++ 33

    - Chương 2. Hàm trong C++ 36

    §1. Biến tham chiếu (Reference variable) 36

    §2. Truyền giá trị cho hàm theo tham chiếu 40

    §3. Hàm trả về các tham chiếu 47

    §4. Đối có giá trị mặc định 51

    §5. Các hàm trực tuyến (inline) 56

    §6. Định nghĩa chồng các hàm (overloading) 61

    §7. Định nghĩa chồng toán tử 69

    §8. Các ví dụ về định nghĩa chồng toán tử 76

    §9. Các bài toán về ma trận và vec tơ 83

    - Chương 3. Khái niệm về lớp 93

    §1. Định nghĩa lớp 93

    §2. Biến, mảng đối tượng 96

    §3. Con trỏ đối tượng 100

    §4. Đối của phương thức, con trỏ this 103

    §5. Nói thêm về kiểu phương thức và kiểu đối của

    phương thức 110

    §6. Hàm, hàm bạn 123

    §7. Phạm vi truy xuất 140

    §8. Phương thức toán tử 141

    - Chương 4. Hàm tạo, hàm huỷ và các vấn đề liên quan 150

    §1. Hàm tạo (constructor) 150

    §2. Lớp không có hàm tạo và hàm tạo mặc định 156

    §3. Lớp đa thức 160

    §4. Hàm tạo sao chép (copy constructor) 166

    §5. Hàm huỷ (destructor) 176

    §6. Toán tử gán 185

    §7. Phân loại phương thức 193

    §8. Hàm tạo và đối tượng thành phần 196

    §9. Các thành phần tĩnh 206

    §10. Mảng đối tượng 214

    §11. Cấp phát bộ nhớ cho đối tượng 219

    §12. Đối tượng hằng, phương thức hằng 224

    §13. Hàm bạn, lớp bạn 229

    - Chương 5. Dẫn xuất và thừa kế 237

    §1. Sự dẫn xuất và tính thừa kế 237

    §2. Hàm tạo, hàm huỷ đối với tính thừa kế 245

    §3. Phạm vi truy nhập đến các thành phần của lớp cơ sở 251

    §4. Thừa kế nhiều mức và sự trùng tên 255

    §5. Các lớp cơ sở ảo 260

    §6. Một số ví dụ về hàm tạo, hàm huỷ trong thừa kế

    nhiều mức 262

    §7. Toán tử gán của lớp dẫn xuất 270

    §8. Hàm tạo sao chép của lớp dẫn xuất 278

    §9. Hàm phát triển, hoàn thiện chương trình 285

    §10. Bổ sung, nâng cấp chương trình 291

    §11. Từ khái quát đến cụ thể 310

    §12. Toàn thể và bộ phận 316

    - Chương 6. Tương ứng bội và phương thức ảo 317

    §1. Phương thức tĩnh 317

    §2. Sự hạn chế của phương thức tĩnh 323

    §3. Phương thức ảo và tương ứng bội 329

    §4. Sự linh hoạt của phương thức ảo trong phát triển

    nâng cấp chương trình 339

    §5. Lớp cơ sở trừu tượng 343

    §6. Sử dụng tương ứng bội và phương thức ảo 351

    §7. Xử lý các thuật toán khác nhau 356

    - Chương 7. Các dòng tin (stream) 364

    §1. Các lớp stream 364

    §2. Dòng cin và toán tử nhập 365

    §3. Nhập ký tự và chuỗi ký tự từ bàn phím 367

    §4. Dòng cout và toán tử xuất 374

    §5. Các phương thức định dạng 376

    §6. Cờ định dạng 380

    §7. Các bộ phận định dạng và các hàm định dạng 385

    §8. Các dòng tin chuẩn 391

    §9. Xuất và in ra máy in 393

    §10. Làm việc với tệp 398

    §11. Ghi dữ liệu lên tệp 400

    §12. Đọc dữ liệu từ tệp 411

    §13. Đọc ghi đồng thời trên tệp 419

    §14. Xử lý lỗi 425

    §15. Nhập xuất nhị phân 428

    §16. Đọc ghi đồng thời theo kiểu nhị phân 431

    §17. Xây dựng toán tử nhập xuất đối tượng trên tệp 437

    §18. Hệ thống các lớp stream 443

    - Chương 8. Đồ hoạ 446

    §1. Khái niệm đồ hoạ 446

    §2. Khởi động hệ đồ hoạ 448

    §3. Lỗi đồ hoạ 451

    §4. Mầu và mẫu 452

    §5. Vẽ và tô 454

    §6. Chọn kiểu đường 460

    §7. Cửa sổ (viewport) 464

    §8. Tô điểm, tô miền 467

    §9. Xử lý văn bản trên màn hình đồ hoạ 471

    §10. Cắt hình, dán hình và tạo ảnh chuyển động 476

    §11. Một số chương trình đồ hoạ 478

    §12. In ảnh từ màn hình đồ hoạ 488

    - Chương 9. Truy nhập trực tiếp vào bộ nhớ 491

    §1. Các hàm truy nhập theo địa chỉ phân đoạn 491

    §2. Bộ nhớ màn hình văn bản 492

    §3. Chuyển đổi địa chỉ 494

    §4. Các ví dụ minh hoạ 495

    - Chương 10. Một số chương trình hướng đối tượng

    trên C++ 504

    §1. Lớp cửa sổ 504

    §2. Lớp menu 512

    §3. Lớp hình học 518

    §4. Các lớp ngăn xếp và hàng đợi 525

    §5. Các lớp sắp xếp 537

    §6. Ví dụ về các lớp sắp xếp 544

    Phụ lục 1. Thứ tự ưu tiên của các phép toán 550

    Phụ lục 2. Các từ khoá của C++ 553

    Phụ lục 3. Bảng mã ASCII và mã quyét 554

    Phụ lục 4. Hàm với đối số bất định trong C 561

    Phụ lục 5. Tóm tắt các hàm của Turbo C theo thứ tự

    ABC 568

    Phụ lục 6. Phân tích, thiết kế và lập trình hướng đối

    tượng 577

    §1. Phân tích hướng đối tượng 577

    §2. Thiết kế hướng đối tượng 594

    §3. Lập trình hướng đối tượng 618




    Chịu trách nhiêm xuất bản:

    PGS. PTS. Tô Đăng Hải

    Biên tập:

    Trần Quang

    Nguyễn Văn Phác

    Sửa bản in:

    Nguyễn Văn Phác

    Trình bầy bìa:

    Quang Sơn





    CHÚ THÍCH : CUỐN SÁCH NÀY DƯỚI DẠNG FILE WORD VÀ GỒM 632 TRANG
     

    Các file đính kèm:

Đang tải...