Xây dựng hệ thống quản lí bán vé máy bay
BÀ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
Lớp
CNPM1
Nhóm 18
Page 1
Xây dựng hệ thống quản lí bán vé máy bay
Đề bài :
Với mỗi modul cá nhân :
•
•
•
•
•
•
•
1.
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ế.
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.
Page 2
Xây dựng hệ thống quản lí bán vé máy bay
b. Sơ đồ UC của modul.
Page 3
Xây dựng hệ thống quản lí bán vé máy bay
Mô 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é.
Page 4
Xây dựng hệ thống quản lí bán vé máy bay
2.
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)
Page 5
Xây dựng hệ thống quản lí bán vé máy bay
•
Booking : 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:
Page 6
Xây dựng hệ thống quản lí bán vé máy bay
3.
Đị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
Page 7
Xây dựng hệ thống quản lí bán vé máy bay
Lớp Flight (Model) :
• ID :
• dateLift :
• hourLift :
• mediateAirport :
• Status:
Lớp Client (Model) :
• ID :
• idCardNumber:
• fullName:
• birthDay:
• address :
• phoneNumber :
Lớp Booking :
• ID :
• bookingDate :
• flight :
• client :
• pricePerOneTicket :
String
date
time
String
String
_ Mã chuyến bay.
_ Ngày cất cánh.
_Giờ cất cánh.
_Sân bay trung gian.
_Trạng thái chuyến bay.
Integer
String.
String
date
String
Integer
_Mã khách hàng.
_ mã thẻ thành viên KH
_Họ tên đầy đủ.
_Ngày sinh nhật.
_Địa chỉ.
_Số điện thoại.
String
date
Flight
Client.
integer
_ Mã phiếu.
_Ngày đặt.
Page 8
_ giá tiền 1 vé.
Xây dựng hệ thống quản lí bán vé máy bay
tax :
integer
totalPrice :
integer
note :
String
Lớp BookingDAO (controller) :
• dbcon :
connection
• url :
String
• userName :
String
• password :
String
Lớp DirrectSellerFrm (View) :
• dsBooking :
button
đặt vé máy bay.
• dsCancel :
button
hủy đặt vé máy bay.
• dsChange :
button
đổi vé máy bay.
Lớp SearchFreeTicketFrm(View) :
• txtAirline :
textField
• txtTicketType :
comboBox
chiều).
• txtTicketClass:
comboBox
• txtBeginPlace :
comboBox
• txtEndPlace :
comboBox
• txtDayFlight :
textField
• txtNumberAdult :
textField
• txtNumberChildrent : textField
• btnSearhFlight :
button
• tblTable
table
• btnReset :
button
nhập
Lớp AddClientFrm (View):
• txtNameSearch :
textField
kiếm.
• btnSearch :
button
• tblResult :
table
• txtID :
textField
• txtIdCardNumber :
textField
khách hàng
• txtFullName :
textField
hàng.
•
•
•
Page 9
_ tiền thuế.
_ tổng tiền.
_ ghi chú
_ kết nối với DB .
_ đường dẫn tới DB.
_ tài khoản kết nối với DB.
_Mật khẩu của userName
_ nút chọn để vào chức năng
_ nút chọn để vào chức năng
_ nút chọn để vào chức năng
_ Chứa tên hãng máy bay.
_ Chứa loại vé (khứ hồi, 1
_Chứa tên hạng vé.
_ Chứa điểm khởi hành.
_ Chứa điểm kết thúc.
_ Chứa ngày đi.
_ Chứa số lượng người lớn.
_ Chứa số lượng trẻ em.
_ Nút tìm kiếm chuyến bay.
_Chứa kết quả tìm kiếm
_ Nút reset lại hết thông tin đã
_ Chứa tên khách hàng cần tìm
_ Chứa kết quả tìm kiếm
_ Chứa số thẻ thành viên của
_ Chứa họ tên đầy đủ khách
Xây dựng hệ thống quản lí bán vé máy bay
txtBirthday :
textField
hàng.
• txtNote :
textField
• btnSubmit :
button
khách hàng.
• btnReset :
button
đã nhập.
Lớp BookingTicketFrm :
• txtID : textField
• btnSearchFreeTicket : button
vé trống(tìm kiếm chuyến bay)
• btnSearchClient :
button
thông tin khách hàng
• btnSubmit :
button
booking
• btnCancel :
button
• btnReset :
button
• booking :
Booking
•
Sơ đồ lớp thu được
Page 10
_ Chứa ngày sinh của khách
_ Chứa ghi chú thêm
_ nút đồng ý thêm thông tin
_ nút reset lại toàn bộ thông tin
_nút chọn chức năng tìm kiếm
_nút chọn chức năng tìm kiếm
_nút xác nhận đồng ý thêm
_nút hủy
_nút reset thông tin đã nhập
Xây dựng hệ thống quản lí bán vé máy bay
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.
b.
Page 11
Xây dựng hệ thống quản lí bán vé máy bay
•
•
•
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
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).
c.
Page 12
Xây dựng hệ thống quản lí bán vé máy bay
•
•
•
•
btnUpdateTicket :
thông tin đặt vé mới.
btnSubmit :
btnCancel :
booking :
button
_nút chọn chức năng update
button
button
Booking.
_nút xác nhận đồng ý đổi
_nút hủy
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.
• btnChoose
button
_nút chọn
• btnReset :
button
_ Nút reset lại hết thông tin đã
nhập
Sơ đồ lớp thu được:
Page 13
Xây dựng hệ thống quản lí bán vé máy bay
Sơ đồ lớp toàn modul :
Page 14
Xây dựng hệ thống quản lí bán vé máy bay
4.
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é
Page 15
Xây dựng hệ thống quản lí bán vé máy bay
Thẻ CRC của lớp DirrectSellerFrm
Thẻ CRC của lớp BookingTicketFrm
Page 16
Xây dựng hệ thống quản lí bán vé máy bay
Thẻ CRC của lớp CancelTicketFrm
Thẻ CRC của lớp ChangeTicketFrm
Page 17
Xây dựng hệ thống quản lí bán vé máy bay
Thẻ CRC của lớp SearchFreeTicketFrm
Thẻ CRC của lớp AddClientFrm
Page 18
Xây dựng hệ thống quản lí bán vé máy bay
Thẻ CRC của lớp SearchDeleteTicketFrm
Thẻ CRC của lớp UpdateTicketFrm
Page 19
Xây dựng hệ thống quản lí bán vé máy bay
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ính
nếu cần.
Áp dụng nguyên lý B,C :
• Lớp BookingTicketFrm :
Page 20
Xây dựng hệ thống quản lí bán vé máy bay
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).
Lớp CancelTicketFrm :
Phải có phương thức bắt sự kiện nút : SearchDeleteTicket,
Submit, Cancel.
Phải có phương thức hiển thị form(Hàm khởi tạo).
•
•
Lớp SearchDeleteTicketFrm :
Phải có phương thức bắt sự kiện nút : Search, Choose,
Reset,Cancel.
Phải có phương thức hiển thị form(Hàm khởi tạo).
•
Lớp ChangeTicketFrm :
Phải có phương thức bắt sự kiện nút : SearchChangeTicket,
Submit, Cancel,UpdateTicket.
Phải có phương thức hiển thị form(Hàm khởi tạo).
•
Lớp SearchChangeTicketFrm :
Phải có phương thức bắt sự kiện nút : Search, Choose,
Reset,Cancel.
Phải có phương thức hiển thị form(Hàm khởi tạo).
•
Lớp UpdateTicketFrm :
Phải có phương thức bắt sự kiện nút : Search, Choose,
SearchFlight
Phải có phương thức hiển thị form(Hàm khởi tạo).
•
Lớp BookingDAO :
Page 21
Xây dựng hệ thống quản lí bán vé máy bay
Có các phương thức tạo kết nối với CSDL, phương thức thêm
một booking vào CSDL, sửa, xóa, tìm kiếm thông tin một
booking trong CSDL.
Lớp Client ,Flight,Booking:
Phải có phương thức đóng gói thông tin đối tượng (sử dụng
hàm khởi tạo hoặc các hàm set).
•
5.
Định nghĩa khuôn mẫu cho từng phương thức của từng lớp
•
•
Lớp BookingTicketFrm :
-Phương thức bắt sự kiện cho các nút : btnSearchFreeTicket_action(),
btnSearchClient_action(),btnSubmit_action(),btnCancel_action(),
btnReset_action().
-Hàm khởi tạo : BookingTicketFrm().
Lớp SearchFreeTicketFrm :
-Phương thức bắt sự kiện cho các nút : btnSearchFlight_action(),
btnReset_action().
-Hàm khởi tạo : SearchFreeTicketFrm().
•
Lớp AddClientFrm :
-Phương thức bắt sự kiện cho các nút : btnSearch_action(),
btnReset_action(),btnSubmit_action()
-Hàm khởi tạo : SearchFreeTicketFrm().
•
Lớp CancelTicketFrm :
-Phương thức bắt sự kiện cho các nút :
btnSearchDeleteTicket_action(),btnCancel_action(),btnSubmit_action
()
-Hàm khởi tạo : CancelTicketFrm().
•
Lớp SearchDeleteTicketFrm :
-Phương thức bắt sự kiện cho các nút : btnSearch_action(),
btnReset_action(),btnChoose_action(),btnCancel_action()
-Hàm khởi tạo : SearchDeleteTicketFrm().
Lớp ChangeTicketFrm :
-Phương thức bắt sự kiện cho các nút :
btnSearchChangeTicket_action(),
btnUpdateTicket_action(),btnSubmit_action(),btnCancel_action().
-Hàm khởi tạo : ChangeTicketFrm().
•
Page 22
Xây dựng hệ thống quản lí bán vé máy bay
•
Lớp SearchChangeTicketFrm :
-Phương thức bắt sự kiện cho các nút : btnSearch_action(),
btnReset_action(),btnChoose_action(),btnCancel_action()
-Hàm khởi tạo : SearchChangeTicketFrm().
•
Lớp UpdateTicketFrm :
-Phương thức bắt sự kiện cho các nút : btnSearchFlight_action(),
btnReset_action(), btnChoose_action().
-Hàm khởi tạo : UpdateTicketFrm().
•
Lớp DirrectSellerFrm :
-Phương thức bắt sự kiện các nút :
btnDsBooking_action(),btnDsCancel_action(),btnDsChange_action()
-Hàm khởi tạo : DirrectSellerFrm()
•
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ự.
•
•
•
6.
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ự.
Sơ đồ lớp chi tiết theo mô hình MVC thực thể thuần.
Page 23
Xây dựng hệ thống quản lí bán vé máy bay
7.
Sơ đồ tuần tự sau pha thiết kế.
A, Chức năng Booking at the Counter.
Page 24
Xây dựng hệ thống quản lí bán vé máy bay
Page 25