完整word版民航订票管理系统.docx

上传人:b****6 文档编号:3883029 上传时间:2022-11-26 格式:DOCX 页数:41 大小:767.08KB
下载 相关 举报
完整word版民航订票管理系统.docx_第1页
第1页 / 共41页
完整word版民航订票管理系统.docx_第2页
第2页 / 共41页
完整word版民航订票管理系统.docx_第3页
第3页 / 共41页
完整word版民航订票管理系统.docx_第4页
第4页 / 共41页
完整word版民航订票管理系统.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

完整word版民航订票管理系统.docx

《完整word版民航订票管理系统.docx》由会员分享,可在线阅读,更多相关《完整word版民航订票管理系统.docx(41页珍藏版)》请在冰豆网上搜索。

完整word版民航订票管理系统.docx

完整word版民航订票管理系统

《软件工程实习》

说明书

题目:

民航订票管理系统

小组成员姓名

专业班级

学号

系别:

计算机科学与工程

指导教师:

  

年月日

 

软件工程实习成绩评定表

小组评分标准

评分项目

分值

实际得分

需求分析

15

数据库设计

10

系统设计

15

项目管理

5

代码质量

10

项目测试

10

用户安装及使用手册

10

项目成果提交

25

小组总成绩

100

个人评分标准

小组成员姓名

个人完成的具体任务及其完成情况(两人共同承担任务,写清楚各自完成的比例)

个人实际得分

个人综合成绩

个人综合成绩=小组总成绩*30%+个人实际得分*70%

1.项目管理…………………………………………………………2

2.需求分析…………………………………………………………3

3.数据库设计………………………………………………………5

4.概要设计…………………………………………………………9

5.详细设计…………………………………………………………13

6.项目测试…………………………………………………………29

7.安装手册…………………………………………………………32

8.使用手册…………………………………………………………34

9.总结………………………………………………………………35

参考文献……………………………………………………………36

 

1.项目管理

该部分文档编写负责人

该部分文档复核人

最终版本

1。

1甘特图

1.1。

1项目名称及起止时间

项目名称及起止时间由图1—1给出.

图1-1甘特图

1。

1.2项目甘特图

项目甘特图如图1-2所示

图1—2项目甘特图

2。

需求分析

该部分文档编写负责人

该部分文档复核人

最终版本

2.1系统要求

实现一个民航订票管理系统,主要分为机场、航空公司和乘客三个部分,其中

1、航空公司的管理包括:

􀁺机型的管理

􀁺航线的制定、变更和取消,如航线的起止地点,距离里程

􀁺向航线上增加,改派或撤销飞机

􀁺向机场提供航线和飞机信息

􀁺审核机场的航班计划

2、机场航班和订票管理包括:

􀁺制定、修改和撤销航班时刻

􀁺制定、修改和撤销机票的价格(必需与航班时刻保持一致性)

􀁺管理并确认乘客的订票记录(有座位)和价格

3、乘客航班查询和订票管理包括:

􀁺乘客可以查询航班、航线和飞机资料

􀁺乘客可以预定机票(提供必要的个人信息),可以根据用户的飞行里程对用户进行折扣,并可以查询机场的确认标志.

乘客可以查询自己的飞行记录和里程累计

2。

1。

1用例图

管理员—系统用例图乘客—系统用例图如图2-1与图2—2所示:

图2—1

图2-2

 

3。

数据库设计

该部分文档编写负责人

该部分文档复核人

最终版本

3。

1数据库设计

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

0。

85

3

0。

8

3.1。

2数据视图设计

创建数据视图V_TicketSell

CREATEVIEWdbo。

V_TicketSellAS

SELECTdbo。

SellTicket。

ID,dbo。

SellTicket。

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。

SellTicket。

Sum

FROMdbo.SellINNERJOINdbo.SellTicketONdbo。

SellTicket。

SellID=dbo。

Sell.IDINNERJOINdbo。

LineONdbo。

Line。

ID=dbo。

SellTicket。

LineID

3.1。

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

BEGIN

SETNOCOUNTON;

DECLARE@LineIDint,@Numberint

SELECT@LineID=[LineID],@Number=[Number]FROMinserted

UPDATE[Line]

SET[Seats]=[Seats]-@Number

WHERE[Line].[ID]=@LineID

END

创建触发器T_NewSell

没新增一笔会员订票交易就会在会员的里程数上为会员加上相应的里程

CREATETRIGGER[T_NewSell]ON[dbo].[Sell]

FORINSERT

AS

BEGIN

SETNOCOUNTON;

DECLARE@CustomerIDint,@Sumsmallmoney

SELECT@CustomerID=[CustomerID],@Sum=[Sum]FROMinserted

IF@CustomerIDISNOTNULL

BEGIN

UPDATE[Customer]

SET[Score]=[Score]+@Sum

WHERE[Customer]。

[ID]=@CustomerID

END

END

创建触发器T_UpdateScore

在更新会员记录是发生在score字段发生变化时执行当公里数达到1000以上设置会员级别为3级达到500以上设置会员级别为2级否则为1级

CREATETRIGGER[T_UpdateScore]ON[dbo]。

