民航订票管理系统.docx

上传人:b****5 文档编号:5117750 上传时间:2022-12-13 格式:DOCX 页数:36 大小:134.39KB
下载 相关 举报
民航订票管理系统.docx_第1页
第1页 / 共36页
民航订票管理系统.docx_第2页
第2页 / 共36页
民航订票管理系统.docx_第3页
第3页 / 共36页
民航订票管理系统.docx_第4页
第4页 / 共36页
民航订票管理系统.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

民航订票管理系统.docx

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

民航订票管理系统.docx

民航订票管理系统

《软件工程实习》

说明

题目:

民航订票管理系统

 

小组成员姓名

专业班级

学号

别:

计算机科学与工程

指导教师:

年月曰

软件工程实习成绩评定表

评分项目需求分析数据库设计系统设计项目管理代码质量

小组评分标准

实际得分

分值

10

15

10

10

10

25

项目测试

个人评分标准

小组

成员

姓名

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

个人实际得分

个人综合成绩

100

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

用户安装及使用手册项目成果提交小组总成绩

1.项目管理

2.需求分析

3.数据库设计

4.概要设计

5.详细设计

13

6.项目测试

29

7.安装手册

32

8.使用手册

34

9.总结

35

参考文献

36

 

1.项目管理

该部分文档编写负责人

该部分文档复核人

最终版本

1.1甘特图

1.1.1项目名称及起止时间

项目名称及起止时间由图

1-1给出。

0任务名称

工期

开始时间

芫咸时间

前置任雰

1

进行需求片析

2工性日

2010年8月2汨

2010年8月2汨

E

参老资料

厂工作日

却10年8月2汨

RID年8月烈日

3

:

墅数据库

1工作日

加10年&月£汨

201。

年S月25日

L,2

4

编宜mailt代码

1亍作日

ZOiCi年8^260

2010^3^250

3

5

编写CgtDinerf

3工作日

2CI1CI年8^260

2010年8月羽日

3

G

编写LingFon*

3工作日

药10年8^260

2010^8^2303

7

编宜]hM代码

3工住日

2010年8^280

aoiQ年£月如日3

…才

编^SellT

3工作日

如10年8月茨日

2010年3月如日3

■9'

1

编写Form1代码

1工柞日

2010^8^310

2010^3^315%瓦6」尼3

1Q

编写文档

1工住日

2010年8^310

药1仃年E月31日

11

1

握交非业

1工作日

EDici年g月1日

201。

年g月1日

L,乙3,4,5,S,兀

图1-1

甘特图

1.1.2项目甘特图

项目甘特图如图

图1-2项目甘特图

2.需求分析

该部分文档编写负责人

该部分文档复核人

最终版本

2.1系统要求

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

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

机型的管理

航线的制定、变更和取消,如航线的起止地点,距离里程向航线上增加,改派或撤销飞机向机场提供航线和飞机信息

审核机场的航班计划

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

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

制定、修改和撤销机票的价格(必需与航班时刻保持一致性)管理并确认乘客的订票记录(有座位)和价格

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

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

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

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

2.1.1用例图

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

管理员

统计查询售票情况

乘客

査询航线的基本信息

图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

如表3-1所示

数量、折扣、以及金额如

和折扣Discount

如图3-5所示具体数值

ID

int

Name

nvarchor(50)

Levels

snodllint

Gender

bit

Address

nvarchar(SO)

Email

nvarchar(50)

Score

lint

Password

int

图3-1Customer

列名

数据类酉

ID

int

LineNum

int

Price

smallmoney

Taper

nvarchar(50)

PrESS

nvarchar(50j

FromTo

nvarcharC50)

Time

smalldatetime

Seats

int

列名

数据类型

图3-2Line

允许空

 

列名

数据类型

允许空

?

ID

int

匚ustomerlD

int

0

Sum

smallmoney

Time

smalldatetime

图3-3Sell

列名

数据类型

允许空

?

ID

int

5ellID

int

