航空售票系统设计报告源代码Word文档下载推荐.docx
《航空售票系统设计报告源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《航空售票系统设计报告源代码Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
管理员可以查看已订票乘客所有的订票信息,同时也可以查看所有等待订票的乘客信息。
3.6航班信息(管理员)
管理员可以查看终点站、航班号、飞机型号、飞机日期、乘员定额、余票量。
4,本系统对不同的用户角色有权限设置。
管理员的用户名或密码是系统内设置的无法更改或注册,乘客可以通过姓名和身份证号码注册登录。
(注:
身份证号即为密码)
二、概要分析
1.1,功能模块(管理员)
……(可扩展)
航班信息
航班号
飞行型号
飞行日期
终点站
录入功能
查询功能
订票信息
6
已订票客户
为订票客户
1.2,功能模块(乘客)
办理
是
退票
退票功能
订票功能
离开
等待
录入
2,数据结构(C#)
2.1单链表(详见类Linklist_singly.cs)
///<
summary>
///结点类
/summary>
typeparamname="
T"
>
<
/typeparam>
publicclassNode<
T>
{
privateTdata;
privateNode<
next;
///构造函数
publicNode(){}
publicNode(Tval)
data=val;
}
///数据域属性
publicTData
get{returndata;
set{data=value;
///引用域的属性
publicNode<
Next
get{returnnext;
set{next=value;
///单链表(头结点的引用不为空)
publicclassLinklist<
head;
publicLinklist()
head=null;
///头引用的属性
Head
get{returnhead;
set{head=value;
///求单链表的长度
returns>
链表的长度<
/returns>
publicintGetLength()
Node<
p=head;
intlen=0;
while(p!
=null)
++len;
p=p.Next;
returnlen;
///判断链表是否为空
若为空,返回true,否则返回false<
publicboolIsEmpty()
if(head==null)
returntrue;
else
returnfalse;
///在单链表末尾添加数据
paramname="
item"
T类型的数据<
/param>
publicvoidAppend(Titem)
q=newNode<
(item);
p=newNode<
();
head=q;
return;
while(p.Next!
p.Next=q;
///删除单链表中第i个结点
i"
索引号<
publicTDelete(inti)
if(IsEmpty()||i<
0)
returndefault(T);
//T是类为引用类型,返回null;
if(i==1)//删除头结点
q=head;
head=head.Next;
returnq.Data;
intj=1;
=null&
&
j<
i)//p为要删除的结点,q为p前面的一个结点
++j;
q=p;
if(i==j)
q.Next=p.Next;
//删除p结点
returnp.Data;
2.2单链队(详见类Linklist_Queue.cs,代码略)
三,功能实现
本系统提供不同角色的登录功能。
管理员的用户名:
王昌,密码:
123;
用户的登录名的用户名:
421126************。
系统为管理员和用户分别提供了不同的功能。
为了使系统的功能实现更加清晰,故本系统采用了三层架构的知识来实现不同角色的不同功能。
首先,建立了三个类库,分别为数据层(DAL)、模型层(Model)、业务层(BLL)。
数据层(DAL)主要是分别获取航班信息、已订票客户信息、未订票客户信息,同时还提供保存航班信息、已订票客户信息、未订票客户信息的方法。
模型层(Model)提供了航班信息、已订票客户信息、未订票客户信息的类,分别提供了相关信息的字段和属性。
业务层(BLL)是实现用户与windows窗体交互的功能具体实现的方法。
数据层(DAL)、模型层(Model)、业务层(BLL)和windows窗体,这几者之间是相互调用的。
数据层需要对模型层进行引用,业务层需要调用模型层、数据层来实现相关功能,windows窗体是与业务层进行交互的,与其他的没有之间的联系。
3,1模型层(Model)
飞行类
publicclassFlightInformation
privatestringter_name;
privatestringair_num;
privatestringplane_num;
privatestringday;
privateinttkt_amt;
privateinttkt_sur;
///航班信息
t"
终点站<
a"
航班号<
p"
飞机型号<
d"
飞行时间<
amt"
乘员定额<
sur"
余票量<
publicFlightInformation(stringt,stringa,stringp,stringd,intamt,intsur)
ter_name=t;
air_num=a;
plane_num=p;
day=d;
tkt_amt=amt;
tkt_sur=sur;
publicFlightInformation(){}
///终点站的属性
publicstringTer_name
get{returnter_name;
set{ter_name=value;
///航班号的属性
publicstringAir_num
get{returnair_num;
set{air_num=value;
///飞机型号
publicstringPlane_num
get{returnplane_num;
set{plane_num=value;
///飞行时间
publicstringDay
get{returnday;
set{day=value;
///乘员定额
publicintTkt_amt
get{returntkt_amt;
set{tkt_amt=value;
///余票量
publicintTkt_sur
get{returntkt_sur;
set{tkt_sur=value;
已(未)订票客户信息类
publicclasscustomer_book
privatestringname;
privatelongidnumber;
privateinttkt_book;
///未订票客户信息
ter"
n"
客户姓名<
身份证号<
订票数量<
起飞时间<
publiccustomer_book(stringter,stringn,longi,intt,stringd)
ter_name=ter;
name=n;
idnumber=i;
tkt_book=t;
publiccustomer_book(){}
///客户姓名的属性
publicstringName
get{returnname;
set{name=value;
///客户身份证号的属性
publiclongIdnumber
get{returnidnumber;
set{idnumber=value;
///订票数量的属性
publicintTkt_book
get{returntkt_book;
set{tkt_book=value;
///飞行时间的属性
///已订票的客户信息
publicclasscustomer_booked:
customer_book
privatestringplane_number;
privatestringair_number;
_plane"
_air"
publiccustomer_booked(stringter,stringn,longi,intt,stringd,string_plane,string_air)
:
base(ter,n,i,t,d)
plane_number=_plane;
air_number=_air;
publiccustomer_booked(){}
publicstringPlane_number
get{returnplane_number;
set{plane_number=value;
///航班号
publicstringAir_number
get{returnair_number;
set{air_number=value;
3,2数据层(DAL)
3.2.1.1获取飞行信息的方法
publicstaticList<
FlightInformation>
GetFlight()
try
if(flag1==1)
string[]strText=File.ReadAllLines("
Flight.txt"
System.Text.Encoding.Default);
string[]s;
chara='
'
;
for(inti=0;
i<
strText.Length;
i++)
s=strText[i].Split(a);
FlightInformationfli=newFlightInformation();
fli.Ter_name=s[0];
fli.Air_num=s[1];
fli.Plane_num=s[2];
fli.Day=s[3];
fli.Tkt_amt=Int32.Parse(s[4]);
fli.Tkt_sur=Int32.Parse(s[5]);
flights.Add(fli);
flag1++;
catch
returnnull;
returnflights;
3.2.1.2获取已订票客户信息的方法
customer_booked>
Getbooked()
if(flag2==1)
Cusbooked.txt"
customer_bookedcus=newcustomer_booked();
cus.Plane_number=s[0];
cus.Air_number=s[1];
cus.Ter_name=s[2];
//终点站
cus.Name=s[3];
cus.Idnumber=long.Parse(s[4]);
cus.Tkt_book=Int32.Parse(s[5]);
cus.Day=s[6];
cusbooked.Add(cus);
flag2++;
returncusbooked;
3.2.1.3获取未订票客户信息的方法(代码略)
3.2.2.1保存航空信息
publicstaticboolSaveFlight()
if(flights.Count<
1)
FileStreamfileStream=newFileStream("
FileMode.Create);
StreamWriterstw=newStreamWriter(fileStream,System.Text.Encoding.Default);
flights.Count;
StringBuilderstr=newStringBuilder();
str.Append(flights[i].Ter_name.ToString()+"
"
);
str.Append(flights[i].Air_num.ToString()+"
str.Append(flights[i].Plane_num.ToString()+"
str.Append(flights[i].Day.ToString()+"
str.Append(flights[i].Tkt_amt.ToString()+"
str.Append(flights[i].Tkt_sur.ToString());
stw.WriteLine(str.ToString());
stw.Close();
fileStream.Close();
3.2.2.2保存已订票客户信息
publicstaticboolSaveBooked()
if(cusbooked.Count<
cusbooked.Count;
str.Append(cusbooked[i].Plane_number.ToString()+"
str.Append(cusbooked[i].Air_number.ToString()+"
str.Append(cusbooked[i].Ter_name.ToString()