1、航班查询系统 航班查询系统 一、背景、目的和意义 二、 主要功能描述三、 软/硬件环境 四、 数据库设计 五、 界面设计 六、 编程过程中所遇难题 七、 分工协作 八、 收获 一、背景:学习了数据库软件SQL 2005和Microsoft Visual Studio 2008后想到了用这2个软件做这个航班查询系统,通过ASP做出SQL的界面并导入存储过程对功能进行实现!目的和意义: 机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点.它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,
2、可靠性。它为企业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。为便于旅客通过代售点查询航班信息,要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。航班查询系统需要完成功能主要有:(1)管理员对航班信息的输入、修改和查询,对用户信息的查询。(2)旅客信息的注册和登录及对航班信息的查询。数据分析 航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)旅客信息(用户名,密码,性别,年龄)用户活动分析 用户通
3、过系统查询航班信息。用户活动图: 旅 客注册登录查询信息打印信息 二、主要功能描述 航班信息维护模块提供航班信息的录入、删除、修改。可以录入航班情况。机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。当航班信息改变时可以修改航班信息数据库。 航班业务处理模块提供查询航班剩余票数功能。客户可以登录航班购票系统进行查询;如果该航班已经无票,可以换乘。系统功能图航空订票系统旅 客管理员显示数据删除数据查询航班查询航班设置密码输入数据设置密码查询订票退出系统预订机票订票信息退出系统系统流程图数据流图1: 登录 显示信息 文件管理 显示信息 三、 软/硬件环境:使用Microso
4、ft Visual Studio 2008和Microsoft SQL Server 2005电脑是windows7 64bit操作系统。 4、数据字典1) 数据项表2-1数据项名含义说明数据类型长度说明航班号机型航班信息航班信息varcharvarchar5010航班号码航班所属机型航空公司航线信息char10航班所属公司起飞城市到达城市起飞时间到达时间总票数剩余票数UsernamePswSexAgeulevel航线信息航线信息航班信息航班信息航班信息航班信息用户信息用户信息用户信息用户信息用户信息charcharcharcharvarcharvarcharcharcharcharcharc
5、har1010101050501010101010飞机起飞城市飞机到达城市飞机起飞时间飞机到达时间航班的总票数航班的剩余票数用户名密码性别年龄用户等级2) 数据结构表2-2名称简述组成companyticket定义公司相关信息定义机票相关信息公司名,公司地址,公司代码,公司电话机票号,座位,票价,航班号Flightair定义航班相关信息定义飞机相关信息航班号,出发地,到达地,出发时间,到达时间,公司代码,航班号航程,飞机号,票价3) 数据流 名称 简述 来源 去向 组成 用户 旅客相关信息 旅客本身 登录购票系统UsernamePswSexAgeulevel 4) 数据存储表2-3名称简述组成
6、CompanyFlight ticket定义公司相关信息定义机票相关信息CID,Cname, Caddress, CphoneticketID,price,seat number,Flight numberCustomerAir定义旅客相关信息定义飞机相关信息ID number,name,Pnumber,AddressAir number, Voyage, price5) 处理过程 名称 说明 输入 输出 处理User login 用户登录用户名,密码,性别,年龄,用户等级 旅 客 档 案整理用户信息5、概念结构设计 概念结构设计的方法概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,
7、然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。 概念结构设计的步骤第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们们先逐一的设计分E-R图。第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。概念模型设计ER图住址逻辑设计将ER图转换为关系模式顾客(用户名,密码,性别,年龄)。航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间
8、,到达时间,总票数,剩余票数)。Customer(Username,psw,sex,age,ulevel)Flight(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)下划线标注的属性为主码。 以上关系模式均为BCNF。 物理设计一、 为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码机建立索引。各表中简历索引的表项:(1)Customer(Username) (2)Flight(航班号)二、 用SQL实现设计1、 建立Customer表CREATE TABLE dbo.用户表( username char(10) COLLATE Chinese_PRC
9、_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) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_用户表 PRIMARY KEY CLUSTERED ( username ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF)
10、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(10) COLLATE Chinese_PRC_CI_AS NULL, 起飞城市 char(10) COLLATE Chinese_PRC_CI_AS NULL, 到达城市 char(10) COLLATE Chinese_PRC_CI_AS NULL,
11、起飞时间 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_CI_AS NULL, CONSTRAINT PK_Airplane PRIMARY KEY CLUSTERED ( 航班号 ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY)
12、 ON PRIMARY 3、 顾客操作 (1) 注册 (register) INSERT INTO 用户表(Username,psw,sex,age,ulevel) VALUES(#Username,#psw,#sex,#age,#ulevel); (2) 注销 (unregister) DELETE Customer WHERE(Username=#Username);本系统涉及到的存储过程:这是注册界面,代码如下:using System;using ;using ;using ;using ;using ;using partial class Default2 : protected
13、void Page_Load(object sender, EventArgs e) (); protected void Button2_Click(object sender, EventArgs e) (); protected void Button1_Click(object sender, EventArgs e) string Add = 注册; string constr = sss.ToString(); SqlConnection conn = new SqlConnection(); = constr; if != (); SqlCommand cmd = new Sql
14、Command(Add, conn); = ; 注册(username char(10),psw char(10),sex char(10),age char(10),ulevel char(10)asbegin insert into 用户表(username,psw,sex,age,ulevel) values(username,psw,sex,age,ulevel) endGOSET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:using System;using ;using ;
15、using ;using ;using partial class _Default : protected void Page_Load(object sender, EventArgs e) (); protected void Button2_Click(object sender, EventArgs e) (); protected void Button1_Click(object sender, EventArgs e) string Add = CheckUser; string constr = sss.ToString(); SqlConnection conn = new
16、 SqlConnection(); = constr; if != (); SqlCommand cmd = new SqlCommand(Add, conn); = ; SqlParameter Parameter1 = new SqlParameter(username, , 10); SqlParameter Parameter2 = new SqlParameter(psw, , 10); SqlParameter Parameter3 = new SqlParameter(ulevel, , 10); = ; = ; = ; DataTable table = new DataTab
17、le(); SqlDataAdapter adapter = new SqlDataAdapter(cmd); (table); SqlDataReader dr = (); CheckUser username char(10) ,psw char(10) ,ulevel char(10)ASBEGIN select * from 用户表where username=username and psw=psw and ulevel=ulevelEND管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改这里是通过拉控件方式做的,如下图:通过拉FormView和SqlDataSour
18、ce两个控件,用FormView绑定SqlDataSource,然后在SqlDataSource中配置数据源,然后新建连接如下图:选择存储过程点击完成即可,用户表则是GridView和SqlDataSource控件,方法类似就不再列举!管理员界面这里涉及到2个存储过程:dbo.查看航班表dbo.查看用户表航班表的程序:asp:SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= SelectCommand=查看航班表 SelectCommandType=StoredProcedure用户表的程序:asp:SqlDataSo
19、urce ID=SqlDataSource2 runat=server ConnectionString= SelectCommand=查看用户表 SelectCommandType=StoredProcedure这是航班管理界面通过新建可以插入新的信息!管理航班的程序:asp:SqlDataSource ID=SqlDataSource1 runat=server ConflictDetection=CompareAllValues ConnectionString= DeleteCommand=DELETE FROM Airplane WHERE 航班号 = original_航班号 AN
20、D (机型 = 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 (起飞时间 = original_起飞时间)
21、 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) InsertCommand=INSERT INTO Airplane (航班号, 机型, 航
22、空公司, 起飞城市, 到达城市, 起飞时间, 到达时间, 总票数, 剩余票数) VALUES (航班号, 机型, 航空公司, 起飞城市, 到达城市, 起飞时间, 到达时间, 总票数, 剩余票数) OldValuesParameterFormatString=original_0 SelectCommand=查看信息 UpdateCommand=UPDATE Airplane SET 机型 = 机型, 航空公司 = 航空公司, 起飞城市 = 起飞城市, 到达城市 = 到达城市, 起飞时间 = 起飞时间, 到达时间 = 到达时间, 总票数 = 总票数, 剩余票数 = 剩余票数 WHERE 航班号
23、= 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 original_到达城市 IS NULL) AND (起飞时间
24、 = 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) SelectCommandType=StoredProcedure asp:Parameter Name=origina
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1