LinelD

int

Number

int

Discount

Moat

Sum

smallmone/

0

图3-4SellTicket

列名

数菇类型

允许空

ELevels

int

Discount

float

图3-5Discount

表3-1格Discount

Levels

Discount

1

0.9

2

0.85

3

0.8

3.1.2数据视图设计创建数据视图VTicketsell

CREATEVIEWdbo.VTicketSellAS

SELECTdbo.SellTicket」D,dbo.SellTicket.SellID,dbo.Sell.CustomerlD,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.ID

INNERJOINdbo.LineONdbo.Line.lD=dbo.SellTicket.LinelD

3.1.3存储过程和触发器

创建存储过程PGetSellDetail

用于获取指定交易号的交易明细

CREATEPROCEDURE[dbo]

ASBEGIN

SETNOCOUNTON;

SELECT[SellTicket][Line].[Press],[Line][SellTicket].[Number]

[SellTicket].[Sum]

FROM[SellTicket]

ON[Line].[ID]AND[SellTicket]END

.[P_GetSellDetail]

.[LineID].[FromTo],,[SellTicket]

[Line][Line]

INNERJOIN=[SellTicket].[SellID]

(@SellIDint)

.[LineNum]

.[Price],

.[Discount],

[Line]

.[LineID]=@SellID

创建触发器T_NewSellTicket每当订出一张机票对应的航线的座位数就会减CREATETRIGGER[T_NewSellTicket]ON[dbo].[SellTicket]

FORINSERT

AS

BEGIN

SETNOCOUNTON;

DECLARE@LineIDint,@Numberint

SELECT@LineID=[LineID],@Number=[Number]FROMinsertedUPDATE[Line]

SET[Seats]=[Seats]-@NumberWHERE[Line].[ID]=@LineID

END创建触发器T_NewSell没新增一笔会员订票交易就会在会员的里程数上为会员加上相应的里程CREATETRIGGER[T_NewSell]ON[dbo].[Sell]

FORINSERT

ASBEGIN

int,@Sumsmallmoney

=[CustomerID],@Sum=[Sum]FROM

SETNOCOUNTON;DECLARE@CustomerIDSELECT@CustomerIDinserted

NOTNULL

IF@CustomerIDIS

BEGIN

UPDATE[Customer]

SET[Score]=[Score]+@Sum

WHERE[Customer].[ID]=@CustomerID

ENDEND创建触发器T_UpdateScore

在更新会员记录是发生在score字段发生变化时执行上设置会员级别为3级达到500以上设置会员级别为CREATETRIGGER[T_UpdateScore]ON[dbo]

FORUPDATEASBEGIN

SETNOCOUNTON;

IFUPDATE(Score)

BEGIN

DECLARE@CustomerID

SELECT@CustomerIDinserted

IF@Score>=1000ELSEIF@Score>=ELSESET@LevelsUPDATE[Customer]

当公里数达到1000以

2级否则为

.[Customer]

1级

int,@Scoreint=[ID],@Score

SET@Levels=3500SET@Levels=1

SET[Levels]=@Levels

WHERE[Customer].[ID]=@CustomerIDEND

END

@Levels

=[Score]

smallint

FROM

 

4概要设计

该部分文档编写负责人

该部分文档复核人

最终版本

4.1用户界面

4.1.1登陆界面

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

J盅开]

+ir

V—J二4J

*0•亠c±]^~—r~

用円5||

图4-1登陆界面

4.1.2注册界面

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

佥员疽JB

音员号

©鸟Oi*

图4-2注册界面

4.1.3主界面

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

欢迎使用民航订票系统

会员信息

管理

图4-3主界面

4.1.4航线管理界面

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

列□飙st#目她

]呈剥信I

飞机£i弓

fit空it司

g伽

fi机时间

*1

10]

^|l00OHO

中a啟仝■骚司

dtS-±rS

soio-e-jT

12-«

30

102

200.DODD

中HK空■运司

2Dia-S-2T

