1、管理员可以查看已订票乘客所有的订票信息,同时也可以查看所有等待订票的乘客信息。3.6 航班信息(管理员)管理员可以查看终点站、航班号、飞机型号、飞机日期、乘员定额、余票量。4,本系统对不同的用户角色有权限设置。管理员的用户名或密码是系统内设置的无法更改或注册,乘客可以通过姓名和身份证号码注册登录。(注:身份证号即为密码)二、概要分析1.1,功能模块(管理员)(可扩展)航班信息航班号飞行型号飞行日期终点站录入功能查询功能订票信息6 已订票客户为订票客户1.2,功能模块(乘客)办理是退票退票功能订票功能离开等待录入2,数据结构(C#)2.1 单链表(详见类Linklist_singly.cs) /
2、 / 结点类/summarytypeparam name=T public class Node private T data; private Node next; / 构造函数 public Node() public Node(T val) data = val; / 数据域属性 public T Data get return data; set data = value; / 引用域的属性 public Node Next get return next; set next = value; / 单链表(头结点的引用不为空) public class Linklist链表的长度 pu
3、blic int GetLength() Node p = head; int len = 0; while (p != null) +len; p = p.Next; return len; / 判断链表是否为空若为空,返回true,否则返回false public bool IsEmpty() if (head = null) return true; else return false; / 在单链表末尾添加数据param name=itemT类型的数据 public void Append(T item) q = new Node(item); p = new Node(); head
4、 = q; return; while (p.Next ! p.Next = q; / 删除单链表中第i个结点i索引号 public T Delete(int i) if (IsEmpty() | i 0) return default(T); /T是类为引用类型,返回null; if (i = 1) /删除头结点 q = head; head = head.Next; return q.Data; int j = 1;= null & j i) /p为要删除的结点,q为p前面的一个结点 +j; q = p; if (i = j) q.Next = p.Next; /删除p结点 return
5、p.Data;2.2 单链队(详见类Linklist_Queue.cs,代码略)三,功能实现本系统提供不同角色的登录功能。管理员的用户名:王昌,密码:123;用户的登录名的用户名:421126*。系统为管理员和用户分别提供了不同的功能。为了使系统的功能实现更加清晰,故本系统采用了三层架构的知识来实现不同角色的不同功能。首先,建立了三个类库,分别为数据层(DAL)、模型层(Model)、业务层(BLL)。数据层(DAL)主要是分别获取航班信息、已订票客户信息、未订票客户信息,同时还提供保存航班信息、已订票客户信息、未订票客户信息的方法。模型层(Model)提供了航班信息、已订票客户信息、未订票客
6、户信息的类,分别提供了相关信息的字段和属性。业务层(BLL)是实现用户与windows窗体交互的功能具体实现的方法。数据层(DAL)、模型层(Model)、业务层(BLL)和windows窗体,这几者之间是相互调用的。数据层需要对模型层进行引用,业务层需要调用模型层、数据层来实现相关功能,windows窗体是与业务层进行交互的,与其他的没有之间的联系。3,1模型层(Model)飞行类public class FlightInformation private string ter_name; private string air_num; private string plane_num; p
7、rivate string day; private int tkt_amt; private int tkt_sur; / 航班信息t终点站a航班号p飞机型号d飞行时间amt乘员定额sur余票量 public FlightInformation(string t, string a, string p, string d, int amt, int sur) ter_name = t; air_num = a; plane_num = p; day = d; tkt_amt = amt; tkt_sur = sur; public FlightInformation() / 终点站的属性 p
8、ublic string Ter_name get return ter_name; set ter_name = value; / 航班号的属性 public string Air_num get return air_num; set air_num = value; / 飞机型号 public string Plane_num get return plane_num; set plane_num = value; / 飞行时间 public string Day get return day; set day = value; / 乘员定额 public int Tkt_amt get
9、 return tkt_amt; set tkt_amt = value; / 余票量 public int Tkt_sur get return tkt_sur; set tkt_sur = value;已(未)订票客户信息类public class customer_book private string name; private long idnumber; private int tkt_book; / 未订票客户信息tern客户姓名身份证号订票数量起飞时间 public customer_book(string ter,string n, long i, int t, string
10、 d) ter_name = ter; name = n; idnumber = i; tkt_book = t; public customer_book() / 客户姓名的属性 public string Name get return name; set name = value; / 客户身份证号的属性 public long Idnumber get return idnumber; set idnumber = value; / 订票数量的属性 public int Tkt_book get return tkt_book; set tkt_book = value; / 飞行时间
11、的属性 / 已订票的客户信息 public class customer_booked : customer_book private string plane_number; private string air_number;_plane_air public customer_booked(string ter,string n, long i, int t, string d, string _plane, string _air) : base(ter,n, i, t, d) plane_number = _plane; air_number = _air; public custo
12、mer_booked() public string Plane_number get return plane_number; set plane_number = value; / 航班号 public string Air_number get return air_number; set air_number = value;3,2数据层(DAL)3.2.1.1获取飞行信息的方法public static List GetFlight() try if (flag1 = 1) string strText = File.ReadAllLines(Flight.txt, System.T
13、ext.Encoding.Default); string s; char a = ; for (int i = 0; i Getbooked() if (flag2 = 1)Cusbooked.txt customer_booked cus = new customer_booked(); cus.Plane_number = s0; cus.Air_number = s1; cus.Ter_name=s2; /终点站 cus.Name = s3; cus.Idnumber = long.Parse(s4); cus.Tkt_book = Int32.Parse(s5); cus.Day =
14、 s6; cusbooked.Add(cus); flag2+; return cusbooked;3.2.1.3 获取未订票客户信息的方法(代码略)3.2.2.1保存航空信息public static bool SaveFlight() if (flights.Count 1) FileStream fileStream = new FileStream(, FileMode.Create); StreamWriter stw = new StreamWriter(fileStream, System.Text.Encoding.Default); flights.Count; String
15、Builder str = new StringBuilder(); str.Append(flightsi.Ter_name.ToString() + ); str.Append(flightsi.Air_num.ToString() + str.Append(flightsi.Plane_num.ToString() + str.Append(flightsi.Day.ToString() + str.Append(flightsi.Tkt_amt.ToString() + str.Append(flightsi.Tkt_sur.ToString(); stw.WriteLine(str.ToString(); stw.Close(); fileStream.Close();3.2.2.2 保存已订票客户信息public static bool SaveBooked() if (cusbooked.Count cusbooked.Count; str.Append(cusbookedi.Plane_number.ToString() + str.Append(cusbookedi.Air_number.ToString() + str.Append(cusbookedi.Ter_name.ToString()