工具:Visual Studio 2015,sql server2014
1.系统概述
该旅游管理信息系统可以为游客和公司业务管理员提供服务。游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具以及宾馆的信息查询,并且游客可以在线报名旅游。同时公司业务管理员可以对所有报名信息进行处理,确认之后导出报名信息交由旅行社。
2.需求分析
2.1 需求描述
此系统主要供三类用户使用:游客,公司业务管理员,超级管理员
1.对游客应该实现的功能为:
(1).旅游信息查询:旅游线路查询,旅游班次查询,旅游团查询,保险查询,导游查询,交通工具查询,宾馆查询。
(2).报名旅游
2.对业务管理员应实现的功能
(1).报名信息处理:报名信息查询,报名信息修改,报名信息删除,报名信息添加。
(2).报名信息导出
3.超级管理员:对所有数据库进行管理。
2.2 系统业务流程和数据流图
2.2.1 游客的业务流程图
2.2.2 业务管理员流程图
2.2.2 数据流图
1.按系统功能分析得出顶层数据流图:
2.将其功能分解得到1层数据流图:
3.系统设计
3.1 数据库设计
3.1.1系统概念模型
1)该系统主要包括旅游路线,班次,旅游团,游客,导游,交通工具,宾馆,保险单8个实体类型,各实体属性如下:
旅游线路(路线号,起点,终点,天数,主要景点)
旅游班次(班次号,出发日期,回程日期,旅游标准,报价)
旅游团(团号,团名,人数,联系人,地址,电话)
游客(游客编号,姓名,性别,年龄,身份证号码,住址,电话)
导游(导游编号,姓名,性别,年龄,身份证号码,住址,电话,语种,业绩)
交通工具(旅游班次号,出发工具,出发日期,出发班次,出发时间,回程工具,回程日期,回程班次,回程时间)
宾馆(宾馆编号,宾馆名,城市,星级,标准房价,联系人,职务,地址,电话)
保险单(保险单编号,保险费,投保日期)
2)根据系统的需求和业务、数据分析,得到系统概念模型如下图所示:
3.1.2 系统逻辑模型
1.这个ER图有7个联系类型,其中2个1:1联系,3个1:N联系,2个M:N联系。
根据E-R模型和逻辑模型的转换规则,8个实体类型转换成8个关系模式,2个M:N联系转换成2个关系模式。因此,总的ER图可转换成10个关系模式,如下:
旅游线路(路线号,起点,终点,天数,主要景点)
旅游班次(班次号,路线号,出发日期,回程日期,旅游标准,报价)
旅游团(团号,旅游班次号,团名,人数,联系人,地址,电话)
游客(游客编号,团号,姓名,性别,年龄,身份证号码,住址,电话)
导游(导游编号,姓名,性别,年龄,身份证号码,住址,电话,语种,业绩)
交通工具(旅游班次号,出发工具,出发日期,出发班次,出发时间,回程工具,回程日期,回程班次,回程时间)
宾馆(宾馆编号,宾馆名,城市,星级,标准房价,联系人,职务,地址,电话)
保险(保险单编号,团号,人数,保险费,投保日期)
陪同(旅游班次号,导游编号)
食宿(旅游班次号,宾馆编号)
2. 系统10张数据表的具体设计如表1至表10所示。
(1)旅游线路表(Tourism_Line)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Route_Num |
nvarchar(10) |
路线号 |
主键 |
Origin |
nvarchar(30) |
起点 |
不允许为空 |
Destination |
nvarchar(30) |
终点 |
不允许为空 |
Day_Num |
nvarchar(10) |
天数 |
不允许为空 |
Attractions |
nvarchar(30) |
主要景点 |
不允许为空 |
(2)旅游班次表(Tourism_Shift)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Tourism_Shift_Num |
nvarchar(10) |
班次号 |
主键 |
Route_Num |
nvarchar(10) |
路线号 |
不允许为空 |
SetOut_Date |
nvarchar(20) |
出发日期 |
不允许为空 |
ReturnTrip_Date |
nvarchar(20) |
回程日期 |
不允许为空 |
Tourism_Standard |
nvarchar(50) |
旅游标准 |
不允许为空 |
Quoted_Price |
Int |
报价 |
不允许为空 |
(3)旅游团表(Tourism_Group)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Group_Num |
nvarchar(10) |
团号 |
主键 |
Tourism_Shift_Num |
nvarchar(10) |
旅游班次号 |
不允许为空 |
Group_Name |
nvarchar(10) |
团名 |
不允许为空 |
Group_People_Num |
int |
人数 |
不允许为空 |
Group_Contact |
nvarchar(20) |
联系人 |
不允许为空 |
Group_Address |
nvarchar(20) |
地址 |
不允许为空 |
Group_Phone |
nvarchar(20) |
电话 |
不允许为空 |
(4)游客表(Tourist)即报名表
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Tourist_Num |
nvarchar(10) |
游客编号 |
主键 |
Group_Num |
nvarchar(10) |
团号 |
不允许为空 |
Tourist_Name |
nvarchar(20) |
姓名 |
不允许为空 |
Tourist_Sex |
nvarchar(4) |
性别 |
不允许为空 |
Tourist_Age |
nvarchar(4) |
年龄 |
不允许为空 |
Tourist_IDCard |
nvarchar(20) |
身份证号 |
不允许为空 |
Tourist_Address |
nvarchar(20) |
住址 |
不允许为空 |
Tourist_Phone |
nvarchar(20) |
电话 |
不允许为空 |
(5)导游表(Guide)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Guide_Num |
nvarchar(10) |
导游编号 |
主键 |
Guide_Name |
nvarchar(20) |
姓名 |
不允许为空 |
Guide_Sex |
nvarchar(4) |
性别 |
不允许为空 |
Guide_Age |
nvarchar(4) |
年龄 |
不允许为空 |
Guide_IDCard |
nvarchar(20) |
身份证号 |
不允许为空 |
Guide_Address |
nvarchar(20) |
地址 |
不允许为空 |
Guide_Phone |
nvarchar(20) |
电话 |
不允许为空 |
Guide_Language |
nvarchar(20) |
语种 |
不允许为空 |
Guide_Performance |
nvarchar(20) |
业绩 |
不允许为空 |
(6)交通工具表(Transportation)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Tourism_Shift_Num |
nvarchar(10) |
旅游班次号 |
主键 |
SetOut_Transportation |
nvarchar(10) |
出发工具 |
不允许为空 |
SetOut_Date |
nvarchar(20) |
出发日期 |
不允许为空 |
SetOut_Shift_Num |
nvarchar(10) |
出发班次 |
不允许为空 |
SetOut_Time |
nvarchar(10) |
出发时间 |
不允许为空 |
ReturnTrip_Transportation |
nvarchar(10) |
回程时间 |
不允许为空 |
ReturnTrip_Date |
nvarchar(20) |
回程日期 |
不允许为空 |
ReturnTrip_Shift_Num |
nvarchar(10) |
回程班次 |
不允许为空 |
ReturnTrip_Time |
nvarchar(10) |
回程时间 |
不允许为空 |
(7)宾馆表(Hotel)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Hotel_Num |
nvarchar(10) |
宾馆编号 |
主键 |
Hotel_Name |
nvarchar(20) |
宾馆名 |
不允许为空 |
Hotel_City |
nvarchar(20) |
城市 |
不允许为空 |
Hotel_Star |
int |
星级 |
不允许为空 |
Hotel_Price |
nvarchar(20) |
标准房价 |
不允许为空 |
Hotel_Contact |
nvarchar(20) |
联系人 |
不允许为空 |
Hotel_Post |
nvarchar(10) |
职务 |
不允许为空 |
Hotel_Address |
nvarchar(20) |
地址 |
不允许为空 |
Hotel_Phone |
nvarchar(20) |
电话 |
不允许为空 |
(8)保险(Insurance)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Insurance_Num |
nvarchar(10) |
保险单编号 |
主键 |
Group_Num |
nvarchar(10) |
团号 |
允许为空 |
Insurance_People_Num |
int |
人数 |
不允许为空 |
Insurance_Price |
int |
保险费 |
不允许为空 |
Insurance_Start_Date |
nchar(10) |
投保日期 |
不允许为空 |
(9)陪同(Accompany)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Tourism_Shift_Num |
nvarchar(10) |
旅游班次号 |
主键 |
Guide_Num |
nvarchar(10) |
导游编号 |
主键 |
(10)食宿(Accommodation)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Tourism_Shift_Num |
nvarchar(10) |
旅游班次号 |
主键 |
Hotel_Num |
nvarchar(10) |
宾馆编号 |
主键 |
注:此系统无需登录即可查看旅游信息,只有当点击报名旅游才需填写游客个人信息,而不报名则不获取用户个人信息,因此数据库中为游客和业务管理员单独增加了两张只用来存放账号和密码的表,两张表如下:
(1).游客账户表(Account_Tourist)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Account_Tourist_Username |
nvarchar(50) |
账户名 |
主键 |
Account_Tourist_Password |
nvarchar(20) |
密码 |
不允许为空 |
(2).业务管理员账户表(Account_Business)
字段名称 |
数据类型 |
字段说明 |
字段属性 |
Account_Business_Username |
nvarchar(50) |
账号名 |
主键 |
Account_Business_Password |
nvarchar(20) |
密码 |
不允许为空 |
3.2 概要设计
此系统有三个模块:游客模块,业务管理员模块,超级管理员模块。其中超级管理员可以对数据库中所有数据进行管理,这里主要设计模块为游客模块和业务管理员模块:
4.系统实现
首页:
点击报名:如果没有登录提示游客登录
游客登录界面:
账号注册界面:
登录成功之后填写报名信息:
业务管理员模块:
对报名信息进行增删查改,并且可以将所有报名信息导出到Excel表中:
系统下载链接:https://download.csdn.net/download/xch_yang/9591440
更多技术干货,欢迎关注我的公众号:ChaoYoung