目录摘要 (1)一、项目开发背景 (1)二、系统分析 (2)(一)可行性分析 (2)(二)组织结构调查,管理功能分析 (2)(三)E-R图 (6)三、系统设计 (7)(一)概要设计 (7)(二)系统功能结构设计 (8)(三)数据库设计 (8)四、系统实施 (9)(一)系统运行时的环境 (9)(二)主要的界面及脚本介绍 (9)小结 (22)参考文献 (22)不死鸟航空公司客户管理系统(计算机应用专业)摘要:不死鸟,又叫做菲尼克司。
是一种神话中的鸟类,它与埃及神话中的太阳神和希腊神话中的阿波罗有着密切的关系。
不死鸟航空公司以不死鸟为吉祥物,以安全的飞行,热情的服务,美好的经历致力打造航空中的“不死鸟”。
近年来,随着计算机技术的发展和互联网时代的到来,当今社会已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,传统的机票预定形式已经跟不上历史的潮流。
电子机票预定系统就是为满足各种用户,公司企业的需求,而开发的一套实用的系统。
通过互联网创建网络机票预定系统,可以宣传航班的线路和其他产品,招揽更多的旅客购买机票,从而为航空公司带来更多的经济效益。
使用网络机票预定系统还可以为航空公司节省人力成本,提高工作效率,从而增强企业的竞争力。
因此基于以上的考虑在开发网络订票系统—中采用目前比较流行并且技术已经十分成熟的三层构架技术来实现航班管理对航班信息、机票信息、用户信息、订单信息的便捷管理,而数据库则采用轻量级的数据库MySql不但可是对系统数据更高效的管理而且便于系统的移植和跨平台操作,实现了航班管理的数字化、信息化,减少了人力,节省了财力,提高了企业运作的效率对有效控制机票销售提供了必要的信息情报为企业节省了不必要的浪费。
因此网络机票预定系统---实现了对航班信息、机票信息、用户信息、订单信息的查询、录入、修改等基本操作。
但还有待于进一步发掘深层次的用户需求进行二次开发完善其功能性,使该系统在操作方面更方便、操作界面更加友好。
关键字:航班订票;数据库;Microsoft Visual Studio 2008一、项目开发背景目前,国内的上网人数急剧倍增,以及随着人们生活水平的提高,选择航空出行的人们越来越多,这对航空公司来说是个好消息,但是,航空公司间的竞争也日趋激烈,如果航空公司不能做到定退票的方便服务,很可能会被淘汰,所以不死鸟航空公司紧跟时代潮流,开发网上订票系统方便旅客轻轻松松实现定退票。
既节省了用户的时间和金钱也简化了机票销售人员的工作。
以高效化、系统化、规范化、科学化的网络机票预定模式是顺历史潮流而动,是大势所趋。
今天已经步入了网络时代。
互联网的普及为网络服务和电子商务注入了新的活力,网络服务成为增长最快、最具活力的领域。
因此,本系统的目标是一个可以面向网络交互的真正意义上的网络服务,让用户体会到网络的方便与快捷。
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统。
实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
最终使本系统可以面向一切网络用户。
二、系统分析(一)可行性分析鉴于民用航空业的飞速发展,飞机运输量的不断加大,以及人们对航空公司服务和质量的要求提高,这对航空公司来说本应是个好机遇,但我国航空产业仍然基础薄弱,管理手段滞后,信息化程度低,企业效益较差。
行政管理部门存在管理方式落后,缺乏信息化管理手段,信息沟通渠道不通畅等问题.。
面对困难和挑战,不死鸟航空公司转变观念,创新思维,以信息化建设为突破口和新手段,整合各种资源,从而实现整个行业的新跨越。
加强信息化建设,提高各级管理部门的工作效率和管理水平,精简办事程序,降低工作成本,加大宣传力度,加快信息传播速度,提高信息实效性。
另一方面,通过开展电子商务,满足旅客的个性化需求,提高航班服务质量,改变航空公司传统经营模式,降低成本,增加效益,从而提高整个产业素质,实现信息化,将会进一步壮大航空支柱产业,提升航空产业整体信息化水平,优化产业结构和资源配置,完善产业链,进而带动众多相关产业发展,拉动内需,扩大就业,增加外汇收入,对经济发展起到积极的推动作用。
所以,开发一套旅客订票信息管理系统势在必行。
(二)组织结构调查,管理功能分析○1不死鸟旅客管理系统主要是管理旅客信息以及对旅客的定退票方面的管理,并且为旅客提供航班的查询。
向管理人员提供支持信息,方便管理人员对票面信息的管理与统计。
航班管理人员的组织结构图如图1所示:图1 组织结构图○2航班管理系统的管理功能分析,如图2所示:图2 航班管理系统功能图程序流程图以及UML图程序流程图如图3所示;UML图如图4、图5、图6所示:图3:程序流程图图4:UML图1图5:UML图2图6:UML图3 (三)E-R图图7:E-R图三、系统设计(一)概要设计不死鸟航空管理系统的总体任务是实现航空订票系统的系统化、规范化以及自动化。
要完成的任务主要有:○1旅客信息输入功能。
○2旅客信息修改、删除功能。
○3信息核对功能。
○4信息查询功能。
○5打印输出功能。
○6临时更改机票信息功能。
○7退票功能。
○8航班查询功能。
○9折后价钱功能。
(二)系统功能结构设计根据需求分析和总体设计结果,对系统的功能继续进行细化。
最终得到系统经过改进的功能结构图,如图8所示。
图8:系统功能结构图(三)数据库设计如表1、表2、表3所示表1:DP表表2:pjxx表四、系统实施(一)系统运行时的环境硬件要求:CPU:CPU2.0;内存:256M内存或更高;硬盘空间:40G ;打印机及其他。
软件要求:操作系统:Windows 2000 以上;数据库:SQL Server2005;数据库前端开发工具:Microsoft Visual Studio. 2008;(二)主要的界面及脚本介绍1、系统的主界面2、登录页面登录按钮的脚本:private void button1_Click(object sender, EventArgs e){if (tBox1.Text != "" || tBox2.Text != ""){if (tBox1.Text == "song"&&tBox2 .Text =="123"){MessageBox.Show("亲爱的管理员,您好!欢迎您回来!", "O(∩_∩)O~!");管理员修改 r = new管理员修改();r.Show();}else{string constr = ("Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123");SqlConnection ms = new SqlConnection();ms.ConnectionString = constr;ms.Open();string comstr = @"select count(*) from [机场客户管理].[dbo].[sfdl] WHERE id='"+ tBox1.Text + "'and password='"+ tBox2.Text + "'";SqlCommand mycmd = new SqlCommand(comstr, ms);int re = (int)mycmd.ExecuteScalar();if (re > 0){主页面 ff = new主页面();ff.Show();ms.Close();}else{MessageBox.Show("密码错误!请重新输入!", "注意!");tBox2.Text = "";tBox1.Focus();}}}else{MessageBox.Show("不可以为空!", "注意!");}}其中登录界面有个渐隐渐现的特效,代码如下:int i = 0;private void timer1_Tick(object sender, EventArgs e){}3、订票页面○1“查询”操作的代码:private void button4_Click(object sender, EventArgs e){string pa = tBox5.Text;if (tBox1.Text == ""||tBox5 .Text ==""){MessageBox.Show("请输入要查询的姓名和身份证号!", "注意");tBox1.Focus();}else{string constr = ("Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123");SqlConnection ms = new SqlConnection();ms.ConnectionString = constr;ms.Open();//操作数据库SqlCommand mycmd = new SqlCommand();mycmd.Connection = ms;string comstr = @"select * from [机场客户管理].[dbo].[DP] WHERE 1=1";if (this.tBox1.Text.ToString().Length > 0){comstr += "and [身份证]='"+ this.tBox5.Text.ToString() + "'";}mandText = comstr;DataSet mt = new DataSet();//收集数SqlDataAdapter myer = new SqlDataAdapter(mycmd);//SqlDataAdapter数据配置器myer.Fill(mt);DataTable mtt = new DataTable();mtt = mt.Tables[0];if (mt.Tables[0].Rows.Count > 0){this.tBox2.Text = mt.Tables[0].Rows[0][1].ToString();this.tBox3.Text = mt.Tables[0].Rows[0][2].ToString();this.tBox4.Text = mt.Tables[0].Rows[0][3].ToString();this.dT1.Text = mt.Tables[0].Rows[0][4].ToString();this.tBox6.Text = mt.Tables[0].Rows[0][6].ToString();this.tBox7.Text = mt.Tables[0].Rows[0][7].ToString();pa = mt.Tables[0].Rows[0][0].ToString();tBox1.Enabled = false;tBox5.Enabled = false;ms.Close();}else{MessageBox.Show("已经查询但无此记录!", "注意!"); tBox5.Text = "";tBox1.Text = "";tBox1.Enabled = true;}}}○2“保存”操作的代码:private void button1_Click(object sender, EventArgs e){if(tBox1.Text == ""|| tBox2.Text == ""|| tBox3.Text == "" || tBox4.Text == "" || tBox5.Text == "" || tBox6.Text == "" || dT1.Text == ""){MessageBox.Show("资料填写不完整!", "注意!");}else{tBox1.Enabled = false;string constr = "Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123";SqlConnection ms = new SqlConnection(constr);ms.Open();string comstr1 = @"select count(*) from DP where 姓名='" + this.tBox1.Text + "'";SqlCommand mycmd1 = new SqlCommand(comstr1, ms);object value = mycmd1.ExecuteScalar();int i = (int)value;if (i == 0){string comstr = @"insert into DP(姓名,年龄,国籍,航班班次,订票时间,身份证,出发地,目的地)values('"+ this.tBox1.Text.Trim() + "','"+ this.tBox2.Text.Trim() + "','"+ this.tBox3.Text.Trim() + "','"+ this.tBox4.Text.Trim() + "','"+ this.dT1.Text.Trim() + "','"+ this.tBox5.Text.Trim() + "','"+ this.tBox6.Text.Trim() + "','" + this.tBox7.Text.Trim() + "')";SqlCommand md = new SqlCommand(comstr, ms);int re = md.ExecuteNonQuery();if (re > 0){MessageBox.Show("恭喜你,保存成功!", "保存信息");this.tBox1.Text = this.tBox2.Text = this.tBox3.Text = this.tBox4.Text = this.tBox5.Text = this.tBox6.Text = this.tBox7.Text = "" ;this.dT1 .Text = "";tBox1.Enabled = true;}else{MessageBox.Show("失败呀,没保存成功!!", "保存信息");}}else{MessageBox.Show("主键冲突,请检查是否相同!!", "主键信息");tBox1.Enabled = true;}}}○3“修改”操作的代码:private void button3_Click(object sender, EventArgs e){string pa = tBox1.Text;if (tBox2.Text == ""){MessageBox.Show("请先查询!", "注意");tBox2.Enabled = true;tBox1.Enabled = true;}else{tBox2.Enabled = false ;tBox1.Enabled = false ;string constr = ("Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123");SqlConnection ms = new SqlConnection();ms.ConnectionString = constr;ms.Open();string st = "select count(*) from [机场客户管理].[dbo].[DP] where 姓名='" + tBox1.Text + "'";SqlCommand ml = new SqlCommand(st, ms);object va = ml.ExecuteScalar();int i = (int)va;if (i >= 0){string strcom = @"UPDATE [机场客户管理].[dbo].[DP] SET 年龄='" + tBox2.Text + "',国籍='" + tBox3.Text + "',航班班次='" + tBox4.Text + "',订票时间='"+ dT1.Text + "',身份证='"+ tBox5.Text + "',出发地='" + tBox6.Text + "',目的地='" + tBox7.Text + "' WHERE 姓名='" + pa + "'";SqlCommand md = new SqlCommand(strcom, ms);int re = md.ExecuteNonQuery();if (re > 0){MessageBox.Show("恭喜你,修改成功!", "修改信息");tBox2.Enabled = true;}}elseMessageBox.Show("你可能没修改!!", "修改信息");ms.Close();}}○4“取消”操作的代码:private void button2_Click(object sender, EventArgs e){tBox1.Enabled = true;tBox5.Enabled = true;this.tBox2.Text = "";this.tBox3.Text = "";this.tBox4.Text = "";this.dT1.Text = "";this.tBox6.Text = "";this.tBox7.Text = "";}4、退订页面:其中“退订”操作的代码是:private void button1_Click(object sender, EventArgs e){string pa = tBox1.Text;if(tBox1.Text == ""|| tBox2.Text == ""|| tBox3.Text == "") {MessageBox.Show("没有要退订的机票呀!", "坏啦!");tBox1.Enabled = true;}else{string constr = ("Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123");SqlConnection ms = new SqlConnection(constr);ms.Open();DialogResult R = MessageBox.Show("你确定要退订吗?", "警告!", MessageBoxButtons.YesNo , MessageBoxIcon.Question);if (R == DialogResult.Yes){string strcom = @"DELETE FROM [机场客户管理].[dbo].[DP] WHERE 姓名='" + pa + "'";SqlCommand md = new SqlCommand(strcom, ms);int re = md.ExecuteNonQuery();if (re > 0){MessageBox.Show("退订成功!", "提示");this.tBox1.Text = this.tBox2.Text = this.tBox3.Text = this.tBox4.Text ="";tBox2.Enabled = true;tBox1.Enabled = true;}elseMessageBox.Show("对不起,操作错误,没退订成功!!", " 退订信息");}ms.Close();}}5、航班查询页面:其中“查询”操作的代码:private void button1_Click(object sender, EventArgs e){dataGridView1.Visible = true;string strcon = "Data Source=.;Initial Catalog=机场客户管理;User Id=sa;Password=123;Connect Timeout=30 ";SqlConnection mysqlconnection = new SqlConnection(strcon); mysqlconnection.Open();SqlCommand mysqlcommand = new SqlCommand();mysqlcommand.Connection = mysqlconnection;string comstr = @"select * from [机场客户管理].[dbo].[pjxx] WHERE 1=1";if (this.tBox1.Text.ToString().Length > 0){comstr += "and [出发地]='"+ this.tBox1.Text.ToString() + "'";}mandText = comstr;SqlDataAdapter mysqldataapter = newSqlDataAdapter(mysqlcommand);DataSet mydataset = new DataSet();mysqldataapter.Fill(mydataset);DataTable mydatatable = new DataTable();mydatatable = mydataset.Tables[0];this.dataGridView1.DataSource = mydatatable;int resultvalue = mysqlcommand.ExecuteNonQuery();if (resultvalue >= 0){MessageBox.Show("悲剧,信息查询失败!", "查询信息"); }mysqlconnection.Close();}6、打折页面:鉴于航空公司在一些节假日有打折活动,不死鸟航空管理系统特此开设这一打折版块,其中“查看”操作的代码如下:private void button1_Click(object sender, EventArgs e){if(checkBox1.Checked == true|| checkBox2 .Checked== true ){if (checkBox1.Checked == checkBox2.Checked ==false ){ label4.Text = "打折率为76.1%,购票时打折率将自动计算到机票中!"; }if (checkBox1.Checked == true){ label4.Text = "打折率为91.1%,购票时打折率将自动计算到机票中!"; }if (checkBox2 .Checked== true){ label4.Text = "打折率为80.1%,购票时打折率将自动计算到机票中!"; }}elseMessageBox.Show("请选择打折类型!", "注意");}7、管理员修改页面这个页面是给管理人员查询、修改、删除、增加旅客信息的页面。