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
Trường Đại Học Công Nghiệp Hà Nội Khoa Công Nghệ Thông Tin BÀI TẬP LỚN Môn: LẬP TRÌNH WINDOWS Đề tài 41. Xây dựng phần mềm quản lý hoạt động thuê xe du lịch. 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 thốn, cộng với việc không có tiền. Nhưng ngày nay điều đó thật đơn giản. Bạn muốn đi đến công sở, nơi gặp gỡ đối tác mà không muốn tự mình lái xe thì taxi là 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ển thê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ày nay 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át triển. Công ty Thành Hưng cho thuê xe chuyên nghiệp, uy tín và chất lượng ở Việt Nam 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ức thuê 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ước ngoài ở Việt Nam. Contents Kỹ thuật phần mềm 2_k6 Đại học công nghiệp Bả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ải quyế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. Kỹ thuật phần mềm 2_k6 Đại học công nghiệp Chươ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ông cò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 khi khá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ề xe bao 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, địa chỉ 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ách hà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ách hà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 minh thư 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 tin trong 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, nă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ành lậ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ã Kỹ thuật phần mềm 2_k6 Đại học công nghiệp 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ộp phạ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 danh sá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ác bá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áo cá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. Kỹ thuật phần mềm 2_k6 Đại học công nghiệp 2. Phân tích thiết kế hệ thống: 2.1. Mô hình phân rã chức năng QL thông tin khách hàng QL thông tin Xe và loại xe QL thuê, trả xe QL thông tin nhân viên Báo cáo thống kê Thêm khách hàng Sửa khách hàng xe Thêm TT xe, loại xe Sửa TT xe, loại xe 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 Xóa TT xe, loại xe Xóa khách hàng Quản lý thuê xe Kỹ thuật phần mềm 2_k6 Đại học công nghiệp 2.2. Sơ đồ liên kết Kỹ thuật phần mềm 2_k6 Đại học công nghiệp Chương 2. Cài đặt trong SQL Server 1. Tạo database 2. Tạo các bảng BANG MyUser CREATE TABLE MyUser ( mauser char(10) NOT NULL CONSTRAINT pk_MyUser_mauser PRIMARY KEY, name nvarchar(50) NOT NULL, pas nvarchar(20), chucvu nvarchar(20), ) BANG QuanTri CREATE TABLE QuanTri ( myuser nvarchar(50) NOT NULL CONSTRAINT pk_QT_user PRIMARY KEY, pass nvarchar(10) ) BANG LoaiXe CREATE TABLE LoaiXe ( maloaixe CHAR(10) NOT NULL CONSTRAINT pk_LoaiXe_maloaixe PRIMARY KEY, hangxe NVARCHAR(40) NOT NULL, loaixe NVARCHAR(40) NOT NULL, namsx DATE NOT NULL, mota NVARCHAR(40) ) BANG ThongTinXe CREATE TABLE ThongTinXe ( bienso VARCHAR(11) NOT NULL CONSTRAINT pk_ThongTinXe_bienso PRIMARY KEY, maloaixe CHAR(10) NOT NULL, mauson NVARCHAR(30) NOT NULL, ngaydangki DATE NOT NULL, tinhtrang NVARCHAR(40) NOT NULL, CONSTRAINT fk_ThongTinXe_maloaixe FOREIGN KEY (maloaixe) Kỹ thuật phần mềm 2_k6 Đại học công nghiệp REFERENCES LoaiXe(maloaixe) ON DELETE CASCADE ON UPDATE CASCADE ) BANG NhanVien CREATE TABLE NhanVien ( manhanvien CHAR(10) NOT NULL CONSTRAINT pk_NV_manhanvien PRIMARY KEY, hoten NVARCHAR(40) NOT NULL, ngaysinh DATE NOT NULL, ngaylamviec DATE NOT NULL, diachi NVARCHAR(100) , dienthoai VARCHAR(15) NOT NULL, ) BANG KhachHang CREATE TABLE KhachHang ( makhachhang CHAR(10) NOT NULL CONSTRAINT pk_KhachHang_makhachhang PRIMARY KEY, hoten NVARCHAR(40) NOT NULL, gioitinh BIT NOT NULL, CMTND VARCHAR(15) NOT NULL, dienthoai VARCHAR(15) NOT NULL, diachi NVARCHAR(40) , ) BANG XeThue CREATE TABLE XeThue ( ngaythue DATE NOT NULL, makhachhang char(10) NOT NULL, bienso VARCHAR(11) NOT NULL, dongiangay int NOT NULL CONSTRAINT fk_xt_makhachhang FOREIGN KEY (makhachhang) REFERENCES KhachHang(makhachhang) ON UPDATE CASCADE, CONSTRAINT fk_xt_bienso FOREIGN KEY (bienso) REFERENCES ThongTinXe(bienso) ON UPDATE CASCADE ) BANG PhieuThue CREATE TABLE PhieuThue [...]... Kỹ thuật phần mềm 2_k6 1.4.3 Quản lý người dùng(chỉ sử dụng với admin) 1.4.4 Exit Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.4.5 Trả lời “ok” 1.5 Menu Quản lý hồ sơ Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.5.1 Khách hàng Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.5.2 Nhân viên 1.5.3 Loại xe Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.5.4 Thông tin xe Đại học công nghiệp Kỹ thuật phần mềm 2_k6... nvarchar(10) as begin Kỹ thuật phần mềm 2_k6 Đại học công nghiệp update MyUser set name=@name,pas=@pas where name=@name end GO CREATE proc [dbo].[SuaLoaiXe] @maloaixe CHAR(10), @hangxe NVARCHAR(40) , @loaixe NVARCHAR(40), @mota NVARCHAR(40), @namsx DATE as begin update LoaiXe set maloaixe=@maloaixe ,hangxe=@hangxe,loaixe=@loaixe,namsx=@namsx,mota=@mota where maloaixe=@maloaixe end GO create proc [dbo].[SuaKhachHang]... ,ThongTinXe.tinhtrang ,[hangxe] ,[namsx] ,[songaymuon] ,[dongiangay] from PhieuThue,LoaiXe,KhachHang,ThongTinXe,XeThue where PhieuThue.makhachhang=KhachHang.makhachhang and XeThue.bienso= ThongTinXe.bienso and ThongTinXe.maloaixe=LoaiXe.maloaixe and PhieuThue.makhachhang=XeThue.makhachhang and PhieuThue.ngaythue=XeThue.ngaythue GO create view [dbo].[view_PhieuPhat] as SELECT dbo.PhieuPhat.maphieuphat,... -create proc [dbo].[TimXeThue] @makhachhang char(10) as begin select * from XeThue where makhachhang=@makhachhang end GO create proc [dbo].[TimThongTinXe_ma] @maloaixe char(10) as select * from view_ThongTinXe where maloaixe=@maloaixe Kỹ thuật phần mềm 2_k6 Đại học công nghiệp GO CREATE proc [dbo].[TimThongTinXe] @bienso varchar(11) as select * from view_ThongTinXe where bienso=@bienso GO create... bienso from ThongTinXe EXCEPT (select bienso from view_BienSoChuaThue1) GO Đại học công nghiệp Kỹ thuật phần mềm 2_k6 Đại học công nghiệp Chươ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 Kỹ thuật phần mềm 2_k6 1.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 Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.3 Đăng... [dbo].[TimLoaiXe] @maloaixe CHAR(10) as select * from LoaiXe where maloaixe=@maloaixe GO CREATE proc [dbo].[TimKhachHang] @makhachhang CHAR(10) as SELECT makhachhang, hoten, (CASE gioitinh WHEN 'true' THEN 'nu' ELSE 'nam' END) AS gioitinh, CMTND, dienthoai, diachi from KhachHang where makhachhang=@makhachhang GO create proc [dbo].[TimHangLoaiXe] @hangxe nvarchar(40) as select * from LoaiXe where hangxe=@hangxe... công nghiệp Kỹ thuật phần mềm 2_k6 1.5.4 Thông tin xe Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.6 Menu Quản lý cho thuê 1.6.1 Hợp đồng Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.6.1.1 In Phiếu thuê Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.6.2 Phiếu phạt Đại học công nghiệp Kỹ thuật phần mềm 2_k6 1.6.3 In Phiếu phạt Đại học công nghiệp ... create proc [dbo].[XoaLoaiXe] @maloaixe CHAR(10) as begin delete from LoaiXe where maloaixe=@maloaixe end GO create proc [dbo].[XoaKhachHang] @makhachhang CHAR(10) as begin delete from KhachHang where makhachhang=@makhachhang end GO -Thủ tục Tu Dong Xoa Kỹ thuật phần mềm 2_k6 Đại học công nghiệp CREATE proc [dbo].[TuXoaXeThue] as begin delete from XeThue where ngaythue=(select... view_PhieuThueXe where month(ngaythue) = month(GETDATE()) Kỹ thuật phần mềm 2_k6 Đại học công nghiệp GO create view [dbo].[view_DSPhieuPhat] as SELECT * FROM view_PhieuPhat where month(ngayphat) = month(GETDATE()) GO CREATE view [dbo].[view_PhieuThueXe] as select [maphieuthue] ,PhieuThue.ngaythue ,[manhanvien] ,PhieuThue.makhachhang ,[hoten] ,[CMTND] ,XeThue.bienso ,LoaiXe.maloaixe ,ThongTinXe.tinhtrang ,[hangxe]... [dbo].[TimTenLoaiXe] @loaixe nvarchar(40) as select * from LoaiXe where loaixe=@loaixe GO create proc [dbo].[TimPhieuThueXe] @maphieuthue CHAR(10) as select * from view_PhieuThue where maphieuthue=@maphieuthue GO CREATE proc [dbo].[TimPhieuThue] @maphieuthue CHAR(10) as select * from view_PhieuThueXe where maphieuthue=@maphieuthue GO CREATE proc [dbo].[TimPhieuPhat] @maphieuphat CHAR(10) Kỹ thuật phần mềm 2_k6