旅游管理系统课程设计报告.docx
《旅游管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《旅游管理系统课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
![旅游管理系统课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-12/17/9e3c3cf2-8604-495b-832a-11924fce881a/9e3c3cf2-8604-495b-832a-11924fce881a1.gif)
旅游管理系统课程设计报告
旅游管理系统
课
程
设
计
报
告
班级:
软件1202班
学号:
:
赖子郁
完成日期:
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
否
名称
表2area表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
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:
未删除
表3line表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
lineids
int
8
否
路线编号
参照line(ids)
3
spotids
int
8
否
景点编号
参照spot(ids)
表4line_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
否
手机
表5member表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
1
ids
int
8
否
编号
主键,自增列
2
userid
nvarchar
50
否
管理员账号
3
username
nvarchar
50
否
管理员名称
4
passwords
nvarchar
50
否
密码
5
idnum
nvarchar
50
否
号
6
isadmin
int
8
否
是否具有管理员权限
表6operator表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
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:
未删除
表7spot表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
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:
未删除
表8traveplan表
序号
数据表名称
数据类型
长度
是否允许为空
字段说明
备注
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
是
支付时间
表9traveplanorder表
(二)旅游管理系统视图
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
declareanvarchar(50)
ifnotexists(selectsexfrommemberwheremembername=name)
seta='不存在此人'
else
seta='存在此人'
returna
end
四、系统设置
(一)系统用例图
1)管理员用例图
2)用户用例图
(二)系统运行结果
1)登陆:
系统用户可选择用户类型(管理员、普通用户)登陆到不同页面
2)注册:
在登陆页面可选择进入用户注册、管理员注册页面,注册信息
3)用户主页:
用户登陆系统后,可查看旅游线路信息、预定旅游线路生成订单、查看订单状态和完成订单支付功能
4)查看旅游线路:
用户查看旅游信息,并可预定旅游线路
5)订单管理:
用户完成订单支付和取消该订单
6)管理员主页:
管理员登陆系统后,可在景点管理添加、修改和删除景点信息,在线路管理可添加、修改、删除旅游线路和生成旅游计划,在旅游计划管理可删除、查看旅游计划
7)景点管理:
在本模块,用户可添加和删除旅游景点
8)线路管理:
在本模块,用户可查看各条线路的详细情况,修改线路信息,删除旅游线路和发布旅游计划
9)旅游计划管理:
管理员在本模块下查看旅游线路预定情况