Phát triển phần mềm quản lý cho thuê sách

12 19 0
Tài liệu đã được kiểm tra trùng lặp
Phát triển phần mềm quản lý cho thuê sách

Đ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

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Đề tài Phát triển phần mềm quản lý cho thuê sách A MÔ HÌNH LẬP TRÌNH HƯỚNG ĐỐI T.

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Đề tài: Phát triển phần mềm quản lý cho th sách A I MƠ HÌNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Lập trình hướng đối tượng (Object Oriented Programming - gọi tắt OOP) hay chi tiết Lập trình định hướng đối tượng, phương pháp lập trình lấy đối tượng làm tảng để xây dựng thuật giải, xây dựng chương trình Thực chất phương pháp mà cách nhìn việc lập trình Để phân biệt, với phương pháp lập trình theo kiểu cấu trúc mà quen thuộc trước đây, hay gọi phương pháp lập trình hướng thủ tục (Procedure-Oriented Programming), người lập trình phân tích nhiệm vụ lớn thành nhiều cơng việc nhỏ hơn, sau chi tiết, cụ thể hoá để vấn đề đơn giản, để tìm cách giải vấn đề dạng thuật giải cụ thể rõ ràng qua dễ dàng minh hoạ ngôn ngữ giải thuật (hay cịn gọi thuật giải chương trình con) Cách thức phân tích thiết kế gọi nguyên lý lập trình từ xuống (top-down), để thể trình suy diễn từ chung cụ thể II CÁC KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Đối tượng Đối tượng (object): Các liệu thị kết hợp vào đơn vị đầy đủ tạo nên đối tượng Đơn vị tương đương với chương trình đối tượng chia thành hai phận chính: phần phương thức (method) phần thuộc tính (property) Trong thực tế, phương thức đối tượng hàm thuộc tính biến, tham số hay nội đối tượng (hay nói cách khác tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng thuộc tính mơ tả đối tượng có tính chất Lớp (class) Một lớp hiểu kiểu liệu bao gồm thuộc tính phương thức định nghĩa từ trước Đây trừu tượng hóa đối tượng Một đối tượng xác lập thực thể hóa từ lớp Khác với kiểu liệu thông thường, lớp đơn vị (trừu tượng) bao gồm kết hợp phương thức thuộc tính Để có đối tượng (mà xem biến) hoạt động việc thực thể hóa bao gồm việc cài đặt giá trị ban đầu thuộc tính việc đăng kí nhớ, mà công việc thường giao cho phương thức gọi “máy kết cấu” (constructor) hay hàm dựng Ngược lại đối tượng thuộc lớp khơng cịn sử dụng có phương thức để xử lý gọi “máy hủy diệt” (destructor) hay hàm hủy Như vậy, để có đối tượng người lập trình OOP cần phải thiết kế lớp đối tượng cách xây dựng thuộc tính phương thức có đặc tính riêng Mỗi phương thức hay thuộc tính đầy đủ lớp cịn gọi tên thành viên (member) lớp Lớp (subclass) Lớp lớp thơng thường có thêm tính chất kế thừa phần hay tồn đặc tính lớp khác Lớp mà chia kế thừa gọi lớp phụ mẫu (parent class) Lớp trừu tượng hay lớp sở trừu tượng (abstract class) Lớp trừu tượng lớp mà khơng thể thực thể hóa thành đối tượng thực dụng Lớp thiết kế nhằm tạo lớp có đặc tính tổng qt thân lớp chưa có ý nghĩa (hay khơng đủ ý nghĩa) để tiến hành viết mã cho việc thực thể hóa (xem thí dụ) Thí dụ: Lớp “hinh_phang” định nghĩa khơng có liệu nội có phương thức (hàm nội tại) “tinh_chu_vi”, “tinh_dien_tich” Nhưng lớp hình_phẳng chưa xác định đầy đủ đặc tính (cụ thể biến nội tọa độ đỉnh đa giác, đường bán kính toạ độ tâm hình trịn, …) nên viết thành lớp trừu tượng Sau đó, người lập trình tạo lớp chẳng hạn lớp “tam_giac”, lớp “hinh_tron”, lớp “tu_giac”,… Và lớp người viết mã cung cấp liệu nội (như biến nội r làm bán kính số nội Pi cho lớp “hinh_tron” sau viết mã cụ thể cho phương thức “tinh_chu_vi” “tinh_dien_tich”) Phương thức (method) Là hàm nội lớp (hay đối tượng) Tùy theo đặc tính mà người lập trình gán cho, phương pháp gọi bên hàm khác lớp đó, cho phép câu lệnh bên ngồi lớp gọi tới nó, hay cho phép lớp có quan hệ đặc biệt quan hệ lớp con, quan hệ bạn bè (friend) phép gọi tới Mỗi phương pháp có kiểu trả về, chúng trả kiểu liệu cổ điển hay trả kiểu lớp định nghĩa từ trước Một tên gọi khác phương pháp lớp hàm thành viên Người ta định nghĩa thêm vài loại phương pháp đặc biệt: • Hàm dựng (constructor) hàm dùng để cài đặt giá tri ban đầu cho biến nội đơi cịn dùng để khai báo việc xử dụng nhớ • Hàm hủy (destructor) hàm dùng vào việc làm nhớ hủy bỏ tên đối tượng sau dùng xong, bao gồm việc xóa trỏ nội trả phần nhớ mà đối tượng dùng Trong số trường hợp hàm hủy hay hàm dựng tự động hóa ngôn ngữ OOP trường hợp Visual C++, C# • Tiện ích (utility) hàm họat động bên lớp mà không cho phép mơi trường bên ngồi gọi tới Các hàm tính tốn trung gian nội đối tượng mà xét thấy không cần thiết phải cho giới bên đối tượng biết Thuộc tính (attribude) Thuộc tính lớp bao gồm biến, hằng, hay tham số nội lớp Ở đây, vai trị quan trọng thuộc tính biến chúng bị thay đổi suốt q trình hoạt động đối tượng Các thuộc tính xác định kiểu kiểu chúng kiểu liệu cổ điển lớp định nghĩa từ trước Như ghi, lớp thực thể hóa thành đối tượng cụ thể tập hợp giá trị biến nội làm thành trạng thái đối tượng Giống trường hợp phương pháp, tùy theo người viết mã, biến nội dùng bên phương pháp lớp đó, cho phép câu lệnh bên ngồi lớp, hay cho phép lớp có quan hệ đặc biệt quan hệ lớp con, (và quan hệ bạn bè (friend) C++) phép dùng tới (hay thay đổi giá trị nó) Mỗi thuộc tính lớp cịn gọi thành viên liệu lớp Thực thể Thực thể hóa (instantiate) q trình khai báo để có tên (có thể xem biến) trở thành đối tượng từ lớp Một lớp sau tiến hành thực thể hóa để có đối tượng cụ thể gọi thực thể Hay nói ngược lại thực thể đối tượng riêng lẽ lớp định trước Như biến thông thường, hai thực thể lớp có trạng thái nội khác (xác định giá trị có biến nội tại) hồn tồn độc lập khơng có u cầu đặc biệt từ người lập trình 8 Cơng cộng Cơng cộng tính chất dùng để gán cho phương pháp, biến nội tại, hay lớp mà khai báo người lập trình cho phép câu lệnh bên đối tượng khác phép dùng đến Thí dụ: Trong C++ khai báo public: int my_var; biến my_var có hai tính chất tính cơng cộng integer hai tính chất hợp thành đặc tính biến my_var khiến xử dụng hay thay đổi giá trị (bởi câu lệnh) nơi bên lẫn bên lớp Riêng tư Khi dùng tính chất gán cho biến, phương pháp biến hay phương pháp sử dụng bên lớp mà chúng định nghĩa.Mọi nỗ lực dùng đến chúng từ bên qua câu lệnh hay từ lớp bị phủ nhận hay bị lỗi 10 Bảo tồn Tùy theo ngơn ngữ, có vài điểm nhỏ khác cách hiểu tính chất Nhìn chung tính chất mà mà dùng để áp dụng cho phương pháp, biến nội tại, hay lớp có nội lớp hay lớp (hay nội gói Java) phép gọi đến hay dùng đến phương pháp, biến hay lớp So với tính chất riêng tư tính bảo tồn rộng rãi nghĩa chia sẻ liệu hay chức Nó cho phép số trường hợp dùng tới đặc tính lớp (từ lớp chẳng hạn) 11 Đa kế thừa Đây tính chất cho phép lớp có khả kế thừa trực tiếp lúc nhiều lớp khác Vài điểm cần lưu ý viết mã dùng tính chất đa kế thừa: • Khi muốn có kế thừa từ nhiều lớp phụ mẫu lớp cần phải độc lập đặc biệt tên liệu hay hàm cho phép kế thừa phải có tên khác để tránh lỗi “ambiguity” Bởi lúc phần mềm chuyển dịch khơng thể xác định lớp thừa kế tên lớp phụ mẫu • Khơng phải ngơn ngữ OOP loại phân lớp hỗ trợ cho tính chất • Ngồi khái niệm trên, tùy theo ngơn ngữ, có chức OOP riêng biệt cấp thêm vào B GIỚI THIỆU PROJECT I GIỚI THIỆU TỔNG QUAN Mục đích Một project tạo nhằm quản lý việc cho thuê sách hàng cho thuê sách Phần mềm quản lý mã sách thuê cho thuê cuốn, đồng thời quản lý có khách hàng thuê sách cửa hàng Ngôn ngữ sử dụng: Java Kiến thức sử dụng: Lập trình hướng đối tượng II CÁC CHỨC NĂNG CÓ TRONG PROJECT Quản lý mã sách Cửa hàng có số lượng sách định cần quản lý Mỗi sách có mã sách để quản lý Nhân viên cửa hàng thêm mã sách vào phần mềm với thông tin mã sách, tên sách, tác giả, nhà xuất số lượng Trong code fix cứng số mã sách để sử dụng demo sản phẩm – hình Quản lý số lượng bạn đọc Tương tự với số lượng đầu sách cần quản lý, cửa hàng cần có nơi quản lý khách hàng (bạn đọc) mượn sách cửa hàng Nhân viên thêm bạn đọc với thông tin sau Tên, Địa Số điện thoại Trong code có sẵn số bạn đọc để phục vụ cho trình demo sản phẩm – hình Quản lý số lượng sách thuê Đây chức chính, chức quan trọng phần mềm Nhân viên có thểm vào phần mềm ghi ghi nhận lại bạn đọc mượn sách có mã với số lượng Bên cạnh chức thêm mới,nhân viên cập nhật lại ghi tạo trước đó, xóa ghi lưu trữ data bạn đọc tới thuê sách (khi xóa ghi tức cơng nhận việc bạn đọc hồn trả sách khơng cịn th sách cửa hàng nữa) Đây chức hiển thị giao diện (tới thời điểm tại) với list ghi ghi nhận thuê sách bạn đọc với button chức Add (thêm ghi), Edit (chỉnh sửa ghi), Delete (xóa ghi) button Update để cập nhật data cho list quản lý – hình C XÁC ĐỊNH TÍNH HƯỚNG ĐỐI TƯỢNG CĨ TRONG PROJECT I TÍNH ĐĨNG GĨI Khái niệm ý nghĩa ❖ Khái niệm: Tính đóng gói hiểu đơn giản liệu phương thức có liên quan đến “đóng gói” lại thành class để tiện cho việc quản lý sử dụng ❖ Ý nghĩa Đóng gói để tiện lợi cho việc quản lý sử dụng Mỗi gói (class) xây dựng để thực nhóm chức đặc trưng gói (class) Đóng gói để che giấu số thơng tin, chi tiết cài đặt nội để bên ngồi khơng thể nhìn thấy Đây đảm bảo tồn vẹn, bảo mật đối tượng Tính đóng gói có project Project chia thành class “đóng gói” vào packages hình ❖ Package Controller: package chịu trách nhiệm cho phần nhập xuất liệu phần mềm Package bao gồm class ● Class IO: class lưu trữ hàm nhập xuất phần mềm ● file DAT bao gồm BANDOC.DAT, QLMS.DAT SACH.DAT: dây file lưu thông tin (trong file không bao gồm câu lệnh, gồm cụm mã nhị phân có cấu trúc) ❖ Package Entity: package bao gồm lớp đối tượng có project Package bao gồm class ● Class BD: lớp đối tượng bạn đọc (khách hàng cửa hàng) ● Class Nguoi: lớp đối tượng Người ● Class QL: lớp đối tượng quản lý thuê sách ● Class Sach: lớp đối tượng Sách ❖ Package View: package cho phần giao diện project bao gồm class ● Class Main: class lưu trữ câu lệnh project II LỚP ĐỐI TƯỢNG Khái niệm ❖ Đối tượng: Một đối tượng bao gồm thơng tin Thuộc tính Phương thức ● Thuộc tính: thơng tin, đặc điểm đối tượng ● Phương thức: thao tác, hành động mà đối tượng thực ❖ Lớp: Một lớp kiểu liệu bao gồm thuộc tính phương thức định nghĩa từ trước Đây trừu tượng háo đối tượng Hay nghĩ đơn giản, đối tượng có đặc tính tương tự gom lại thành lớp đối tượng Lớp đối tượng có project ❖ Class BD: lớp đối tượng bao gồm đối tượng với thuộc tính Mã, Tên, Địa Số điện thoại package Entity; import java.io.Serializable; public class BD extends Nguoi implements Serializable{ int ma; public BD() { } public BD(int ma, String ten, String dc, String sdt) { super(ten, dc, sdt); //ke thua tu cha this.ma = ma; } public int getMa() { return ma; } public void setMa(int ma) { this.ma = ma; } } ❖ Class Nguoi: lớp đối tượng bao gồm đối tượng với thuộc tính Tên, Địa Số điện thoại package Entity; public class Nguoi { protected String ten, dc, sdt; public Nguoi() { } public Nguoi(String ten, String dc, String sdt) { this.ten = ten; this.dc = dc; this.sdt = sdt; } ❖ Class QL: lớp đối tượng bao gồm đối tượng với thuộc tính Mã bnj đọc, Tên bạn đọc, Mã sách, Tên sách, Số lượng Tình trạng package Entity; import java.io.Serializable; public class QL implements Serializable{ int maBD; String tenBD; int maS; String tenS; int sl; String tt; public QL() { } public QL(int maBD, String tenBD, int maS, String tenS, int sl, String tt) { this.maBD = maBD; this.tenBD = tenBD; this.maS = maS; this.tenS = tenS; this.sl = sl; this.tt = tt; } ❖ Class Sach: lớp đối tượng bao gồm đối tượng với thuộc tính Mã, Tên, Tác giả Nhà xuất package Entity; import java.io.Serializable; public class Sach implements Serializable{ int ma; String ten, tg, cn; int nxb, sl; public Sach() { } public Sach(int ma, String ten, String tg, String cn, int nxb, int sl) { this.ma = ma; this.ten = ten; this.tg = tg; this.cn = cn; this.nxb = nxb; this.sl = sl; } III TÍNH KẾ THỪA Khái niệm ❖ Tính kế thừa cho phép xây dựng lớp dựa định nghĩa lớp có ❖ Lớp cha tạo ra, lớp thừa hưởng phương thức từ lớp cha thể nhận liệu mà lớp cha chia sẻ Lớp khơng cần định nghĩa lại, mà mở rộng thành phần kế thừa bổ sung thêm thành phần Tính kế thừa có project Tính kế thừa project thể qua hai lớp đối tượng Nguoi (đóng vai trị lớp cha) lớp đối tượng BD (đóng vai trị lớp con) Lớp cha (Nguoi) bao gồm thuộc tính Tên, Địa Số điện thoại package Entity; public class Nguoi { protected String ten, dc, sdt; public Nguoi() { } public Nguoi(String ten, String dc, String sdt) { this.ten = ten; this.dc = dc; this.sdt = sdt; } Trong lớp (BD) bao gồm thuộc tính Mã kế thừa thuộc tính lớp cha, nên lớp đối tượng bao gồm thuộc tính Mã, Tên, Địa Số điện thoại package Entity; import java.io.Serializable; public class BD extends Nguoi implements Serializable{ int ma; public BD() { } public BD(int ma, String ten, String dc, String sdt) { super(ten, dc, sdt); //ke thua tu cha this.ma = ma; } public int getMa() { return ma; } public void setMa(int ma) { this.ma = ma; } } ... QUAN Mục đích Một project tạo nhằm quản lý việc cho thuê sách hàng cho thuê sách Phần mềm quản lý mã sách thuê cho thuê cuốn, đồng thời quản lý có khách hàng thuê sách cửa hàng Ngôn ngữ sử dụng:... TRONG PROJECT Quản lý mã sách Cửa hàng có số lượng sách định cần quản lý Mỗi sách có mã sách để quản lý Nhân viên cửa hàng thêm mã sách vào phần mềm với thông tin mã sách, tên sách, tác giả,... đọc để phục vụ cho trình demo sản phẩm – hình Quản lý số lượng sách thuê Đây chức chính, chức quan trọng phần mềm Nhân viên có thểm vào phần mềm ghi ghi nhận lại bạn đọc mượn sách có mã với số

Ngày đăng: 26/11/2022, 11:22

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

Tài liệu liên quan