Đồ án Hướng dẫn lập trình VC++ 60, mô phỏng điều khiển, gia công CNC

Trong sự phát triển ngày càng lớn mạnh của khoa học công nghệ, vấn đề kết hợp các lĩnh vực điện tử - tin học và cơ khí đang rất được quan tâm .Một trong những đề tài thu hút được sự quan tâm của các sinh viên cơ khí đó là sử dụng ngôn ngữ lập trình để tạo ra các ứng dụng điều khiển và mô phỏng quá trình của máy móc. Một trong những công cụ lập trình hiệu quả và đạt kết quả tốt đó chính là Visual C++, được xây dựng trên nền tảng là ngôn ngữ lập trình hướng đối tượng C++. Trong bản đồ án tốt nghiệp với đề tài là “Hướng dẫn lập trình VC++ 6.0” sẽ trình bày những cách thức làm việc hiệu quả và cơ bản với ngôn ngữ lập trình này , kèm theo đó là các bài minh hoạ . Nội dung của đồ án tốt nghiệp như sau : -Phần I : Tổng quan về lập trình hướng đối tượng -Phần II : Visual C++ 6.0 -Phần III : Hướng dẫn lập trình +Chương 1 :thao tác với các hàm, biến. +Chương 2 : tạo menu, toolbar và các thao tác cơ bản +Chương 3 : sử dụng Font và giờ hệ thống . +Chương 4 : đọc, hiển thị và lưu file text. +Chương 5 : sử dụng Active X để đưa âm thanh vào trong ứng dụng. +Chương 6 : Giao tiếp máy tính . +Chương 7 : VC++ với thiết kế 3D. +Chương 8 : đóng gói chương trình, tạo bộ cài đặt. +Chương 9 : thiết kế mô phỏng chương trình điều khiển, mô phỏng gia công máy CNC. Do giới hạn về mặt thời gian cũng như những hạn chế về mặt kiến thức của người viết nên không thể tránh khỏi những sai sót vì vậy rất mong được sự thông cảm của người đọc. Trong quá trình hoàn thành đề tài ,được sự hướng dẫn tận tình của TS.Bùi Quý Lực , công việc đã được hoàn thành đúng tiến độ. Xin chân thành cảm ơn tới thầy Bùi Quý Lực .

