《旅游管理系统(共40页).doc》由会员分享,可在线阅读,更多相关《旅游管理系统(共40页).doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库课程设计说 明 书设 计 题 目:某旅行社管理系统2012 年 6月 21 日1、需求分析一、现行系统概述该旅行社目前主要是手工操作,没有任何计算机支持的旅行 社信息管理系统。通过对旅行社的调查,访谈,我们知道了现行手工系统的原始的工作流程如下: (1)客户报名信息流程: 首先,客户填写报名表,交与接待员,接待员对报名表做成 册子,并对其进行管理,然后报名表复制一份给游客,保留游客信息表和游客报名表给有关人员查阅。流程图如(图1): 对工作流程进行细细走访,知道客户填写表之后,接待员进 行审核,核对好后,编订成册,并交一份表给客户保留。对已有 的客户信息和报名表
2、,可对其进行查阅,修改等,可以给相关人员或部门查看,统计。细分后的流程图为(图2): (2)旅游景点信息管理流程: 工作人员由收集到的旅游信息,经审核后编订成册,供相关工作人员及游客查阅。可得到流程图为(图3): (3)旅游线路管理流程: 由相关人员提出旅游线路,填写旅游线路设计表,经过讨 论,审核之后,形成报表,并订成册,供工作人员和游客翻阅。流程图如(图4): (4)旅游团队管理流程: 由相关人员提出要建立的旅游团队,填写团队设计表,由相 关员工讨论,并经主管审核之后,确定改团队的建立,并编制团队手册。流程图如(图5):(5)员工管理流程: 新来的员工填写员工基本表,经人事管理部门审核后编
3、制成 正式的员工档案表,档案管理员可以对其进行增加、修改,删除。形成的档案表可以给相关部门查看。流程图如(图6): (6)相关旅行社管理流程: 由员工获取旅行社信息,对其审核后做成档案,并保存, 相关认可可以对其进行管理,增加,修改,删除等,并可以做成报表给相关人员查看。流程图如(图7): (7)财务管理流程: 前台服务员或团队负责人递交收款发票或报销发票,由财务管理人员审核并整理成档案,并对财务进行翻阅、统计,并做成报表给相关人员查看、审核。流程图如(图8): 二、系统需求分析 (1)功能分析 通过对旅行社管理流程和业务流程的分析,并对旅行社工作 人员,管理人员进行访谈,了解到旅行社管理系统
4、应具有以下主要功能: 1 )根据客户的报名,录入客户的报名信息并对其进行管理。 2 )根据收集到的旅游景点,录入并管理旅游景点信息。 3 )由旅游景点信息,设计并管理旅游线路。 4 )对旅游团队的设计进行录入和管理。 5 )对员工的信息进行录入和管理。 6 )录入和管理其他相关的旅行社信息。 7 )对旅行社的财务进行管理。 8 )查询和打印客户信息、团队信息、员工信息、财务信息等。 不同的用户登录系统,其权限不同。根据系统所需的功能,并对计算机所处理的数据进行分析, 系统可以分为三个大的功能模块:系统用户管理、旅行社信息管理和系统数据维护。系统用户管理 主要是对使用系统的用户进行管理,包括系统
5、登录、退出、 增加用户、删除用户、用户的权限分配和修改以及用户的操作记录等。 旅行社信息管理 旅行社信息管理主要分为7个模块:客户报名管理、旅游景点管理、旅游线路管理、旅游团队管理、员工管理、相关旅行社管理、财务管理。各模块的具体功能如下: 客户报名管理:包括游客登记,游客报名的录入,修改,查询等。 旅游景点管理:包括对旅游景点的录入,修改,查询等。 旅游线路管理:对设计好旅游线路的录入、修改,查询等。 旅游团队管理:包括团队的建立,修改,查询,统计等。 员工管理:包括查询员工信息、更新员工信息、添加、删除员工等。 相关旅行社管理:对有合作关系或将有合作关系的旅行社信息的录入,修改、查询等。财
6、务管理:包括财务信息的录入、修改,查询等。 系统数据管理 主要是数据的备份与恢复。 (2)对性能的规定 1 )精度 该软件的输入、输出数据大多都是字符类型的,用到整型或 浮点型的数据都很少,因此对数据的精度要求不是很高,要求较高的财务数据精确到小数点后四位也足够了。 2 )时间特性需求 要求该系统更新处理时间快,在每一次业务完成后,要立即 更新数据库中的数据,要时刻保持数据库中的数据正确,而且是最新的数据。响应时间要较快。 3 )灵活性 要求在业务流程或方式改变后,只需改变该系统的部分或者 增加一些模块就可以实现。系统要有一定的功能扩展性。业务扩 大后,只需在该系统的基础上进行改进即可,而不至
7、于重新开发新的系统。 4 )故障处理要求 在运行过程中如果出现数据库连接错误,或其他运行错误, 应给出错误可能的原因,以及可能使用的解决途径。如果在运行 过程中,突然停电或其它硬件发生故障,而使系统不正常停止, 在故障恢复后,数据库中的数据应能恢复到故障发生前的状态。 如果用户执行了能破坏系统的行为,系统应能给出提示,并拒绝执行。 5 )其它专门要求 系统应注意数据的安全性与保密性,尽量做到保护数据的安 全,坚决不执行无操作权限的操作;系统应比较容易维护,让水 平不高的用户也能应付日常的简单维护工作;系统应做成符合大 多数人的使用习惯,做成易于学会使用;对每个用户的操作行为 进行记录。系统开发
8、完成后,给出系统的详细说明书,以便未参 与开发的人员在对该系统进行维护时,能轻而易举。系统必须有使用说明书,以便用户能正确合理地使用之。 三、数据模型设计 按系统功能设计该问题的局部概念数据模型,然后综合局部概念 数据模型得到全局概念数据模型。实体及属性、实体之间的联系见E-R图,图中画出了实体间的联系(图9):一个业务员负责一个团队,一个团队选定一条旅游线路,一 条线路可以组多个团队。一个游客只能选一个团队,一个团队可以有多个游客报名。 四、子系统的划分 本系统的划分情况如下: 五、新系统功能模型设计 (1) 数据流图 1)旅行社信息管理流程图 通过对以上的旅行社信息管理流程图的抽象处理,得
9、到如下旅行社信息管理数据流图的0层图(图13): 我们进一层分析,对上图进行细化。对上述数据流图细化后,得到如下旅行社信息管理系统数据流图的1层图(图14): 对旅行社信息管理细分,将其细分成客户报名管理,旅游景 点管理,旅游线路管理,旅游团队管理,员工管理,相关旅行社管理,财务管7个模块,得到如下旅行社信息管理系统数据流图的2层图(图15): 未实现信息化管理前,对游客填报的信息有“审核”一项处 理过程,由于硬件开支和开发开支方面的原因,对审核数据一项 处理仍用人工方式进行,所以下面系统省去审核的流程。客户报名信息管理包括团队查询,线路查询,报名登记,并对客户信息和报名信息的处理,下面是对2
10、.1的细分(图16): 由于处理客户信息和处理客户报名信息还可以分成查询,增加,修改,和删除功能,所以,下面对其细分(图17): 将旅游景点信息管理(2.2)细分,它主要拥有增加,修改,删除,查询等功能。其数据流图如下(图18): 将旅游线路信息管理(2.3)细分,它主要拥有增加,修改,删除,查询打印等功能。其数据流图如下(图19): 细分旅游团队信息管理(2.4),它主要有增加,更新,查询,删除等功能。其数据流图如下(图20): 员工管理包括查询员工信息(按员工编号、员工姓名或所在部门查询等)和更新员工信息(添加员工信息、删除员工信息和修改员工信息等)。将员工管理(2.5)细化得到如下数据流
11、图(图21): 细分相关旅行社信息管理(2.6),它主要有增加,更新,查询,删除等功能。其数据流图如下(图22): 财务管理(2.7)主要有增加,修改,查询,统计等功能。细分后,其数据流图如下(图23): 将上述数据流图合并得到总的旅行社信息管理数据流图(图24): 2 )系统帐户管理数据流图 对系统帐户管理的功能进行分析,得到如下系统帐户管理数据流图(图25): 用户登录通过验证程序后,就可以执行该用户所具有的权限(如修改密码、增加和删除用户、修改、授予权限等)。 3 )系统数据管理数据流图 系统数据管理包括备份数据和恢复数据,这里的数据包括与宾馆信息有关的所有数据,其数据流图如下(图26)
12、:图26 系统数据管理数据流图(2)数据字典 由于涉及的数据比较多,现在只建立了一些主要的数据字典: 2、概念结构设计多名用户只可以报名参加一个团队,其局部E-R 图如下所示: 图一一个旅游团队,可以有多名导游,对应一名业务员,一名业务员只可以负责一个团队。其E-R 图如下所示:一个旅行社可以拥有多个旅游团队,一个团队只对应一个旅行社。一个团队对应一条线,一条线路可以被多个团队选择。一条线路可以有多个旅游景点。E-R图设计:总E-R 图设计 3、逻辑设计顾客数据库:注册表:(姓名,密码)。姓名char10可为空密码char10可为空旅游景点信息库:景点表:(景区编号,景点编号,景区地点,景点名
13、称)。景区编号(主键)char10不为空景点编号(主键)char10不为空景区地点char10可为空景点名称char10可为空旅行社表:(旅行社编号,景区编号,旅行社名称,旅行社联系人,电话)。旅行社编号(主键)char10不为空景区编号char10可为空旅行社名称char10可为空旅行社联系人char10可为空电话char10可为空线路信息资料库:线路表:(线路名,等级,始发点,目的点,往返交通,行程天数,旅游报价)。线路名(主键)char10不为空始发点char10可为空目地点char10可为空往返交通char10可为空行程天数char10可为空旅游报价char10可为空团队信息资料库:团
14、队信息表:(团队编号,团队名称,团队状态,最大报名人数,业务员,线路名,出团时间,回团时间)。团队编号(主键)char10不为空团队名称char10可为空团队状态char10可为空最大报名人数char10可为空业务员char10可为空线路名char10可为空出团时间char10可为空回团时间char10可为空财务管理信息数据库:收入表:(收入编号,日期,项目,经办人)。收入编号(主键)char10不为空日期char10可为空项目char10可为空经办人char10可为空支出表:(支出编号,日期,项目,经办人)。支出编号(主键)char10不为空日期char10可为空项目char10可为空经办人
15、char10可为空团队报账表:(报账编号,团队编号,日期,金额,科目,报账人,经办人)。报账编号(主键)char10不为空团队编号(主键)char10不为空日期char10可为空金额char10可为空科目char10可为空报账人char10可为空经办人char10可为空4、数据库实施与运行5、界面设计与后台代码线路界面核心代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using
16、 System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication旅行社 public partial class roadinformationForm : Form string strcon; SqlConnection sqlcon; public roadinformationForm() InitializeComponent(); private void DBConnect() strcon = data source = (local);in
17、itial catalog = 线路信息资料库;integrated security = true;uid = 张天;pwd =; sqlcon = new SqlConnection(strcon); private void Commondataview() try DBConnect(); SqlDataAdapter da = new SqlDataAdapter(select * from 线路表, sqlcon); DataSet ds = new DataSet(); da.Fill(ds, tablename); dataGridView1.DataSource = ds.T
18、ables0; catch (SystemException) MessageBox.Show(错误, 错误提示, MessageBoxButtons.OK, MessageBoxIcon.Warning); finally if (sqlcon.State = ConnectionState.Open) sqlcon.Close(); sqlcon.Dispose(); private void roadinformationForm_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“线路信息资料库DataSet1.线路表”中。您可以根
19、据需要移动或移除它。 / this.线路表TableAdapter1.Fill(this.线路信息资料库DataSet1.线路表); / TODO: 这行代码将数据加载到表“线路信息资料库DataSet.线路表”中。您可以根据需要移动或移除它。 / this.线路表TableAdapter.Fill(this.线路信息资料库DataSet.线路表); / TODO: 这行代码将数据加载到表“顾客数据库DataSet1.顾客信息表”中。您可以根据需要移动或移除它。 / this.顾客信息表TableAdapter.Fill(this.顾客数据库DataSet1.顾客信息表); Commondat
20、aview(); private void addbutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(insert into 线路表(线路名,等级,始发点,目的点,往返交通,旅游报价)values( + roadnametextBox.Text + , + classtextBox.Text + , + starttextBox.Text + , + destainationtextBox.Text + , + traffictextBox.Te
21、xt + , + pricetextBox.Text + ), sqlcon); cmd.ExecuteNonQuery(); sqlcon.Close(); Commondataview(); private void deletebutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(delete from 线路表 where 线路名 = + roadnametextBox.Text + , sqlcon); cmd.ExecuteNonQuer
22、y(); sqlcon.Close(); Commondataview(); private void updatebutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(update 线路表 set 旅游报价 = + pricetextBox.Text + where 线路名 = + roadnametextBox.Text + , sqlcon); cmd.ExecuteNonQuery(); sqlcon.Close(); Commondata
23、view(); private void querybutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlDataAdapter da= new SqlDataAdapter (select * from 线路表 where 线路名 = + roadnametextBox.Text + , sqlcon); DataSet ds = new DataSet(); da.Fill(ds, tablename); dataGridView1.DataSource = ds.Tables0; sqlcon.Cl
24、ose(); 员工用户界面:核心代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication旅行社 public partial class employeeForm : Form
25、string strcon; SqlConnection sqlcon; public employeeForm() InitializeComponent(); private void DBConnect() strcon = data source = (local);initial catalog = 员工信息数据库;integrated security = true; sqlcon = new SqlConnection(strcon); private void Commondataview() try DBConnect(); SqlDataAdapter da = new S
26、qlDataAdapter(select * from 员工信息表, sqlcon); DataSet ds = new DataSet(); da.Fill(ds, tablename); dataGridView1.DataSource = ds.Tables0; catch (SystemException) MessageBox.Show(数据库连接失败, ERROR, MessageBoxButtons.OK, MessageBoxIcon.Warning); finally if (sqlcon.State = ConnectionState.Open) sqlcon.Close(
27、); sqlcon.Dispose(); private void employeeForm_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“员工信息数据库DataSet.员工信息表”中。您可以根据需要移动或移除它。 /this.员工信息表TableAdapter.Fill(this.员工信息数据库DataSet.员工信息表); Commondataview(); private void addbutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); Sq
28、lCommand cmd = new SqlCommand(insert into 员工信息表 (员工编号,员工名称,性别,年龄,所属部门,职称)values( + employeeidtextBox.Text + , + employeenametextBox.Text + , + sextextBox.Text + , + agetextBox.Text + , + itemtextBox.Text + , + professonalposttextBox.Text + ), sqlcon); cmd.ExecuteNonQuery(); sqlcon.Close(); Commondat
29、aview(); private void deletebutton_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(delete from 员工信息表 where 员工编号 = + employeeidtextBox.Text + , sqlcon); cmd.ExecuteNonQuery(); sqlcon.Close(); Commondataview(); private void updatebutton_Click(object sender
30、, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(update 员工信息表 set 职称 = + professonalposttextBox.Text + where 员工编号 = + employeeidtextBox.Text + , sqlcon); cmd.ExecuteNonQuery(); sqlcon.Close(); Commondataview(); private void querybutton_Click(object sender, EventArgs e) DBCo
31、nnect(); sqlcon.Open(); SqlDataAdapter da = new SqlDataAdapter(select * from 员工信息表 where 员工编号 = + employeeidtextBox.Text + , sqlcon); DataSet ds = new DataSet(); da.Fill(ds, tablename ); dataGridView1.DataSource = ds.Tables0; sqlcon.Close(); 系统管理界面核心代码using System;using System.Collections.Generic;us
32、ing System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication旅行社 public partial class informationForm : Form string strcon; SqlConnection sqlcon; public informationForm() I
33、nitializeComponent(); private void DBConnect() strcon = Data Source=(local);Initial Catalog=顾客数据库;integrated security=true;uid = 陈毅;pwd =; sqlcon = new SqlConnection(strcon); private void Comomdataview() try DBConnect(); SqlDataAdapter da = new SqlDataAdapter(Select 顾客编号,顾客姓名,性别,年龄,单位,参加团队编号,旅游线路 fr
34、om 顾客信息表 , sqlcon); DataSet ds = new DataSet(); da.Fill(ds, tablename); dataGridView1.DataSource = ds.Tables0; catch (SystemException) MessageBox.Show(错误, 错误提示, MessageBoxButtons.OK, MessageBoxIcon.Warning); finally if (sqlcon.State = ConnectionState.Open) sqlcon.Close(); sqlcon.Dispose(); private v
35、oid informationForm_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“顾客数据库DataSet.顾客信息表”中。您可以根据需要移动或移除它。 /this.顾客信息表TableAdapter.Fill(this.顾客数据库DataSet.顾客信息表); Comomdataview(); private void 增加ToolStripMenuItem_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new Sql
36、Command(insert into 顾客信息表(顾客编号,顾客姓名,性别,年龄,单位,参加团队编号,旅游线路)values( + idtextBox.Text + , + nametextBox.Text + , + sextextBox.Text + , + agetextBox.Text + , + companytextBox.Text + , + teamidtextBox.Text + , + roadtextBox.Text + ),sqlcon ); cmd.ExecuteNonQuery(); sqlcon.Close(); Comomdataview(); private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) DBConnect(); sqlcon.Open(); SqlCommand cmd = new SqlCommand(delete fro