1、民航订票管理系统软件工程实习说明题目:民航订票管理系统小组成员姓名专业班级学 号别:计算机科学与工程指导教师:年 月曰软件工程实习成绩评定表评分项目 需求分析 数据库设计 系统设计 项目管理 代码质量小组评分标准实际得分分值101510101025项目测试个人评分标准小组成员姓名个人完成的具体任务及其完成情 况(两人共同承担任务,写清楚各 自完成的比例)个人 实际 得分个人 综合 成绩100个人综合成绩二小组总成绩*30%+个人实际得分*70%用户安装及使用手册 项目成果提交 小组总成绩1. 项目管理2. 需求分析3. 数据库设计4. 概要设计5. 详细设计136. 项目测试297. 安装手册
2、328. 使用手册349. 总结35参考文献361.项目管理该部分文档编写负责人该部分文档复核人最终版本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,24编宜mailt代码1亍作日ZOiCi 年 826 02010325035编写Cg t Din erf3工作日2CI1CI 年 826 02010年8月羽日3G编写 LingF on*3工作日药10 年 826
3、020108230 37编宜hM代码3工住日2010 年 828 0aoiQ年月如日3才编 SellT3工作日如10年8月茨日2010年3月如日3 91编写Form 1代码1工柞日2010831020103315 %瓦6尼 31Q编写文档1工住日2010 年 8310药1仃年E月31日111握交非业1工作日EDici年g月1日201。年g月1日L,乙 3, 4, 5, S,兀图1-1甘特图1.1.2项目甘特图项目甘特图如图图1-2项目甘特图2.需求分析该部分文档编写负责人该部分文档复核人最终版本2.1系统要求实现一个民航订票管理系统,主要分为机场、航空公司和乘客三个部分,其 中1、航空公司的管
4、理包括:机型的管理航线的制定、变更和取消,如航线的起止地点,距离里程 向航线上增加,改派或撤销飞机 向机场提供航线和飞机信息审核机场的航班计划2、机场航班和订票管理包括:制定、修改和撤销航班时刻制定、修改和撤销机票的价格(必需与航班时刻保持一致性) 管理并确认乘客的订票记录(有座位)和价格3、乘客航班查询和订票管理包括:乘客可以查询航班、航线和飞机资料乘客可以预定机票(提供必要的个人信息),可以根据用户的 飞行里程对用户进行折扣,并可以查询机场的确认标志。乘客可以查询自己的飞行记录和里程累计2.1.1用例图管理员一系统 用例图 乘客一系统 用例图 如图2-1与图2-2所示:管理员统计查询售票情
5、况乘客査询航线的基本信息图2-23.数据库设计该部分文档编写负责人该部分文档复核人最终版本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
6、-5所示具体数值IDintNamenvarchor(50)LevelssnodllintGenderbitAddressnvarchar(SO)Emailnvarchar(50)ScorelintPasswordint图 3-1 Customer列名数据类酉IDintLineNumintPricesmallmoneyTapernvarchar(50)PrESSn varchar(50jFromTonvarcharC50)TimesmalldatetimeSeatsint列名数据类型图 3-2 Line允许空列名数据类型允许空? IDint匚 ustomerlDint0Sumsmallmoney
7、Timesmalldatetime图 3-3 Sell列名数据类型允许空? IDint5ellIDintLinelDintNumberintDiscountMoatSumsmallmone/0图 3-4 SellTicket列名数菇类型允许空E LevelsintDiscountfloat图 3-5 Discount表 3-1 格 DiscountLevelsDisco unt10.920.8530.83.1.2数据视图设计 创建数据视图V TicketsellCREATE VIEW dbo.V TicketSell ASSELECT dbo.SellTicketD, dbo.SellTick
8、et.SellID, dbo.Sell.CustomerlD, dbo.Sell.Time, dbo.L in e.L in eNum, dbo.L ine.P ress, dbo.L in e.FromTo, dbo.L ine.P rice, dbo.SellTicket.Number, dbo.SellTicket.Disco unt, dbo.SellTicket.SumFROM dbo.Sell INNER JOIN dbo.SellTicket ON dbo.SellTicket.SellID = dbo.Sell.IDINNER JOIN dbo.Li ne ON dbo.Li
9、ne.lD = dbo.SellTicket.Li nelD3.1.3存储过程和触发器创建存储过程P GetSellDetail用于获取指定交易号的交易明细CREATE PROCEDUREdboAS BEGINSET NOCOUNTON;SELECT SellTicket Line . Press , Line SellTicket . NumberSellTicket . SumFROMSellTicketONLine . ID ANDSellTicket END. P_GetSellDetail. LineID . FromTo , , SellTicket, Line LineINNER
10、 JOIN = SellTicket . SellID( SellID int ). LineNum. Price ,. Discount ,Line. LineID = SellID创建触发器 T_NewSellTicket 每当订出一张机票 对应的航线 的座位数就会减 CREATE TRIGGER T_NewSellTicket ONdbo . SellTicketFOR INSERTASBEGINSET NOCOUNTON;DECLARELineID int , Number intSELECT LineID = LineID , Number = Number FROMinserted
11、 UPDATELineSET Seats = Seats - Number WHERELine . ID = LineIDEND 创建触发器 T_NewSell 没新增一笔会员订票交易就会在会员的里程数上为会员加上相应的里程 CREATE TRIGGER T_NewSell ONdbo . SellFOR INSERTAS BEGINint , Sum smallmoney= CustomerID , Sum = Sum FROMSET NOCOUNTON; DECLARECustomerID SELECT CustomerID insertedNOT NULLIF CustomerID IS
12、BEGINUPDATE CustomerSET Score = Score + SumWHERECustomer . ID = CustomerIDEND END 创建触发器 T_UpdateScore在更新会员记录是发生 在 score 字段发生变化时执行 上设置会员级别为 3 级 达到 500以上设置会员级别为 CREATE TRIGGER T_UpdateScore ONdboFOR UPDATE AS BEGINSET NOCOUNTON;IF UPDATE( Score )BEGINDECLARECustomerIDSELECT CustomerID insertedIF Score
13、 = 1000 ELSE IF Score = ELSE SET Levels UPDATE Customer当公里数达到 1000 以2 级 否则为. Customer1级int , Score int = ID , ScoreSET Levels = 3 500 SET Levels = 1SET Levels = LevelsWHERECustomer . ID = CustomerID ENDEND, Levels= ScoresmallintFROM4概要设计该部分文档编写负责人该部分文档复核人最终版本4.1用户界面4.1.1登陆界面登陆界面如图4-1所示,主要实现登录功能。J盅开+
14、 irV J 二4 J* 0 亠 cr 用円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机时间*110|l00 OHO中a啟仝骚司dtS-rSsoio-e-jT12-30102200. DODD中HK空运司2Dia-S-2T12.DD3D103100. mo中a
15、ft空it司上海-广州iOic-e-?TL:W501MIDQ. DODO中S北方2Dia-e-271.IDLD5100. DODO中a北才喷空.吉木齐2010-B-ZTLZ:mJO106IDQ. DODO中S中方ffi.rSHI-=fii2DlQ-a-Z7t.DO30iDTT100. HMD中 .广州-*睡2010-S-ZTiZ:30tffi2QD. DODO河iSffi主:&司阁1恥幵封20lQ-a-271:U曹I保存脚图4-4航线管理界面4.1.5会员管理界面会员管理界面 如图4-5所示 主要实现会员信息的查询和修改tfethEnuL图4-5会员管理界面4.1.6订票界面订票界面如图4-6
16、所示主要实现订票和会员订票的打折功能图4-6订票界面5.详细设计该部分文档编写负责人该部分文档复核人最终版本5.1系统界面的代码实现5.1.1登陆界面的代码实现n ames pace Plan eTicketFormp ublic p artial class Main :public Main()In itializeCo mponen t();private void btn 1_Click(object sender, EventArgs e)if (tb1 .Text = |tb2.Text =)MessageBoxShow(”请输入用户名密码再登录 ”);return ;stri n
17、g SQL = SELECT Name FROM Customer WHERE ID=; SQL += tb1.Text + AND P assWord = +tb2.Text .Trim ()+ ”SqlC onn ecti on conn;SqlComma ndcmd;conn = newSqlC onn ecti on (Con figurati onMan ager .Conn ecti on Stri ngs Plan eTicket .Prop erties.Settings.Plan eTicketC onnection Stri ng .C onnection Stri ng)
18、; conn.Open(); cmd =trynew SqlCommanQSQL ,conn);SqlDataReader reader1 = cmd.ExecuteReader (); if (reader1 .HasRows )MessageBox.Show( 登录成功 );Form1 frm1 = new Form1(); frm1.ShowDialog();catch ( Exception exp)MessageBox.Show( 无法建立数据连接 : + exp.Message); this .Close();finallyif (conn != null & conn.State
19、 != ConnectionState .Closed) conn.Close();private void btn2_Click( object sender, EventArgs e)NewCfrm1 = new NewC();frm1.ShowDialog();private void bt3_Click(object sender, EventArgs e)this .Close();5.1.2注册界面的代码实现namespace PlaneTicket public partialclass NewC:FormprotectedprotectedSqlConnection SqlCo
20、mmandcmd;conn;public NewC()InitializeComponent();this .Load += new EventHandler (NewC_Load);private void NewC_Load(object sender, EventArgs e) try conn = newSqlConnection ( ConfigurationManager .ConnectionStrings PlaneTicket.Properties.Se ttings.PlaneTicketConnectionString .ConnectionString);cmd = n
21、ew SqlCommand(); cmd.Connection = conn; conn.Open();catch ( Exception exp)MessageBox.Show( 无法建立数据连接 : + exp.Message); this .Close();privatevoid btnNew_Click( object sender, EventArgs e)if (tbID.Text = )MessageBox.Show( 用户名不能为空 , 提示, MessageBoxButtons .OK, MessageBoxIcon .Warning);tbID.Focus();return
22、 ;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( 确认增加新会员吗Mess
23、ageBoxButtons .YesNo, MessageBoxIcon .Question) =return ;StringBuilder sb1 = new StringBuilder ( INSERT INTO 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 (ra
24、bMan.Checked) sb1.Append( else0 ););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();tryif (cmd.ExecuteNonQuery() 0)MessageBox.Show( 增加成
25、功 ! , 提示 , MessageBoxButtons .OK, MessageBoxIcon .Information);this .Close();elseMessageBox.Show( 未增加任何记录 , 提示,MessageBoxButtons .OK, MessageBoxIcon .Asterisk);catch ( Exception exp)MessageBox.Show( 数据访问错误 : + exp.Message);5.1.3 主界面的代码实现namespace PlaneTicketFormpublic partial class Main :public Main
26、()InitializeComponent();private void btn1_Click(object sender, EventArgs e)if (tb1 .Text = |tb2.Text = )MessageBox.Show( 请输入用户名密码再登录 ); return ;HIHstring SQL = SELECT Name FROM Customer WHERE ID= SQL += tb1.Text + AND PassWord = +tb2.Text .Trim ()+SqlConnection conn;SqlCommandcmd;conn = newSqlConnec
27、tion ( ConfigurationManager .ConnectionStrings PlaneTicket.Properties.Se ttings.PlaneTicketConnectionString .ConnectionString);conn.Open(); cmd =trynew SqlCommand(SQL ,conn);SqlDataReader reader1 = cmd.ExecuteReader (); if (reader1 .HasRows )MessageBox.Show( 登录成功 );Form1 frm1 = new Form1(); frm1.ShowDialog();catch ( Exception exp)MessageBox.Show( 无法建立数据连接 : + exp.Message); this .Close();finallyif (conn != null & conn.S
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1