doc159 trang | Chia sẻ: ngtr9097 | Ngày: 28/05/2013 | Lượt xem: 2238 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Đồ án Hướng dẫn lập trình VC++ 60, mô phỏng điều khiển, gia công CNC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Mục lục Mục lục 1 Lời nói đầu 3 Phần 1 .Tổng quan về lập trình hướng đối tượng 1.1. Abstraction ( tính trừu tượng) 4 1.2 .Encap sulation (sự đóng kín) 5 1.3. Modularity (modun hóa) 6 1.4. Hierachy (hệ thống phân cấp) 6 1.5. Kiểm tra kiểu ( typing ) 6 1.6. Bản chất của đối tượng 7 1.7. Mối quan hệ giữa các đối tượng 7 1.8. Bản chất của lớp 8 1.9. Mối quan hệ giữa các lớp 8 Phần 2.Visual C++ 6.0 2.1.Cách cài đặt 10 2.2.Giao diện chương trình 16 2.3.Các thao tác cơ bản với Menu và Toolbar của VC++ 6.0 17 2.4.Các môi trường xây dựng ứng dụng trong VC++ 6.0 19 Phần 3. Hướng dẫn lập trình VC++6.0 Chương 1.Các thao tác với lớp, hàm, biến 3.1.1.Đưa các file có sẵn vào trong chương trình ứng dụng 20 3.1.2.Thêm lớp mới vào trong chương trình 23 3.1.3.Thêm một hàm mới nằm trong lớp 25 3.1.4.Cách thêm một biến mới. 27 Chương 2.Tạo các menu, toolbar và các thao tác cơ bản 3.2.1.Tạo Menu 31 3.2.2.Tạo ToolBar mới 33 3.2.3. Tác động các sự kiện lên đối tượng 34 3.2.4. Đẩy một icon lên nút bấm trong ứng dụng 35 3.2.5.Tạo các ToolTip(chú thích )cho đối tượng 36 3.2.6.Tác động tới biểu tượng chuột trong ứng dụng 38 Chương 3.Sử dụng font và giờ hệ thống 3.3.1.Lấy font hệ thống viết text và thao tác vẽ lên màn hình 39 3.3.2.Thiết kế một Dialog riêng đưa nó vào Dialog chính ,cập nhật giờ hệ thống 45 Chương 4. Đọc, hiển thị và lưu file text 3.4.1.Đọc và hiển thị nội dung file 52 3.4.2.Ghi nội dung lên file 53 3.4.2.1.Ghi nội dung lên file có sẵn 53 3.4.2.2.Ghi dữ liệu lên một file mới 54 3.4.3.Ví dụ minh hoạ . 55 Chương 5.Sử dụng ActiveX trong ứng dụng 66 Chương 6.Giao tiếp máy tính 3.6.1.Các hàm trong VC++ trong giao tiếp máy tính 76 3.6.1.1.Hàm CreateFile 76 3.6.1.2.Hàm SetupComm 78 3.6.1.3.Hàm PurgeComm 79 3.6.1.4.Cấu trúc DCB 79 3.6.1.5.Hàm GetCommState 83 3.6.1.6.Hàm SetCommState 83 3.6.1.7.Cấu trúc COMSTAT 84 3.6.1.8.Hàm ReadFile 85 3.6.1.9.Hàm WriteFile 86 3.6.2.Giao tiếp máy tính với các thiết bị bên ngoài bằng chuẩn giao tiếp RS232 87 Chương 7.VC++ với thiết kế 3D 3.7.1.Include file header và library 101 3.7.2.Sử dụng hàm PreCreateWindow 101 3.7.3.Hàm OnCreate 101 3.7.3.1.Mô tả PixelFormat 101 3.7.3.2.Chọn và thiết lập cho PixelFormat 102 3.7.3.3.Tạo một ngữ cảnh để tô bóng (Rendering Context ) 102 3.7.4.Hàm OnSize ( ) 102 3.7.5.Hàm OnEraseBkgnd 103 3.7.6.Hàm OnInitialUpdate 103 3.7.7.Hàm OnDraw(CDC*pDC) 103 3.7.8.Các hàm DrawScene 103 3.7.9.Ví dụ minh hoạ 103 Chương 8 .Đóng gói chương trình ,tạo bộ cài đặt . 3.8.1.Thêm thành phần Installshield for Microsoft Visual C++ 6.0 109 3.8.2.Các thao tác để đóng gói với InstallShield . 110 Chương 9.Thiết kế chương trình mô phỏng điều khiển máy CNC 3.9.1.Chức năng của chương trình 118 3.9.2.Thiết kế giao diện 119 3.9.2.1.Thiết kế giao diện chính 119 3.9.2.2.Thiết kế các hộp thoại phụ 122 3.9.2.3.Thiết kế thanh menu 127 3.9.3.Viết code cho chương trình 128 3.9.3.1.Viết code cho hộp thoại Configure 128 3.9.3.2.Viết code cho hộp thoại Define Zero Point 129 3.9.3.3.Viết Code cho hộp thoại Edit Code 130 3.9.3.4.Viết Code cho hộp thoại New 130 3.9.3.5.Viết code cho hộp thoại Tool Demension 131 3.9.3.6.Viết code cho hộp thoại To Any Point 131 3.9.3.7.Viết code cho chương trình chính 132 Tài liệu tham khảo 159 LỜI NÓI ĐẦU Trong sự phát triển ngày càng lớn mạnh của khoa học công nghệ, vấn đề kết hợp các lĩnh vực điện tử - tin học và cơ khí đang rất được quan tâm .Một trong những đề tài thu hút được sự quan tâm của các sinh viên cơ khí đó là sử dụng ngôn ngữ lập trình để tạo ra các ứng dụng điều khiển và mô phỏng quá trình của máy móc. Một trong những công cụ lập trình hiệu quả và đạt kết quả tốt đó chính là Visual C++, được xây dựng trên nền tảng là ngôn ngữ lập trình hướng đối tượng C++. Trong bản đồ án tốt nghiệp với đề tài là “Hướng dẫn lập trình VC++ 6.0” sẽ trình bày những cách thức làm việc hiệu quả và cơ bản với ngôn ngữ lập trình này , kèm theo đó là các bài minh hoạ . Nội dung của đồ án tốt nghiệp như sau : -Phần I : Tổng quan về lập trình hướng đối tượng -Phần II : Visual C++ 6.0 -Phần III : Hướng dẫn lập trình +Chương 1 :thao tác với các hàm, biến. +Chương 2 : tạo menu, toolbar và các thao tác cơ bản +Chương 3 : sử dụng Font và giờ hệ thống . +Chương 4 : đọc, hiển thị và lưu file text. +Chương 5 : sử dụng Active X để đưa âm thanh vào trong ứng dụng. +Chương 6 : Giao tiếp máy tính . +Chương 7 : VC++ với thiết kế 3D. +Chương 8 : đóng gói chương trình, tạo bộ cài đặt. +Chương 9 : thiết kế mô phỏng chương trình điều khiển, mô phỏng gia công máy CNC. Do giới hạn về mặt thời gian cũng như những hạn chế về mặt kiến thức của người viết nên không thể tránh khỏi những sai sót vì vậy rất mong được sự thông cảm của người đọc. Trong quá trình hoàn thành đề tài ,được sự hướng dẫn tận tình của TS.Bùi Quý Lực , công việc đã được hoàn thành đúng tiến độ. Xin chân thành cảm ơn tới thầy Bùi Quý Lực . Người thực hiện : Sinh viên : Lê Văn Đảng Phần I: TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Visual C++ là môt phần mềm lập trình hướng đối tượng được phát triển trên cơ sở là ngôn ngữ lập trình C và C++. Phương pháp thiết kế hướng đối tượng vừa mới phát triển nhằm giúp nhà phát triển khai thác được sức mạnh của đối tượng và ngôn ngữ lập trình hướng đối tượng, dùng các lớp và đối tượng như là khối xây dựng cơ sở. OOP (Object Oriented Programming ) là ngôn ngữ hiện thực trong đó chương trình được tổ chức như tập hợp những đối tượng hợp tác với nhau, mỗi đối tượng đại diện cho một instance của một vài lớp và những lớp mà chúng là thành viên của một lớp phân cấp thông qua quan hệ thừa kế. Ba điểm quan trọng trong định nghĩa này là : 1. Đối tượng được dùng như là những khối xây dựng cơ bản của OOP. 2. Mỗi đối tượng như là một instance của một số lớp. 3. Các lớp liên quan với nhau thông qua quan hệ thừa kế. Ta có thể nói một ngôn ngữ là hướng đối tượng nếu và chỉ nếu nó thỏa mãn những yêu cầu sau: - Nó có thể tạo ra những đối tượng là dữ liệu trừu tượng với một giao tiếp của những operation đã định và một trạng thái ẩn bên trong. - Những đối tượng có một lớp kết hợp. - Lớp có thể thừa kế thuộc tính từ lớp cha. Một mô hình mà thiếu một trong những đặc tính trên thì không phải là hướng đối tượng. 1.1. Abstraction ( tính trừu tượng) : Sự trừu tượng thể hiện những đặc tính cốt yếu của một đối tượng mà những đặc tính này dùng để phân biệt đối tượng này với tất cả các loại đối tượng khác và do vậy cung cấp một cách rõ ràng giới hạn ý niệm được ý nghĩa, liên quan đến viễn tượng của người nhìn. Trừu tượng tập trung vào cái nhìn bề ngoài của đối tượng và do đó thỏa mãn được các hành vi chủ yếu của đối tượng riêng biệt từ hiện thực của nó. Ta có thể có các loại trừu tượng sau: - Thực thể trừu tượng : một đối tượng mà nó đại diện cho một mô hình hữu dụng của một miền vấn đề hay thực thể miền giải quyết. -Operation abstraction (hoạt động trừu tượng ) : một đối tượng mà nó cung cấp một tập tổng quát của các operation, tất cả các operation thực thi cùng một loại chức năng. - Máy ảo trừu tượng : một đối tượng mà nó nhóm các hoạt động với nhau, và tất cả các hoạt động này được sử dụng bởi mức điều khiển cao hơn. Hoặc các hoạt động mà chúng sử dụng tập hợp các hoạt động của mức thấp hơn. -Trừu tượng ngẫu nhiên : một đối tượng mà nó đóng gói một tập hợp các hoạt động mà chúng không có quan hệ lẫn nhau. Một client là bất kì đối tượng nào sử dụng nguồn tài nguyên của đối tượng khác ( gọi là server). Chúng ta có thể biểu thị đặc điểm hành vi của đối tượngbằng cách xem xét những dịch vụ mà nó cung cấp cho những đối tương khác, cũng như những hoạt động mà nó có thể thực thi cho đối tượng khác. Quan điểm này buộc chúng ta phải tập trung vào cái nhìn bề ngoài của đối tượng. Chúng ta gọi toàn bộ tập hợp của các hoạt động mà một client có thể thi hành cho một đối tượng, cùng với những câu lệnh hợp lệ mà chúng có thể được gọi là protocol. Một protocol biểu thị những cách thức mà một đối tượng có thể hành động và phản ứng, và do vậy có thể cấu thành tổng thể bề ngoài tĩnh và động của trừu tượng. 1.2. Encap sulation (sự đóng kín) : Tính đóng kín là quá trình phân chia các phần tử của một trừu tượng để cấu thành nên cấu trúc và hành vi của chính nó, đóng kín cho phép hoạt động giao tiếp của một trừu tượng và hiện thực của nó. Sự đóng kín là cơ chế liên kết mã và dữ liệu mà nó thao tác, và giữ cho cả 2 được an toàn khỏi sự can thiệp từ bên ngoài và do sử dụng sai. Trong ngôn ngữ hướng đối tượng, mã và dữ liệu liên kết với nhau để tạo thành một “hộp đen” độc lập. Trong hộp này là tất cả mã và data cần thiết. Khi mã và data liên kết với nhau như thế một đối tượng sẽ được tạo ra. Nói cách khác, đối tượng là một dụng cụ hỗ trợ cho sự đóng kín. Trong một đối tượng , mã, data, hoặc cả 2 có thể là private (riêng) của đối tượng đó hay public (chung). Mã hoặc data riêng là thuộc về đối tượng đó và chỉ được truy cập với bộ phận của đối tượng. Nghĩa là mã hoặc data riêng không thể truy cập bởi các phần khác của chương trình tồn tại ngoài đối tượng. Khi data là chung, các bộ phận khác có thể truy cập đến nó mặc dù nó được định nghĩa trong một đối tượng. Các phần chung của một đối tượng dùng để cung cấp một giao diện có điều khiển cho các phần riêng của đối tượng. Nói chung, một đối tượng là một biến thuộc kiểu do người sử dụng định nghĩa. Mỗi lần ta định nghĩa một đối tượng mới, ta tạo ra một loại data mới. Tính trừu tượng và đóng kín là hai khái niệm : trừu tượng thì tập trung vào những hành vi có thể quan sát được của đối tượng, còn tính đóng kín tập trung vào hiện thực của hành vi đó. Tính đóng kín thường đạt được thông qua che dấu thông tin, tức là quá trình che dấu mọi bí mật của đối tượng mà không đóng góp vào đặc tính thiết yếu của đối tượng đó ,thông thường cấu trúc của đối tượng được che dấu cũng như hiện thực của những method của đối tượng. Đặc biệt các thành viên có thể được đặt vào public, private, hay protected của lớp. Thành viên được khai báo là public thì thấy được đối với mọi client, những thành viên khai báo là private thì hoàn toàn đóng kín, và những thành viên khai báo là protected thì chỉ thấy với chính lớp của nó và những lớp con của nó. C++ cũng còn cho phép kí hiệu friend : là lớp cùng hợp tác được phép thấy những phần privated của nhau. 1.3. Modularity (modun hóa) : Modularity là tính chất của một hệ thống đã được phân tích thành một tập hợp dính kết và ghép lại một cách lỏng lẻo thành những modun. Việc phân chia chương trình thành những phần riêng lẻ có thể làm giảm độ phức tạp. Ở ngôn ngữ này lớp, đối tượng hình thành cấu trúc luận lý của hệ thống. Chúng ta đặt những trừu tượng này trong modun để tạo ra những kiến trúc vật lý của hệ thống. Đối với những vấn đề nhỏ, nhà phát triển có thể quyết định vấn đề khai báo tất cả các lớp và đối tượng trong cùng một gói. Ta thường nhóm những lớp vàø đối tượng có quan hệ trong cùng một modun, và chỉ phơi bày những phần tử mà modun khác cần thấy. Trong các hệ thống lớn, thì nó có quá nhiều modun và thật là khó cho người sử dụng tìm thấy những lớp mà họ cần. Hơn nữa , khi quyết định thay đổi hàng trăm modun phải được hiệu chỉnh hoặc biên dịch lại. Như vậy, modun hóa đôi khi cũng không tốt Modun phục vụ như là những phần tử và những đơn vị không thể phân chia được của phần mềm mà có thể sử dụng lại được qua các ứng dụng. Nhà phát triển sẽ chọn cách đóng gói đối tượng thành các modun sao cho chúng thuận tiện để sử dụng lại. 1.4. Hierachy (hệ thống phân cấp) : Hệ thống phân cấp là một sự sắp xếp theo thứ bậc hay sắp đặt các trừu tượng. Có hai phân cấp quan trọng nhất trong một hệ thống phức tạp là : cấu trúc lớp của nó(phân cấp “is a”), và cấu trúc đối tượng của nó ( phân cấp “part of “). Thừa kế đơn giản: thừa kế là mối quan hệ “ is a “. thừa kế định nghĩa một mối quan hệ giữa các lớp, trong đó một lớp chia sẻ cấu trúc và hành vi đã được định nghĩa trong một lớp hay nhiều lớp ( tương ứng với thừa kế đơn giản và đa thừa kế ). Do đó thừa kế như là sự phân cấp của các trừu tượng, trong đó một lớp con thừa kế một hay nhiều lớp cha. Đa thừa kế đưa đến một số vấn đề phức tạp cho ngôn ngữ lập trình. Những ngôn ngữ phải đưa ra hai vấn đề: xung đột giữa tên của các lớp cha khác nhau, và thừa kế được lập lại nhiều lần. Sự xung đột xảy ra khi hai hay nhiều lớp cha cùng cấp cùng chia sẻ một lớp cha chung. Và trong trường hợp như vậy, lớp lá có một hoặc nhiều bản sao cấu trúc của lớp cha được dùng chung đó. Một số ngôn ngữ thì không cho phép thừa kế lập lại, một số khác thì chọn hướng khác. C++ cho phép người lập trình quyết định: virtual base class (lớp cơ sở ảo ) được dùng để chỉ ra sự dùng chung của cấu trúc lập lại, trong khi đó nonvirtual base class có kết quả là trùng bản sao ở lớp con. 1.5. Kiểm tra kiểu ( typing ) : Typing là sự tuân theo bắt buộc của lớp đối tượng, như là những đối tượng của các lớp khác nhau không được thay thế lẫn nhau hoặc chúng có thể thay thế lẫn nhau chỉ theo một cách thức rất hạn chế. C++ có khuynh hướng kiểm tra kiểu chặt chẽ nhưng ta có thể lờ đi hay cấm kiểm tra. - Tính đa dạng (polymorphism): Là tính chất cho phép một tên được dùng cho hai hoặc nhiều mục đích khác nhau có quan hệ về phương diện kỹ thuật. Mục đích của tính đa dạng khi được áp dụng cho OOP là cho phép một tên được dùng để chỉ rõ một lớp tác động tổng quát, một tác động cụ thể được xác định bởi loại data. Ví dụ, trong C, không có hỗ trợ tính đa dạng nên một tác động giá trị tuyệt đối cần phải có ba hàm khác nhau:abs(), labs(), và fabs( ). Các hàm này tính toán và lần lượt trả về một giá trị tuyệt đối của số nguyên, một số nguyên dài, một giá trị dấu phẩy động. Tuy nhiên, trong C++ có đặc tính đa dạng nên có hàm abs(). Loại data được dùng để gọi hàm xác định loại hàm nào thực sự được dùng. Trong C++ có thể sử dụng một tên hàm cho nhiều mục đích khác nhau. Điều này được gọi là quá tải hàm(function overloading). Tổng quan hơn khái niệm tính đa dạng là ý tưởng “một giao diện, nhiều phương pháp”. Điều này có nghĩa là có thể thiết kế một giao diện chung cho một nhóm các tác động có liên quan. Tuy nhiên, tác động cụ thể được thi hành phụ thuộc vào data. Ưu điểm của tính đa dạng là chúng làm giảm tính phức tạp bằng cách cho phép cùng một giao diện được sử dụng để ghi rõ một lớp tác động tổng quát, chính trình biên dịch sẽ lựa chọn tác động cụ thể khi áp dụng cho từng trường hợp. Là người lập trình ta không phải thực hiện sự lựa chọn này bằng tay. Ta chỉ cần nhớ và sử dụng giao diện chung. -Liên kết tĩnh và kiên kết động (Static and Dynamic Binding): Khái niệm trong typing và static typing liên kết tĩnh là hoàn toàn khác nhau. Strong typing đề cập tới sự nhất quán của kiểu. Stactic binding có nghĩa là kiểu của mọi biến và biểu thức là cố định vào lúc biên dịch. Dynamic binding nghĩa là các kiểu của mọi biến và biểu thức không cho biết cho tới khi chạy chương trình. Bởi vì Strong typing và Dynamic binding là khái niệm độc lập cho nên một ngôn ngữ có thể vừa Strong và Static typing. 1.6. Bản chất của đối tượng: Một đối tượng có trạng thái, hành vi, đặc tính nhân dạng; cấu trúc và hành vi của các đối tượng giống nhau được định nghĩa trong một lớp chung của chúng, thuật ngữ instance và đối tượng là có thể thay thế lẫn nhau được. - Trạng thái (state) : của một đối tượng bao gồm tất cả các đặc tính (thường là tĩnh) của đối tượng trừ đi giá trị hiện tại ( thường là động ) của mỗi đặc tính đó. -Hành vi (behavior ) : là đối tượng hoạt động và phản ứng như thế nào theo điều kiện trạng thái của nó thay đổi và message truyền đến. -Operations (hoạt động) : là một dịch vụ mà một lớp cung cấp cho khách hàng của nó. Chúng ta thấy rằng một client thường thực thi năm loại opearation đối tượng. Ba loại operation thông thường nhất là : • Modifier : là operation thay đổi trạng thái của đối tượng. Selector: là Operation truy xuất trạng thái của đối tượng nhưng không làm thay đổi trạng thái của nó. • Iterrator : là operation cho phép tất cả các phần của một đối tượng được truy xuất theo một thứ tự đã định nghĩa trước. Hai loại operation thông dụng khác cần thiết để tạo và hủy những instance của một lớp là : • Constructor :là operation tạo đối tượng và (hoặc) khởi động trạng thái của nó. • Destructor :là operation giải phóng trạng thái của một đối tượng và (hoặc) hủy chính đối tượng đó. • Indentify(đặc điểm nhận dạng) : indentify là đặc tính của một đối tượng để phân biệt nó với các đối tượng khác. 1.7. Mối quan hệ giữa các đối tượng -Links( liên kết) : Link là nối kết vật lý hay ý niệm giữa các đối tượng. Một đối tượng cộng tác với một đối tượng khác thông qua link của nó tới những đối tượng này. Hay nói cách khác, một link vó nghĩa là một hợp tác cụ thể qua đó một đối tượng ( client) áp dụng những dịch vụ của đối tượng khác (nhà cung cấp) hoặc qua đó một đối tượng có thể điều khiển đối tượng khác. - Một đối tượng có thể đóng các vai trò sau: • Actor : một đối tượng có thể làm việc trên một đối tượng khác nhưng nó không bao giờ cho một đối tượng khác làm việc trên nó, thuật ngữ actor và active object có thể thay thế lẫn nhau. • Server :một đối tượng không bao giờ làm việc trên một đối tượng khác, nó chỉ cho đối tượng khác làm việc trên nó. • Agent : một đối tượng vừa làm việc trên đối tượng khác vừa cho đối tượng khác làm việc trên nó, một đại lý thường được tạo ra để làm công việc cho một actor hay một agent khác . • Đối tượng được cung cấp là global đối với client. • Đối tượng cung cấp là một tham số cho các operation của client. • Đối tượng cung cấp là một phần của đối tượng client. • Đối tượng cung cấp được khai báo cục bộ trong operation của client. Khi có multiple thread control, việc truyền thông tin giữa các đối tượng cần xử lý vấn đề multual exclusion trong hệ thống xử lý đồng thời. Vấn đề đồng bộ hóa cũng phải xem xét. -Aggregation : Aggregation có nghĩa là một phân cấp tổng thể / bộ phận, với khả năng điều khiển từ tổng thể ( còn gọi là aggregate ) tới những bộ phận (được hiểu là những thuộc tính của nó). 1.8. Bản chất của lớp: -Class (lớp) : là tập hợp của các đối tượng có cùng cấu trúc chung hay hành vi chung. Một đối tượng đơn giản chỉ là một instance của lớp. -Interface: của một lớp cho thấy bên ngoài của đối tượng và do đó nhấn mạnh đến vấn đề trừu tượng trong khi che dấu cấu tr1c và hành vi bên trong. - Implemention : của môt lớp là cái nhìn bên trong của nó. Implemention của một lớp cơ bản bao gồm tât cả các operation được định nghĩa trong interface. Chúng ta chia interface của lớp thành ba phần: • Public : là khai báo được truy xuất đến mọi client. • Protected : là khai báo được truy xuất chỉ chính lớp đó, lớp con của nó, và lớp friend. • Private: là khai báo được truy xuất chỉ chính lớp đó và lớp friend. 1.9. Mối quan hệ giữa các lớp: Phần lớn ngôn ngữ hướng đối tượng hỗ trợ trực tiếp một vài kết hợp của những quan hệ sau đây: • Association : gồm có quan hệ một-một, một-nhiều, nhiều-nhiều. • Inheritance (thừa kế) : là một lớp chia sẽ cấu trúc và (hoặc) hành vi được định nghĩa bởi một lớp (đơn thừa kế) hoặc nhiều lớp (đa thừa kế). • Aggregation (kết tập) : quan hệ kết tập giữa các lớp giống như quan hệ kết tập giữa các đối tượng tượng giữa các lớp đó. Đa thừa kế thường bị lẫn lộn với kết tập. Trong C++ thừa kế protected hay private dễ dàng bị thay thế bởi kết tập protected hay private của instace của lớp cha, mà không mất tính ngữ nghĩa của nó. Phần 2. VISUAL C++ 6.0 2.1.Cách cài đặt Visual C++ 6.0 nằm trong bộ Visual Studio,là bộ phần mềm hỗ trợ lập trình trong Windows do hãng Microsoft sáng chế. Cách cài đặt bộ phần mềm Visual Studio 6.0 Enterpise Edition như sau : Có thể copy bộ đĩa vào máy và kích hoạt file Setup.exe để cài đặt chương trình, chương trình sẽ tự khởi động và hiện lên cửa sổ cài đặt như hình dưới đây : Hình 2.1 – Nhấn Next để tự động cài đặt Visual Studio 6.0 Hệ thống tự động cài đặt Java Virtual Machine. Hình 2.2 – Chương trình đang giải nén các files cài đặt Microsoft VM Hình 2.3- Chương trình yêu