航班查询系统_第1页
航班查询系统_第2页
航班查询系统_第3页
航班查询系统_第4页
航班查询系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 航班查询系统 一、背景、目的和意义 二、 主要功能描述三、 软/硬件环境 四、 数据库设计 五、 界面设计 六、 编程过程中所遇难题 七、 分工协作 八、 收获 一、背景:学习了数据库软件SQL 2005和Microsoft Visual Studio 2008后想到了用这2个软件做这个航班查询系统,通过ASP做出SQL的界面并导入存储过程对功能进行实现!目的和意义:机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点.它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性。它为企

2、业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。为便于旅客通过代售点查询航班信息,要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。航班查询系统需要完成功能主要有:(1)管理员对航班信息的输入、修改和查询,对用户信息的查询。(2)旅客信息的注册和登录及对航班信息的查询。1.1数据分析航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)旅客信息(用户名,密码,性别,年龄)1.2用户活动分析用户通过系统

3、查询航班信息。用户活动图: 旅 客查询信息登录注册 打印信息二、主要功能描述2.1 航班信息维护模块提供航班信息的录入、删除、修改。可以录入航班情况。 机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。当航班信息改变时可以修改航班信息数据库。2.2 航班业务处理模块提供查询航班剩余票数功能。客户可以登录航班购票系统进行查询;如果该航班已经无票,可以换乘。系统功能图航空订票系统旅 客管理员显示数据删除数据查询航班查询航班设置密码输入数据设置密码查询订票退出系统预订机票订票信息退出系统系统流程图旅客旅客数据流图1:航空购票系统登录 显示信息管理员管理员 文件管理

4、显示信息 三、 软/硬件环境:使用Microsoft Visual Studio 2008和Microsoft SQL Server 2005电脑是windows7 64bit操作系统。 4、数据字典1) 数据项表2-1数据项名含义说明数据类型长度说明航班号机型航班信息航班信息varcharvarchar5010航班号码航班所属机型航空公司航线信息char10航班所属公司起飞城市到达城市起飞时间到达时间总票数剩余票数UsernamePswSexAgeulevel航线信息航线信息航班信息航班信息航班信息航班信息用户信息用户信息用户信息用户信息用户信息charcharcharcharvarchar

5、varcharcharcharcharcharchar1010101050501010101010飞机起飞城市飞机到达城市飞机起飞时间飞机到达时间航班的总票数航班的剩余票数用户名密码性别年龄用户等级2) 数据结构表2-2名称简述组成companyticket定义公司相关信息定义机票相关信息公司名,公司地址,公司代码,公司电话机票号,座位,票价,航班号Flightair定义航班相关信息定义飞机相关信息航班号,出发地,到达地,出发时间,到达时间,公司代码,航班号航程,飞机号,票价3) 数据流 名称 简述 来源 去向 组成 用户 旅客相关信息 旅客本身 登录购票系统UsernamePswSexAge

6、ulevel 4) 数据存储表2-3名称简述组成CompanyFlight ticket定义公司相关信息定义机票相关信息CID,Cname, Caddress, CphoneticketID,price,seat number,Flight numberCustomerAir定义旅客相关信息定义飞机相关信息ID number,name,Pnumber,AddressAir number, Voyage, price5) 处理过程 名称 说明 输入 输出 处理User login 用户登录用户名,密码,性别,年龄,用户等级 旅 客 档 案整理用户信息5、概念结构设计1.1 概念结构设计的方法概念

7、设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。1.2 概念结构设计的步骤第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们们先逐一的设计分E-R图。第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。概念模型设计ER图电话号码身份证号住址姓名机 票订票查询航 班身份证号号机票号订票时

8、间拥有有航空公司拥有顾客公司电话机票号票价公司代码出发地出发时间航班号目的地到达时间航班号座位号公司地址公司代码nn11m1公司名飞机使用飞机号航程票价逻辑设计将ER图转换为关系模式顾客(用户名,密码,性别,年龄)。航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)。Customer(Username,psw,sex,age,ulevel)Flight(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)下划线标注的属性为主码。 以上关系模式均为BCNF。 物理设计一、 为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码

