Chương 1. Khảo sát bài toán, phân tích thiết kế hệ thống 2 1. Khảo sát bài toán 2 2. Phân tích thiết kế hệ thống: 4 2.1. Mô hình phân rã chức năng 4 2.2. Sơ đồ liên kết 5 Chương 2. Cài đặt trong SQL Server 6 1. Tạo database 6 2. Tạo các bảng 6 3. Tạo View, thủ tục, trigger 9 Chương 3. Thiết kế và cài đặt chương trình 24 1. Thiết kế giao diện 24 1.1. Màn hình khởi động 24 1.2. Đăng nhập với tài khoản có quyền quản trị cao nhất 25 1.3. Đăng nhập với tài khoản thường 26 1.4. Đăng nhập 26 1.4.2. Đổi thông tin đăng nhập 26 1.4.3. Quản lý người dùng(chỉ sử dụng với admin) 27 1.4.4. Exit 27 1.4.5. Trả lời “ok” 28 1.5. Menu Quản lý hồ sơ 28 1.5.1. Khách hàng 29 1.5.2. Nhân viên 30 1.5.3. Loại xe 30 1.5.4. Thông tin xe 31 1.6. Menu Quản lý cho thuê 32 1.6.1. Hợp đồng 32 1.6.1.1. In Phiếu thuê 33 1.6.2. Phiếu phạt 34 1.6.3. In Phiếu phạt 35 1.6.4. Xe thuê 36 1.7. Menu Tìm kiếm 36 1.7.1. Tìm Khách hàng 37 1.7.2. Tìm loại xe 37 1.8. Tìm Thông tin xe 38 1.9. Menu Báo cáo thống kê 38 1.9.1. Danh sách Phiếu thuê 39 1.9.2. Danh sách Phiếu phạt 40 1.10. Menu Hướng dẫn 40 Kết luận 41 Tài liệu tham khảo 41
Trang 1Khoa Công Nghệ Thông Tin
Giáo viên hướng dẫn: Ths Đỗ Ngọc Sơn
Sinh viên thực hiện:
1 Trần Văn Bôn
2 Phạm Đình Chiến
3 Bùi Quang Khoa
Hà Nội 8-2013
Lời nói đầu
Xã hội ngày càng phát triển, con người ngày càng giàu có và văn minh hơn Vì thếnhu cầu đi lại, giải trí của họ cũng nhiều hơn, cao cấp hơn
Trong thời kì khó khăn việc đi lại là một vấn đề nan giải, bởi phương tiện đi lại thiếu
Trang 2là sự lựa chọn thông minh và tuyệt vời nhất.
Sau bao ngày làm việc căng thẳng, bạn muốn thư giãn, muốn tìm hiểu những vùngđất mới, hay cùng gia đình đi thăm và tìm hiểu những vùng miền của đất nước thì đã
có xe du lịch đồng hành cùng bạn trên mọi nẻo đường
Nếu trước kia ai có xe đạp đã được xem là phú hộ, giàu có Sau đó xã hội phát triểnthêm một nấc nữa thì xe mày trở thành thế mạnh biểu trưng cho sự giàu sang thì ngàynay xe hơi là đích đến của những người giàu có
Những chiếc xe hơi sang trọng, đắt tiền không chỉ là ước mơ nữa mà đã thuộc vềnhững người nhiều tiền trong xã hội
Hãy lựa chọn cho mình loại xe phù hợp nhất, để chúng thật sự là người bạn thân thiếtđồng hành cùng bạn trên mọi nẻo đường
Từ những nhu cầu trên dịch vụ cho thuê xe ôtô, xe du lịch đã có điều kiện để pháttriển Công ty Thành Hưng cho thuê xe chuyên nghiệp, uy tín và chất lượng ở ViệtNam với việc cung cấp rất nhiều chủng loại xe từ 4-45 chỗ với đa dạng các hình thứcthuê như: thuê theo ngày và thuê dài hạn Ngoài ra chúng tôi cũng cung cấp dịch vụcho thuê xe theo tuyến điểm du lịch, theo số km sử dụng Chúng tôi có khả năng phục
vụ một cách tốt nhất nhu cầu của mỗi cá nhân, tổ chức và đặc biệt các công ty nướcngoài ở Việt Nam
Trang 31 Khảo sát bài toán 2
2 Phân tích thiết kế hệ thống: 4
2.1 Mô hình phân rã chức năng 4
2.2 Sơ đồ liên kết 5
Chương 2 Cài đặt trong SQL Server 6
1 Tạo database 6
2 Tạo các bảng 6
3 Tạo View, thủ tục, trigger 9
Chương 3 Thiết kế và cài đặt chương trình 24
1 Thiết kế giao diện 24
1.1 Màn hình khởi động 24
1.2 Đăng nhập với tài khoản có quyền quản trị cao nhất 25
1.3 Đăng nhập với tài khoản thường 26
1.4 Đăng nhập 26
1.4.2 Đổi thông tin đăng nhập 26
1.4.3 Quản lý người dùng(chỉ sử dụng với admin) 27
1.4.4 Exit 27
1.4.5 Trả lời “ok” 28
1.5 Menu Quản lý hồ sơ 28
1.5.1 Khách hàng 29
1.5.2 Nhân viên 30
1.5.3 Loại xe 30
1.5.4 Thông tin xe 31
1.6 Menu Quản lý cho thuê 32
1.6.1 Hợp đồng 32
1.6.1.1 In Phiếu thuê 33
1.6.2 Phiếu phạt 34
1.6.3 In Phiếu phạt 35
1.6.4 Xe thuê 36
1.7 Menu Tìm kiếm 36
1.7.1 Tìm Khách hàng 37
1.7.2 Tìm loại xe 37
1.8 Tìm Thông tin xe 38
1.9 Menu Báo cáo thống kê 38
1.9.1 Danh sách Phiếu thuê 39
Trang 4Kết luận 41 Tài liệu tham khảo 41
Trang 5Bảng phân công công việc
Mã SV Họ tên Công việc được phân
0641360130 Trần Văn Bôn Xây dựng Modul QL thuê xe và Xử lý Đăng
Nhập Phần mềm, viết báo cáo
0641360137 Phạm Đình Chiến Khảo sát, Xây dựng Modul QL thông tin hồ sơ
0641360148 Bùi Quang Khoa Xây dựng Modul QL tìm kiếm
Cả nhóm cùng khảo sát và phân tích thiết kế hệ thống mà công ty đang cần giảiquyết, xác định mục tiêu và nhiệm của hệ thống cần xây dựng Từ đó thiết kế cơ sở
dữ liệu và xây dựng hệ thống
Trang 6Chương 1 Khảo sát bài toán, phân tích thiết kế hệ thống
1 Khảo sát bài toán
Hoạt động của công ty cổ phần XYZ chuyên cho thuê xe ôtô.
Quản lý danh mục các loại xe: nhập them các loại xe mới từ các hãng sản xuất ôtô, xóa bỏ thong tin về loại xe khi các hãng không còn sản xuất nữa, sửa đổi thong tin về loại xe, tìm kiếm thong tin loại xe khi cần Thông tin về loại xe bao gồm: mã loại xe, tên loại xe, hãng sản xuất, năm sản xuất, mô tả khác…
Quản lý thong tin xe: nhập thong tin xe mới khi có 1 xe được mua về Khi xe khôngcòn phục vụ được nữa thì xóa bỏ thông tin về xe, nhân viên có thể tìm kiếm xe khikhách muốn thuê Ngoài ra có thể sửa đổi thông tin về xe khi cần thiết Thông tin về xebao gồm: biển số xe, mã loại xe, màu sơn, tình trạng và mô tả khác Các thông tin về
xe và loại xe đều do nhân viên công ty cung cấp
Khách hàng muốn thuê xe tại công ty lần đầu thì thông tin về họ được lưu trữ lại.Quản lý các khách hàng: thêm mới thông tin khách hàng gồm: họ tên, điện thoại, địachỉ và các đặc điểm khác để xác nhận như: số chứng minh thư nhân dân, hoặc số hộchiếu, hoặc số tài khoản Mỗi khách hàng được gán 1 định danh duy nhất là mã kháchhàng Sau khi xác nhận các thông tin về khách hàng, hệ thống lưu trữ thông tin của họ.Thông tin của khách hàng thay đổi thì được cập nhật lại, xóa bỏ thông tin của kháchhàng khi họ không thuê xe trong vòng 1 năm
Khi thuê xe tại công ty, khách hàng chỉ được thuê không quá 6 chiếc và 1 ngày chỉđược lập 1 hợp đồng thuê Trước khi thuê họ phải trình chứng minh thư nhân dân hoặc
hộ chiếu Quản lý cho thuê xe được thực hiện như sau: sau khi kiểm tra chứng minhthư nhân dân hoặc hộ chiếu và kiểm tra xe mà khách hàng yêu cầu thì sẽ cho đăng kí
xe thuê Nếu công ty không còn xe mà khách yêu cầu thì từ chối cho thuê Nếu công ty
có xe đáp ứng yêu cầu của khách thì tiến hành lập phiếu thuê gửi đến khách Thông tintrong phiếu thuê gồm: số phiếu thuê, ngày thuê, mã khách hàng, số chứng minh thưnhân dân hoặc hộ chiếu và các thông tin về xe gồm: biển số xe, loại xe, hãng sản xuất,
Trang 7năm sản xuất, tình trạng, số lượng, số ngày mượn và đơn giá Khi khách hàng trả xe thìnhân viên sẽ kiểm tra tình trạng xe trả và ghi nhận việc trả xe của khách hàng Nếu xe
bị hỏng hóc thì khách phải chịu chi phí sửa chữa hoặc thay thế phụ tùng và tiến hànhlập phiếu nộp phạt Thông tin trong phiếu phạt gồm: số phiếu phạt, ngày phạt, mãkhách hàng, họ tên khách hàng, số CMTND hoặc hộ chiếu và danh mục các khoản nộpphạt: lý do nộp phạt, số tiền nộp phạt Mỗi phiếu cho thuê xe do 1 nhân viên thu tiền.Mỗi nhân viên có thể thu tiền của nhiều của nhiều phiếu cho thuê xe
Để tiện theo dõi và quản lý nhân viên làm việc, công ty thực hiện thêm mới vào danhsách khi có nhân viên mới được tuyển, sửa đổi thông tin khi có những biến đổi xảy ra
và xóa bỏ nhân viên khi hết hợp đồng hoặc bị sa thải Các thông tin về nhân viên gồm:
mã nhân viên, tên nhân viên, điện thoại lien hệ, các mô tả khác
Ngoài ra, để tiện theo dõi việc kinh doanh của công ty, hàng tháng công ty lập cácbáo cáo gửi cho ban giám đốc về danh sách phiếu thuê, phiếu phạt trong tháng, báocáo về loại xe mà khách hàng hay thuê để ban giám đốc có các biện pháp điều chỉnh
Trang 8QL thông tin nhân viên
Báo cáo thống kê
Kiểm tra khách hàng
Từ chối cho thuê
Lập hợp đồng
Báo cáo doanh thu
Danh sách
xe được thuê
Danh sách
xe không sử dụng được
Thêm TT nhân viên
Sửa TT nhân viên
Xóa TT nhân viên
Xuất phiếu thuê,phiếu phạt
Trang 92.2 Sơ đồ liên kết
Trang 10Chương 2 Cài đặt trong SQL Server
maloaixe CHAR(10) NOTNULL
CONSTRAINT pk_LoaiXe_maloaixe PRIMARYKEY,
hangxe NVARCHAR(40) NOTNULL,
loaixe NVARCHAR(40) NOTNULL,
bienso VARCHAR(11) NOTNULL
CONSTRAINT pk_ThongTinXe_bienso PRIMARYKEY,
Trang 11maloaixe CHAR(10) NOTNULL,
mauson NVARCHAR(30) NOTNULL,
ngaydangki DATE NOTNULL,
tinhtrang NVARCHAR(40) NOTNULL,
CONSTRAINT fk_ThongTinXe_maloaixe
FOREIGNKEY (maloaixe)
REFERENCES LoaiXe(maloaixe)
ONDELETECASCADE ONUPDATECASCADE
manhanvien CHAR(10) NOTNULL
CONSTRAINT pk_NV_manhanvien PRIMARYKEY,
hoten NVARCHAR(40) NOTNULL,
ngaysinh DATE NOTNULL,
ngaylamviec DATE NOTNULL,
makhachhang CHAR(10) NOTNULL
CONSTRAINT pk_KhachHang_makhachhang PRIMARYKEY,
hoten NVARCHAR(40) NOTNULL,
gioitinh BIT NOTNULL,
CMTND VARCHAR(15) NOTNULL,
dienthoai VARCHAR(15) NOTNULL,
ngaythue DATE NOTNULL,
makhachhang char(10)NOTNULL,
bienso VARCHAR(11) NOTNULL,
Trang 12CONSTRAINT fk_xt_makhachhang
FOREIGNKEY (makhachhang)
REFERENCES KhachHang(makhachhang)
ONUPDATECASCADE,
CONSTRAINT fk_xt_bienso
FOREIGNKEY (bienso)
REFERENCES ThongTinXe(bienso)
maphieuthue CHAR(10) NOTNULL
CONSTRAINT pk_PhieuThue_maphieuthue PRIMARYKEY,
ngaythue DATE NOTNULL,
makhachhang CHAR(10) NOTNULL,
manhanvien CHAR(10) NOTNULL,
CONSTRAINT fk_PhieuThue_manhanvien
FOREIGNKEY (manhanvien)
REFERENCES NhanVien(manhanvien)
ONUPDATECASCADE,
CONSTRAINT fk_PhieuThue_makhachhang
FOREIGNKEY (makhachhang)
REFERENCES KhachHang(makhachhang)
maphieuphat CHAR(10) NOTNULL
CONSTRAINT pk_PhieuPhat_maphieuphat PRIMARYKEY,
maphieuthue CHAR(10) NOTNULL,
ngayphat DATE NOTNULL,
noidungphat NVARCHAR(100) NOTNULL,
tienphat INT NOTNULL,
manhanvien CHAR(10) NOTNULL,
makhachhang char(10) NOTNULL
CONSTRAINT fk_PhieuPhat_manhanvien
Trang 13FOREIGNKEY (manhanvien)
REFERENCES NhanVien(manhanvien),
CONSTRAINT fk_PhieuPhat_makhachhang
FOREIGNKEY (makhachhang)
REFERENCES KhachHang(makhachhang)
insertinto XeThue values(@ngaythue,@makhachhang,@bienso,@dongiangay)
IFEXISTS(SELECT *
Trang 14insert into ThongTinXe values(@bienso,@maloaixe,@mauson
insert into PhieuThue
values(@maphieuthue,@ngaythue,@makhachhang,@manhanvien,@songaymuon)
CREATEproc [dbo].[ThemPhieuPhat]
@maphieuphat CHAR(10),
@maphieuthue CHAR(10),
@ngayphat DATE,
@noidungphat NVARCHAR(100),
Trang 15insertinto PhieuPhat
values(@maphieuphat,@maphieuthue,@ngayphat,@noidungphat,@tienphat,@manhanvien,@makhachhang )
END
IF @ngaylamviec <=GETDATE()
BEGIN
ROLLBACKTRANRAISERROR ('Ngày làm việc phải là hôm nay hoặc sau hôm nay.',16,1)
END
insertinto NhanVien
values(@manhanvien,@hoten,@ngaysinh,@ngaylamviec,@diachi,@dienthoai)
Trang 16insertinto KhachHang values(@makhachhang
,@hoten,@gioitinh,@CMTND,@dienthoai,@diachi)
Trang 17update XeThue set
ngaythue=@ngaythue,makhachhang=@makhachhang,bienso=@bienso,dongiangay=
update ThongTinXe set
bienso=@bienso,maloaixe=@maloaixe,mauson=@mauson,ngaydangki=@ngaydangki,tinhtrang=@tinhtrang
where bienso=@bienso
CREATEproc [dbo].[SuaPhieuThue]
update PhieuThue set
maphieuthue=@maphieuthue,ngaythue=@ngaythue,makhachhang=@makhachhang,manhanvien=@manhanvien,songaymuon=@songaymuon where
maphieuthue=@maphieuthue
Trang 18CREATEproc [dbo].[SuaPhieuPhat]
update PhieuPhat set
maphieuphat=@maphieuphat,maphieuthue=@maphieuthue,ngayphat=@ngayphat,noidungphat=@noidungphat,tienphat=@tienphat,manhanvien=@manhanvien,makhachha
ng=@makhachhang where maphieuphat=@maphieuphat
END
update NhanVien set
manhanvien=@manhanvien,hoten=@hoten,ngaysinh=@ngaysinh,ngaylamviec=@ngaylamviec,diachi=@diachi,dienthoai=@dienthoai
where manhanvien=@manhanvien
end
GO
Trang 19CREATEproc [dbo].[SuaMyUser]
@name nvarchar(50),
@pas nvarchar(10)
as
begin
update MyUser set name=@name,pas=@pas
where name=@name
update LoaiXe set maloaixe=@maloaixe
,hangxe=@hangxe,loaixe=@loaixe,namsx=@namsx,mota=@mota
where maloaixe=@maloaixe
update KhachHang set makhachhang=@makhachhang
,hoten=@hoten,gioitinh=@gioitinh,CMTND=@CMTND,dienthoai=@dienthoai,diach
i=@diachi
where makhachhang=@makhachhang
Trang 20deletefrom XeThue
where bienso=@bienso and ngaythue=@ngaythue and
deletefrom XeThue
where makhachhang=@makhachhang
deletefrom ThongTinXe
where bienso=@bienso
end
GO
CREATEproc [dbo].[XoaQuanTri]
as
Trang 21deletefrom QuanTri
where myuser=myuser
deletefrom PhieuThue
where maphieuthue=@maphieuthue
deletefrom PhieuPhat
where maphieuphat=@maphieuphat
deletefrom NhanVien
where manhanvien=@manhanvien
deletefrom MyUser
where maUser=@maUser
Trang 22deletefrom LoaiXe
where maloaixe=@maloaixe
deletefrom KhachHang
where makhachhang=@makhachhang
deletefrom XeThue
where ngaythue=(select ngaythue
Trang 23deletefrom PhieuThue
where ngaythue <GETDATE()-365-songaymuon
GO
CREATEproc [dbo].[TuXoaPhieuPhat]
as
deletefrom PhieuPhat
where ngayphat <GETDATE()-365
select*from XeThue
where makhachhang=@makhachhang
Trang 24@hoten nvarchar(40)
as
SELECT makhachhang, hoten,(CASE gioitinh WHEN'true'THEN'nu' ELSE'nam'
END)AS gioitinh, CMTND, dienthoai, diachi
Trang 25CREATEproc [dbo].[TimMyUser]
@maUser char(10)
as
begin
select*from MyUser
where maUser=@maUser
SELECT makhachhang, hoten,(CASE gioitinh WHEN'true'THEN'nu' ELSE'nam'
END)AS gioitinh, CMTND, dienthoai, diachi
Trang 26from PhieuThue,LoaiXe,KhachHang,ThongTinXe,XeThue
where PhieuThue.makhachhang=KhachHang.makhachhang and XeThue.bienso=ThongTinXe.bienso
and ThongTinXe.maloaixe=LoaiXe.maloaixe andPhieuThue.makhachhang=XeThue.makhachhang
and PhieuThue.ngaythue=XeThue.ngaythue
GO
createview [dbo].[view_PhieuPhat]
as
SELECT dbo.PhieuPhat.maphieuphat, dbo.PhieuPhat.ngayphat,
dbo.PhieuPhat.maphieuthue, dbo.PhieuPhat.manhanvien,PhieuPhat.makhachhang,dbo.KhachHang.hoten, dbo.KhachHang.CMTND,
dbo.PhieuPhat.tienphat, dbo.PhieuPhat.noidungphat
Trang 27FROM PhieuPhat,Khachhang,NhanVien
where
dbo.PhieuPhat.manhanvien = NhanVien.manhanvien and
PhieuPhat.makhachhang = dbo.KhachHang.makhachhang
Trang 28Chương 3 Thiết kế và cài đặt chương trình
1 Thiết kế giao diện
1.1 Màn hình khởi động
Trang 291.2 Đăng nhập với tài khoản có quyền quản trị cao nhất
- Tất cả các chức năng của chương trình được kích hoạt
Trang 301.3 Đăng nhập với tài khoản thường
- Nhân viên sẽ không có quyền thực hiện thủ tục xóa
1.4 Đăng nhập
1.4.2 Đổi thông tin đăng nhập
Trang 311.4.3 Quản lý người dùng(chỉ sử dụng với admin)
1.4.4 Exit
Trang 321.4.5 Trả lời “ok”
1.5 Menu Quản lý hồ sơ
Trang 331.5.1 Khách hàng
Trang 341.5.2 Nhân viên
1.5.3 Loại xe
Trang 351.5.4 Thông tin xe
Trang 361.6 Menu Quản lý cho thuê
1.6.1 Hợp đồng
Trang 371.6.1.1 In Phiếu thuê
Trang 381.6.2 Phiếu phạt
Trang 391.6.3 In Phiếu phạt
Trang 401.6.4 Xe thuê
1.7 Menu Tìm kiếm
Trang 411.7.1 Tìm Khách hàng
1.7.2 Tìm loại xe
Trang 421.8 Tìm Thông tin xe
1.9 Menu Báo cáo thống kê
Trang 431.9.1 Danh sách Phiếu thuê
Trang 441.9.2 Danh sách Phiếu phạt
1.10 Menu Hướng dẫn
Trang 45Kết luận
Qua quá trình phân tích, thiết kế hệ thống cũng như khảo sát thực tế đã giúp cho cácthành viên trong nhóm rất nhiều kiến thức bổ ích đặc biệt là được tìm hiểu yêu cầuthực tế của việc phân tích, đánh giá hệ thống, nhu cầu của người dùng cuối Khôngnhững thế, kiến thức về môn phân tích thiết kế hệ thống của các thành viên cũng đượccủng cố và mở rộng hiểu biết rất nhiều Việc làm bài tập lớn đòi hỏi mỗi thành viênphải nắm chắc kiến thức về phân tích thiết kế hệ thống và quy trình thiết kế cơ sở dữliệu vì vậy bắt buộc mỗi người đều phải nắm chắc kiến thức đã học trên lớp và củng cốlại những chỗ chưa chắc, tích cực đọc các tài liệu tham khảo, giúp tăng tinh thần tựhọc, tự nghiên cứu Trong thời gian làm bài tập lớn, mặc dù cả nhóm đều rất nhiệt tìnhlàm việc, tìm hiểu rất nhiều nhưng do kiến thức có hạn, kinh nghiệm còn chưa cónhiều, việc tiếp cận thực tế còn hạn chế nên bài làm vẫn chưa thực sự tối ưu và đápứng được nhu cầu thực tế, vẫn còn một số hạn chế nhất định
Tài liệu tham khảo
Giáo trình phân tích và thiết thiết kế hệ thống (NXB thông tin và truyền thông)