Phần mềm Quản lí sản xuất nội thất 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.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐƠNG Á (bìa 1, bìa đóng giấy màu) TIỂU LUẬN/ 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/BÀI TẬP LỚN): QUẢN LÍ SẢN XUẤT NỘI THẤT Sinh viên thực hiên Ngày sinh Lớp: Khoa Mã sinh viên Giáo viên : : Vũ Quang Huy 08/07/2002 Khóa: 11 Cơng nghệ thơng tin 20200188 : : : Bắc Ninh, tháng… năm 20… BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á (trang phụ bìa số 2, bìa mềm) QUẢN LÍ SX NỘI THẤT TÊN (TIỂU LUẬN/ BÀI TẬP LỚN: QUẢN LÍ SẢN XUẤT NỘI THÂT Họ tên sinh viên: Vũ Quang Huy Ngày sinh: 08/7/2002 Khóa:11 Lớp: Ngành: Công nghệ thông tin Điểm (Tiểu luận/ tập lớn) Bằng số: CÁN BỘ CHẤM (Ký ghi rõ họ tên) Bằng chữ: CÁN BỘ CHẤM (Ký ghi rõ họ tên) Bắc Ninh, tháng … Năm 20 … DANH MỤC THANH VIÊN (Trình bầy trang riêng) STT Họ Và Tên thành viên Đóng góp(%) Dương Việt Hoàng 40% Vũ Quang Huy 40% Phan Quốc Chung 20% Số điểm Giáo viên hướng dẫn xác nhận MỤC LỤC (Trình bầy trang riêng) STT DANH MỤC CÁC TỪ VIẾT TẮT (Nếu có) (trình bầy trang riêng) Chữ viết tắt Giải thích DANH MỤC BẢNG BIỂU (Nếu có) (trình bầy trang riêng) Số hiệu Bảng 1.1 Tên Trang DANH MỤC HÌNH ẢNH (Nếu có) (trình bầy trang riêng) Số hiệu Hình 2.1 Tên Trang Nội dung chính: PHẦN : LÝ THUYẾT Chương 1: Giới thiệu -Định nghĩa Lập trinh hướng đối tượng -Các ưu điểm lập trình hướng đối tượng Chương 2: Cú pháp Java -Cú pháp Java -Cú pháp Java Chương 3: Lớp đối tượng -Đối tượng -Lớp - Sự khác lớp đối tượng java Chương 4: Tính Kế thừa - Tính kế thừa Java - Từ khóa extends implements Java -Các loại kế thừa Java 10 -Các loại kế thừa Java 11 -Các loại kế thừa Java 12 Chương 5: Đa hình -Định nghĩa đa hình java 13 -Đa hình lúc runtime java 13 -Đa hình lúc runtime Java với thành viên liệu 14 -Đa hình lúc runtime Java với kế thừa nhiều tầng 14 Chương 6: Ngoại lệ xử lý ngoại lệ -xử lý ngoại lệ 15 -xử lý ngoại lệ 16 -Hệ thống cấp bậc lớp ngoại lệ Java 17 -Các kiểu ngoại lệ 17 PHẦN : MƠ TẢ MỤC ĐÍCH CHƯƠNG TRÌNH -Nhu cầu thực tiễn…………………………………………………………………………… 18 -Xác định I/O…………………………………………………………………………… 18 -Các chức hệ thống………………………………………………………………… 18 PHẦN 3: XÂY DỰNG CHƯƠNG TRÌNH -Thiết lập SQL Server………………………………………………………………………… 18 -Xây dựng chương trình JAVA………………………………………………………… 19 I LÝ THUYẾT CHƯƠNG 1: Giới thiệu Định nghĩa lập trình hướng đối tượng -Lập trình hướng đối tượng hay cịn gọi lập trình OOP kỹ thuật lập trình mà tất logic, yêu cầu thực tế xây dựng xoay quanh đối tượng -Khi sử dụng OOP, định nghĩa class để mơ hình hóa đối tượng thực tế Trong ứng dụng class khởi tạo thành instance Trong suốt thời gian ứng dụng chạy, phương thức (method) đối tượng gọi -Trong giới thực, đối tượng thực thể tồn có trạng thái hành vi -Hướng tiếp cận thành công trở thành khuôn mẫu phát triển phần mềm, đặc biệt phần mềm cho doanh nghiệp Các ưu điểm lập trình đối tượng • Dựa ngun lý kế thừa, q trình mơ tả lớp loại bỏ chương trình bị lặp, dư Và mở rộng khả sử dụng lớp mà không cần thực lại Tối ưu tái sử dụng code hiệu • Đảm bảo rút ngắn thời gian xây dựng hệ thống tăng suất thực • Sự xuất khái niệm lớp đối tượng đặc trưng phương pháp lập trình hướng đối tượng Nó giải khuyết điểm phương pháp lập trình hướng cấu trúc để lại Ngoài khái niệm giúp biểu diễn tốt giới thực máy tính CHƯƠNG 2: Cú pháp java Về chương trình Java, bạn đặt tên cho thành phần nào, bạn cần tuân theo qui ước đặt tên chúng Qui ước đặt tên Java qui tắc bạn cần theo định đặt tên cho định danh (Identifier) mình, chẳng hạn đặt tên cho lớp, package, biến, hằng, phương thức, … Nhưng khơng bắt buộc để bạn phải theo Vì gọi qui ước khơng phải qui tắc • • Java chương trình phân biệt chữ hoa chữ thường, điều có nghĩa QUANGHUY QUANGHUY mang ý nghĩa khác Java Tên Class - Tất tên Class Java nên viết hoa chữ danh từ Nếu khơng viết hoa, trình IDE cảnh báo bạn (tất nhiên Java chấp nhận cố tình viết thường chữ đầu tiên) • • Ví dụ class System Tên Interface - Nên bắt đầu với chữ hoa tính từ, ví dụ: Runnable, ActionListener Tên phương thức - Tất tên phương thức nên bắt đầu với chữ thường động từ Ví dụ public void actionPerformed() • • • • Tên biến - Nên bắt đầu với chữ thường, ví dụ: firstName, orderNumber Tên package - Nên bắt đầu với chữ thường, ví dụ: java, lang, sql, util Tên - Nên bắt đầu với chữ hoa, ví dụ: RED, YELLOW, MAX_PRIORITY Tên file chương trình - Tên file nên giống hệt tên class Khi bạn lưu file, bạn nên sử dụng tên class thêm hậu tố `.java` • Ví dụ: với tên class `MyfirstJavaProgram`, bạn nên lưu file tên `MyFirstJavaProgram.java` public static void main(String args[]) - Chương trình Java bắt đầu phương thức main() cho tất chương trình J2SE CHƯƠNG 3: LỚP VÀ ĐỐI TƯỢNG -Trong học lớp đối tượng java Trong phương pháp lập trình hướng đối tượng, thiết kế chương trình việc sử dụng lớp đối tượng Đối tượng Một thực thể có trạng thái hành vi gọi đối tượng Ví dụ máy pha cà phê, xe đạp, quạt Một đối tượng có ba đặc điểm: • • • Trạng thái: Đại diện cho liệu (giá trị) đối tượng Hành vi: Đại diện cho hành vi (chức năng) đối tượng gửi tiền, rút tiền, Danh tính: Danh tính đối tượng thường cài đặt thông qua ID ID ẩn user bên ngồi Tuy nhiên sử dụng nội máy ảo JVM để định danh đối tượng Ví dụ: Bút chì đối tượng Tên A, màu trắng, gọi trạng thái Nó sử dụng để viết, viết gọi hành vi Đối tượng(Object) thể lớp(Class) Lớp mẫu thiết kế từ đối tượng tạo Vì vậy, đối tượng thể (kết quả) lớp Lớp Một lớp nhóm đối tượng có thuộc tính chung Nó mẫu thiết kế từ đối tượng tạo Một lớp java chứa: • • • • • Thành viên liệu Constructor Phương thức Khối lệnh Lớp Interface Các ví dụ đơn giản lớp đối tượng java Ví dụ 1: Trong ví dụ này, tạo lớp Student có hai thành viên liệu id name Chúng ta tạo đối tượng lớp Student từ khóa new in giá trị đối tượng ? public class Student { int id; // thành viên liệu String name; // thành viên liệu public static void main(String args[]) { Student student1 = new Student(); // tạo đối tượng student1 System.out.println(student1.id); System.out.println(student1.name); } 10} Kết quả: null Sự khác lớp đối tượng java Sự khác lớp đối tượng java thống kê bảng sau: No Đối tượng Lớp Đối tượng thể lớp Lớp khuân mẫu hay thiết kế để tạo đối tượng Đối tượng thực thể giới thực Bút chì, Xe đạp, Lớp nhóm đối tượng tương tự Đối tượng thực thể vật lý Lớp thực thể logic Đối tượng tạo chủ yếu từ từ khóa new Ví dụ: Student s1=new Student(); Lớp khai báo việc sử dụng từ khóa class Ví dụ: class Student{} Đối tượng tạo nhiều lần Lớp khai báo lần Đối tượng cấp nhớ tạo Lớp khơng cấp nhớ tạo Có nhiều cách để tạo đối tượng java từ khóa new, phương thức newInstance(), phương thức clone(), phương thức factory deserialization Chỉ có cách để định nghĩa lớp java sử dụng từ khố class CHƯƠNG 4: TÍNH KẾ THỪA [Tính kế thừa Java - Từ khóa extends implements Java]Tính kế thừa Java mơt kỹ thuật mà đối tượng thu tất thuộc tính hành vi đối tượng cha Ý tưởng đằng sau tính kế thừa Java bạn tạo lớp mà xây dựng dựa lớp tồn Khi bạn kế thừa từ lớp tồn tại, bạn tái sử dụng phương thức trường lớp cha, bạn bổ sung thêm phương thức trường khác Tính kế thừa biểu diễn mối quan hệ IS-A, gọi mối quan hệ cha-con Khi nói tính kế thừa, từ khóa thường xun sử dụng extends java implements java Những từ khóa định nghĩa kiểu loại IS-A loại khác Sử dụng từ khóa, tạo đối tượng sử dụng thuộc tính đối tượng khác Chúng ta sử dụng từ khóa extends lớp để kế thừa thuộc tính lớp cha trừ thuộc tính private lớp cha Các loại kế thừa Java Trên sở lớp có loại kế thừa Java, single (đơn), multilevel (nhiều tầng) hierarchical (có cấu trúc) Trong lập trình Java, đa kế thừa (multiple) kế thừa lai (hybrid) hỗ trợ thơng qua Interface Chúng ta tìm hiểu Interface chương sau Ghi chú: Đa kế thừa không hỗ trợ Java thông qua lớp Khi lớp kế thừa từ nhiều lớp, đa kế thừa Câu hỏi: Tại đa kế thừa không hỗ trợ Java thông qua lớp? Trả lời: Để giảm tính phức tạp làm đơn giản hóa ngơn ngữ, đa kế thừa khơng hỗ trợ Java Giả sử có tình có ba lớp A, B C Lớp C kế thừa lớp A B Nếu lớp A B có phương thức bạn gọi từ đối tượng lớp con, điều gây tính lưỡng nghĩa để gọi phương thức lớp A lớp B Bởi vì, compile time error tốt runtime error, Java thông báo compile time error bạn kế thừa lớp Do đó, dù bạn có hay khơng có phương thức hay khác phương thức, lỗi compile time class A{ void msg(){System.out.println("Hello");} } class B{ void msg(){System.out.println("Welcome");} } class C extends A,B 10 void run() { System.out.println("running safely with 60km"); } 10 11 public static void main(String args[]) { 12 Bike b = new Splender();// upcasting 13 b.run(); 14 } 15 } Kết quả: running safely with 60km Đa hình lúc runtime Java với thành viên liệu Phương thức bị ghi đè khơng thành viên liệu, đa hình runtime khơng thể có thành viên liệu Trong ví dụ sau đây, hai lớp có thành viên liệu speedlimit, truy cập thành viên liệu biến tham chiếu lớp cha mà tham chiếu tới đối tượng lớp Khi truy cập thành viên liệu mà khơng bị ghi đè, ln ln truy cập thành viên liệu lớp cha class Bike{ int speedlimit=90; 3} 4class Honda3 extends Bike{ int speedlimit=150; public static void main(String args[]){ Bike obj=new Honda3(); System.out.println(obj.speedlimit);//90 10} Kết quả: 90 Đa hình lúc runtime Java với kế thừa nhiều tầng Ví dụ 1: ? 1class Animal { void eat() { System.out.println("eating"); } 5} 7class Dog extends Animal { void eat() { 14 System.out.println("eating fruits"); } 10 11} 12 13class BabyDog extends Dog { void eat() { 14 System.out.println("drinking milk"); 15 } 16 17 public static void main(String args[]) { 18 Animal a1, a2, a3; 19 a1 = new Animal(); 20 a2 = new Dog(); 21 a3 = new BabyDog(); 22 a1.eat(); 23 a2.eat(); 24 a3.eat(); 25 } 26} 27 Kết quả: eating eating fruits drinking Milk Chương 6: Ngoại lệ xử lý ngoại lệ Exception Handling java hay xử lý ngoại lệ java chế mạnh mẽ để xử lý lỗi runtime để trì luồng bình thường ứng dụng Trong này, tìm hiểu ngoại lệ (Exception) java, kiểu ngoại lệ khác biệt ngoại lệ checked unchecked Exception gì? Theo từ điển: Exception (ngoại lệ) tình trạng bất thường Trong java, ngoại lệ kiện làm gián đoạn luồng bình thường chương trình Nó đối tượng ném runtime Exception Handling gì? 15 Exception Handling (xử lý ngoại lệ) chế xử lý lỗi runtime ClassNotFound, IO, SQL, Remote, vv Lợi Exception Handling java Lợi cốt lõi việc xử lý ngoại lệ trì luồng bình thường ứng dụng Ngoại lệ thường làm gián đoạn luồng bình thường ứng dụng lý sử dụng xử lý ngoại lệ Hãy xem xét kịch sau: ? 1statement 1; 2statement 2; 3statement 3; 4statement 4; 5statement 5; //ngoại lệ xảy 6statement 6; 7statement 7; 8statement 8; 9statement 9; 10statement 10; Giả sử có 10 câu lệnh chương trình bạn xảy trường hợp ngoại lệ câu lệnh 5, phần lại chương trình khơng thực thi, nghĩa câu lệnh đến 10 không chạy Nếu thực xử lý ngoại lệ, phần lại câu lệnh thực Đó lý sử dụng xử lý ngoại lệ java Hệ thống cấp bậc lớp ngoại lệ Java 16 Các kiểu ngoại lệ Có hai loại ngoại lệ là: checked unchecked Cịn Sun Microsystem nói có ba loại ngoại lệ: Checked Exception Unchecked Exception Error 17 II MƠ TẢ MỤC ĐÍCH CHƯƠNG TRÌNH PHẦN MỀM QUẢN LÍ SẢN XUẤT NỘI THẤT 2.1 Nhu cầu thực tiễn - Quản lí nhiều mặt hàng, giao dịch, doanh thu - Dễ dàng truy cập, tìm kiếm thơng tin sản phẩm đặc điểm theo yêu cầu người dùng - Các liệu thống nhất, lưu trữ suốt q trình bán hàng, độ an tồn thơng tin => Giải pháp: - Xây dựng chương trình JAVA kết nối CSDL để phục vụ việc lưu trữ, thống kê, tính tốn, tra cứu, báo cáo hàng hóa, khách hàng 2.2 Xác định I/O Input: - Danh sách sản phẩm - Danh sách nhập gỗ - Danh sách khách hàng Output: - Bảng quản lý với thông tin liệu sản phẩm, nhân viên, khách hàng 2.3 Các chức hệ thống - Lọc liệu với yêu cầu riêng - Cho phép tạo nhiều sở liệu - Thống kê đầy đủ ràng buộc III Xây dựng chương trình 3.1 Thiết lập SQL Server 3.1.2 Source Database SQL Server 18 3.1.3 Sơ đồ Diagram SQL Server - Miêu tả kết nối kết Table Database QuanLiSanXuatNoiThat 19 3.2 Xây dựng chương trình JAVA 3.2.1 Kiến thức áp dụng BTL - Lập trình hướng đối tượng (OOP) : + Lớp cha , kế thừa + Tính đóng gói + Phương thức khởi tạo Constructor + Phương thức ghi đè Override + Lớp trừu tượng : Interface + Luồng vào I/O - Java Swing : + Kết nối CSDL + Vector + Jframe form Jframe Dialog 3.2.2 Source code 20