1. Trang chủ
  2. » Công Nghệ Thông Tin

MÁY ATM THUẬT TOÁN GREEDY

28 12 0

Đ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 CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN TRUYỀN THÔNG BỘ MÔN CÔNG NGHỆ PHẦN MỀM NIÊN LUẬN CƠ SỞ NGÀNH KỸ THUẬT PHẦN MỀM MÔ PHỎNG HOẠT ĐỘNG PHÂN PHỐI TIỀN CỦA MÁY ATM DÙNG GIẢI THUẬT GREEDY Sinh viên thực hiện Cán bộ hướng dẫn B1704809 Lê Phan Vinh Hiển TS Nguyễn Công Danh HỌC KỲ I, 2020 2021 ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN CƠ SỞ NGÀNH KTPM (Học kỳ 1, Năm học 2020 2021)

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG BỘ MÔN CÔNG NGHỆ PHẦN MỀM NIÊN LUẬN CƠ SỞ NGÀNH KỸ THUẬT PHẦN MỀM MÔ PHỎNG HOẠT ĐỘNG PHÂN PHỐI TIỀN CỦA MÁY ATM DÙNG GIẢI THUẬT GREEDY Sinh viên thực hiện: B1704809 - Lê Phan Vinh Hiển HỌC KỲ I, 2020 - 2021 Cán hướng dẫn TS Nguyễn Công Danh ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN CƠ SỞ NGÀNH KTPM (Học kỳ 1, Năm học 2020-2021) GIÁO VIÊN HƯỚNG DẪN: STT HỌ VÀ TÊN Nguyễn Công Danh SINH VIÊN THỰC HIỆN: STT HỌ VÀ TÊN Lê Phan Vinh Hiển MSSV MSCB THƯỞNG (Tối đa 1,0 điểm) ĐIỂM B1704809 I HÌNH THỨC (Tối đa 0,5 điểm) Bìa (tối đa 0,25 điểm)  Các tiêu đề: Trường ĐHCT, Khoa CNTT  Loại niên luận: Cơ sở ngành KTPM, Tên đề tài  Giáo viên hướng dẫn: chức danh, họ tên  Thông tin sinh viên thực hiện: họ tên, mã số, lớp  Năm thực Bố cục (tối đa 0.25 điểm)  Nhận xét giáo viên hướng dẫn giáo viên chấm  Mục lục: cấu trúc chương, mục tiểu mục  Phụ lục (nếu có)  Tài liệu tham khảo II NỘI DUNG (Tối đa 3,5 điểm) Tổng quan (tối đa 0,5 điểm)  Mô tả toán, mục tiêu cần đạt (0,25 điểm)  Hướng giải kế hoạch thực (0,25 điểm) Lý thuyết (tối đa 0,5 điểm)  Các khái niệm sử dụng đề tài  Kết vận dụng lý thuyết vào đề tài Ứng dụng (tối đa 2,0 điểm)  Phân tích u cầu tốn, xây dựng cấu trúc liệu cần thiết (tối đa 0,5 điểm)  Giải thuật (Lưu đồ-Ngôn ngữ giả) (1,0 điểm)  Giới thiệu chương trình (0,5 điểm) Kết luận (tối đa 0,5 điểm)  Nhận xét kết đạt  Hạn chế  Hướng phát triển III CHƯƠNG TRÌNH DEMO (Tối đa 5,0 điểm) Giao diện thân thiện với người dùng (1.0 điểm) Hướng dẫn sử dụng (0,5 điểm) Kết thực với kết phần ứng dụng (3,5 điểm) Ghi chú: Điểm khung “các sinh viên thực hiện” điểm kết cuối sinh viên trình thực niên luận Nếu sinh viên demo chương trình trả lời vấn đáp không đạt yêu cầu giáo viên hướng dẫn sinh viên nhận điểm F cho học phần Cần Thơ, ngày tháng năm 2020 GIÁO VIÊN CHẤM MỤC LỤC CHƯƠNG 1: TỔNG QUAN 1.1 MƠ TẢ BÀI TỐN 1.2 MỤC TIÊU CẦN ĐẠT ĐƯỢC 1.3 HƯỚNG GIẢI QUYẾT 1.4 KẾ HOẠCH THỰC HIỆN CHƯƠNG 2: LÝ THUYẾT 2.1 CÁC KHÁI NIỆM 2.1.1 Hệ thống rút tiền tự động ATM 2.1.2 Giải thuật tham lam (Greedy) 2.1.3 Chú thích thuật ngữ 2.2 KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI CHƯƠNG 3: KẾT QUẢ ỨNG DỤNG 3.1 PHÂN TÍCH YÊU CẦU 3.1.1 Yêu cầu chức 3.1.2 Yêu cầu phi chức 3.2 XÂY DỰNG CẤU TRÚC DỮ LIỆU CẦN THIẾT 3.2.1 Xử lý số tiền nhập vào 3.2.2 Thuật toán tham lam 3.2.3 Xử lý kết 3.3 THIẾT KẾ 3.3.1 CHỨC NĂNG 3.3.2 DỮ LIỆU 3.3.3 KIẾN TRÚC 3.4 LƯU ĐỒ GIẢI THUẬT 10 3.4.1 LƯU ĐỒ 10 3.4.2 BẢNG CHÚ GIẢI CỦA LƯU ĐỒ 11 3.5 GIỚI THIỆU CHƯƠNG TRÌNH 12 3.5.1 GIAO DIỆN 12 CHƯƠNG 4: KẾT LUẬN – ĐÁNH GIÁ 17 4.1 KẾT QUẢ ĐẠT ĐƯỢC 17 4.1.1 Về mặt chuyên môn 17 4.1.2 Về mặt kinh nghiệm 17 4.2 HẠN CHẾ VÀ NGUYÊN NHÂN 17 4.3 HƯỚNG PHÁT TRIỂN 17 PHỤ LỤC 18 5.1 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM 18 5.1.1 Admin login 18 5.1.2 User login 19 5.1.3 Cập nhật số tiền máy 20 5.1.4 Rút tiền 21 5.2 TÀI LIỆU THAM KHẢO 23 DANH MỤC HÌNH Hình : Code xử lý input Hình : Code Greedy Hình : Code xử lý output Hình : Usecase-diagram Admin Hình : Usecase-diagram User Hình : Class-diagram Hình : Kiến trúc ReactJS (nguồn: www.freetuts.net) Hình : Lưu đồ thuật tốn Greedy 10 Hình : Giao diện 12 Hình 10 : Giao diện thông tin phần mềm 13 Hình 11 : Giao diện đăng nhập Admin 13 Hình 12 : Giao diện đăng nhập User 14 Hình 13 : Giao diện cập nhật tiền máy 14 Hình 14 : Giao diện lựa chọn giao dịch 15 Hình 15 : Giao diện xem thông tin cá nhân 15 Hình 16 : Giao diện nhập số tiền cần rút 16 Hình 17 : Giao diện giao dịch thành công 16 CHƯƠNG 1: TỔNG QUAN 1.1 MƠ TẢ BÀI TỐN - - - - Phần mềm thiết kế để mô tả cách hoạt động thuật toán tham lam (Greedy) áp dụng vào hệ thống rút tiền tự động (ATM) thông qua giao diện Web Hệ thống cấu hình với số lượng tiền định có giá trị khác nhau: 500.000, 100.000, 50.000, 10.000 Quản trị có thể: o Đăng nhập vào hệ thống o Xem số tiền lại hệ thống o Cập nhật số tiền hệ thống Người dùng có thể: o Đăng nhập vào hệ thống số tài khoản mã PIN o Xem số dư tài khoản o Rút tiền o Hủy bỏ tiếp tục giao dịch Khi người dùng nhập số tiền cần rút thực giao dịch, hệ thống đảm bảo thực giao dịch khi: o Số tiền nhập vào lớn nhỏ số tiền lại hệ thống số dư tài khoản người dùng o Số tiền nhập vào bội số giá trị tờ tiền nhỏ có hệ thống Dùng thuật toán tham lam để xác định số lượng tiền người dùng rút hiển thị dạng hình ảnh với thông báo giao dịch thành công Khi giao dịch thất bại có thơng báo lỗi cụ thể hiển thị lên giao diện 1.2 MỤC TIÊU CẦN ĐẠT ĐƯỢC - Xây dựng hệ thống hoạt động Website Có sở liệu để lưu trữ thơng tin người dùng quản trị hệ thống Áp dụng thuật toán tham lam (Greedy) để xử lý số lượng tờ tiền rút nhỏ Hệ thống có giao diện đẹp, dễ sử dụng Thể điểm mạnh điểm yếu thuật toán tham lam (Greedy) Khắc phục lỗi xảy áp dụng thuật toán tham lam (Greedy) vào hệ thống rút tiền 1.3 HƯỚNG GIẢI QUYẾT - Dùng HTML, CSS để tạo giao diện hiệu ứng cho hệ thống Chạy thuật toán tham lam (Greedy) ngôn ngữ JAVASCRIPT Dùng thư viện ReactJS để thực chức hệ thống Dùng MySQL để xây dưng sở liệu cho hệ thống 1|Page 1.4 KẾ HOẠCH THỰC HIỆN Tuần Công Việc Tìm hiểu thuật tốn tham lam Greedy Code mã giả để mơ luồng Thiết kế giao diện Code chức năng, giải thuật giao diện Kiểm thử sửa lỗi Tạo tài liệu hướng dẫn sử dụng Viết báo cáo niên luận 2|Page CHƯƠNG 2: LÝ THUYẾT 2.1 CÁC KHÁI NIỆM 2.1.1 Hệ thống rút tiền tự động ATM 2.1.1.1 ATM gì? - - ATM – Automated Teller Machine có nghĩa máy rút tiền tự động Chức rút tiền mặt có sẵn máy từ ngân hàng Ngồi ATM cịn chuyển khoản, truy vấn số dư Để sử dụng máy ATM người dùng cần có thẻ ATM mã PIN đăng ký với ngân hàng Ngày nay, Máy rút tiền ATM xuất khắp nơi chi nhánh ngân hàng, mạch đường chính, siêu thị, cơng viên… người dùng rút tiền lúc nơi 2.1.1.2 Những loại máy ATM - Máy ATM gồm loại chính: o Có chức rút tiền truy vấn số dư o Tích hợp nhiều chức tốn hóa đơn, chuyển khoản khác ngân hàng, nạp tiền vào thẻ… 2.1.1.3 Các bước rút tiền ATM Đưa thẻ ATM vào khe đựng thẻ Bấm chọn ngôn ngữ Nhập mã PIN Chọn loại giao dịch Chọn tài khoản toán Nhập số tiền Nhận tiền thẻ 2.1.2 Giải thuật tham lam (Greedy) 2.1.2.1 Định nghĩa - Giải thuật tham lam (Greedy algorithm): thuật toán giải toán theo kiểu metaheutistic để tìm kiếm lựa chọn tối ưu bước với hy vọng tìm tối ưu tồn cục 2.1.2.2 Tính chất - Lựa chọn giải pháp cho tốt thời điểm giải toán nảy sinh 3|Page - Lựa chọn phụ thuộc vào lựa chọn trước đó, khơng phụ thuộc vào lựa chọn tương lai hay phụ thuộc vào lời giải toán Các lựa chọn thực theo vịng lặp, lúc thu nhỏ tốn cho toán nhỏ 2.1.2.3 Áp dụng - Giải thuật tham lam thường không cho lời giải tối ưu tồn cục (nhưng khơng phải ln vậy), chúng thương khơng chạy tất trương hợp Tuy nhiên, thuật toán hữu ích dễ thiết kế cho ước lượng tốt lời giải tối ưu Nếu chứng minh thuật toán tham lam cho kết tối ưu tồn cục thuật tốn tham lam trở thành thuật toán phù hợp để lựa chọn chạy nhanh phương pháp tối ưu khác 2.1.3 Chú thích thuật ngữ STT 4 Thuật ngữ Greedy / Greedy algorithm Admin User html, css, javascript MySql Ý nghĩa Thuật toán tham lam Quản trị viên Người dùng Ngôn ngữ lập trình web Hệ quản trị sở liệu 2.2 KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI - Thuật toán dễ dàng cài đặt, tốc độ xử lý nhanh, độ xác cao Tuy nhiên cịn trường hợp xảy lỗi chưa tối ưu VD: Trong hệ thống tờ 50.000, tờ 20.000 khơng cịn tờ 10.000 Khi người dùng rút 80.000 kết là: o tờ 50.000 o tờ 20.000 Vì thuật tốn tham lam ln ln ưu tiên chọn tờ 50.000 nên rút tờ 20.000 - - Trong trường hợp có cách để giải Đảm bảo số lượng tiền có giá trị thấp ln lớn số lượng tiền có giá trị cao Loại bỏ 200.000 20.000 khỏi hệ thống Cách giải không khả thi nên hệ thống loại bỏ giá trị tiền 200.000 20.000 4|Page CHƯƠNG 3: KẾT QUẢ ỨNG DỤNG 3.1 PHÂN TÍCH YÊU CẦU 3.1.1 Yêu cầu chức - - Hệ thống gồm nhóm người dùng: Admin User o Admin  Đăng nhập  Cập nhật tiền hệ thống o User  Đăng nhập  Xem thông tin tài khoản  Rút tiền Thuật toán rút tiền: Tham lam (Greedy) Dữ liệu lưu trữ: o Thông tin đăng nhập admin user o Thông tin tài khoản user o Giá trị tiền số tờ hệ thống 3.1.2 Yêu cầu phi chức - - - Nền tảng ứng dụng: Web app Giao diện: o Thân thiện với người dùng o Thao tác tương tự máy ATM bên o Hiển thị kết thuật tốn Greedy u cầu phần mềm: o Trình duyệt phải hổ trợ ES6 trở lên o Trình duyệt phải bật JavaScript o Phải có kết nối Internet Yêu cầu phần cứng: máy chạy trình duyệt có kết nối Internet 5|Page 3.3.2 DỮ LIỆU Hình : Class-diagram 3.3.3 KIẾN TRÚC Hình : Kiến trúc ReactJS (nguồn: www.freetuts.net) 9|Page 3.4 LƯU ĐỒ GIẢI THUẬT 3.4.1 LƯU ĐỒ Hình : Lưu đồ thuật tốn Greedy 10 | P a g e 3.4.2 BẢNG CHÚ GIẢI CỦA LƯU ĐỒ STT Biến / phép toán Ý nghĩa x Số tiền cần rút Giá trị tiền nhỏ có số tờ lớn sum Tổng số tiền có hệ thống surplus Số dư lại tài khoản người dùng Moneys Mảng chứa giá trị tiền hệ thống (500.000, 100.000, 50.000, 10.000) m Giá trị tiền mảng n Số lượng m % Phép chia lấy dư / Phép chia lấy nguyên 10 * Phép nhân 11 | P a g e 3.5 GIỚI THIỆU CHƯƠNG TRÌNH 3.5.1 GIAO DIỆN 3.5.1.1 Giao diện Hình : Giao diện - Giao diện chia thành phần o Phần login: có lựa chọn nhóm người dùng Admin User, nhóm người dùng có giao diện login khác o Phần input: gồm nút nhập liệu  Các nút số: nhập số  Nút : Xác nhận nhập  Nút Clear: Xóa tồn liệu nhập  Nút Undo: Quay lại giao diện trước  Nút Exit: Hủy bỏ phiên giao dịch lại giao diện 12 | P a g e 3.5.1.2 Giao diện thơng tin phần mềm Hình 10 : Giao diện thơng tin phần mềm - Nhấn F1 để hiển thị thông tin phần mềm ngược lại 3.5.1.3 Giao diện Login - Admin Hình 11 : Giao diện đăng nhập Admin 13 | P a g e - User Hình 12 : Giao diện đăng nhập User 3.5.1.4 Giao diện cập nhật tiền Hình 13 : Giao diện cập nhật tiền máy 14 | P a g e 3.5.1.5 Giao diện lựa chọn giao dịch Hình 14 : Giao diện lựa chọn giao dịch 3.5.1.6 Giao diện xem thơng tin cá nhân Hình 15 : Giao diện xem thông tin cá nhân 15 | P a g e 3.5.1.7 Giao diện nhập số tiền cần rút Hình 16 : Giao diện nhập số tiền cần rút 3.5.1.8 Giao diện giao dịch thành cơng Hình 17 : Giao diện giao dịch thành công 16 | P a g e CHƯƠNG 4: KẾT LUẬN – ĐÁNH GIÁ 4.1 KẾT QUẢ ĐẠT ĐƯỢC 4.1.1 Về mặt chuyên môn - - Nắm vững kiến thức lý thuyết đồ thị thuật tốn tham lam (Greedy) Hồn thành phần mềm “Mơ hoạt động phân phối tiền máy ATM” với yêu cầu đề là: có giao diện thể kết thuật tốn tham lam thơng qua số tờ tiền rút Học thư viện ReactJS để làm Web app Học cách sử dụng hosting để public website 4.1.2 Về mặt kinh nghiệm - Học thêm nhiều cách sử dụng CSS thư viện JS Biết cách viết tài liệu theo mẫu chuẩn Biết cách xây dựng giao diện cho phù hợp với người dùng 4.2 HẠN CHẾ VÀ NGUYÊN NHÂN Hạn chế Nguyên nhân Giao diện chưa trực quan, cần tham khảo tài liệu hướng dẫn sử dụng Nhiều thao tác với ATM khó để mơ giao diện Web Tính bảo mật người dùng chưa đảm bảo Nhiều kiến thức Request chưa nắm vững Còn nhiều chức chưa có như: chuyển khoản, lưu lịch sử giao dịch,… Database thiết kế đơn giản chưa chặc chẽ liệu 4.3 HƯỚNG PHÁT TRIỂN - Thêm nhiều chức như: chuyển khoản, lưu lịch sử giao dịch Xây dựng hệ thống nhiều ATM có liên kết với ngân hàng 17 | P a g e PHỤ LỤC 5.1 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM - Đường dẫn mở phần mềm: http://b1704809.000webhostapp.com/ATM.html 5.1.1 Admin login - Bước 1: nhập username password Bước 2: Click vào nút ‘’ để xác nhận đăng nhập 18 | P a g e 5.1.2 User login - Bước 1: chọn số tài khoản - Bước 2: nhập mã PIN tài khoản vừa chọn Bước 3: Click nút ‘’ để xác nhận đăng nhập 19 | P a g e 5.1.3 Cập nhật số tiền máy - Click vào nút tăng giảm để thay đổi số lượng tờ tiền tương ứng - Số tiền cập nhật database Click nút ‘Exit’ để kết thúc 20 | P a g e 5.1.4 Rút tiền - Có thể chọn số tiền cần rút gợi ý sẵn Nếu muốn rút số tiền khác click vào nút ‘Số tiền khác’ Giao diện nhập tiền 21 | P a g e - Nhập số tiền nút giao diện input - Nhấn nút ‘Clear’ để xóa hết số vừa nhập Nhấn nút ‘’ để thực rút tiền Nhấn nút ‘Exit’ để kết thúc giao dịch Nếu giao dịch thành cơng, kết thuật tốn tham lam 22 | P a g e - Click chuột vào vị trí để xem giao diện giao dịch thành công - Click ‘Tiếp tục’ thể chuyển đến giao diện lựa chọn giao dịch Click ‘Kết thúc’ để quay giao diện 5.2 TÀI LIỆU THAM KHẢO [1] Aho A.V., Hopcroft J.E and Ullman J.D Data Structures and Algorithms Pages: 200-345 Addison-Wesley London, 1983 [2] Đinh Mạnh Tường Cấu trúc liệu & Thuật toán Chương Nhà xuất khoa học kỹ thuật Hà nội, 2001 [3] Nguyễn Văn Linh Giáo trình Phân tích & thiết kế thuật tốn Chương Trang: 1-45 Nhà xuất Đại học Cần Thơ Cần Thơ, 2009 Ngồi ra, cịn có tham khảo thêm câu hỏi Wikipedia forum khác 23 | P a g e ... dụng thuật toán tham lam (Greedy) để xử lý số lượng tờ tiền rút nhỏ Hệ thống có giao diện đẹp, dễ sử dụng Thể điểm mạnh điểm yếu thuật toán tham lam (Greedy) Khắc phục lỗi xảy áp dụng thuật toán. .. động ATM 2.1.1.1 ATM gì? - - ATM – Automated Teller Machine có nghĩa máy rút tiền tự động Chức rút tiền mặt có sẵn máy từ ngân hàng Ngồi ATM cịn chuyển khoản, truy vấn số dư Để sử dụng máy ATM. .. loại giao dịch Chọn tài khoản toán Nhập số tiền Nhận tiền thẻ 2.1.2 Giải thuật tham lam (Greedy) 2.1.2.1 Định nghĩa - Giải thuật tham lam (Greedy algorithm): thuật toán giải tốn theo kiểu metaheutistic

