BÁO cáo lập trình hướng đối tượng (OOP) đề tài bài 04 ngân hàng ACB lưu trữ thông tin của tài khoản

21 15 0
BÁO cáo lập trình hướng đối tượng (OOP) đề tài bài 04 ngân hàng ACB lưu trữ thông tin của tài khoản

Đ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

TRƯỜNG ĐẠI HỌC KIÊN GIANG KHOA THÔNG TIN & TRUYỀN THÔNG BÁO CÁO Lập trình hướng đối tượng (OOP) Đề tài: Bài 04 Ngân hàng ACB lưu trữ thông tin tài khoản Sinh viên : Ngô Phước Thành MSSV : 2006206075 Sinh viên : Lê Quốc Thịnh MSSV : 2006206080 Lớp : B20TT2 Nhóm HP : 02 GVHD : Nguyễn Minh Đức Tháng 11 năm 2021 TIEU LUAN MOI download : skknchat@gmail.com Lời Cảm Ơn Trước tiên với tình cảm sâu sắc chân thành nhất, cho phép em bày tỏ lòng biết ơn đến tất cá nhân tổ chức tạo điều kiện hỗ trợ, giúp đỡ em suốt trình học tập làm báo cáo Trong suốt thời gian từ bắt đầu học tập trường đến nay, em nhận nhiều quan tâm, giúp đỡ quý Thầy Cơ bạn bè Để hồn thành báo cáo lần này, em xin tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Minh Đức thuộc khoa Thông Tin Truyền Thông – Trường Đại học Kiên Giang Thầy cố gắng truyền đạt lại kiến thức cách chi tiết thiết thực nhất suốt trình giảng dạy để chúng em để làm tốt báo cáo Ngoài chúng em cảm ơn đến Thầy, Cô Khoa Thông Tin Truyền Thông tạo điều kiện cho chúng em làm báo cáo để tạo tiền đề tốt cho khóa luận sau Bên cạnh đó, em gủi lời cảm ơn trân trọng đến bạn, giúp đỡ, cung cấp, đưa hướng giải thực tế Đồng thời, trình báo cáo khơng thể tránh thiếu xót, mong góp ý, hướng dẫn q thầy để làm tốt sau Một lần chúng em xin cảm ơn đến thầy cô, bạn bè lời cảm ơn trân trọng Kiên Giang, ngày tháng 11 năm 2021 Sinh viên thực Sinh viên thực Ngô Phước Thành Lê Quốc Thịnh TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu đề tài CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH 2.1 Tóm tắt lý thuyết 2.1.1 Tính trừu tượng (abstraction) 2.1.1.1 Lớp interface 2.1.2 Tính đóng gói (encapsulation) 2.1.3 Tính đa hình (polymorphism) 2.1.4 Tính kế thừa (inheritance) 2.1.5 ArrayList 2.1.6 Cơ chế xử lí ngoại lệ (Khối try catch) 2.1.7 Class(lớp) CHƯƠNG 3: HƯỚNG GIẢI QUYẾT BÀI TOÁN 3.1 Tạo Class iCV (interface) 3.2 Tạo Class Account kế thừa lớp iCV 3.3 Tạo Class main CHƯƠNG 4: SOURCE CODE 12 4.1 Class iCV 12 4.2 Class Account 12 4.3 Class main 15 Tài liệu tham khảo .21 TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu đề tài Bài 04 Ngân hàng ABC muốn lưu trữ thông tin tài khoản sau: • Số tài khoản (kiểu long) • Tên tài khoản (kiểu chuỗi) • Số tiền tài khoản (kiểu double) (a) Thiết kế lớp Account để lưu trữ thông tin, lớp bao gồm phương thức sau: • Constructor: có 02 constructors (mặc định đầy đủ tham số) • Các phương thức get, set cho thuộc tính • Phương thức toString để trả chuỗi chứa tồn thơng tin tài khoản, u cầu định dạng tiền tệ (b) Thêm thông tin sau vào lớp Account • Hằng số lãi suất có giá trị khởi tạo 0.035 • Constructor có 02 đối số: số tài khoản, tên tài khoản Constructor khởi tạo số tiền mặc định 50 • Phương thức nạp tiền vào tài khoản: lấy số tiền tài khoản + số tiền nạp vào • Phương thức rút tiền: lấy số tiền tài khoản – (số tiền muốn rút + phí rút tiền) • Phương thức đáo hạn: lần đến kỳ đáo hạn số tiền tài khoản = số tiền tài khoản + số tiền tài khoản * LAISUAT • Phương thức chuyển khoản từ tài khoản sang tài khoản khác Chú ý: thao tác phải kiểm tra số tiền nạp, rút, chuyển có hợp lệ hay khơng ? (Ví dụ: tiền nhập vào tiền tài khoản yêu cầu nhập lại) TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH 2.1 Tóm tắt lý thuyết 2.1.1 Tính trừu tượng (abstraction) Một lớp cha khơng dùng để tạo đối tượng gọi lớp sở trừu tượng, hay ngắn gọn lớp trừu tượng (abstract class) Với lớp thuộc diện này, trình biên dịch báo lỗi đoạn mã định tạo thực thể lớp Tất nhiên, ta dùng tham chiếu thuộc kiểu lớp trừu tượng Thực mục đích quan trọng việc sử dụng lớp trừu tượng - để có đa hình cho đối số, kiểu trả về, mảng Bên cạnh mục đích sử dụng lớp trừu tượng làm nơi đặt phương thức dùng chung để lớp thừa kế 2.1.1.1 Lớp interface Với từ khóa interface, trừu tượng hồn tồn giao diện lớp khỏi thực Nghĩa đặc tả lớp phải làm gì, khơng cần biết làm Giao diện tập hợp khai báo phương thức, mà lớp kế thừa Giao diện có cú pháp tương tự lớp, khơng có biến thành viên, có khai báo phương thức mà chúng khai báo khơng có thân Số lượng lớp thực giao diện tùy ý Một lớp thực số lượng tùy ý giao diện 2.1.2 Tính đóng gói (encapsulation) Là chế dùng vỏ bọc kết hợp phần liệu thao tác liệu thành thể thống nhất, tạo nên an tồn, tránh việc sử dụng khơng thiết kế, bảo vệ mã lệnh liệu cách chống truy xuất từ đoạn mã bên Tính chất khơng cho phép người sử dụng đối tượng thay đổi trạng thái nội đối tượng chiều hướng không định trước Chỉ phương thức nội đối tượng cho phép thay đổi trạng thái Cho phép mơi trường bên ngồi tác động lên liệu nội đối tượng theo cách nào, hoàn tồn tùy thuộc vào người viết mã Đây tính chất an toàn đối tượng Các tham số giá trị trả sử dụng đắc lực phương thức có nhiệm vụ truy nhập liệu đối tượng Có hai loại phương thức truy nhập: TIEU LUAN MOI download : skknchat@gmail.com • Các phương thức đọc liệu đối tượng trả liệu đọc Chúng thường đặt tên getDữLiệuGìĐó, nên cịn gọi phương thức get • Các phương thức ghi liệu vào biến thực thể đối tượng, chúng nhận liệu qua tham số ghi vào biến liên quan Chúng thường đặt tên setDữLiệuGìĐó, nên cịn gọi phương thức set Nửa cơng việc cịn lại, cần làm để che giấu liệu, không cho phép đoạn mã khác dùng tham chiếu trực tiếp sửa biến thực thể? Làm cách để che giấu liệu? Quy tắc khởi đầu cho việc thực đóng gói là: đánh dấu biến thực thể với từ khóa private cung cấp phương thức public set get cho biến Các từ khóa private public quy định quyền truy nhập biến thực thể, phương thức, hay lớp khai báo với từ khóa (Ta quen với từ khóa public, kèm khai báo tất phương thức main.) Từ khóa private có nghĩa riêng tư, cá nhân Trong lớp, biến thực thể / phương thức khai báo với từ khóa private có mã chương trình bên lớp có quyền truy nhập biến / phương thức Từ ta gọi biến / phương thức khai báo với từ khóa private biến private / phương thức private Cịn public có nghĩa mã đâu truy nhập biến / phương thức 2.1.3 Tính đa hình (polymorphism) Thể thông qua việc gởi thông điệp, so sánh việc gọi hàm bên đối tượng Phương thức trả lời thông điệp tùy theo đối tượng gởi tới mà có phản ứng khác Người lập trình định nghĩa đặc tính (chẳng hạn thơng qua tên phương thức) cho loạt đối tượng gần Khi thi hành tên gọi thực thi đối tượng tự động xảy tương ứng theo đặc tính đối tượng mà không bị nhầm lẫn Như vậy, với đa hình, ta viết đoạn mã khơng phải sửa đối ta bổ sung lớp vào chương trình Để thực tính đa hình ta có nhiều cách: • Nạp chồng phương thức (Overload) • Ghi đè (Override) • Sử dụng chế upcasting downcasting 2.1.4 Tính kế thừa (inheritance) Là khả xây dựng lớp từ lớp có Tính đóng gói tác động đến tính kế thừa Khi lớp đóng gói số liệu phương thức, lớp kế thừa TIEU LUAN MOI download : skknchat@gmail.com cấu trúc liệu phương thức lớp mà kế thừa Ngồi lớp bổ sung liệu phương thức cho riêng 2.1.5 ArrayList Cũng mảng nhiều ngơn ngữ khác, mảng Java có hạn chế chẳng hạn ta phải biết kích thước tạo mảng; việc xóa phần tử mảng khơng đơn giản; mảng lưu nhiều phần tử kích thước khai báo Lớp ArrayList cấu trúc dạng mảng khắc phục nhược điểm cấu trúc mảng Ta không cần biết ArrayList cần có kích thước tạo nó, tự giãn co vào đối tượng đưa vào lấy 2.1.6 Cơ chế xử lí ngoại lệ (Khối try catch) Để xử lý ngoại lệ ném từ đoạn mã, ta bọc đoạn mã khối try/catch Khối try/catch gồm khối try chứa phần mã phát sinh ngoại lệ sau khối catch với nhiệm vụ 'bắt' ngoại lệ ném từ khối try xử lí cố (có thể có vài khối catch theo sau khối try, ta nói đến vấn đề sau) Nội dung khối catch tùy vào việc ta muốn làm loại cố cụ thể xảy Các phương thức Java dùng ngoại lệ để báo với phần mã gọi chúng "Một tình không mong đợi xảy Tôi gặp cố." Cơ chế xử lý ngoại lệ Java cho phép xử lý tình bất thường xảy chương trình chạy, cho phép ta đặt tất đoạn mã xử lý lỗi vào nơi dễ đọc dễ hiểu Cơ chế dựa nguyên tắc ta biết ta gặp ngoại lệ ta chuẩn bị để đối phó với tình phát sinh ngoại lệ 2.1.7 Class(Lớp) Lớp thiết kế cho đối tượng có thuộc tính chung - Lớp kiểu người dùng định nghĩa mô tả kiểu đối tượng - Một lớp bao gồm: + Các thuộc tính (Attributes) + Các hàm dựng (Constructor) TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG 3: HƯỚNG GIẢI QUYẾT BÀI TOÁN 3.1 Tạo Class iCV (interface) Lớp chứa tất phương thức cần làm theo u cầu tốn • Phương thức nạp tiền vào tài khoản Cashin(double Cash); • Phương thức rút tiền Cashout(double Cash); • Phương thức đáo hạn maturity(); • Phương thức chuyển khoản từ tài khoản sang tài khoản khác Trade(double Cash,Account B); 3.2 Tạo Class Account kế thừa lớp iCV Class Account để lưu trữ thông tin, lớp bao gồm phương thức, thuộc tính theo bước sau: Số tài khoản (kiểu long) Tên tài khoản (kiểu chuỗi) Số tiền tài khoản (kiểu double) Constructor: có 02 constructors (mặc định đầy đủ tham số) Constructor có 02 đối số: số tài khoản, tên tài khoản Constructor khởi tạo số tiền mặc định 50 Các phương thức get, set cho thuộc tính Phương thức toString để trả chuỗi chứa tồn thơng tin tài khoản, yêu cầu định dạng tiền tệ @Override Các phương thức kế thừa lớp iCV • Cashin(double Cash); this.TK += Cash; • Cashout(double Cash); this.TK = TK - Cash ; TIEU LUAN MOI download : skknchat@gmail.com • maturity(); this.TK = TK + TK * getLai() * SolanDH(); • Trade(double Cash,Account B); if (Cash 0) { Cashout(Cash); B.Cashin(Cash); } Hằng số lãi suất có giá trị khởi tạo 0.035 -> getLai() 10 Tạo phương thức SolanDH() trả số lần đáo hạn khoảng thời gian.(1 tháng đáo hạn lần) 11 Phương thức để hiển thị thông tin -> display() 12 Phương thức dùng để tạo tài khoản -> Taotaikhoan() Trong phương thức chứa phương thức kiểm tra tài khoản tồn hay chưa viết class main Nếu tồn trả null, ngược lại tạo tài khoản nhập từ bàn phím 3.3 Tạo Class main chứa phần cịn lại để giải toán (chứa hàm main) a)Khởi tạo ArrayList accList Để lưu trữ thông tin tài khoản tạo b)Khởi tạo phương thức hiển thị menu lựa chọn showMenu() In lựa chọn công việc: 1.Tạo tài khoản 5.Chuyển tiền Hiển thị tất thông tin, 6.Đáo hạn 3.Rút tiền, 7.Tra cứu số dư 4.Nạp tiền 0.Thoát c) Khởi tạo phương thức Taotaikhoan() phương thức tạo tài khoản Mục đích dùng để tạo tài khoản Gọi lại phương thức Taotaikhoan() lớp Account, kiểm tra tài khoản khác null hay khơng ,nếu khác tạo tài khoản sau thêm vào accList d) Khởi tạo phương thức checktk(long STK) TIEU LUAN MOI download : skknchat@gmail.com Mục đích kiểm tra số tài khoản tạo đưa vào acclist hay chưa, tồn trả false e)Khởi tạo phương thức displayAcc() Để thị tất thông tin tài khoản đưa vào accList cách gọi lại phương thức display() lớp Account f) Khởi tạo phương thức findSTK() dùng để tra cứu số dư Sẽ yêu cầu người dùng nhập số tài khoản cần tìm, sau trả thơng tin ứng với số tài khoản g) Khởi tạo phương thức Cashout() phương thức rút tiền Tạo thuộc tính : double Cash, nhận Cash tham số Bước 1: Cho người dùng nhập số tài khoản cần rút tiền Sau gọi phương thức checktk() ->nếu trả true -> in “Tài khoản không tồn tại!” -> sang bước Ngược lại sang bước Bước : Người dùng nhập số tiền(Cash) ->kiểm tra điều kiện > hợp lệ -> sang bước Ngược lại In thông báo “Số tiền không hợp lệ” -> sang bước Bước In "Bạn có rút tiền tiếp khơng ? Y/N : " Người dùng nhập “n” dừng hành động , ngược lại nhập chữ khác quay lại bước Bước Gọi phương thức Cashout(double Cash) lớp Account h) Khởi tạo phương thức Cashin() phương thức nạp tiền Giống với phương thức rút tiền ngược lại gọi phương thức Cashin(double Cash) lớp Account j) Khởi tạo phương thức Trade() phương thức chuyển khoản Tạo thuộc tính : double Cash, nhận Cash tham số Cho người dùng nhập số tài khoản chuyển tiền(1) -> gọi phương thức checktk()-> true dừng hành động -> ngược lại , nhập tiếp số tài khoản nhận tiền (2)-> gọi phương thức checktk()-> true dừng hành động > ngược lại , nhập số tiền cần giao dịch(Cash) Gọi lại phương thức Trade(double Cash, Account B) lớp Account để thực giao dịch 10 TIEU LUAN MOI download : skknchat@gmail.com k) Khởi tạo phương thức maturity() phương thức đáo hạn Người dùng nhập vào số tài khoản cần đáo hạn-> gọi phương thức checktk()-> true dừng hành động, ngược lại gọi phương thức maturity() lớp Account để thực giao dịch l) Khởi tạo phương thức public static void main(String[] args) Đầu tiên tạo ArrayList accList tạo Scanner scan; Gọi lại phương thức showMenu() Tạo biến choose nhận số nguyên từ bàn phím Dùng while để thực chương trình { in "Nhập lựa chọn bạn : " ->nhập lựa chọn từ bàn phím Gọi Scanner để nhập lựa chọn (choose) chương trình dùng switch(choose) case : Case : gọi phương thức Taotaikhoan(); Case : gọi phương thức Trade(); Case : gọi phương thức displayAcc(); Case : gọi phương thức maturity(); Case : gọi phương thức Cashout(); Case : gọi phương thức findSTK(); Case : gọi phương thức Cashin(); Case : gán choose =0; while (choose != 0) dừng chương trình Cả đoạn while đặt khối try catch để bắt lỗi nhập sai liệu 11 TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG 4: SOURCE CODE 4.1 Class iCV 4.2 Class Account Khai báo package cần dùng • Các thuộc tính cần dùng • Constructor: có 02 constructors (mặc định đầy đủ tham số) • Constructor có 02 đối số: số tài khoản, tên tài khoản Constructor khởi tạo số tiền mặc định 50 12 TIEU LUAN MOI download : skknchat@gmail.com • Các phương thức get, set cho thuộc tính • Phương thức toString để trả chuỗi chứa toàn thông tin tài khoản, yêu cầu định dạng tiền tệ • Phương thức nạp tiền vào tài khoản: lấy số tiền tài khoản + số tiền nạp vào • Phương thức rút tiền: lấy số tiền tài khoản – (số tiền muốn rút ) 13 TIEU LUAN MOI download : skknchat@gmail.com • Hằng số lãi suất có giá trị khởi tạo 0.035->getLai() • Phương thức đáo hạn: lần đến kỳ đáo hạn số tiền tài khoản = số tiền tài khoản + số tiền tài khoản * getLai()* SolanDH() • Phương thức chuyển khoản từ tài khoản sang tài khoản khác • Phương thức hiển thị thơng tin 14 TIEU LUAN MOI download : skknchat@gmail.com • Phương thức tạo tài khoản 4.3 Class main Khai báo package cần dùng Tạo danh sách lưu trữ 15 TIEU LUAN MOI download : skknchat@gmail.com • Chương trình 16 TIEU LUAN MOI download : skknchat@gmail.com • Phương thức tạo menu • Phương thức tạo tài khoản • Phương thức kiểm tra tồn số tài khoản • Phương thức xem thông tin danh sách 17 TIEU LUAN MOI download : skknchat@gmail.com • Phương thức kiểm tra thơng theo số tài khoản s • Phương thức rút tiền 18 TIEU LUAN MOI download : skknchat@gmail.com • Phương thức nạp tiền 19 TIEU LUAN MOI download : skknchat@gmail.com • Phương thức chuyển tiền • Phương thức đáo hạn 20 TIEU LUAN MOI download : skknchat@gmail.com Tài liệu tham khảo BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (với Java) - ThS Nguyễn Minh Đức 21 TIEU LUAN MOI download : skknchat@gmail.com ... 15 Tài liệu tham khảo .21 TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu đề tài Bài 04 Ngân hàng ABC muốn lưu trữ thông tin tài khoản sau:... đáo hạn số tiền tài khoản = số tiền tài khoản + số tiền tài khoản * getLai()* SolanDH() • Phương thức chuyển khoản từ tài khoản sang tài khoản khác • Phương thức hiển thị thơng tin 14 TIEU LUAN... Số tài khoản (kiểu long) Tên tài khoản (kiểu chuỗi) Số tiền tài khoản (kiểu double) Constructor: có 02 constructors (mặc định đầy đủ tham số) Constructor có 02 đối số: số tài khoản, tên tài khoản

Ngày đăng: 10/06/2022, 13:03