1、航班查询系统航班查询系统背景、目的和意义主要功能描述三、 软/ 硬件环境四、 数据库设计五、 界面设计六、 编程过程中所遇难题七、 分工协作八、 收获一、背景:学习了数据库软件 SQL 2005和 Microsoft Visual Studio 2008后想到了用这 2个软件做这个航班查询系统,通过 ASP做出SQL的界面并导入存储过程对功能进行实现!目的和意义:机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内 容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机 界面的优点 .它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是 其安全性,可靠性。它为
2、企业的决策层提供准确、精细、迅速的机票销售信息, 为乘客出行提供方便, 便于机场工作人员对机票信息进行管理, 提高了机场工作 人员对机票管理的工作效率。 为便于旅客通过代售点查询航班信息, 要求系统能 有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明 了,易于操作,服务器程序利于维护航班查询系统需要完成功能主要有:(1) 管理员对航班信息的输入、修改和查询,对用户信息的查询 。(2) 旅客信息的注册和登录及对航班信息的查询。1.1数据分析航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)旅客信息(用户名,密码,性别,年龄 )1.2
3、用户活动分析用户通过系统查询航班信息。用户活动图:1、主要功能描述2.1航班信息维护模块提供航班信息的录入、删除、修改。可以录入航班情况。 机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。当航班信息改变时可以修改航班信息数据库。2.2航班业务处理模块提供查询航班剩余票数功能。客户可以登录航班购票系统进行查询;如果该航班已经无票, 可以换乘。系统功能图/系统流程图数据流图1:管理员管理员三、软/硬件环境:使用 Microsoft Visual Studio 2008 和 Microsoft SQL Server 2005 电脑是 windows7 64bit操作系统。4
4、、数据字典1)数据项表2-1数据项名含义说明数据类型长度说明航班号航班信息varchar50航班号码航班信息varchar10航班所属机型机型航空公司航线信息char10航班所属公司起飞城市航线信息char10飞机起飞城市到达城市航线信息char10飞机到达城市起飞时间航班信息char10飞机起飞时间到达时间航班信息char10飞机到达时间总票数航班信息varchar50航班的总票数剩余票数航班信息varchar50航班的剩余票数Usern ame用户信息char10用户名Psw用户信息char10密码Sex用户信息char10性别Age用户信息char10年龄ulevel用户信息char10
5、用户等级2)数据结构表2-2名称简述组成compa ny定义公司相关信息公司名,公司地址,公司代码,公司电话ticket定义机票相关信息机票号,座位,票价,航班号Flight定义航班相关信息航班号,出发地,至泌地,出发时间,至U达时间,公司代码,航班号air定义飞机相关信息航程,飞机号,票价3)数据流名称简述来源去向组成用户旅客相关 信息旅客本身登录购票系统Usern amePswSex Age ulevel4)数据存储表2-3名称简述组成Compa ny定义公司相关信息CID,C name, Caddress, CphoneFlight ticket定义机票相关信息ticketID, pri
6、ce, seat numbe, Flight numberCustomer定义旅客相关信息ID number, name, Pnumber,AddressAir定义飞机相关信息Air nu mber, Voyage, price5)处理过程名称说明输入输出处理User log in用户登录用户名,密码, 性别,年龄,用 户等级旅客档案整理用户信息5、概念结构设计1.1概念结构设计的方法概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自 底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起, 最 终合成一个全局概念模式。1.2概念结构设计的步骤第一步是进行局部视图的
7、设计: 由于高层的数据流图只能反映系统的概貌, 而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们们先逐一的设计分 E-R图。第二步是进行视图的集成:各子系统的 E-R图设计好之后,下一步就是要将所有的分 E-R图合成一个系统的总 E-R图,一般有两个方式,多个分 E-R图一次集成,另一种是一次集成两个分E-R图。概念模型设计E R图姓名电话号码身份证号住址出发时间飞机目的地使用票价查询1航班拥有机票号公司代码号出发拥1地有n公司订票时间公司机票名顾一Q身份证*客订票到达时间机票航班票号号价座航程飞机号公司代码航空公司公司电话地址逻辑设计将ER图转换为关系模式 顾客(用户名,密码,性
8、别,年龄)。航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩 余票数)。Customer(Username, psw, sex, age ulevel)Flight(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩 余票数)下划线标注的属性为主码。以上关系模式均为 BCNF。物理设计一、 为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码机建立索引。各表中 简历索引的表项:(Customer( Username) (2)Flight(航班号)二、 用SQL实现设计1、 建立 Customer 表CREATE TABLE dbo.用
9、户表(username char(10) COLLATE Chi nese_PRC_CI_AS NOT NULL,psw char(10) COLLATE Chi nese_PRC_CI_AS NULL,sex char(10) COLLATE Chi nese_PRC_CI_AS NULL,age char(10) COLLATE Chi nese_PRC_CI_AS NULL,ulevel char(10) COLLATE Chi nese_PRC_CI_AS NULL,CONSTRAINT PK_ 用户表PRIMARY KEY CLUSTERED(username ASC)WITH (P
10、AD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON PRIMARY)ON PRIMARY2、 建立 Airplane 表CREATE TABLE dbo.Airpla ne(航班号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) CO
11、LLATE 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_CI_AS NULL, CONSTRAINT PK_Airpla ne PRIMARY KEY CLUSTERED(航班号ASC)WITH (PAD_INDEX = OFF, IGNORE_DUP_K
12、EY = OFF) ON PRIMARY )ON PRIMARY3、顾客操作(1) 注册(register)INSERT INTO 用户表(Username,psw,sex,ag,e ulevel) VALUES(#Username,#psw,#sex,#age , #ulevel);(2) 注销(unregister)DELETE CustomerWHERE(Username=#Username);本系统涉及到的存储过程:i+ dbc,CheckUser 二3 童着航班表+ 旨1+旨童看月户表 i+ Ubo.航班号 it dbo.机型i-i自dbc,g的堆 i+自dbo.注册1注册界面1用户
13、名 1密码性别S3年龄用户等级管理员*注册返回这是注册界面,代码如下 :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.Web
14、Parts;using System.Xml.Linq;using System.Data.SqlClient;public partial class Default2 : System.Web.UI.Pageprotected void Page_Load(object sender, EventArgs e)TextBox1.Focus();protected void Button2_Click(object sender, EventArgs e) Response.Redirect(Default.aspx);protected void Button1_Click(object
15、sender, EventArgs e)string Add = 注册 ;string constr = ConfigurationManager.ConnectionStringssss.ToString();SqlConnection conn = new SqlConnection(); conn.ConnectionString = constr; if (conn.State != ConnectionState.Open) conn.Open();SqlCommand cmd = new SqlCommand(Add, conn);cmd.CommandType = Command
16、Type.StoredProcedure; / 这是告诉程序这是执行存储过程SqlParameter Parameter1 = new SqlParameter(username, SqlDbType.Char, 10);SqlParameter Parameter2 = new SqlParameter(psw, SqlDbType.Char, 10);SqlParameter Parameter3 = new SqlParameter(sex, SqlDbType.Char, 10);SqlParameter Parameter4 = new SqlParameter(age, SqlDb
17、Type.Char, 10);SqlParameter Parameter5 = new SqlParameter(ulevel, SqlDbType.Char, 10); Parameter1.Value = TextBox1.Text;Parameter2.Value = TextBox2.Text;Parameter3.Value = DropDownList1.Text;Parameter4.Value = TextBox3.Text;Parameter5.Value = DropDownList2.Text;cmd.Parameters.Add(Parameter1);cmd.Par
18、ameters.Add(Parameter2);cmd.Parameters.Add(Parameter3);cmd.Parameters.Add(Parameter4);cmd.Parameters.Add(Parameter5);DataTable table = new DataTable();SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.Fill(table);conn.Close();Response.Redirect(Default.aspx);代码中引用了注册的存储过程:SET ANSI_NULLS ONGOSE
19、T QUOTED_IDENTIFIER ONGOcreate proc dbo. 注册 (username char(10),psw char(10),sex char(10),age char(10),ulevel char(10)asbegininsert into 用户表 (username,psw,sex,age,ulevel) values(username,psw,sex,age,ulevel)endGOSET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO航班查询系织loCialhost:4B30上的网页显示:用户容:admin用户轻丑密那
20、逅戸号毁港=隔 用户等级:用户注flfl这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:using System;using System.Configuration;using System.Data;using Syste m. Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.Ul.HtmIControls;using System.Web.Ul.WebControls;using System.Web.Ul.WebControls.WebParts;
21、using System.Xm l. Linq;using System.Data.SqlClient;public partial class _Default : System.Web.Ul.Pageprotected void Page_Load(object sender, EventArgs e)TextBox1.Focus();protected void Button2_Click(object sender, EventArgs e)Response.Redirect(Default.aspx);protected void Button1_Click(object sende
22、r, EventArgs e)string Add = CheckUser;string constr = ConfigurationManager.ConnectionStringssss.ToString();SqlConnection conn = new SqlConnection();conn.ConnectionString = constr;if (conn.State != ConnectionState.Open)conn.Open();SqlCommand cmd = new SqlCommand(Add, conn); cmd.CommandType = CommandT
23、ype.StoredProcedure;SqlParameter Parameter1 = new SqlParameter(username, SqlDbType.Char, 10);SqlParameter Parameter2 = new SqlParameter(psw, SqlDbType.Char, 10);SqlParameter Parameter3 = new SqlParameter(ulevel, SqlDbType.Char, 10); Parameter1.Value = TextBox1.Text;Parameter2.Value = TextBox2.Text;P
24、arameter3.Value = DropDownList1.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2); cmd.Parameters.Add(Parameter3); DataTable table = new DataTable();SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.Fill(table);SqlDataReader dr = cmd.ExecuteReader(); / 调用 executereade(r )方法
25、得到 dr 对象dr.Read();if (dr.HasRows) / 如果有返回记录存在if (DropDownList1.Text = 管理员 )Sessionpass = admin; Response.Redirect(manager.aspx);elseSessionpass = guest; Response.Redirect(guest.aspx); else Response.Write(alert用户名或密码或用户等级错误! ););return; 代码中使用的登录的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ONGOALTER
26、 PROCEDURE dbo.CheckUseruser name char(10),psw char(10),ulevel char(10)ASBEGINselect * from 用户表 where username=username and psw=psw and ulevel=ulevelEND这呈管理员页面航班号机疊航空售可起飞城市到达城市起飞时间到达时何忌票数剌余祟数123123123123123123123123123CA1321液音国航北京广州12 17 200912 17 200910096CA1324液音国航北京广州12 17 200912 17 20091D096CA15
27、19液音国航北京挤南12 17 200912 17 2009100100CA42D9国航西安12 17 200912 17 2009100100CZ3162曰南航rfti匕京12 17 200912 17 2009100100CZ3206南航广州西安12 17 200912 17 2009100100用户裏(23427空客3QQ南航广州咸都12 17 200912 17 200910099CZ6301空容和0閘航沈BE广州12 17 200912 17 2009100100Fill 508妻道东肮南厅,沈阳12 17 200912 17 2009100100HU7303麦道东航太原眉门12 17 200912 17 2009100100NF81L1液音乘航海庫太原12 17 200912 17 20091QQ100NU5104空客3QQ东航上海重庆12 17 200912 17 2009100100它遲駄班KU5403空容和0东航12 17 200912 17 200910099管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改 这里是通过拉控件方式做的,如下图:通过拉 FormView 和 SqlDataSource 两个控件,用 FormView 绑定 SqlDataSource,然后在SqlDa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1