机票预订系统Word下载.docx
- 文档编号:18637197
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:23
- 大小:60.46KB
机票预订系统Word下载.docx
《机票预订系统Word下载.docx》由会员分享,可在线阅读,更多相关《机票预订系统Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
由于中国人口众多,订购机票成为了旅客们最头疼的问题!
怎样为旅客提供高效,便捷的服务是国家在航空运输中应该首要解决的问题。
通过网络实现机票预定已经成为一种消费的时尚,给消费者带来极大的便捷!
预定查询系统因此在各机票预定网点中的作用也越显重要。
因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统更显紧迫。
机票预定系统应克服存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性,这关系到航班的乘客的安全及准确,本系统因面向广大机票预定网点,因此要能在售票网点中普及,则需要开发一个功能全,价格能被顾客所接受的系统。
系统要实现的基本功能是航班的售票,订票,退票,乘客信息的管理;
而系统在以后扩展时还可以实现的功能有:
对机组工作人员的管理,预定机票的送票情况管理等。
此系统的开发由我们分模块完成,而我所负责的模块是实现系统的售票,订票,退票功能。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
机票预定管理系统是典型的信息管理系统,其主要开发包括后台数据库的建立和维护,以及前端应用程序的开发两个方面。
对于前者要求建立起数据库一致性和完整性强,数据安全性好的库。
而后者则要求应用程序功能完备,易使用等特点。
3.1问题分析
3.1.1新用户注册
新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册,如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接陆到用户主界面,以后就可以用这个用户登录了。
3.1.2验证密码登陆
验证登陆名密码,正确进入主菜单,如果输入相应用户密码正确,跳转;
不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭。
3.1.3用户信息界面
主窗体的用户信息界面,用户点击个人查询按钮,可以把自己的个人信息显示到界面上,还可以对自己的信息进行相应的修改,还可以点击我的机票查询,查询该用户的订票记录;
选择订购往返票可以继续预订该架航班的往返票,否则只能订购单程票;
3.1.4订票界面
主窗体的订票界面,你可以点击你想查询的有关机票的信息的按钮(查询出发地,查询目的地,航线查询,客户信息查询)获得相关信息的表,根据表的内容,你可以选中你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,跳转到支付界面;
如果不满意,可以点击返回,所有信息清空,再重新选择;
图1机票预定系统业务系统功能图
3.2程序设计
1.本程序中用到的所有抽象数据类型的定义及实现;
数据表的数据结字典
表名
描述
航空信息表
用于存储各个航班的航行情况
票价
用于存储各个航班路线的价钱等信息
机票订单
用于存储用户的下单情况
用户信息
用于存储用户的个人基本信息,完成注册、登陆等操作
往返票
用于存储客户下单的往返票信息
单程票
用于存储客户下单的单程票信息
数据库序列的数据字典
序列
seqid
用于实现订单的订单号的自增和航空信息表的id信息的自增
触发器的数据字典
触发器
in_wangfanpiao
实现机票订单表完成删除操作后将这条数据插入往返票表
航空信息表;
票价表;
机票订单表;
用户信息表;
往返票表;
单程票表;
将E-R图转换成关系模型,关系的主码用横线标识:
航空信息表(did,航空公司,出发城市,到达城市,飞机型号,起飞时间,到达时间,出发日期)
票价(did,航空公司,出发城市,到达城市,飞机型号,起飞时间,到达时间,出发日期,单程票价,往返票价)
机票订单(did,航空公司,出发城市,到达城市,飞机型号),起飞时间,到达时间,出发日期,单程票价,往返票价,订购时间)
用户信息(id,用户名,密码,联系方式,身份,状态)
往返票(did,航空公司,出发城市,到达城市,飞机型号,起飞时间,到达时间,出发日期,往返票价,订购时间)
单程票(did,航空公司,出发城市,到达城市,飞机型号,起飞时间,到达时间,出发日期,单程票价,订购时间)
2.主程序的流程及函数的调用关系图。
3.3测试与分析
3.3.1测试
给出测试数据,输出测试的结果,测试数据应该完整(覆盖算法各种情况)。
在登陆部分我用了session对象来保持登陆的状态,用for循环控制登陆输入的次数,用exexcutescalar来返回选择数据库用户名和密码的有无情况;
在各个部分显示数据库的数据用到了gridview控件,在支付界面使用了for循环选择gridview的行的长度,并且使用checkbox来检查哪行被选中,从而实现支付算法;
从gridview中选择要插入的行到数据库中也是这样设计的,不过相应的代码不同,其他用gridview中的编辑选项实现删除操作,将删除的text改成选购,当删除某一行时,利用数据库中设置的触发器将这行数据插入到已购订单表中,从而实现选购。
购票成功后还可以利用gridview来显示,不满意还可以删除之。
3.3.2分析
1.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾、讨论和分析;
运行程序的时候出现了很多bug,经过一番分析最终得到了解决。
比如插入数据的时候遇到插错行或者不能插入的情况。
2.算法的时间复杂度和空间复杂度的分析,改进设想。
从这方面分析,我的算法比较简单但是相同的代码写了很多遍,我觉得应该适当的将这部分相同的代码放在一个函数中,用其他模块来调用,这样才能提高软件的运行效率和可读性。
3.4代码
源程序代码及必要注释。
MasterPage.master.cs
protectedvoidPage_Load(objectsender,EventArgse)
{
DateTimed=DateTime.Now;
Label1.Text=d.ToLongDateString()+d.ToLongTimeString();
if(Session["
pass"
]=="
right"
)
HyperLink1.Text="
已登录"
;
HyperLink1.NavigateUrl="
~/用户订单.aspx"
}
if(Session["
tiaozhuanzhuye"
]=="
Label2.Text="
登陆超时,请重新登陆!
"
登陆.aspx.cs
protectedvoidButton1_Click(objectsender,EventArgse)
StringconStr=ConfigurationManager.ConnectionStrings["
ConnectionString"
].ConnectionString;
OracleConnectionconn=newOracleConnection(conStr);
conn.Open();
OracleCommandcmd=newOracleCommand("
SELECT用户名FROM用户信息WHERE用户名='
+TextBox1.Text+"
'
conn);
if(Button1.TabIndex>
3)
Session["
]="
Response.Redirect("
Default.aspx"
);
else
if(cmd.ExecuteScalar()==null)
Label1.Text="
用户名不存在!
]=null;
//double.Parse(
Button1.TabIndex++;
cmd.CommandText="
select用户名,密码from用户信息where用户名='
and密码='
+TextBox2.Text+"
//cmd.Connection
密码错误,请重新输入!
select用户名,密码,状态from用户信息where用户名='
and状态=1"
update用户信息set状态=1where用户名='
cmd.ExecuteNonQuery();
conn.Close();
用户订单.aspx"
//Label1.Text="
此用户id已经处于登录状态"
/*Session["
khbj"
]=TextBox1.Text;
*/
票价.aspx.cs
protectedvoidPage_Load(objectsender,EventArgse)
Label2.Text=d.ToLongDateString()+d.ToLongTimeString();
protectedvoidButton2_Click(objectsender,EventArgse)
select用户名from用户信息where用户名='
if(cmd.ExecuteScalar()==null)
用户不存在,验证失败,请重新验证"
else
验证通过"
for(intii=0;
ii<
GridView1.Rows.Count;
ii++)
CheckBoxcc=GridView1.Rows[ii].FindControl("
CheckBox1"
)asCheckBox;
if(cc.Checked)
SqlDataSource1.InsertParameters.Clear();
SqlDataSource2.InsertParameters.Clear();
SqlDataSource2.InsertParameters.Add("
DID"
TextBox1.Text);
航空公司"
GridView1.Rows[ii].Cells[1].Text);
出发城市"
GridView1.Rows[ii].Cells[2].Text);
到达城市"
GridView1.Rows[ii].Cells[3].Text);
飞机型号"
GridView1.Rows[ii].Cells[4].Text);
起飞时间"
GridView1.Rows[ii].Cells[5].Text);
到达时间"
GridView1.Rows[ii].Cells[6].Text);
出发日期"
GridView1.Rows[ii].Cells[7].Text);
单程票价"
GridView1.Rows[ii].Cells[8].Text);
往返票价"
GridView1.Rows[ii].Cells[9].Text);
//SqlDataSource2.InsertParameters.Add("
订购时间"
Label2.Text);
//SqlDataSource1.InsertCommand="
insertinto机票订单values('
+a+"
'
+b+"
+c+"
+d+"
+t+"
+f+"
+g+"
+h+"
+i+"
+k+"
)"
//Session["
ccsj"
]=Label2.Text;
SqlDataSource2.Insert();
成功加入我的订单"
else{
加入订单失败!
请重试或返回"
}
往返票.aspx.cs
wangfan"
]="
zhifu"
&
&
Button3.Text="
已购往返票订单"
GridView2.Rows.Count;
deletefrom单程票where出发城市='
+GridView2.Rows[ii].Cells[2].Text+"
and到达城市='
+GridView2.Rows[ii].Cells[3].Text+"
"
if(Label1.Text=="
||Label1.Text=="
0"
{Label2.Text="
支付失败!
{Response.Redirect("
支付.aspx"
doublesum=0.0;
sum+=(double.Parse(GridView1.Rows[ii].Cells[8].Text));
Label1.Text=sum.ToString();
protectedvoidButton3_Click(objectsender,EventArgse)
deletefrom往返票where出发城市='
/*调用删除代码*/
修改密码.aspx.cs
try
if(cmd.ExecuteScalar()==null){
用户名不存在!
TextBox1.Text=TextBox2.Text=TextBox3.Text="
else{
update用户信息set密码=:
mimawhere用户名=:
yonghuming"
cmd.Parameters.Add(newOracleParameter("
:
OracleType.VarChar));
cmd.Parameters["
].Value=TextBox1.Text;
mima"
].Value=TextBox2.Text;
修改成功!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机票 预订 系统