Ngày đăng: 02/06/2022, 13:35

Xem thêm:

HÌNH ẢNH LIÊN QUAN

I. HÌNH THỨC (Tối đa 0,5 điểm) Bìa (tối đa 0,25 điểm)  - MÁY ATM THUẬT TOÁN GREEDY
i đa 0,5 điểm) Bìa (tối đa 0,25 điểm) (Trang 2)
Hình 1: Code xử lý input - MÁY ATM THUẬT TOÁN GREEDY
Hình 1 Code xử lý input (Trang 11)
Hình 3: Code xử lý output - MÁY ATM THUẬT TOÁN GREEDY
Hình 3 Code xử lý output (Trang 12)
Hình 4: Usecase-diagram của Admin - MÁY ATM THUẬT TOÁN GREEDY
Hình 4 Usecase-diagram của Admin (Trang 13)
Hình 6: Class-diagram - MÁY ATM THUẬT TOÁN GREEDY
Hình 6 Class-diagram (Trang 14)
Hình 7: Kiến trúc của ReactJS (nguồn: www.freetuts.net) - MÁY ATM THUẬT TOÁN GREEDY
Hình 7 Kiến trúc của ReactJS (nguồn: www.freetuts.net) (Trang 14)
3.4.2 BẢNG CHÚ GIẢI CỦA LƯU ĐỒ - MÁY ATM THUẬT TOÁN GREEDY
3.4.2 BẢNG CHÚ GIẢI CỦA LƯU ĐỒ (Trang 16)
Hình 9: Giao diện chính - MÁY ATM THUẬT TOÁN GREEDY
Hình 9 Giao diện chính (Trang 17)
Hình 1 1: Giao diện đăng nhập của Admin - MÁY ATM THUẬT TOÁN GREEDY
Hình 1 1: Giao diện đăng nhập của Admin (Trang 18)
Hình 10 : Giao diện thông tin phần mềm - MÁY ATM THUẬT TOÁN GREEDY
Hình 10 Giao diện thông tin phần mềm (Trang 18)
Hình 1 2: Giao diện đăng nhập của User - MÁY ATM THUẬT TOÁN GREEDY
Hình 1 2: Giao diện đăng nhập của User (Trang 19)
3.5.1.4 Giao diện cập nhật tiền - MÁY ATM THUẬT TOÁN GREEDY
3.5.1.4 Giao diện cập nhật tiền (Trang 19)
Hình 15 : Giao diện xem thông tin cá nhân - MÁY ATM THUẬT TOÁN GREEDY
Hình 15 Giao diện xem thông tin cá nhân (Trang 20)
Hình 1 4: Giao diện lựa chọn giao dịch - MÁY ATM THUẬT TOÁN GREEDY
Hình 1 4: Giao diện lựa chọn giao dịch (Trang 20)
3.5.1.7 Giao diện nhập số tiền cần rút - MÁY ATM THUẬT TOÁN GREEDY
3.5.1.7 Giao diện nhập số tiền cần rút (Trang 21)
Hình 16 : Giao diện nhập số tiền cần rút - MÁY ATM THUẬT TOÁN GREEDY
Hình 16 Giao diện nhập số tiền cần rút (Trang 21)

TỪ KHÓA LIÊN QUAN

w