1 LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Học viện Công nghệ Bưu chính Viễn thông, Khoa Công nghệ Đa phương tiện đã tận tình chỉ bảo, góp ý và tạo điều kiện cho em có thời gian h.
1 LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Học viện Công nghệ Bưu Viễn thơng, Khoa Cơng nghệ Đa phương tiện tận tình bảo, góp ý tạo điều kiện cho em có thời gian hồn thiện mơn Lập trình hướng đối tượng C++ cách tốt Em xin cảm ơn Thầy Tạ Chí Hiếu nhiệt tình hướng dẫn, bảo tận tình trình nghiên cứu hoàn thiện tốt báo cáo cuối kì mơn Trong q trình hồn thiện bài, em cố gắng nỗ lực, nhiên không tránh khỏi sai sót, mong thầy, bỏ qua Bên cạnh đó, với kinh nghiệm kiến thức cịn có nhiều hạn chế, em mong nhận đóng góp ý kiến thầy, để báo cáo sản phẩm em hoàn thiện Em xin chân thành cảm ơn! MỤC LỤC LỜI CẢM ƠN MỤC LỤC PHẦN MỞ ĐẦU CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Tổng quan chung .6 1.1 Đặc trưng 1.2 Ưu điểm Một số khái niệm 2.1 Đối tượng (Object) 2.2 Lớp (Class) 2.3 Đóng gói liệu (Encapsulation) 2.4 Kế thừa (Inheritance) 2.5 Đa hình (Polymorphsim) 7 CHƯƠNG 2: PHẦN MỀM QUẢN LÝ NHẬP HÀNG Class HangHoa 1.1 Thuộc tính 1.2 Các phương thức: 1.2.1 Hàm khởi tạo 1.2.2 Hàm xuất HH .9 1.2.3 Hàm khởi tạo có tham số 10 1.2.4 Các hàm getter thuộc tính 10 1.2.5 Các hàm setter thuộc tính 11 class NhapHang 11 2.1 Thuộc tính 11 2.2 Phương thức 11 Class NhapChiTiet 13 3.1 Các thuộc tính 13 3.2 Các phương thức 13 Hàm main 15 4.1 Hàm checkMAHANG 15 4.2 Hàm checkMAHANG_1 16 4.3 Hàm checkMADONNHAP 17 4.4 Hàm checkMANCC 17 4.5 Hàm checkNGAY 18 4.6 Hàm themMoiHH 18 4.7 Hàm nhapHang 19 4.8 Hàm THONGKESOTONCUACACMATHANG 21 4.9 TONGTIENTRACHO1NCC 23 4.10 Hàm tinhsoluongnhapcuamotmahang 23 4.11 Hàm readFileHH 25 4.12 Hàm ReadFileNhap 26 4.13 Hàm ReadFileNhapChiTiet 27 4.14 Hàm saveFileHH 27 4.15 Hàm saveFileNhap 28 4.17 Hàm menu 28 4.18 Hàm main 29 Kết chạy chương trình .31 5.1 Menu của chương trình 31 5.2 Chức thoát chương trình 32 5.3 Chức Thêm hàng hóa 32 5.4 Chức thêm lần nhập hàng 33 5.5 Chức Thống kê số tồn của mặt hàng 34 5.6 Chức Tổng tiền chi cho nhà cung cấp 35 5.7 Chức Tính số lượng nhập của mã hàng 35 5.8 Chức hiển thị 36 5.9 File source code file txt 38 Tính kế thừa .38 Tính trừu tượng 38 Tính đóng gói 39 Tính đa hình .40 PHẦN MỞ ĐẦU Trong thời đại CNTT phát triển nay, nhà lập trình ln phải suy nghĩ xem làm để tạo chương trình hay, tiện ích Và thứ hỗ trợ người lập trình ngơn ngữ lập trình Có số phương pháp lập trình truyền thống lập trình tuyến tính, lập trình cấu trúc Với lập trình tuyến tính số ứng dụng phức tạp thực Trong với lập trình cấu trúc, khơng quản lý thay đổi liệu có nhiều chương trình sử dụng biến chung, khơng tiết kiệm tài nguyên Để khắc phục số hạn chế trên, người ta xây dựng số mơ hình lập trình tiên tiến như: Lập trình hàm, lập trình logic, lập trình trực quan, lập trình tương tranh, lập trình phân tán, lập trình hướng đơi tượng Trong báo cáo này, em vào nghiên cứu mô hình lập trình hướng đổi tượng có nội dung gồm: Tổng quan lập trình hướng đổi tượng; số tính chất đặc trưng lập trình hướng đổi tượng Với thời lượng quy định báo cáo môn học, lượng nội dung kiến thức không đủ truyền tải hết báo cáo Các nội dung nêu báo cáo nội dung trọng tâm lập trình hướng đối tượng CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Tổng quan chung Trong lập trình hướng đối tượng: - Người ta coi thực thể chương trình đối tượng sau đó, người ta trừu tượng hoá đối tượng thành lớp đối tượng - Dữ liệu tổ chức thành thuộc tính lớp Nguời ta ngăn chặn việc thay đổi tuỳ tiện liệu chương trình cách giới hạn truy nhập, cho phép truy nhập liệu thông qua đối tượng, thông qua phương thức mà đối tượng cung cấp - Quan hệ đối tượng quan hệ ngang hàng quan hệ kế thừa: Nếu lớp B kế thừa từ lớp A A gọi lớp sở B gọi lớp dẫn xuất Ngơn ngữ lập trình hướng đối tượng phổ biến Java C++ Tuy nhiên, C++ có đặc trưng lập trình hướng đối tượng khơng phải ngơn ngữ lập trình hướng đối tượng 1.1 Đặc trưng Lập trình hướng đối tượng có hai đặc trưng bản: - Đóng gói liệu: liệu ln tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp - Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn thể thông qua chế kế thừa Cơ chế cho phép lớp đối tượng kế thừa từ lớp đối tượng khác Khi đó, lớp dẫn xuất, sử dụng phương thức (mã nguồn) lớp sở mà không cần phải định nghĩa lại 1.2 Ưu điểm Lập trình hướng đối tượng có số ưu điểm bật: - Khơng cịn nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Nếu muốn truy nhập vào liệu phải thông qua phương thức cho phép đối tượng - Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi mã nguồn đối tượng khác, mà cần thay đổi số thành phần đối tượng dẫn xuất Điều hạn chế ảnh hưởng xấu việc thay đổi liệu đến đối tượng khác chương trình - Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên, chi phí thời gian Vì ngun tắc kế thừa cho phép lớp dẫn xuất sử dụng phương thức từ lớp sở phương thức nó, mà khơng cần thiết phải định nghĩa lại Một số khái niệm 2.1 Đối tượng (Object) - Trong lập trình hướng đối tượng, đối tượng coi đơn vị nhỏ Các diệu cách xử lí thành phần đối tượng mà không coi thực thể Một đối tượng chứa liệu riêng nó, đồng thời có phương thức (hành động) thao tác liệu đó: Đối tượng = liệu + phương thức 2.2 Lớp (Class) - Khi có nhiều đối tượng giống mặt liệu phương thức, chúng nhóm lại với gọi chung lớp: Lớp trừu tượng hoá đối tượng Đối tượng thể lớp 2.3 Đóng gói liệu (Encapsulation) - Các liệu đóng gói vào đối tượng Mỗi liệu có phạm vi truy nhập riêng - Không thể truy nhập đến liệu cách tự lập trình cấu trúc - Muốn truy nhập đến liệu, phải thông qua đối tượng, nghĩa phải sử dụng phương thức mà đối tượng cung cấp truy nhập đến liệu đối tượng 2.4 Kế thừa (Inheritance) - Tính kế thừa lập trình hướng đối tượng cho phép lớp kế thừa từ số lớp tồn Khi đó, lớp sử dụng liệu phương thức lớp sở Ngồi ra, lớp dẫn xuất cịn bổ sung thêm số liệu phương thức - Ưu điểm kế thừa thay đổi liệu lớp, cần thay đổi phương thức phạm vi lớp sở, mà không cần thay đổi lớp dẫn xuất 2.5 Đa hình (Polymorphsim) - Đa hình khái niệm ln kèm với kế thừa Do tính kế thừa, lớp sử dụng lại phương thức lớp khác Tuy nhiên, cần thiết, lớp dẫn xuất định nghĩa lại số phương thức lớp sở Đó nạp chồng phương thức kế thừa - Nhờ nạp chồng phương thức này, ta cần gọi tên phương thức bị nạp chồng từ đối tượng mà khơng cần quan tâm đối tượng lớp Chương trình tự động kiểm tra xem đối tượng thuộc kiểu lớpởc sở hay thuộc lớp dẫn xuất, sau gọi phương thức tương ứng với lớp Đó tính đa hình CHƯƠNG 2: PHẦN MỀM QUẢN LÝ NHẬP HÀNG Class HangHoa 1.1 Thuộc tính MAHANG: chuỗi có độ dài 10 kí tự TEN: tên hàng hóa SOLG: số lượng hàng hóa có độ dài DONGIABAN: đơn giá bán có độ dài kí tự TRANGTHAI: trạng thái có giá trị sau: = 0: Mặt hàng ngừng kinh doanh = 1: Hàng kinh doanh = 2: Hàng tạm ngừng bán (vì tạm hết) 1.2 Các phương thức: 1.2.1 Hàm khởi tạo Đây constructor khởi tạo mặc định 1.2.2 Hàm xuất HH Hàm xuất thơng tin cho hàng hóa dạng bảng Setw(10): đặt độ rộng 10 1.2.3 Hàm khởi tạo có tham số Hàm khởi tạo có tham số mã hàng hóa, tên hàng hóa, số lượng, đơn giá, trạng thái 1.2.4 Các hàm getter thuộc tính Các hàm trả thơng tin thuộc tính 10 1.2.5 Các hàm setter thuộc tính ... yyyymmdd hay khơng 4.6 Hàm themMoiHH 18 Hàm nhập hàng hóa vào danh sách + Nhập vào mã hàng kiểm tra nhập mã hàng + Nhập vào tên hàng + Nhập vào Đơn giá bán + Nhập vào trạng thái + Thêm vào cuối danh... nhapHang 19 20 Hàm tiến hành thêm lần nhập hàng bao gồm thêm đơn nhập hàng chi tiết đơn nhập, trình thêm update số lượng hàng hóa file hh.txt hàng hóa nhập chi tiết đơn nhập ... với lớp Đó tính đa hình CHƯƠNG 2: PHẦN MỀM QUẢN LÝ NHẬP HÀNG Class HangHoa 1.1 Thuộc tính MAHANG: chuỗi có độ dài 10 kí tự TEN: tên hàng hóa SOLG: số lượng hàng hóa có độ dài DONGIABAN: đơn giá