12.DD

3D

103

100.mo

中aft空■it司

上海-广州

iOic-e-?

T

L£:

W

50

1M

IDQ.DODO

中S北方

2Dia-e-27

1£.»

ID

LD5

100.DODO

中a北才喷空.

吉木齐

2010-B-ZT

LZ:

m

JO

106

IDQ.DODO

中S中方ffi£..

rSHI-=fii«

2DlQ-a-Z7

t£.DO

30

iDTT

100.HMD

中.

广州-*睡

2010-S-ZT

iZ:

»

30

tffi

2QD.DODO

河iSffi主:

&司

阁1恥幵封

20lQ-a-27

1£:

[U

I保存脚]

图4-4航线管理界面

4.1.5会员管理界面

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

tfeth

EnuL

图4-5会员管理界面

4.1.6订票界面

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

图4-6订票界面

5.详细设计

该部分文档编写负责人

该部分文档复核人

最终版本

5.1系统界面的代码实现

5.1.1登陆界面的代码实现

namespacePlaneTicket

Form

{

publicpartialclassMain:

{

publicMain()

InitializeComponent();

privatevoidbtn1_Click(

objectsender,EventArgse)

if(tb1.Text==""

||tb2.Text==

"")

 

MessageBoxShow(”请输入用户名密码再登录”);

return;

stringSQL="SELECT[Name]FROM[Customer]WHERE[ID]=";SQL+=tb1.Text+"AND[PassWord]='"+tb2.Text.Trim()+"”'

SqlConnectionconn;

SqlCommandcmd;

conn=new

SqlConnection(ConfigurationManager.ConnectionStrings["PlaneTicket.Properties.Se

ttings.PlaneTicketConnectionString"].ConnectionString);

{conn.Open();cmd=

try

newSqlCommanQSQL,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{

publicpartial

{

classNewC:

Form

protected

protected

SqlConnectionSqlCommandcmd;

conn;

publicNewC()

InitializeComponent();

this.Load+=newEventHandler(NewC_Load);

privatevoidNewC_Load(objectsender,EventArgse){

try

{conn=new

SqlConnection(ConfigurationManager.ConnectionStrings["PlaneTicket.Properties.Settings.PlaneTicketConnectionString"].ConnectionString);

cmd=newSqlCommand();cmd.Connection=conn;conn.Open();

catch(Exceptionexp)

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

"+exp.Message);this.Close();

private

voidbtnNew_Click(objectsender,EventArgse)

if(tbID.Text=="")

MessageBox.Show("用户名不能为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

tbID.Focus();

return;

if

(tbName.Text=="")

MessageBox.Show("姓名不能为空",MessageBoxIcon.Warning);

tbName.Focus();

return;

"提示",MessageBoxButtons.OK,

if

(tbPass.Text==

"")

"提示",MessageBoxButtons.OK,

MessageBox.Show("密码不能为空",MessageBoxIcon.Warning);

tbPass.Focus();

return;

?

","提示",

DialogResult.No)

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

MessageBoxButtons.YesNo,MessageBoxIcon.Question)==

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(",");

"1");

if(rabMan.Checked)sb1.Append(else

"0");

);

sb1.Append(

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

{

Form

publicpartialclassMain:

{

publicMain()

InitializeComponent();

privatevoidbtn1_Click(

objectsender,EventArgse)

if(tb1.Text==""

||tb2.Text=="")

MessageBox.Show("请输入用户名密码再登录");return;

HIH

stringSQL="SELECT[Name]FROM[Customer]WHERE[ID]="SQL+=tb1.Text+"AND[PassWord]='"+tb2.Text.Trim()+

SqlConnectionconn;

SqlCommandcmd;

conn=new

SqlConnection(ConfigurationManager.ConnectionStrings["PlaneTicket.Properties.Settings.PlaneTicketConnectionString"].ConnectionString);

conn.Open();cmd=

try

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.S

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

当前位置:首页 > 高等教育 > 军事

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

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