Phần mềm Quản lý vé máy bay | Học phần lập trình hướng đối tượng với Java giúp sinh viên năm được phương pháp lập trình hướng đối tượng (OOP) và ngôn ngữ lập trình Java cơ bản. Bài tập lớn môn học là tổng hợp kiến thức, kỹ năng về phương pháp lập trình hướng đối tượng và ngôn ngữ lập trình Java. Nội dung bài tập lớn gồm: Phân tích bài toán, giới thiệu tông quan về phương pháp lập trình hướng đối tượng, đặc trưng của ngôn ngữ lập trình Java, cài đặt phần mềm với ngôn ngữ Java trong đó sử dụng các lớp kế thừa, lớp trừu tượng vào giao diện (interface) của lập trình hướng đối tượng. Bài tập lớn là tài liệu tham khảo hữu ích cho SV ngành CNTT.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: Lập trình hướng đối tượng
TÊN BÀI TẬP LỚN: Quản lý vé máy bay
Sinh viên thực hiện: Cà Văn Nguyên MSV:20200132
Cà Văn Tiên MSV: 20200133
Lê Đức Việt MSV: 20200113
Lớp: Công Nghệ Thông Tin 1 Khóa:11
Khoa : Công Nghệ Thông Tin
Bắc Ninh, tháng 10 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
TÊN BÀI TẬP LỚN: Quản lý vé máy bay
Sinh viên thực hiện: Cà Văn Nguyên MSV:20200132
Cà Văn Tiên MSV: 20200133
Lê Đức Việt MSV: 20200113
Lớp: Công Nghệ Thông Tin 1 Khóa:11
Khoa : Công Nghệ Thông Tin
CÁN BỘ CHẤM 1
(Ký và ghi rõ họ tên)
CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên)
Bắc Ninh, tháng 10 Năm 2021
Trang 3Lời nói đầu
Lập trình hướng đối tượ ng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm "công nghệ đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính; và mã nguồn, được tổ chức thành các phương thức Phương thức giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this" hoặc "self") Trong lập trình hướng đối tượng, chương trình máy tính được thiết kế bằng cách tách nó ra khỏi phạm vi các đối tượng tương tác với nhau Ngôn ngữ lập trình hướng đối tượng khá đa dạng, phần lớn là các ngôn ngữ lập trình theo lớp, nghĩa là các đối tượng trong các ngôn ngữ này được xem như thực thể của một lớp, được dùng để định nghĩa một kiểu dữ liệu OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn Ngoài ra, nhiều người còn cho rằng OOP dễ tiếp thu hơn cho những người mới học về lập trình hơn là các phương pháp trước đó Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứng dụng
mà các yếu tố bên ngoài có thể tương tác với các chương trình đó giống như là tương tác với các đối tượng vật lý Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu mà chúng được nhìn nhận như là một đơn vị duy nhất Mỗi đối tượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng
đó được tiến hành qua tên của nó Như vậy, mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữ liệu (bên trong của nó), và gửi ra hay trả lời đến các đối tượng khác hay đến môi trường Đa phần các ngôn ngữ lập trình thông dụng nhất hiện nay (như C++, Delphi, Java, Python etc.) là các ngôn ngữ lập trình đa mẫu hình và đều hỗ trợ lập trình hướng đối tượng ở nhiều mức độ khác nhau, thường được kết hợp với lập trình mệnh l
Trang 4MỤC LỤC:
Lời nói đầu 3
Chương I Tổng quan về LT HĐT với Java 5
1.Ngôn ngữ Java là gì? 5
2.Đối tượng (Object) và lớp (Class) trong OOP là gì? 5
2.1.Đối tượng(Object) 5
2.2.Lớp (Class) 6
3.Đặc tính cơ bản của OOP 7
4.Ưu điểm của OOP……….9
5.Giới thiệu công cụ lập trình………10
Chương II Phát biểu bài toán 11
1.Giới thiệu phần mềm 11
Chương III Cài đặt hệ thống 12
1.Cài đặt project 12
2.Code 12
3.Chạy thử kết quả 16
Chương IV Kiểm thử và đánh giá kết quả 17
Tài liệu tham khảo 18
Link source code:
https://drive.google.com/drive/folders/1NqfGD3Y16BUFTrbnGnMjPa7SFcTbo0F
U
Trang 5Chương I Tổng quan về LT HĐT với Java
1 Ngôn ngữ Java là gì
Java là một một ngôn ngữ lập trình hiện đại, bậc cao, hướng đối tượng, bảo mật và mạnh mẽ và là một Platform
Platform: Bất cứ môi trường phần cứng hoặc phần mềm nào mà trong đó có một
chương trình chạy, thì được hiểu như là một Platform Với môi trường runtime riêng cho mình (JRE) và API, Java được gọi là Platform
Ngôn ngữ lập trình Java ban đầu được phát triển bởiSun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995
Phiên bản mới nhất của Java Standard Edition là Java SE 8 Với sự tiến bộ của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại nền tảng khác nhau
Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động
Các phiên bản J2 mới đã được đổi tên thành Java SE, Java EE và Java ME
Phương châm của java là "Write Once, Run Anywhere" - viết một lần chạy
nhiều nơi, nghĩa là bạn chỉ cần viết một lần trên window chẳng hạn, sau đó vẫn chương trình đó bạn có thể chạy trên Linux, Android, các thiết bị J2ME
2 Đối tượng (Object) và lớp (Class) trong OOP là gì?
2.1 Đối tượng (Object)
Đối tượng trong OOP bao gồm 2 thành phần chính:
Trang 6• Thuộc tính (Attribute): là những thông tin, đặc điểm của đối tượng
• Phương thức (Method): là những hành vi mà đối tượng có thể thực hiện
Để dễ hình dung, ta có một ví dụ thực tế về đối tượng là smartphone Đối tượng này sẽ có:
• Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
• Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…
Object xác định hành vi của class Khi bạn gửi một thông điệp vào một object, có nghĩa là bạn đang yêu cầu gọi các object hoặc thực hiện một trong những
phương thức của nó
Từ một quan điểm của lập trình hướng đối tượng, một đối tượng có thể là một cấu trúc dữ liệu (data structure), một biến (variable) hoặc một chức năng
(function)
Object được phân bổ vị trí bộ nhớ Các Object được thiết kế như class phân cấp
Cách tạo Object trong Java:
<class_name> ReferenceVariable = new <class_name>();
Trong đó:
• <class_name>: Là kiểu dữ liệu của đối tượng bạn định tạo
• ReferenceVariable: Là tên tham chiếu của đối tượng
• new: Từ khóa để tạo đối tượng
• <class_name>(): Là class mà bạn tạo đối tượng từ nó
2.2 Lớp (Class)
Lớp là sự trừu tượng hóa của đối tượng Những đối tượng có những đặc tính tương tự nhau sẽ được tập hợp thành một lớp Lớp cũng sẽ bao gồm 2 thông tin là thuộc tính và phương thức
Trang 7Một đối tượng sẽ được xem là một thực thể của lớp
Tiếp nối ví dụ ở phần đối tượng (object) phía trên, ta có lớp (class)
smartphone gồm 2 thành phần:
• Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
• Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…
Các đối tượng của lớp này có thể là: iPhone, Samsung, Oppo, Huawei…
Nói cách khác, class chỉ là một bản kế hoạch hay một bộ chỉ dẫn để xây dựng các đặc điểm của đối tượng cụ thể sau này
Cách tạo class trong Java:
class <class_name> {
field;
method;
}
Trong đó:
• class: Là từ khóa để tạo class
• <class_name>: Là tên class bạn định tạo nó sẽ được viết theo quy tắc PascalCase (Viết liên và viết HOA chữ cái đầu tiên của từng từ)
• field: Các biến đối tượng
• method: Các phương thức
3 Đặc tính cơ bản của OOP
4 đặc tính cơ bản của OOP
Tính đóng gói (Encapsulation)
Tính đóng gói cho phép che giấu thông tin và những tính chất xử lý bên trong của đối tượng Các đối tượng khác không thể tác động trực tiếp đến dữ liệu
Trang 8bên trong và làm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức công khai do đối tượng đó cung cấp
Tính chất này giúp tăng tính bảo mật cho đối tượng và tránh tình trạng dữ liệu bị hư hỏng ngoài ý muốn
Tính kế thừa (Inheritance)
Đây là tính chất được sử dụng khá nhiều Tính kế thừa cho phép xây dựng một lớp mới (lớp Con), kế thừa và tái sử dụng các thuộc tính, phương thức dựa trên lớp cũ (lớp Cha) đã có trước đó
Các lớp Con kế thừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa lại Lớp Con có thể mở rộng các thành phần kế thừa hoặc bổ sung những thành phần mới
Ví dụ:
• Lớp Cha là smartphone, có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
• Các lớp Con là iPhone, Samsung, Oppo cũng có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
Tính đa hình (Polymorphism)
Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực thi chức năng giống nhau theo những cách khác nhau
Ví dụ:
• Ở lớp smartphone, mỗi một dòng máy đều kế thừa các thành phần của lớp cha nhưng iPhone chạy trên hệ điều hành iOS, còn
Samsung lại chạy trên hệ điều hành Android
• Chó và mèo cùng nghe mệnh lệnh “kêu đi” từ người chủ Chó sẽ
“gâu gâu” còn mèo lại kêu “meo meo”
Tính trừu tượng (Abstraction)
Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần thiết của đối tượng và chỉ tập trung vào những gì cốt lõi, quan trọng
Ví dụ: Quản lý nhân viên thì chỉ cần quan tâm đến những thông tin như:
• Họ tên
• Ngày sinh
• Giới tính
• …
Chứ không cần phải quản lý thêm thông tin về:
Trang 9• Chiều cao
• Cân nặng
• Sở thích
• Màu da
• …
Những ngôn ngữ OOP phổ biến nhất
Java
Java là ngôn ngữ lập trình hướng đối tượng (OOP), đa mục đích và độc lập nền tảng Thay vì biên dịch mã nguồn thành mã máy trên nền tảng cụ thể, code Java được biên dịch thành bytecode – một định dạng trung gian
Bytecode sau đó sẽ được chạy bởi môi trường thực thi (runtime
environment)
Code Java “viết một lần, chạy mọi nơi” nên khá lý tưởng cho những người mới tìm hiểu
C++
Là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Bjarne
Stroustrup nhưng C++ mang cả 2 phong cách: lập trình hướng cấu trúc giống
C và có thêm phong cách hướng đối tượng Nếu đã quen với lập trình hướng cấu trúc trước đó thì việc học C++ không phải là điều quá khó khăn
PHP
PHP là ngôn ngữ lập trình đa mục đích, được rất nhiều Developer sử dụng Đây là ngôn ngữ kịch bản mã nguồn mở, chạy ở phía server và được dùng
để tạo ra các ứng dụng web
JavaScript
JavaScript là ngôn ngữ lập trình được sử dụng trong việc xây dựng các
website có tính tương tác cao, với mức độ phổ biến được xếp hạng bậc nhất Học JavaScript khá dễ dàng và đặc biệt phù hợp cho những developer mới bắt đầu học lập trình
Python
Python là ngôn ngữ lập trình hướng đối tượng bậc cao, dùng để phát triển website và nhiều ứng dụng khác nhau Python được tạo ra bởi Guido van Rossum và được phát triển trong một dự án mã mở (open source)
Với cú pháp cực kì đơn giản và thanh lịch, Python là lựa chọn hoàn hảo cho những ai lần đầu tiên học lập trình
4.Ưu điểm của OOP
• OOP mô hình hóa những thứ phức tạp dưới dạng cấu trúc đơn giản
Trang 10• Code OOP có thể sử dụng lại, giúp tiết kiệm tài nguyên
• Giúp sửa lỗi dễ dàng hơn So với việc tìm lỗi ở nhiều vị trí trong code thì tìm lỗi trong các lớp (được cấu trúc từ trước) đơn giản và ít mất thời gian hơn
• Có tính bảo mật cao, bảo vệ thông tin thông qua đóng gói
• Dễ mở rộng dự án
5.Công cụ lập trình Apache NetBeans
NetBeans IDE là một công cụ hỗ trợ lập trình viết mã code miễn phí được cho là tốt nhất hiện nay, được sử dụng chủ yếu cho các lập trình viên phát triển Java tuy nhiên phần mềm có dung lượng khá là nặng dành cho các máy cấu hình có RAM, CPU tương đối cao để vận hành
NetBeans IDE là môi trường phát triển tích hợp và cực kỳ cần thiết cho các lập trình viên, công cụ này có thể hoạt động tốt với rất nhiều nền tảng hệ điều hành khác nhau như Linux, Windows, MacOS, là một mã nguồn mở cung cấp các tính năng cần thiết nhất nhăm tại ra các ứng dụng web, thiết bị di động, desktop NetBeans IDE hỗ trợ rất nhiều những ngôn ngữ lập trình như Python, Ruby, JavaScript, Groovy, C / C + +, và PHP
Tính năng chính của NetBeans IDE
• Hỗ trợ nhiều loại ngôn ngữ lập trình
• Chỉnh sửa mã nguồn thông minh
• Giao diện trực quan, dễ thao tác, sử dụng,
• Là một công cụ lập trình phần mềm máy tính hoặc phần mềm trên các thiết bị di động
• Gỡ lỗi mạng nội bộ và từ xa
• Thử nghiệm tính năng xây dựng giao diện đồ họa
Trang 11• Tính năng QuickSearch (Tìm kiếm nhanh), tự động biên dịch, hỗ trợ các
Framework cho website, trình ứng dụng máy chủ GlassFish và cơ sở dữ
liệu
Chương II Phát biểu bài toán
Mục đích:
+ Giúp quản lý thông tin chuyến bay của khách hàng một cách dễ dàng và
tiện lợi nhất
Mô hình Class:
Input
+Mã chuyến bay +Số ghế
+Ngày bay +Chặng bay
+Sân bay
Quản lý chuyến bay
Chức năng
+Thêm +Xóa +Sửa +In +Lưu +Tìm theo mã chuyến bay
Output
Danh sách thông tin các chuyến bay
Quản Lý Chuyến Bay
Class: CB
-Changbay:String
-NgayBay:int
-NhaGa:String
-Quay:double
-SanBay:String
-SoCB:String
-SoGhe:int
TinhTrang:String
Class: DanhSach
+DanhSach()
-dsCB:ArrayLít<CB
>
Class:Application
+Application
Class :CBTableModel
-CHANGBAY:int -NGAYBAY:int -NHAGA:int -QUAY:int -SANBAY:int -SOCB:int -SOGHE:int -TINHTRANG:int -dsCB:ArrayList<CB> Headers:String[]
serialVersionUID:long
Trang 12Chương III.Cài đặt hệ thống
1.Cài đặt project
Main
2.Code
Modify
Trang 14Tính kế thừa
Trang 15GUI
Trang 16Build UI
3.Kết quả
Trang 17Chương IV: Kiểm thử và đánh giá kết quả
Video Demo: Video Demo QuanLyVeMayBay.mp4 - Google Drive
Trong dự án lần này nhóm em đã dùng phương pháp lập trình hướng đối tượng để xây dựng chương trình quản lý vé máy bay.Kết quả đạt được bao gồm:
-Phát truyển được mô hình quản lý vé máy bay
-Phân tích,thiết kế bài toán theo đúng quy định và phương pháp lập trình hướng đối tượng
-Chương trình chạy và cho ra kết quả chính xác
Qua dự án lần này chúng em đã có thể vận dụng kiến thức học được để giải quyết bài toán và học thêm được nhiều kiến thức mới
Một số hạn chế:
Tuy đã đạt được kết quả trên nhưng vẫn còn rất hạn chế như là:
-Chưa có phần giao diện đăng nhập
-Chưa khai thác hết vấn đề thực tế của dự án
Trang 18Và vẫn còn nhiều hạn chế mà nhóm chưa khắc phục được do kiến thức còn hạn chế
Để có thể làm tốt hơn chúng em cần phải thực hành và vận dụng kiến thức nhiêu hơn và cần có sự hỗ trợ của các thầy cô để những dự án tiếp theo có thể tốt hơn
Tài liệu tham khảo
1 Website:
[1] https://lap-trinh-may-tinh.blogspot.com
[2].https://viettuts.vn/java
[3] https://www.tutorialspoint.com/java/index.htm
[4] https://docs.oracle.com/javase/tutorial/java/index.html
https://lap-trinh-may-tinh.blogspot.com/2021/05/khoa-hoc-hoc-lieu-tai-nguyen-mien-phi.html