9、机建立索引。各表中简历索引的表项:(1)Customer(Username) (2)Flight(航班号)二、 用SQL实现设计1、 建立Customer表CREATE TABLE dbo.用户表(username char(10) COLLATE Chinese_PRC_CI_AS NOT NULL,psw char(10) COLLATE Chinese_PRC_CI_AS NULL,sex char(10) COLLATE Chinese_PRC_CI_AS NULL,age char(10) COLLATE Chinese_PRC_CI_AS NULL,ulevel char(10)

10、COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_用户表 PRIMARY KEY CLUSTERED (username ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY2、 建立Airplane表CREATE TABLE dbo.Airplane(航班号 varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,机型 varchar(10) COLLATE Chinese_PRC_CI_AS NULL,航空公司 char(

11、10) COLLATE Chinese_PRC_CI_AS NULL,起飞城市 char(10) COLLATE Chinese_PRC_CI_AS NULL,到达城市 char(10) COLLATE Chinese_PRC_CI_AS NULL,起飞时间 char(10) COLLATE Chinese_PRC_CI_AS NULL,到达时间 char(10) COLLATE Chinese_PRC_CI_AS NULL,总票数 varchar(50) COLLATE Chinese_PRC_CI_AS NULL,剩余票数 varchar(50) COLLATE Chinese_PRC_C

12、I_AS NULL, CONSTRAINT PK_Airplane PRIMARY KEY CLUSTERED (航班号 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY 3、 顾客操作 (1) 注册 (register) INSERT INTO 用户表(Username,psw,sex,age,ulevel) VALUES(#Username,#psw,#sex,#age,#ulevel); (2) 注销 (unregister) DELETE Customer WHERE(Username=#Us

13、ername);本系统涉及到的存储过程:这是注册界面,代码如下:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebPart

14、s;using System.Xml.Linq;using System.Data.SqlClient;public partial class Default2 : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) TextBox1.Focus(); protected void Button2_Click(object sender, EventArgs e) Response.Redirect("Default.aspx"); protected void Button1_C

15、lick(object sender, EventArgs e) string Add = "注册" string constr = ConfigurationManager.ConnectionStrings"sss".ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = constr; if (conn.State != ConnectionState.Open) conn.Open(); SqlCommand cmd = new SqlComman

16、d(Add, conn); cmd.CommandType = CommandType.StoredProcedure; /这是告诉程序这是执行存储过程 SqlParameter Parameter1 = new SqlParameter("username", SqlDbType.Char, 10); SqlParameter Parameter2 = new SqlParameter("psw", SqlDbType.Char, 10); SqlParameter Parameter3 = new SqlParameter("sex&quo

17、t;, SqlDbType.Char, 10); SqlParameter Parameter4 = new SqlParameter("age", SqlDbType.Char, 10); SqlParameter Parameter5 = new SqlParameter("ulevel", SqlDbType.Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; Par

18、ameter4.Value = TextBox3.Text; Parameter5.Value = DropDownList2.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2); cmd.Parameters.Add(Parameter3); cmd.Parameters.Add(Parameter4); cmd.Parameters.Add(Parameter5); DataTable table = new DataTable(); SqlDataAdapter adapter = new SqlDat

19、aAdapter(cmd); adapter.Fill(table); conn.Close(); Response.Redirect("Default.aspx"); 代码中引用了注册的存储过程:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate proc dbo.注册(username char(10),psw char(10),sex char(10),age char(10),ulevel char(10)asbegin insert into 用户表(username,psw,sex,age,ulevel) va

20、lues(username,psw,sex,age,ulevel) endGOSET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using Sys

21、tem.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) TextBox1.Focus(); protected void Button2_Click(object sender, EventArgs e) Respons

22、e.Redirect("Default.aspx"); protected void Button1_Click(object sender, EventArgs e) string Add = "CheckUser" string constr = ConfigurationManager.ConnectionStrings"sss".ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = constr; if (conn.State

23、 != ConnectionState.Open) conn.Open(); SqlCommand cmd = new SqlCommand(Add, conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter Parameter1 = new SqlParameter("username", SqlDbType.Char, 10); SqlParameter Parameter2 = new SqlParameter("psw", SqlDbType.Char, 10); Sql

24、Parameter Parameter3 = new SqlParameter("ulevel", SqlDbType.Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2); cmd.Parameters.Add(Parameter3); DataTable table

25、= new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(cmd); adapter.Fill(table); SqlDataReader dr = cmd.ExecuteReader(); /调用executereader()方法得到dr对象 dr.Read(); if (dr.HasRows) /如果有返回记录存在 if (DropDownList1.Text = "管理员") Session"pass" = "admin" Response.Redirect(&

26、quot;manager.aspx"); else Session"pass" = "guest" Response.Redirect("guest.aspx"); else Response.Write("<script language=javascript>alert('用户名或密码或用户等级错误!');</script>"); return; 代码中使用的登录的存储过程:set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOA

27、LTER PROCEDURE dbo.CheckUser username char(10) ,psw char(10) ,ulevel char(10)ASBEGIN select * from 用户表where username=username and psw=psw and ulevel=ulevelEND管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改这里是通过拉控件方式做的,如下图:通过拉FormView和SqlDataSource两个控件,用FormView绑定SqlDataSource,然后在SqlDataSource中配置数据源,然后新建连接如下图:选择存储

28、过程点击完成即可,用户表则是GridView和SqlDataSource控件,方法类似就不再列举!管理员界面这里涉及到2个存储过程:dbo.查看航班表dbo.查看用户表航班表的程序:<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>" SelectCommand="查看航班表" SelectCommandTy

29、pe="StoredProcedure"></asp:SqlDataSource>用户表的程序:<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>" SelectCommand="查看用户表" SelectCommandType="StoredProcedure

30、"></asp:SqlDataSource>这是航班管理界面通过新建可以插入新的信息!管理航班的程序:<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>" DeleteCommand="DELETE

31、 FROM Airplane WHERE 航班号 = original_航班号 AND (机型 = original_机型) OR (机型 IS NULL AND original_机型 IS NULL) AND (航空公司 = original_航空公司) OR (航空公司 IS NULL AND original_航空公司 IS NULL) AND (起飞城市 = original_起飞城市) OR (起飞城市 IS NULL AND original_起飞城市 IS NULL) AND (到达城市 = original_到达城市) OR (到达城市 IS NULL AND origina

32、l_到达城市 IS NULL) AND (起飞时间 = original_起飞时间) OR (起飞时间 IS NULL AND original_起飞时间 IS NULL) AND (到达时间 = original_到达时间) OR (到达时间 IS NULL AND original_到达时间 IS NULL) AND (总票数 = original_总票数) OR (总票数 IS NULL AND original_总票数 IS NULL) AND (剩余票数 = original_剩余票数) OR (剩余票数 IS NULL AND original_剩余票数 IS NULL)"

33、; InsertCommand="INSERT INTO Airplane (航班号, 机型, 航空公司, 起飞城市, 到达城市, 起飞时间, 到达时间, 总票数, 剩余票数) VALUES (航班号, 机型, 航空公司, 起飞城市, 到达城市, 起飞时间, 到达时间, 总票数, 剩余票数)" OldValuesParameterFormatString="original_0" SelectCommand="查看信息" UpdateCommand="UPDATE Airplane SET 机型 = 机型, 航空公司 = 航

34、空公司, 起飞城市 = 起飞城市, 到达城市 = 到达城市, 起飞时间 = 起飞时间, 到达时间 = 到达时间, 总票数 = 总票数, 剩余票数 = 剩余票数 WHERE 航班号 = original_航班号 AND (机型 = original_机型) OR (机型 IS NULL AND original_机型 IS NULL) AND (航空公司 = original_航空公司) OR (航空公司 IS NULL AND original_航空公司 IS NULL) AND (起飞城市 = original_起飞城市) OR (起飞城市 IS NULL AND original_起飞城市

35、 IS NULL) AND (到达城市 = original_到达城市) OR (到达城市 IS NULL AND original_到达城市 IS NULL) AND (起飞时间 = original_起飞时间) OR (起飞时间 IS NULL AND original_起飞时间 IS NULL) AND (到达时间 = original_到达时间) OR (到达时间 IS NULL AND original_到达时间 IS NULL) AND (总票数 = original_总票数) OR (总票数 IS NULL AND original_总票数 IS NULL) AND (剩余票数

36、= original_剩余票数) OR (剩余票数 IS NULL AND original_剩余票数 IS NULL)" SelectCommandType="StoredProcedure"> <DeleteParameters> <asp:Parameter Name="original_航班号" Type="String" /> <asp:Parameter Name="original_机型" Type="String" /> <

37、;asp:Parameter Name="original_航空公司" Type="String" /> <asp:Parameter Name="original_起飞城市" Type="String" /> <asp:Parameter Name="original_到达城市" Type="String" /> <asp:Parameter Name="original_起飞时间" Type="String

38、" /> <asp:Parameter Name="original_到达时间" Type="String" /> <asp:Parameter Name="original_总票数" Type="String" /> <asp:Parameter Name="original_剩余票数" Type="String" /> </DeleteParameters> <UpdateParameters>

39、<asp:Parameter Name="机型" Type="String" /> <asp:Parameter Name="航空公司" Type="String" /> <asp:Parameter Name="起飞城市" Type="String" /> <asp:Parameter Name="到达城市" Type="String" /> <asp:Parameter Name

40、="起飞时间" Type="String" /> <asp:Parameter Name="到达时间" Type="String" /> <asp:Parameter Name="总票数" Type="String" /> <asp:Parameter Name="剩余票数" Type="String" /> <asp:Parameter Name="original_航班号&q

41、uot; Type="String" /> <asp:Parameter Name="original_机型" Type="String" /> <asp:Parameter Name="original_航空公司" Type="String" /> <asp:Parameter Name="original_起飞城市" Type="String" /> <asp:Parameter Name="o

42、riginal_到达城市" Type="String" /> <asp:Parameter Name="original_起飞时间" Type="String" /> <asp:Parameter Name="original_到达时间" Type="String" /> <asp:Parameter Name="original_总票数" Type="String" /> <asp:Paramet

43、er Name="original_剩余票数" Type="String" /> </UpdateParameters> <InsertParameters> <asp:Parameter Name="航班号" Type="String" /> <asp:Parameter Name="机型" Type="String" /> <asp:Parameter Name="航空公司" Type=&qu

44、ot;String" /> <asp:Parameter Name="起飞城市" Type="String" /> <asp:Parameter Name="到达城市" Type="String" /> <asp:Parameter Name="起飞时间" Type="String" /> <asp:Parameter Name="到达时间" Type="String" />

45、; <asp:Parameter Name="总票数" Type="String" /> <asp:Parameter Name="剩余票数" Type="String" /> </InsertParameters> </asp:SqlDataSource>这里是系统自动生成的导入存储过程的代码有Update,Delete,Insert插入,删除,修改这些功能的代码这是用户登陆后的界面,输入条件后会成功显示如下图:按机型查询的过程:<asp:SqlDataSou

46、rce ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>" SelectCommand="机型" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="TextBox1" Name="机型" PropertyName="Text" Type="String" /> </SelectParameters> </asp:SqlDataSource>按航班号查询的过程<asp:SqlDat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论