完整word版民航订票管理系统文档格式.docx
- 文档编号:16789260
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:41
- 大小:767.08KB
完整word版民航订票管理系统文档格式.docx
《完整word版民航订票管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《完整word版民航订票管理系统文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
4.概要设计…………………………………………………………9
5.详细设计…………………………………………………………13
6.项目测试…………………………………………………………29
7.安装手册…………………………………………………………32
8.使用手册…………………………………………………………34
9.总结………………………………………………………………35
参考文献……………………………………………………………36
1.项目管理
该部分文档编写负责人
该部分文档复核人
最终版本
1。
1甘特图
1.1。
1项目名称及起止时间
项目名称及起止时间由图1—1给出.
图1-1甘特图
1.2项目甘特图
项目甘特图如图1-2所示
图1—2项目甘特图
2。
2.1系统要求
实现一个民航订票管理系统,主要分为机场、航空公司和乘客三个部分,其中
1、航空公司的管理包括:
机型的管理
航线的制定、变更和取消,如航线的起止地点,距离里程
向航线上增加,改派或撤销飞机
向机场提供航线和飞机信息
审核机场的航班计划
2、机场航班和订票管理包括:
制定、修改和撤销航班时刻
制定、修改和撤销机票的价格(必需与航班时刻保持一致性)
管理并确认乘客的订票记录(有座位)和价格
3、乘客航班查询和订票管理包括:
乘客可以查询航班、航线和飞机资料
乘客可以预定机票(提供必要的个人信息),可以根据用户的飞行里程对用户进行折扣,并可以查询机场的确认标志.
乘客可以查询自己的飞行记录和里程累计
1用例图
管理员—系统用例图乘客—系统用例图如图2-1与图2—2所示:
图2—1
图2-2
3。
1数据库设计
1数据表格设计
Customer:
字段包括主键ID顾客的名字、会员等级、性别、地址、E-mail、累计旅途、密码如图3—1所示
Line:
包括主键ID航线号码、价格、飞机型号、航空公司、出发地及目的地、登机时间和剩余座位数如图3-2所示
Sell:
字段包括主键ID顾客ID价格总计和时间如图3—3所示
SellTicket:
字段包括主键ID、交易ID、航线ID、数量、折扣、以及金额如图3—4所示
Discount:
字段包括主键Levels和折扣Discount如图3—5所示具体数值如表3-1所示
图3—1Customer
图3-2Line
图3—3Sell
图3-4SellTicket
图3-5Discount
表3-1格Discount
Levels
Discount
1
0。
9
2
85
3
8
3.1。
2数据视图设计
创建数据视图V_TicketSell
CREATEVIEWdbo。
V_TicketSellAS
SELECTdbo。
SellTicket。
ID,dbo。
SellID,dbo.Sell。
CustomerID,dbo。
Sell。
Time,dbo。
Line.LineNum,dbo。
Line。
Press,dbo.Line。
FromTo,dbo。
Line.Price,dbo.SellTicket.Number,dbo.SellTicket。
Discount,dbo。
Sum
FROMdbo.SellINNERJOINdbo.SellTicketONdbo。
SellID=dbo。
Sell.IDINNERJOINdbo。
LineONdbo。
ID=dbo。
LineID
3存储过程和触发器
创建存储过程P_GetSellDetail
用于获取指定交易号的交易明细
CREATEPROCEDURE[dbo].[P_GetSellDetail](@SellIDint)
AS
BEGIN
SETNOCOUNTON;
SELECT[SellTicket].[LineID],[Line].[LineNum],[Line].[Press],[Line].[FromTo],[Line].[Price],[SellTicket]。
[Number],[SellTicket]。
[Discount],[SellTicket]。
[Sum]
FROM[SellTicket]INNERJOIN[Line]
ON[Line]。
[ID]=[SellTicket]。
[LineID]
AND[SellTicket]。
[SellID]=@SellID
END
创建触发器T_NewSellTicket
每当订出一张机票对应的航线的座位数就会减
CREATETRIGGER[T_NewSellTicket]ON[dbo].[SellTicket]
FORINSERT
AS
SETNOCOUNTON;
DECLARE@LineIDint,@Numberint
SELECT@LineID=[LineID],@Number=[Number]FROMinserted
UPDATE[Line]
SET[Seats]=[Seats]-@Number
WHERE[Line].[ID]=@LineID
创建触发器T_NewSell
没新增一笔会员订票交易就会在会员的里程数上为会员加上相应的里程
CREATETRIGGER[T_NewSell]ON[dbo].[Sell]
DECLARE@CustomerIDint,@Sumsmallmoney
SELECT@CustomerID=[CustomerID],@Sum=[Sum]FROMinserted
IF@CustomerIDISNOTNULL
BEGIN
UPDATE[Customer]
SET[Score]=[Score]+@Sum
WHERE[Customer]。
[ID]=@CustomerID
END
创建触发器T_UpdateScore
在更新会员记录是发生在score字段发生变化时执行当公里数达到1000以上设置会员级别为3级达到500以上设置会员级别为2级否则为1级
CREATETRIGGER[T_UpdateScore]ON[dbo]。
[Customer]
FORUPDATE
IFUPDATE(Score)
DECLARE@CustomerIDint,@Scoreint,@Levelssmallint
SELECT@CustomerID=[ID],@Score=[Score]FROMinserted
IF@Score>
=1000SET@Levels=3
ELSEIF@Score〉=500SET@Levels=2
ELSESET@Levels=1
UPDATE[Customer]
SET[Levels]=@Levels
WHERE[Customer].[ID]=@CustomerID
4概要设计
4.1用户界面
4.1.1登陆界面
登陆界面如图4—1所示,主要实现登录功能。
图4-1登陆界面
4。
2注册界面
注册界面如图4—2所示,主要实现注册功能.
图4—2注册界面
1.3主界面
主界面如图4-3所示,是系统的主界面,作为其他界面的向导使用。
图4-3主界面
4.1。
4航线管理界面
航线管理界面如图4—4所示,可进行航线的查询和修改。
图4—4航线管理界面
4.1.5会员管理界面
会员管理界面如图4-5所示主要实现会员信息的查询和修改
图4-5会员管理界面
1.6订票界面
订票界面如图4-6所示主要实现订票和会员订票的打折功能
图4—6订票界面
5.详细设计
5.1系统界面的代码实现
5。
1登陆界面的代码实现
namespacePlaneTicket
{
publicpartialclassMain:
Form
{
publicMain()
InitializeComponent();
}
privatevoidbtn1_Click(objectsender,EventArgse)
{
if(tb1.Text==””||tb2。
Text=="
”)
MessageBox。
Show("
请输入用户名密码再登录"
);
return;
stringSQL="
SELECT[Name]FROM[Customer]WHERE[ID]="
;
SQL+=tb1。
Text+”AND[PassWord]='
"
+tb2。
Text.Trim()+"
'
SqlConnectionconn;
SqlCommandcmd;
conn=newSqlConnection(ConfigurationManager.ConnectionStrings["
PlaneTicket。
Properties.Settings。
PlaneTicketConnectionString"
].ConnectionString);
try
conn.Open();
cmd=newSqlCommand(SQL,conn);
SqlDataReaderreader1=cmd。
ExecuteReader();
if(reader1.HasRows)
登录成功”);
Form1frm1=newForm1();
frm1。
ShowDialog();
}
catch(Exceptionexp)
MessageBox.Show("
无法建立数据连接:
”+exp.Message);
this.Close();
finally
if(conn!
=null&
&
conn.State!
=ConnectionState。
Closed)
conn。
Close();
privatevoidbtn2_Click(objectsender,EventArgse)
NewCfrm1=newNewC();
frm1.ShowDialog();
privatevoidbt3_Click(objectsender,EventArgse)
this。
}
}
5.1.2注册界面的代码实现
publicpartialclassNewC:
protectedSqlConnectionconn;
protectedSqlCommandcmd;
publicNewC()
InitializeComponent();
Load+=newEventHandler(NewC_Load);
privatevoidNewC_Load(objectsender,EventArgse)
try
conn=newSqlConnection(ConfigurationManager.ConnectionStrings["
Properties。
Settings。
PlaneTicketConnectionString”]。
ConnectionString);
cmd=newSqlCommand();
cmd.Connection=conn;
”+exp.Message);
Close();
privatevoidbtnNew_Click(objectsender,EventArgse)
if(tbID。
Show(”用户名不能为空”,”提示”,MessageBoxButtons。
OK,MessageBoxIcon。
Warning);
tbID。
Focus();
if(tbName。
MessageBox.Show(”姓名不能为空"
"
提示”,MessageBoxButtons.OK,MessageBoxIcon。
Warning);
tbName。
Focus();
return;
if(tbPass。
MessageBox.Show(”密码不能为空"
,”提示”,MessageBoxButtons。
OK,MessageBoxIcon.Warning);
tbPass。
if(MessageBox.Show(”确认增加新会员吗?
”,”提示"
,MessageBoxButtons。
YesNo,MessageBoxIcon.Question)==DialogResult。
No)
StringBuildersb1=newStringBuilder(”INSERTINTO[Customer]([ID],[Name],[Levels],[Gender],[Address],[Email],[Score],[PassWord])VALUES(”);
sb1.Append(tbID.Text);
sb1.Append(”,’”);
sb1.Append(tbName。
Text);
sb1。
Append("
’,"
);
sb1.Append
(1);
sb1.Append(”,"
if(rabMan.Checked)
1"
else
sb1.Append("
0"
Append(”,'
sb1.Append(tbAddress.Text);
sb1.Append(”’,’"
Append(tbEmail。
Text);
’,”);
sb1.Append(0);
Append(”,"
Append(tbPass.Text);
sb1.Append(”)"
cmd。
CommandText=sb1。
ToString();
if(cmd。
ExecuteNonQuery()>
0)
MessageBox.Show(”增加成功!
,”提示”,MessageBoxButtons.OK,MessageBoxIcon。
Information);
未增加任何记录"
,"
提示"
MessageBoxButtons。
Asterisk);
数据访问错误:
”+exp。
Message);
1.3主界面的代码实现
{
publicpartialclassMain:
if(tb1。
||tb2.Text==””)
SELECT[Name]FROM[Customer]WHERE[ID]=”;
SQL+=tb1.Text+”AND[PassWord]='
+tb2.Text.Trim()+”’”;
SqlCommandcmd;
conn=newSqlConnection(ConfigurationManager。
ConnectionStrings[”PlaneTicket。
PlaneTicketConnectionString”].ConnectionString);
conn.Open();
cmd=newSqlCommand(SQL,conn);
登录成功"
frm1.ShowDialog();
MessageBox.Show(”无法建立数据连接:
Message);
if(conn!
&conn.State!
=ConnectionState.Closed)
privatevoidbtn2_Click(objectsender,EventArgse)
NewCfrm1=newNewC();
ShowDialog();
this.Close();
5.1。
4航线管理界面代码实现
publicpartialclassLineForm:
protectedSqlCommandcmd;
protectedPlaneTicketDataSetTableAdapters.LineTableAdapteradapter;
publicLineForm()
privatevoidLineForm_Load(objectsender,EventArgse)
ConnectionStrings["
PlaneTicket.Properties。
].ConnectionString);
this.InitData();
adapter=newPlaneTicketDataSetTableAdapters。
LineTableAdapter();
adapter。
Fill(planeTicketDataSet1.Line);
dgvLine。
DataSource=planeTicketDataSet1。
Line.DefaultView;
=null&&
conn.State!
protectedvoidInitData()
cmd=newSqlCommand("
SELECTDISTINCT[Press]FROM[Line]ORDERBY[Press]"
,conn);
ExecuteReader();
cmbPress.Items。
Clear()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 民航 订票 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)