[Customer]

FORUPDATE

AS

BEGIN

SETNOCOUNTON;

IFUPDATE(Score)

BEGIN

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

END

END

 

4概要设计

该部分文档编写负责人

该部分文档复核人

最终版本

4.1用户界面

4.1.1登陆界面

登陆界面如图4—1所示,主要实现登录功能。

图4-1登陆界面

4。

1。

2注册界面

注册界面如图4—2所示,主要实现注册功能.

图4—2注册界面

4。

1.3主界面

主界面如图4-3所示,是系统的主界面,作为其他界面的向导使用。

图4-3主界面

4.1。

4航线管理界面

航线管理界面如图4—4所示,可进行航线的查询和修改。

图4—4航线管理界面

4.1.5会员管理界面

会员管理界面如图4-5所示主要实现会员信息的查询和修改

图4-5会员管理界面

4。

1.6订票界面

订票界面如图4-6所示主要实现订票和会员订票的打折功能

图4—6订票界面

 

5.详细设计

该部分文档编写负责人

该部分文档复核人

最终版本

5.1系统界面的代码实现

5。

1。

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)

{

MessageBox。

Show("登录成功”);

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。

Close();

}

5.1.2注册界面的代码实现

namespacePlaneTicket

publicpartialclassNewC:

Form

{

protectedSqlConnectionconn;

protectedSqlCommandcmd;

publicNewC()

InitializeComponent();

this。

Load+=newEventHandler(NewC_Load);

privatevoidNewC_Load(objectsender,EventArgse)

try

{

conn=newSqlConnection(ConfigurationManager.ConnectionStrings["PlaneTicket。

Properties。

Settings。

PlaneTicketConnectionString”]。

ConnectionString);

cmd=newSqlCommand();

cmd.Connection=conn;

conn.Open();

}

catch(Exceptionexp)

{

MessageBox.Show("无法建立数据连接:

”+exp.Message);

this。

Close();

}

privatevoidbtnNew_Click(objectsender,EventArgse)

if(tbID。

Text=="”)

{

MessageBox。

Show(”用户名不能为空”,”提示”,MessageBoxButtons。

OK,MessageBoxIcon。

Warning);

tbID。

Focus();

return;

if(tbName。

Text=="”)

{

MessageBox.Show(”姓名不能为空","提示”,MessageBoxButtons.OK,MessageBoxIcon。

Warning);

tbName。

Focus();

return;

if(tbPass。

Text=="”)

MessageBox.Show(”密码不能为空",”提示”,MessageBoxButtons。

OK,MessageBoxIcon.Warning);

tbPass。

Focus();

return;

if(MessageBox.Show(”确认增加新会员吗?

”,”提示",MessageBoxButtons。

YesNo,MessageBoxIcon.Question)==DialogResult。

No)

return;

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)

sb1。

Append("1");

else

sb1.Append("0");

sb1。

Append(”,'");

sb1.Append(tbAddress.Text);

sb1.Append(”’,’");

sb1。

Append(tbEmail。

Text);

sb1.Append("’,”);

sb1.Append(0);

sb1。

Append(”,");

sb1。

Append(tbPass.Text);

sb1.Append(”)");

cmd。

CommandText=sb1。

ToString();

try

if(cmd。

ExecuteNonQuery()>0)

{

MessageBox.Show(”增加成功!

",”提示”,MessageBoxButtons.OK,MessageBoxIcon。

Information);

this。

Close();

}

else

{

MessageBox.Show("未增加任何记录","提示",MessageBoxButtons。

OK,MessageBoxIcon。

Asterisk);

}

catch(Exceptionexp)

MessageBox。

Show("数据访问错误:

”+exp。

Message);

}

}

5。

1.3主界面的代码实现

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)

{

MessageBox.Show("登录成功");

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.Close();

}

5.1。

4航线管理界面代码实现

namespacePlaneTicket

publicpartialclassLineForm:

Form

{

protectedSqlConnectionconn;

protectedSqlCommandcmd;

protectedPlaneTicketDataSetTableAdapters.LineTableAdapteradapter;

publicLineForm()

InitializeComponent();

}

privatevoidLineForm_Load(objectsender,EventArgse)

{

try

{

conn=newSqlConnection(ConfigurationManager。

ConnectionStrings["PlaneTicket.Properties。

Settings。

PlaneTicketConnectionString"].ConnectionString);

conn.Open();

this.InitData();

adapter=newPlaneTicketDataSetTableAdapters。

LineTableAdapter();

adapter。

Fill(planeTicketDataSet1.Line);

dgvLine。

DataSource=planeTicketDataSet1。

Line.DefaultView;

}

catch(Exceptionexp)

MessageBox。

Show("无法建立数据连接:

”+exp。

Message);

this.Close();

finally

{

if(conn!

=null&&conn.State!

=ConnectionState。

Closed)

conn。

Close();

protectedvoidInitData()

{

cmd=newSqlCommand("SELECTDISTINCT[Press]FROM[Line]ORDERBY[Press]",conn);

SqlDataReaderreader1=cmd。

ExecuteReader();

cmbPress.Items。

Clear()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1