资源描述
旅游管理系统
课
程
设
计
报
告
班级:软件1202班
学号:02240120217
姓名:赖子郁
完成日期:2015—01-09
一、项目功能需求
旅游管理系统项目功能:
1. 管理员输入旅游景点信息
2. 管理员输入旅游线路信息
3. 管理员选择旅游线路的旅游景点
4. 管理员查看用户预定信息
5. 管理员输入用户结算信息
6. 用户查看旅游项目信息
7. 用户预定旅游线路
8. 用户查看订单状态
二、数据库设计
(一)数据库结构设计
1.旅游管理系统E-R图
图1 系统E—R图
2、旅游管理系统数据库关系图
图2 数据库关系图
3、旅游管理系统数据字典
序号
数据表名称
说明
备注
1
area
地域
2
line
旅游线路
3
line_spot
旅游线路与景点关联
4
member
会员
5
operator
员工
6
spot
旅游景点
7
travelplan
旅游计划
8
travelplanorder
旅游计划预订
表1 数字字典
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
ids
主键,自增列
2
areaid
nvarchar
50
否
地域编码
3
name
nvarchar
50
否
名称
表2 area表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
name
nvarchar
200
否
路线名称
3
price
decimal
(18,2)
否
路线价格
4
days
int
8
否
备注
5
isrecommended
int
8
否
是否推荐
6
spotnum
int
8
否
景点数量
7
updatetime
datatime
8
否
最近修改时间
8
isdeleted
int
8
否
是否删除
1:已删除,0:未删除
表3 line表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
lineids
int
8
否
路线编号
参照line(ids)
3
spotids
int
8
否
景点编号
参照spot(ids)
表4 line_spot表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
memberid
nvarchar
50
否
会员账号
3
membername
nvarchar
50
否
会员名称
4
passwords
nvarchar
50
否
密码
5
realname
nvarchar
50
否
真实姓名
6
sex
int
8
否
性别
1:男,2:女
7
idnum
nvarchar
50
否
身份证号
8
email
nvarchar
50
否
邮箱
9
telephone
nvarchar
50
否
手机号码
表5 member表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
userid
nvarchar
50
否
管理员账号
3
username
nvarchar
50
否
管理员名称
4
passwords
nvarchar
50
否
密码
5
idnum
nvarchar
50
否
身份证号
6
isadmin
int
8
否
是否具有管理员权限
表6 operator表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
name
nvarchar
200
否
景点名称
3
price
decimal
(18,2)
否
价格
4
area
int
8
否
所属地域
参照area(ids)
5
img
image
是
景点图片
6
des
varchar
2000
是
景点描述
7
isdeleted
int
8
否
是否已删除
1:已删除,0:未删除
表7 spot表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
planid
nvarchar
200
否
计划编号
3
lineids
int
8
否
旅游线路ids
参照line(ids)
4
expect_people_num
int
8
否
预订人数
5
actual_people_num
int
8
是
实际预订人数
6
expect_starttime
datetime
否
计划开始时间
7
actual_starttime
datetime
是
实际开始时间
8
updatetime
datetime
否
最近修该时间
9
planstatus
int
8
否
计划状态
1:发布,2:进行,3:结束
10
isdeleted
int
8
否
是否删除
1:已删除,0:未删除
表8 traveplan表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
planids
int
8
否
旅游计划ids
参照traveplan(ids)
3
memberids
int
8
否
预订用户ids
参照member(ids)
4
ordertime
datetime
8
否
预订时间
5
ispay
int
8
否
是否支付
1:支付,2:未支付
6
before_discount_money
decimal
(18,2)
否
折扣前金额
7
charge_money
decimal
(18,3)
否
实收金额
8
paytime
datetime
8
是
支付时间
表9 traveplanorder表
(二)旅游管理系统视图
1、用户查看账户预订情况
CREATEVIEWmemberorder
AS
SELECTmember。membernameAS用户,member。sexAS性别,line.nameAS路线,travelplanorder。ordertimeAS预订时间,travelplanorder.ispayAS是否支付,travelplanorder。before_discount_moneyAS折扣前金额,member。telephoneAS电话,member。emailAS邮箱
FROMlineINNERJOINmemberONline。ids=member。idsINNERJOIN
travelplanorderONmember。ids=travelplanorder.memberids
2、管理员查看旅游计划的预订情况
CREATEVIEWoperatorCheckorder
AS
SELECTline。nameAS线路,member。membernameAS用户,travelplanorder。ordertimeAS预定时间,travelplanorder。ispayAS是否支付,travelplanorder。paytimeAS支付时间,travelplanorder。before_discount_moneyAS折扣前金额,travelplanorder。charge_moneyAS实际支付金额
FROMlineINNERJOINmemberONline。ids=member。ids
INNERJOINtravelplanONline。ids=travelplan。lineidsINNERJOIN
travelplanorderONmember。ids=travelplanorder。memberidsANDtravelplan.ids=travelplanorder.planids
3、查看旅游线路所包含的景点信息
CREATEVIEWline_spot_view
AS
SELECTline.nameAS线路名,spot。nameAS景点名,line。daysAS旅游时间,spot.areaAS所在地,spot。img,spot。desAS景点介绍
FROMlineINNERJOINline_spotONline。ids=line_spot。lineidsINNERJOINspotONline_spot。spotids=spot.ids
4、查看景点所在地区
CREATEVIEW[dbo].[spot_area]
AS
SELECTdbo.spot。idsAS编号,dbo。spot.nameAS景点名,dbo。spot。priceAS价格,dbo。area.nameAS地区,dbo。spot。desAS介绍,dbo。spot.isdeleted
FROMdbo.areaINNERJOINdbo.spotONdbo。area。ids=dbo.spot。area
(三)设计编程对象
1.触发器
1) 删除会员的同时,删除会员的旅游线路订单
createtriggermember_delete
onmember
forupdate
as
DELETEFROMtravelplanorder
WHERE(travelplanorder。 memberids=(selectidsfromdeleted))
2) 删除旅游计划的同时,删除该旅游计划的订单
createtriggertraveplan_delete
ontravelplan
forupdate
as
DELETEFROMtravelplanorder
WHERE(travelplanorder。planids=(selectidsfromdeleted))
3) 删除旅游路线的同时,删除与该旅游路线相关的旅游景点关联和旅游计划
createtriggerline_delete
online
forupdate
as
DELETEFROMtravelplan
WHERE(travelplan。lineids=(selectidsfromdeleted))
DELETEFROMline_spot
WHERE (line_spot。lineids=(selectidsfromdeleted))
4) 删除旅游景点的同时,删除该旅游景点与旅游线路的关联
createtriggerspot_delete
onspot
forupdate
as
DELETEFROMline_spot
WHERE
(line_spot.spotids=(selectidsfromdeleted)
2。存储过程
1) 向member表中插入数据
createprocmemberinsert
@idsint,@membernamenvarchar(50),@passwordsnvarchar(50),@realnamenvarchar(50),@sexint,@idnumnvarchar(50),@emailnvarchar(50),@telephonenvarchar(50)
as
insertintomember(ids,membername,passwords,realname,sex,idnum,email,telephone)values(@ids,@membername,@passwords,@realname,@sex,@idnum,@email,@telephone)
2) 查询景点所属地区
createprocareaSelect]
as
SELECTids,areaid,name
FROMarea
3) 查询路线信息
createproclineselect
as
SELECTidsAS编号,nameAS路线名,priceAS价格,daysAS旅游时间,isrecommendedAS是否推荐,spotnumAS景点数,updatetimeAS更新时间,isdeletedAS是否删除
FROMline
4) 插入管理员信息
createprocoperatorinsert
@useridnvarchar(50),@usernamenvarchar(50),@passwordsnvarchar(50),@idnumnvarchar(50),@isadminint
as
INSERTINTOoperator(userid,username,passwords,idnum,isadmin)
VALUES (@userid,@username,@passwords,@idnum,@isadmin)
5) 查询用户信息
createprocselecttext
as
select*frommember
6) 查询景点信息
createprocspotinsert
as
SELECTname,price,area,des,isdeleted
FROMspot
3。函数
1) 查询数据库中是否有此人
createfunctionmembersex
(@namenvarchar(50))
returnsnvarchar(50)
as
begin
declare@anvarchar(50)
ifnotexists(selectsexfrommemberwheremembername=@name)
set@a=’不存在此人’
else
set@a=’存在此人’
return@a
end
四、系统设置
(一)系统用例图
1) 管理员用例图
2) 用户用例图
(二)系统运行结果
1) 登陆:系统用户可选择用户类型(管理员、普通用户)登陆到不同页面
2) 注册:在登陆页面可选择进入用户注册、管理员注册页面,注册信息
3) 用户主页:用户登陆系统后,可查看旅游线路信息、预定旅游线路生成订单、查看订单状态和完成订单支付功能
4) 查看旅游线路:用户查看旅游信息,并可预定旅游线路
5) 订单管理:用户完成订单支付和取消该订单
6) 管理员主页:管理员登陆系统后,可在景点管理内添加、修改和删除景点信息,在线路管理内可添加、修改、删除旅游线路和生成旅游计划,在旅游计划管理内可删除、查看旅游计划
7) 景点管理:在本模块,用户可添加和删除旅游景点
8) 线路管理:在本模块,用户可查看各条线路的详细情况,修改线路信息,删除旅游线路和发布旅游计划
9) 旅游计划管理:管理员在本模块下查看旅游线路预定情况
展开阅读全文