Phần mềm quản lý cửa hàng xe máy với Java | 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ÁO CÁO BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
TÊN TIỂU LUẬN:
PHẦN MỀM QUẢN LÝ CỬA HÀNG XE MÁY
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 TIỂU LUẬN:
PHẦN MỀM QUẢN LÝ CỬA HÀNG XE MÁY
tháng năm sinh
Mã sinh viên Nhiệm vụ
Trang 3MỤC LỤC
I Giới thiệu chung về lập trình hướng đối tượng (OOP) 2
1 Khái niệm: 2
Objects 2
Layer 2
Sự khác nhau giữa các đối tượng và lớp 2
2 Các tính chất cơ bản 2
3 Một điểm mới về mẫu hình, về quan điểm 4
4 Các mẫu hình định hướng đối tượng con 5
5.Giới thiệu công cụ và dự án……… 6
II Giới thiệu về dự án ……… 8
2.Giới thiệu về dự án 8
2.1 SQL……….14
2.2 Tạo Project: 12
2.3 Viết code: ……… ………12
2.4 Chạy chương trình: 17
Đánh giá chung: 24
Tài liệu tham khảo để cùng học Java: 25
Trang 4LỜI MỞ ĐẦ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ệnh, lập trình thủ tục
Trang 5I Giới thiệu chung về lập trình hướng đối tượng (OOP)
1 Khái niệm:
-Lập đối tượng định hướng (OOP) là kỹ thuật lập trình cho phép lập trình
viên tạo ra các đối tượng trong các đối tượng mã hóa
Objects
Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức
• Chính thuộc tính là những thông tin, đặc điểm của đối tượng Ví dụ: con
người có các đặc tính như mắt, mũi, tay, chân…
• Phương thức là những tác vụ, hành động mà đối tượng đó có thể thực
hiện Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống ,
Layer
Một lớp là một bao gồm dữ liệu kiểu bao gồm các thuộc tính và các phương thức được định nghĩa từ trước Đây là một biểu tượng của đối tượng Khác với thông thường dữ liệu kiểu, một lớp là một đơn vị (vật thể) bao gồm sự kết hợp giữa các phương thức và các thuộc tính Hiểu nôm na hơn là các đối tượng có các đặc tính tương đồng được gom lại thành một đối tượng lớp
Sự khác nhau giữa các đối tượng và lớp
Lớp bạn có thể hiểu nó như là mẫu, đối tượng là một thực thể có thể thực hiện dựa trên mẫu đó Ví dụ: Ta nói về loài chó, bạn có thể hiểu nó là lớp (lớp) chó có:
• Các thông tin, đặc điểm: 4 chân, 2 mắt, có đuôi, có chiều cao, có cân nặng, màu lông…
Đối tượng thì chính là con chó Phú Quốc ta đang nuôi trong nhà cũng mang đặc tính của lớp chó
2.Các tính chất cơ bản
Đối tượng (object): Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ
tạo nên một đối tượng Đơn vị này tương đương với một chương trình con và vì thế các đối tượng sẽ được chia thành hai bộ phận chính: phần các phương
thức (method) và phần các thuộc tính (attribute / Properties) Trong thực tế,
các phương thức của đối tượng là các hàm và các thuộc tính của nó là các biến, các tham số hay hằng nội tại của một đối tượng (hay nói cách khác tập hợp các
dữ liệu nội tại tạo thành thuộc tính của đối tượng) Các phương thức là phương
Trang 6tiện để sử dụng một đối tượng trong khi các thuộc tính sẽ mô tả đối tượng có những tính chất gì
Các phương thức và các thuộc tính thường gắn chặt với thực tế các đặc tính và
sử dụng của một đối tượng
Trong thực tế, các đối tượng thường được trừu tượng hóa qua việc định nghĩa của các lớp (class)
Tập hợp các giá trị hiện có của các thuộc tính tạo nên trạng thái của một đối tượng
Mỗi phương thức hay mỗi dữ liệu nội tại cùng với các tính chất được định nghĩa (bởi người lập trình) được xem là một đặc tính riêng của đối tượng Nếu không
có gì lầm lẫn thì tập hợp các đặc tính này gọi chung là đặc tính của đối tượng Lập trình hướng đối tượng là một phương pháp lập trình có 4 tính chất chính sau:
hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành
được các thao tác Tính chất này thường được gọi là sự trừu tượng của
dữ liệu
• Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):
Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó Việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã Đây là tính chất đảm bảo sự toàn vẹn của đối tượng
điệp (message) Việc gửi các thông điệp này có thể so sánh như việc gọi
các hàm bên trong của một đối tượng Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau Người lập trình có thể định nghĩa một đặc tính
(chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn
sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà
Trang 7không phải tiến hành định nghĩa lại Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất
3.Một điểm mới về mẫu hình, về quan điểm
OOP vẫn còn là một đề tài của nhiều tranh cãi về định nghĩa chuẩn xác hay về các nguyên lý của nó
Trong dạng tổng quát nhất, OOP được hiểu theo cách là một loại thực nghiệm
viết chương trình văn bản được phân cấp ra thành nhiều mô đun (module), mà
mỗi mô đun đóng vai như một lớp vỏ che đại diện cho mỗi kiểu dữ liệu
Những khái niệm liên hệ đã được góp nhặt lại để tạo thành một khuôn khổ cho việc lập trình Các triết lý đằng sau việc định hướng đối tượng đã trở nên mạnh
mẽ để tạo thành một sự chuyển đổi mẫu hình trong ngành lập trình
Những mẫu hình khác như lập trình chức năng và lập trình thủ tục tập trung chủ yếu trên các hành động, còn lập trình lô gíc lại tập trung vào những khẳng định hợp lý để kích hoạt sự thực thi của mã chương trình
OOP đã phát triển một cách độc lập từ việc nghiên cứu về các ngôn ngữ định hướng của hệ thống mô phỏng, đó là SIMULA 67, và từ việc nghiên cứu các kiến trúc của hệ thống có độ tin cậy cao, đó là các kiến trúc CPU và khả năng cơ bản của các hệ điều hành
Một chức năng đặc sắc của OOP là việc xử lý các kiểu con của các kiểu dữ liệu
Dữ liệu của các đối tượng, một cách tổng quát, được đòi hỏi trong thiết kế để thỏa mãn các yêu cầu của người lập trình (tức là các lớp)
Các kiểu dữ liệu bị giới hạn thêm các điều kiện mặc dù có cùng kiểu dữ liệu với loại không bị ràng buộc bởi các điều kiện đó, gọi là kiểu dữ liệu con Cả hai loại kiểu dữ liệu này đều dựa vào và đều được điều tiết bởi các hành xử (tức là các phương thức) đã được định nghĩa Các điều kiện hay yêu cầu này có thể được khai báo rõ ràng hay được giả thiết công nhận ngầm bởi người lập trình Các ngôn ngữ định hướng đối tượng cung cấp nhiều cơ chế cho việc khẳng định rằng các giả thiết đó có tính địa phương cho một phần của chương trình Các cơ chế này này có thể đọc thấy trong các tài liệu về các chương trình định hướng đối tượng
OOP tự nó đã đang được dùng để khuyến mãi cho nhiều sản phẩm và dịch vụ Các định nghĩa hiện tại và ích lợi của các đặc tính của OOP thường được màu
mè hóa bởi các mục đích của thị trường thương mại Tương tự, nhiều ngôn ngữ lập trình có những quan điểm đặc biệt về OOP mà nó ít tổng quát trong một số khía cạnh
Các định nghĩa chính xác của OOP sẽ có sự khác biệt tùy theo quan điểm Đặc biệt, các ngôn ngữ có kiểu tĩnh thường có cái nhìn hơi khác với các ngôn ngữ có
Trang 8kiểu động về OOP, nguyên do là vì chúng tập trung trên thời gian dịch hay tập trung vào thời gian thi hành của các chương trình
OOP thường được xem là một mẫu hình hơn là một kiểu hay một phong cách lập trình nhằm nhấn mạnh vào điểm quan trọng là OOP có thể thay đổi phương thức phát triển phần mềm bằng cách thay đổi tư duy của những người lập
trình và những kỹ sư phần mềm về phần mềm
Mẫu hình của OOP chủ yếu không phải là kiểu lập trình mà là kiểu thiết kế Một
hệ thống được thiết kế bởi định nghĩa của các đối tượng mà các đối tượng này
sẽ tồn tại trong hệ thống đó, trong mã mà hiện làm việc chưa tương thích với đối tượng, hay là trong người dùng đối tượng do ảnh hưởng của tính chất đóng của đối tượng
Cũng nên lưu ý rằng có sự khác biệt giữa mẫu hình định hướng đối tượng và lý thuyết các hệ thống OOP tập trung trên các đối tượng như là các đơn vị của một hệ thống, trong khi đó, lý thuyết các hệ thống lại tự nó chỉ tập trung vào hệ thống Như là phần trung gian, người ta có thể tìm thấy các dạng thức thiết
kế phần mềm hay các kỹ thuật khác dùng các lớp và các đối tượng như là các viên gạch trong những thành phần lớn hơn Những thành phần này có thể được xem như là bước trung gian từ mẫu hình định hướng đối tượng đến các mô hình
"định hướng sống thực" hơn của lý thuyết các hệ thống
4.Các mẫu hình định hướng đối tượng con
Có nhiều phong cách lập trình hướng đối tượng Sự khác nhau giữa các phong cách này là tùy theo việc các ngôn ngữ lập trình chú trọng vào khía cạnh nào của sự thuận lợi của định hướng đối tượng và vào việc kết hợp các cấu trúc trong các phương cách khác nhau
OPP với các ngôn ngữ cấu trúc:
Trong các ngôn ngữ cấu trúc, OOP thường xuất hiện như là một dạng mà ở đó các kiểu dữ liệu được mở rộng để hành xử giống như là một kiểu của một đối tượng trong OOP, hoàn toàn tương tự cho một kiểu dữ liệu trừu tượng với sự
mở rộng như là sự kế thừa Mỗi phương pháp thực ra là một chương trình con, một cách cú pháp, giới hạn nội trong một lớp
Các mô hình nguyên mẫu cơ bản:
Khác với cách sử dụng lớp, nguyên mẫu là một mô hình khác ít được biết đến hơn, nó có ý nghĩa đạt tới việc chia sẻ ứng xử theo định hướng đối tượng Sau khi đối tượng được định nghĩa, một đối tượng khác tương tự sẽ được định nghĩa
từ đối tượng ban đầu Ngôn ngữ nguyên mẫu cơ bản được biết đến nhiều nhất
là JavaScript mà đây là một sự thiết lập của ECMAScript Self, một ngôn ngữ lập trình được phát triển bởi Sun Microsystems cũng là một ví dụ của ngôn ngữ dùng nguyên mẫu cho việc chia sẻ ứng xử chứ không dùng sự phân
lớp NewtonScript, Act1, Io và Delegation là các ví dụ khác Đặc
biệt, Hybrid và Exemplars sử dụng cả hai mô hình nguyên mẫu và phân lớp
Trang 9Trong các hệ thống nguyên mẫu, các đối tượng tự chúng là các khuôn thức
(template), trong khi các hệ thống phân lớp dùng các lớp như là các khuôn thức
cho các đối tượng
Các tiếp cận kiểu phân lớp thì chiếm đa số trong OOP mà nhiều người sẽ định nghĩa các đối tượng như là có tính chất đóng mà việc chia sẻ dữ liệu xảy ra bởi
sự phân lớp và bởi tính kế thừa Mặc dù vậy, khái niệm tổng quát hơn "chia sẻ ứng xử" được công nhận như là các kỹ thuật thay thế (như trường hợp nguyên mẫu)
5.Giới thiệu công cụ và dự án
*Công cụ Apache Netbeans
NetBeans là một môi trường phát triển tích hợp (IDE) cho Java NetBeans cho
phép các ứng dụng được phát triển từ một tập hợp các thành phần phần mềm
được gọi là modules NetBeans chạy trên Windows, macOS, Linux và Solaris
Ngoài việc phát triển Java, nó còn có các phần mở rộng cho các ngôn ngữ khác như PHP, C, C++, HTML5, và JavaScript Các ứng dụng dựa trên NetBeans, bao gồm NetBeans IDE, có thể được mở rộng bởi các nhà phát triển bên thứ ba
Netbeans IDE
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
Trang 10Hình 2.1 Công cụ Apache Netbeans IDE
Qua nhiều phiên bản cũ, nay công cụ lập trình NetBeans IDE đã cập nhật lên phiên bản 12.5 mới nhất có rất nhiều thay đổi và nâng cấp so với các phiên bản
cũ hơn có thể kể đến như:
Để có thể cài đặt được NetBeans IDE các bạn phải cài đặt và cấu hình sẵn JDK trong máy thì mới cài đặt được NetBean IDE được chia thành nhiều gói khác nhau để người dùng có thể tải về từng phần, tiết kiệm dung lượng, tùy theo nhu cầu của mình
Giống với Notepad++, NetBean IDE có gợi ý cú pháp khá tốt, và còn nhiều tính năng khá thú vị như tự động căn chỉnh mã nguồn, Remote FTP, SVN … Chính
vì thế, nó được xem là môi trường phát triển không thể bỏ qua cho các lập trình viên
Tính năng chính của Netbeans IDE
• Hỗ trợ nhiều loại ngôn ngữ lập trình
Trang 11• Chỉnh sửa mã nguồn thông minh
thiết bị di động
Framework cho website, trình ứng dụng máy chủ GlassFish và cơ sở dữ liệu
+hinh: Nơi lưu chữ hình ảnh
+quanlyxe: tạo bảng jFrame
+quanlyxethucthe:Nơi xử lý thông tin của từng đối tượng
+quanlyxe.xuly:Nơi xử lý công việc của từng đối tượng
Để kết nối thông tin dũ liệu bảng vào Java chúng em đã sử dụng SQL sever
Trang 12Hóa Đơn:
Trang 13Khách hàng:
Kho:
Loại xe:
Trang 14Nhà cung cấp:
Tài khoản: