Xây dựng hệ thống quản lí bán vé máy bay
Trang 1BÀI TẬP LỚN MÔN CÔNG NGHỆ PHẦN MỀM
Đề tài: Xây dựng hệ thống quản lí bán vé máy bay
Nhóm 18
Trang 2Đề bài :
Với mỗi modul cá nhân :
• Vẽ lại sơ đồ UC chi tiết của hệ thống và của modul
• Vẽ lại sơ đồ các lớp sau pha phân tích
• Định nghĩa các thuộc tính và kiểu thuộc tính của mỗi lớp
• Dùng kĩ thuật thẻ CRC và 3 nguyên lí thiết kế phương thức để gán phương thức cho các lớp
• Định nghĩa khuôn mẫu cho từng phương thức
• Điền tất cả vào sơ đồ lớp để thu được sơ đồ lớp chi tiết (theo mô hình MVC dùng thực thể thuần)
• Vẽ lại sơ đồ tuần tự sau pha thiết kế
1. Sơ đồ UC chi tiết của hệ thống và của modul nhân viên bán hàng tại quầy (Dirrect Seller).
a Sơ đồ UC chi tiết toàn hệ thống.
Trang 3b Sơ đồ UC của modul.
Trang 4Mô tả UC :
• Login : UC này cho phép nhân viên(nói chung) đăng nhập theo tài khoản
của mình
• Direct Seller Login : UC này cho phép nhân viên bán hàng tại quầy đăng
nhập theo tài khoản của mình
• Change password : UC này cho phép nhân viên thay đổi mật khẩu của
mình sau khi đã đăng nhập vào hệ thống
• Logout: UC này cho phép nhân viên đăng xuất sau khi đã đăng nhập vào hệ
thống, hoàn thành công việc hoặc hết phiên làm việc của mình
• Booking at the counter : UC này cho phép nhân viên bán hàng tại quầy đặt
vé khi có yêu cầu từ khách hàng đến đặt vé trực tiếp tại quầy
• Cancle at the counter : UC này cho phép nhân viên bán hàng tại quầy hủy
đặt vé khi có yêu cầu từ khách hàng đến hủy đặt vé trực tiếp tại quầy
• Change at the counter : UC này cho phép nhân viên bán hàng tại quầy đổi
vé khi có yêu cầu từ khách hàng đến đổi vé trực tiếp tại quầy
• Search flight : UC này cho phép nhân viên bán hàng tại quầy tìm kiếm
thông tin về chuyến bay (giá vé, loại vé, ngày giờ bay, hãng máy bay….) khi
có yêu cầu của khách hàng
• Search by name : UC này cho phép nhân viên bán hàng tại quầy tìm kiếm
thông tin về chuyến bay mà khách hàng muốn hủy vé hoặc đổi vé
Trang 52. Sơ đồ lớp sau pha phân tích.
• Chức năng đặt vé tại chỗ (Booking at the counter)
Trong đó :
AddBookingFrm : Form đặt vé chính
SearchFreeTicketFrm : Form tìm kiếm vé trống
AddClientFrm : Form thêm thông tin khách hàng (với khách hàng mới)
Flight : chuyến bay (chứa thông tin về chuyến bay mà khách hàng có nhu cầu đặt)
Client : Khách hàng
Booking : Thông tin đặt vé (bao gồm thông tin khách hàng và
CouponBook)
DirrectSellerCtr : Lớp điều khiển của nhân viên bán hàng tại quầy
• Chức năng hủy đặt vé tại chỗ (Cancel at the counter)
Trang 6Booking : lưu thông tin đặt vé của KH (bao gồm thông tin khách hàng và tất
cả vé đã đặt)
• Chức năng đổi vé tại chỗ (Change at the counter)
UpdateTicketFrm : Form update thông tin đặt vé (update lại thông tin đặt vé sau khi đổi)
Sơ đồ lớp sau pha phân tích cho toàn modul:
Trang 73. Định nghĩa các thuộc tính và kiểu thuộc tính cho các lớp
a. Chức năng Booking at the counter
Trang 8 Lớp Flight (Model) :
• ID : String _ Mã chuyến bay
• dateLift : date _ Ngày cất cánh
• hourLift : time _Giờ cất cánh
• mediateAirport : String _Sân bay trung gian
• Status: String _Trạng thái chuyến bay
Lớp Client (Model) :
• ID : Integer _Mã khách hàng
• idCardNumber: String _ mã thẻ thành viên KH
• fullName: String _Họ tên đầy đủ
• birthDay: date _Ngày sinh nhật
• address : String _Địa chỉ
• phoneNumber : Integer _Số điện thoại
Trang 9• tax : integer _ tiền thuế.
• totalPrice : integer _ tổng tiền
• note : String _ ghi chú
Lớp BookingDAO (controller) :
• dbcon : connection _ kết nối với DB
• url : String _ đường dẫn tới DB
• userName : String _ tài khoản kết nối với DB
• password : String _Mật khẩu của userName
• txtAirline : textField _ Chứa tên hãng máy bay
• txtTicketType : comboBox _ Chứa loại vé (khứ hồi, 1 chiều)
• txtTicketClass: comboBox _Chứa tên hạng vé
• txtBeginPlace : comboBox _ Chứa điểm khởi hành
• txtEndPlace : comboBox _ Chứa điểm kết thúc
• txtDayFlight : textField _ Chứa ngày đi
• txtNumberAdult : textField _ Chứa số lượng người lớn
• txtNumberChildrent : textField _ Chứa số lượng trẻ em
• btnSearhFlight : button _ Nút tìm kiếm chuyến bay
• tblTable table _Chứa kết quả tìm kiếm
• btnReset : button _ Nút reset lại hết thông tin đã nhập
Trang 10• txtBirthday : textField _ Chứa ngày sinh của khách hàng.
• txtNote : textField _ Chứa ghi chú thêm
• btnSubmit : button _ nút đồng ý thêm thông tin khách hàng
• btnReset : button _ nút reset lại toàn bộ thông tin
đã nhập
Lớp BookingTicketFrm :
• txtID : textField
• btnSearchFreeTicket : button _nút chọn chức năng tìm kiếm
vé trống(tìm kiếm chuyến bay)
• btnSearchClient : button _nút chọn chức năng tìm kiếm thông tin khách hàng
• btnSubmit : button _nút xác nhận đồng ý thêm booking
• btnCancel : button _nút hủy
• btnReset : button _nút reset thông tin đã nhập
• booking : Booking
Sơ đồ lớp thu được
Trang 11b. Chức năng Cancle at the counter
Lớp CancelTicketFrm :
• btnSearchDeleteTicket : button _nút chọn chức năng tìm kiếm
vé để xóa(tìm kiếm chuyến bay)
• btnSubmit : button _nút xác nhận đồng ý xóa
• btnCancel : button _nút hủy
• booking : Booking
Lớp SearchDeleteTicketFrm :
• txtIdClient : textField _ô chứa mã khách hàng
• txtNameClient : textField _ô chứa tên khách hàng
• btnSearch : button _ nút chọn tìm kiếm
• tblResult : table _ bảng chứa kết quả tìm kiếm
Trang 12• btnChoose : button _ nút chọn vé để hủy.
• btnCancel : button _ nút hủy
• btnReset : button _ nút reset các thông tin đã nhập
Sơ đồ lớp thu được
c. Chức năng Change at the counter
Lớp ChangeTicketFrm :
• btnSearchChangeTicket : button _nút chọn chức năng tìm kiếm
vé mà khách hàng đã đặt theo tên hoặc id để đổi(tìm kiếm chuyến bay)
Trang 13• btnUpdateTicket : button _nút chọn chức năng update thông tin đặt vé mới.
• btnSubmit : button _nút xác nhận đồng ý đổi
• btnCancel : button _nút hủy
• booking : Booking
Lớp SearchChangeTicketFrm :
• txtIdClient : textField _ô chứa mã khách hàng
• txtNameClient : textField _ô chứa tên khách hàng
• btnSearch : button _ nút chọn tìm kiếm
• tblResult : table _ bảng chứa kết quả tìm kiếm
• btnChoose : button _ nút chọn vé để đổi
• btnCancel : button _ nút hủy
• btnReset : button _ nút reset các thông tin đã nhập
Lớp UpdateTicketFrm(View) :
• txtAirline : textField _ Chứa tên hãng máy bay
• txtTicketType : comboBox _ Chứa loại vé (khứ hồi, 1 chiều)
• txtTicketClass: comboBox _Chứa tên hạng vé
• txtBeginPlace : comboBox _ Chứa điểm khởi hành
• txtEndPlace : comboBox _ Chứa điểm kết thúc
• txtDayFlight : textField _ Chứa ngày đi
• txtNumberAdult : textField _ Chứa số lượng người lớn
• txtNumberChildrent : textField _ Chứa số lượng trẻ em
• btnSearhFlight : button _ Nút tìm kiếm chuyến bay
• tblTable table _Chứa kết quả tìm kiếm
Trang 14Sơ đồ lớp toàn modul :
Trang 154. Dùng kĩ thuật thẻ CRC và 3 nguyên lí thiết kế phương thức để gán phương thức cho các lớp.
Thẻ CRC của lớp BookingDAO cho chức năng đặt vé, hủy vé và đổi vé
Trang 16 Thẻ CRC của lớp DirrectSellerFrm
Thẻ CRC của lớp BookingTicketFrm
Trang 17 Thẻ CRC của lớp CancelTicketFrm
Thẻ CRC của lớp ChangeTicketFrm
Trang 18 Thẻ CRC của lớp SearchFreeTicketFrm
Thẻ CRC của lớp AddClientFrm
Trang 19 Thẻ CRC của lớp SearchDeleteTicketFrm
Thẻ CRC của lớp UpdateTicketFrm
Trang 20 Thẻ CRC của lớp SearchChangeTicketFrm
Theo nguyên lý A : để che giấu thông tin các thuộc tính cần để là private do
vậy các lớp cần có các phương thức get/set tương ứng cho mỗi thuộc tínhnếu cần
Áp dụng nguyên lý B,C :
• Lớp BookingTicketFrm :
Trang 21 Phải có phương thức bắt sự kiện nút : SearchFreeTicket, SearchClient, Cancel, Reset, Submit, thông báo thành công.
Phải có phương thức hiển thị form (Hàm khởi tạo)
• Lớp SearchFreeTicketFrm :
Phải có phương thức bắt sự kiện nút : SearchFlight, Reset
Phải có phương thức hiển thị form (Hàm khởi tạo)
• Lớp AddClientFrm :
Phải có phương thức bắt sự kiện nút : Search, Submit, Reset
Phải có phương thức hiển thị form(Hàm khởi tạo)
Trang 22 Có các phương thức tạo kết nối với CSDL, phương thức thêmmột booking vào CSDL, sửa, xóa, tìm kiếm thông tin một booking trong CSDL.
-Hàm khởi tạo : BookingTicketFrm()
-Hàm khởi tạo : CancelTicketFrm()
Trang 23• Lớp BookingDAO :
-Phương thức khởi tạo : BookingDAO()
-Phương thức xử lý CSDL : searchClient(name : Client[]),
searchFlight(Flight),
addBooking(Booking),addClient(Client)
• Lớp Booking :
-Phương thức khởi tạo : Booking()
-Các phương thức get/set : getID(), setID()
• Lớp Client :
-Phương thức khởi tạo : Client()
-Các phương thức get/set : getID(), setID(), getFullName(),
setFullName()…Các thuộc tính còn lại tương tự
• Lớp Flight :
Phương thức khởi tạo : Flight()
-Các phương thức get/set : getID(), setID(), getDateLift(),
setDateLift()…Các thuộc tính còn lại tương tự
6. Sơ đồ lớp chi tiết theo mô hình MVC thực thể thuần.
Trang 247. Sơ đồ tuần tự sau pha thiết kế.
A, Chức năng Booking at the Counter.
Trang 26B, Chức năng Cancel at the Counter.
C, Chức năng Change at the Counter.