航空订票系统详细设计

航空订票系统详细设计
航空订票系统详细设计

详细设计报告

一、引言

1.1 编写目的:

本阶段在系统的需求分析的基础上,对航空订票系统做详细设计。主要解决了实现该系统程序模块具体设计问题。包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。

在下一阶段的编码过程中,程序设计员可参考此详细设计报告,在详细设计对机票预定系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。

1.2 项目背景:

开发软件名称:航空订票系统。

用户:航空公司运行环境:宿舍电脑。开发平台:MyEclipse 7.0 PostgreSql 数据库。

系统架构:该系统采用java+jsp 框架

1.3 定义:

查询:对数据库的操作的一种,用于搜索数据信息。插入:对数据库的操作的一种,用于将数据存入数据库中。更新:对数据库的操作的一种,用于更改数据库中的数据信息。

PostgreSql: 系统服务器所使用的数据库管理系统(DBMS)。

SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。

1.4 参考资料:

需求分析说明书软件开发小组

软件工程齐治昌谭庆平宁洪等高等教育出版社

实用软件工程郑人杰等,清华大学出版社。

二、总体设计

2.1 需求概述

航空订票系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。具体功能为用户把预定机票的旅客信息(姓名、性别、身份证号码(护照号码)、乘坐时间、出行始发地和目的地等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。同时还需完成旅客延误了取票时间的处理,航班取消后的处理,旅客临时更改航班的处理等。

根据可行性研究的结果和客户的要求,分析现有情况及问题,采用B/S 结构,将机票预定系统划主要就是服务器端子系统。

2.2 软件结构:

图1 软件结构图

三、程序描述

3.1 各功能详细描述:

本系统主要用于机票预订,所以提供了以下几个子功能:机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。

1、机票预订功能:用户和机场管理员有权力进行该项功能。首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。

2、取票通知:该项功能只有用户和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。

3、查询航班:可以通过输入出发地,目的地,日期和时间选定自己航班。

4、查询机票:该项功能用户、游客、管理员都可以操作,可以通过自己的身份证号以及取票通知上的机票号查询自己的机票信息。

5、退订机票:该功能只有用户和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。

6、打印机票:该功能只有机场管理员有权力操作,只有当管理员确认旅客已经付款后才予以打印机票,可以通过身份证号和对应的取票信息上的机票号查询机票信息,然后服务器返回机票信息,管理员就可以打印该机票信息,交给旅客。

7、各航班的营运统计:该项功能只有机场管理员才能操作,他可以通过输入年份和月份查询当月个航班的营运情况,以便机场能够及时掌握航班动态。

8、后台的航班添加:该项功能只有机场管理员才能操作,他通过提供航班的具体信息 添加航班信息。 9、后台的取消航班:该项功能只有机场管理员才能操作,先通过航班号和航班日期查 询到航班信息后,取

消航班就可以将该航班从数据库中删除。

10、后台的航班查询: 该项功能只有机场管理员才能操作, 通过航班号和航班日期查询 到航班信息。 11、后台的机票生成: 该项功能只有机场管理员才能操作, 可以通过该项功能给刚添加 的航班生成对应的

飞机票号纪录。

3.2 主要的系统功能模块如下:

(1) 管理员登陆模块 ManagerDAO.getManager()

(2) 管理员修改密码模块 ManagerDAO.modifyPassword() (3) 删除用户 ManagerDAO.deleteConsumer() (4) 添加新管理员 ManagerDAO.addManager() (5) 删除管理员模块 ManagerDAO.deleteManager() (6) 发布新航班模块 ManagerDAO.addNewFlight() (7) 删除航班模块 ManagerDAO.deleteFlight()

(8) 根据信息查看航班信息模块 ConsumerDAO.getFlightByInformation()

1、用户模块:用户用例图如图 2 所示

(1) 用户登陆模块 ConsumerDAO.getConsumer() (2) 用户注册模块 ConsumerDAO.register()

(3) 查询航班模块

ConsumerDAO.getFlightByInformation()

(4) 订票模块 ConsumerDAO.orderTicket()

(5) 修改密码模块 ConsumerDAO.modifyPassword() (6) 付款模块 ConsumerDAO.paying() (7)

生成交易信息并 2、 退票模块 ConsumerDAO.returnTicket()

用户注册或登录

搜索飞机票

普通用户

删除已定机票

预订飞机票

付款

请用户确认

图2

管理员模块:管理员用例图如图 3 所示

信息采集器

3.3 数据库设计:

字段名 字段类型

是 否 为 空 默 认 值

字段含义 注释

consumerId VARCHAR2

(10) N

用户编号 用以标示不同用户。

consumerName

VARCHAR2 (20) N

用户名称

用户自己取的名字有利于用户 记忆,可以用来登录等。

consumerPasswor d

VARCHAR2 (20) N

用户密码

用于确定用户身份。

consumerGender VARCHAR2

(1) N

用户性别

consumerBooking Fligt

VARCHAR2 (20) Y

用户已订票航 班 用于储存用户已订票的航班。

consumerBooking Seat

VARCHAR2 (20) Y

用户已定机票

的座位号 用于储存用户已订票航班的座 位号。 consumerIDCardO

rPassportNo VARCHAR2

(20) N

用户的身份证

号或护照号

用户取票的凭证 (身份证号或护 照号)

删除用户 3 、创新点——通过关键字从其他网站找到一些信息推荐给用户模块

: 用例如图 4 所示。

推荐信息模块 InformationDAO.getInformationByKeyWord()

附近餐馆信息

管理员修改密码

管理员登录 查看航班信息

删除管理员

增加新管理员

管理员

发布新航班

删除航班

图3

交通状况

附近旅馆信息

管理员(Manager)

座位表()

、流程图:

request 对象写向服务

出票请求查询航班请求修改密码请登陆请求

调用调用调用调用

TicketOrder

D

AO FligthDao Branc h Dao Branc hDao

封装response 对象

将response 对象写往客

解析request 对象将结果显示在客

图5 流程图

3.5 DAO 接口设计

设计了通用的DAO接口,而不是直接写访问数据库的实现类,这样可以创建不同的实现类来实现接

口,使标准制定和标准实现分离。当换了数据库,或者换了数据库访问技术,就可以写新的实现类,不用改变原来的代码。如定义FlightDAO 接口,若从文件中读取数据可以定义FlightDaoFromFile 实现类,若利用JDBC访问数据可以定义FlightDaoFromJDBC 实现类,若利用hibernate 访问数据可以定义FlightDaoFromHibernate 实现类等。

3.5.1 FlightDAO

flightDAO 用来航班计划,航班的数据访问。

package com.tarena.abs.dao;

import com.tarena.abs.model.*;

import java.util.*;

// 对航班和航班计划数据访问的接口。

public interface FlightDAO{

// 根据指定出发地,目的地和出发日期在底层数据源中查找

// 得到所有的航班对象的集合。

public Set getAllFlights(String fromAddr,String toAddr,Calendar date);

// 执行出票的操作。

public boolean order(Order ord);

// 添加指定的航班计划对象。

public boolean addFlightSchedular(FlightSchedular fs);

// 根据给定的航班编号在底层数据源中删除该航班计划,

// 以及该计划下的所有航班。

public boolean removeFlightSchedular(String flightNumber);

// 得到所有航班计划对象

public Set getAllFlightSchedulars();

// 添加航班

public boolean addFlight(Flight fl);

}

3.5.2 TicketOrderDAO

TicketOrderDAO 用来访问票单数据。

package com.tarena.abs.dao; import java.util.Set;

import java.util.Calendar;

import com.tarena.abs.model.*;

// 机票出票记录访问接口

public interface TicketOrderDAO {

// 执行出票的操作。

public boolean order(Order ord);

// 执行退票操作。

public boolean cancelOrder(int TicketNumber);

// 查询指定营业网点在指定时间段内的出票记录

public Set getAllTicketOrder(Branch branch,Calendar startDate,Calendar

endDate);

// 得到指定营业网点指定日期内的营业额。

public double getAllTicketMoney(Branch branch,Calendar startDate,Calendar endDate);

// 得到所有营业网点指定日期内的营业额

public double getAllTicketMoney(Calendar startDate,Calendar endDate);

// 查询所有出票信息

public Set getAllTicketOrder();

}

4 关健代码分析

4.1 流程代码分析服务器启动时读取配置文件,读取数据,并且服务器端ServerSocket 等待客户端线程访问,当收到客户端相应后,则创建一个新的服务线程执行服务。

ServerSocket ss=null;

Socket s=null;

try {

// 创建服务器socket

ss=new

ServerSocket(Integer.parseInt(pro.getProperty("ServerPort")));

while(true){

s=ss.accept();

}

// 转发给serverThread 处理(传递socket 参数) new ServerThread(s).start()

}

} catch (IOException e)

{ e.printStackTrace();

服务线程ServerThread 通过构造函数接受socket ,然后转发给Controller public class ServerThread extends

Thread{ Socket s;

protected ServerThread(Socket s){ //

this.s=s;

用传入的socket 初始化} public void run(){

try {

new Controller(s).handle(); // }

catch (Exception e)

{ e.printStackTrace();

交给控制器处理

}finally{

try{s.close();}catch(IOException e){}

}

}

}

由controller 调用handle 方法,分析请求对象。

if(type.equals("login")){ // 登陆处理

loginHandle(req);

}else if(type.equals("flightSearch")){ // flightSearchHandle(req);

}else if(type.equals("order")){ //

航班计划查询处理订单处理

orderHandle();

}else if(type.equals("quit")){ // 退出处理

//quitHandle();

break;

}else if(type.equals("modifyPasswd")){

modifyPasswd(req);

}

有不同的处理程序,调用相应的dao 将查询信息封装到response 中。

hs=(HashSet)(flightDao.getAllFlights(fromAddr,toAddr,cal)); Response res=new

Response("flightSearch"); res.setData(hs);

4.2 用表格显示表单当客户端查询到航班计划时,把flightlist 航班集合传给FlightTableModel, FLightTableModel 传给JTable ,然后把JTable 加入JScorllPane ,就会自动显示数据。

再把FlightTableModel ftm = new FlightTableModel(flightlist);

JTable jt = new JTable(ftm); ClientMainClass.clientFrame.setTable(jt);

FlightTableModel 实现了AbstractTableModel 接口,实现了如下四个方法。package

com.tarena.abs.client;

import javax.swing.table.*;

import java.util.*;

import com.tarena.abs.model.*;

public class FlightTableModel extends AbstractTableModel{

ArrayList s;

public FlightTableModel(ArrayList s){

this.s=s;

}

// 获得列名

public String getColumnName(int arg0) { switch(arg0){

case 0:return "航班号";

case 1:return "出发地";

case 2:return "目的地";

case 3:return "起飞时间"

case 4:return "到达时间"

case 5:return "机型";

case 6:return "票价";

case 7:return "头等舱";

case 8:return "公务舱";

case 9:return "经济舱";

default: return null;

}

// 获得行数

public int getColumnCount() {

return 10;

}

// 获得列数

public int getRowCount() {

return s.size();

}

// 获得指定位置的值

public Object getValueAt(int row, int col) {

Flight f=(Flight)s.get(row);

if(row<0 || row>s.size())

return null;

switch(col){

case 0: return f.getSch().getFlightNumber();

case 1: return f.getSch().getFromAddress();

case 2: return f.getSch().getToAddress();

case 3: return f.getSch().getFromTime();

case 4: return f.getSch().getToTime();

case 5: return f.getSch().getPlane();

case 6: return

(int)(f.getSch().getPrice()*f.getPriceOff());

case 7: return f.getFCSRemain();

case 8: return f.getBCSRemain();

case 9: return f.getECSRemain(); default: return null;

}

}

}

4.3 Hibernate 映射关系

1、构建pojo(Plain Old Java Objects) 对象

用JDBC 储存数据时,涉及多个表格的修改,查找。工作难度较大。所以考虑用hibernate

实现数据储存。首先把模型改写为标准pojo 。

(1) 添加Long 类型的oid 属性。

(2) 为保存每个属性添加getter ,setter 方法。

(3) 添加无参构造函数。

(4) 写hibernate 映射文件。

2、Hibernate 储存原理

当储存数据时,hibernate 自动调用getter 方法,把属性存入相应字段。

当读取数据时,hibernate 自动调用无参构造方法创建对象,然后调用setter 方法给对象赋值,从而产生和原来对象相等( equals )的对象。

当增、删、改操作时,hibernate 会自动把与原数据相关联的表的字段修改(必须设置级联)。

3、映射关系分析

(1) 航班计划和飞机型号是多对一关系:每个航班计划都包含飞机型号属性,各飞机型号会被多个航班计划引用。

(2) 航班和航班计划是多对一的关系:每个航班都属于某个航班计划,因此每个航班都包含一个航班计划属性,而每个航班表都有一个外间指向航班计划的id 子段。

(3) 定单与航班是多对一关系:一个定单包含的航班信息有它包含的航班属性得到,通过航班属性还可以得到航班计划和飞机型号的信息。每个定单只能有一个航班,每个航班可以包含在多个定单中,因此定单与航班是多对一关系。

(4) 定单和网点是多对一的关系:原理同定单和航班的关系。

5 总结

航空订票系统使用软件分层结构,利用面向对象的设计方法,并把学到的知识应用于实践。实现了稳定、可维护、可扩展性的软件,并且完成业务需求。如做以下改进会使系统更加完善:

1、初始化配置参数:程序是直接读配置文件来读取初始化参数的,如下所示:

ServerIP=127.0.0.1

ServerPort=8888 可以将此参数放入程序中,由用户或管理员输入,来选侧不同的服务器。客户端的参数设置及重新连接功能有待实现。

2、服务器掉线:默认是实现是客户端先退出,通知服务器,服务器从内存中删掉此客户端,然后客户端关闭连接。

private void quitHandle(Request req){

String currentUserName=(String)req.getData("currentUser"); for(Object

o:onlineAgent){ Branch a = (Branch)o;

if(a.getName().equals(currentUserName)){ onlineAgent.remove(a);

}

} try { s.close();

} catch (IOException e) { e.printStackTrace();}

} 但是,当服务器由于网络故障,或者系统维修时,临时断开,没有通知客户端,当客户端此时向服务器发请求时,便会出现想不到的错误。一个有效的解决方法是:利用观察者模式。在服务器推出方法中遍历在线客户端socket ,发送等待信息。

Private void quit(){

For(Socket s:Currentsockets){ ······ // 封装等待信号给客户端

}

} 客户端受到等待信号后,执行waitServer() 方法,并禁止操作。

3、请求响应对象:

现在的request 对象封装了String 类型的Type 变量代表请求类型。Response 对象包装了Object 类型的Date 变量作为相应。可以把请求对象作为枚举类型,更安全,不易出错。

4、数据显示的轮动更新:

服务器端显示航班信息,网点信息,出现一张表,该表不能滚动和更新。可以利用可滚动、可更新的结果集以及Swing 的某些特性实现excel 中的实时修改数据功能。实现此功能较为复杂。

3.3 数据库连接的的主要代码块

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class DBUtils {

static {

try {

Class. forName ( "org.postgresql.Driver");

}catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

}

e.printStackTrace();

} public static Connection getConnection()throws SQLException{ Connection

DriverManager. " , "postgres"

getConnection

, "123" );

conn

( "jdbc:postgresql://localhost/postgres

return conn;

}

3.3 页面设计

主要的几个系统页面有登陆页面,主页面,已经其他子系统页面。页面代码如下:

主要代码:

<%

session.setAttribute( "use" , "traveller" );

String UserName=(String)request.getParameter( "username" );

String Password=(String)request.getParameter( "password" );

String Select=(String)request.getParameter( "load" ); if

(UserName.equals( "" ) || Password.equals( "" ))

{ out.print(show.errorBox( "请填写完整!" , "验证错误"));

} else

int intT=0;

if (Select!= null &&Select.equals( "user" )){

intT=data.getRowCount( "userload WHERE userid='" +UserName+"' AND password='" +Password+"'" );

if

(intT>0){ session.setAttribu

te( session.setAttribute( res

ponse.sendRedirect(

} else { out.print(show.errorBox( return ;

} "name" ,UserName); "use" , "user" );

"index_user.jsp" );

"检查你的用户名或密码!", "验证错误"));

}else if (Select!= null &&Select.equals( "admin" )){

intT=data.getRowCount( "adminload WHERE userid='" +UserName+"' AND

password='" +Password+"'" ); if

(intT>0){ session.setAttribute( session.setAttribute( response.sendRedirect(

} else { out.print(show.errorBox( return ; }

}else { out.print(show.errorBox( return ;

} }

%>

主要代码:

<%String use=(String)session.getAttribute( "use" ); %>

height ="83" >

cellspacing =0 border ="0" >

="36" >

width ='200' id =movewdg height ='120' onMouseOver=movewdg.stop() onMouseOut=movewdg.start() >

北京 汉城 价格:¥ 2200 >北京 东京 价格:¥ 3000 >北京 纽约 价格:¥ 4000 >北京 温哥华 价格:¥ 4500

"name" ,UserName);

"use" , "admin" ); "index_user.jsp" );

" 检查你的用户名或密码! "," 验证错误 "));

"检查你的用户名或密码! ", "验证错误 "));

='200' id =movewdg height ='157' onMouseOver=movewdg.stop()

onMouseOut=movewdg.start()>

='200' id =movewdg height ='78' onMouseOver=movewdg.stop() onMouseOut=movewdg.start() >

本月12日发往东京的k8888 航班取消,请旅行社尽快与相关旅客取得联系,更改航班。

本月20日发往济南的k7777 航班取消,请旅行社尽快与相关旅客取得联系,更改航班。

<%if (use.equals( "user" )){ %>

src ="image/main1.jpg" width ="800" height ="489" border ="0" usemap="#Map1"><%} else if (use.equals( "admin" )){ %>

<%} else { %><%} %>

主要代码:

<%

Show show= new Show();

Str str= new Str();

Conn con= new Conn();

机票预订系统详细设计说明书

1引言 (3) 1.1编写目的 (3) 1.2背景 (3) 1.3定义 (3) 1.4参考资料 (4) 2程序系统的结构 (4) 3查询订票程序设计说明 (5) 3.1程序描述 (5) 3.2功能 (6) 3.3性能 (6) 3.4输人项 (6) 3.5输出项 (7) 3.6算法 (7) 3.7流程逻辑 (8) 3.8接口 (9) 3.9存储分配 (10) 3.10注释设计 (10) 3.11限制条件 (10) 3.12测试计划 (10) 3.13尚未解决的问题 (10) 4退票程序设计说明 (10) 4.1程序描述 (10) 4.2功能 (11) 4.3性能 (11) 4.4输人项 (11) 4.5输出项 (11) 4.6算法 (12) 4.7流程逻辑 (12) 4.8接口 (13) 4.9存储分配 (14) 3.10注释设计 (14) 4.11限制条件 (14) 4.12测试计划 (14) 4.13尚未解决的问题 (14) 4.1程序描述 (9) 4.2功能 (10) 4.3性能 (10) 4.4输人项 (10) 4.5输出项 (10) 4.6算法 (11)

4.7流程逻辑 (11) 4.8接口 (12) 4.9存储分配 (13) 4.10注释设计 (13) 4.11限制条件 (13) 4.12测试计划 (13) 4.13尚未解决的问题 (13)

详细设计说明书 1引言 1.1编写目的 在本机票预定系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明。 本阶段已在系统的概要设计的基础上,对机票预定系统做详细设计。主要解决了实现该系统程序模块具体设计问题。包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。 在下一阶段的编码过程中,程序设计员可参考此详细设计报告,在详细设计对机票预定系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。 1.2背景 开发软件名称:机票预订系统。 开发者:张锐钦 用户:航空公司,旅行社,乘客 运行环境:个人电脑 开发平台:MyEclipse 7.0 Mysql数据库。 系统架构:该系统采用java+jsp完成,用AWT开发系统界面设计。 1.3定义 查询:对数据库的操作的一种,用于搜索数据信息。 插入:对数据库的操作的一种,用于将数据存入数据库中。

5-飞机订票系统详细设计说明书

5-飞机订票系统详细设计说明书

文档编号: 版本号:v1.0 详细设计说明书 项目名称飞机订票系统 项目负责人何柳青 本文档编写者何柳青 项目开发者计算机081第二组 2010年12月4日

1.引言 1.1编写目的 本文档将对《飞机订票系统》的程序进行详细解析,是程序员编写代码的基础。本文档的读者是设计人员和程序员。 1.2背景 开发软件名称:飞机票订系统。 (1)项目任务提出者:中国民航及中国国际旅游开发公司。 (2)项目开发者:何柳靑,陆银琳,李欣纯,单国英,阿依古丽 (3)项目与其他软件,系统的关系:该系统采用现代流行WINDOWS操作界面。是标准的WIN32应用程序,可运行在WIN95 \WIN98 \WinMe \WIN2000 \WINXP \WIN7 \WINNT 等系统平台上的多任务应用程序。 1.3参考资料 《软件工程导论》清华大学出版社张海藩编著 《实用软件工程》清华大学出版社郑人杰等编著 《数据库系统概论(第三版)》高等教育出版社萨师煊王珊等编著《实用软件文档写作》清华大学出版社肖刚等编著 《软件工程》第3版人民邮电出版社张海藩等编著 2.程序系统的结构 本程序每个子系统所包含的单元文件名称及其程序层次结构如表所示,对于特别简单的程序模块,其程序层次结构非常简单,在此从略,仅给出较为复杂的程序层次结构。 2.1运行环境 (1) 设备 硬件最低要求:内存512MB,硬盘50MB以上 (2) 支持软件 操作系统:WIN95\WIN98\WinMe\WIN2000\WINXP\WIN7\WINNT等

2.2 系统组织结构 此飞机订票系统共分为两大模块:后台管理员模块和前台票务员模块。后台管理员模块功能为航班信息调整,包括增加新航班、删除航班、修改航班信息;前台票务员模块功能为乘客信息管理,订票管理,航班信息查询。 飞机订票系统 登录验证乘客 信息 管理 航班 信息 查询 航班 信息 管理 后台管理员验证 乘 客 票 务 信 息 修 改 前 台 票 务 员 验 证 乘 客 基 本 信 息 修 改 按 航 班 号 查 询 按 目 的 地 查 询 按 时 间 查 询 增 加 新 航 班 乘 客 订 票 修 改 原 有 航 班 订 票 管 理 改 签 删 除 航 班 退 票 乘 客 基 本 信 息 录 入 图1.飞机订票系统程序层次结构 后台管理员 管 理 员 登 录 航班 信息 管理 身 份 验 证 增加 新航 班 修改 原有 航班 信息 删除 航班 图2.后台管理员模块程序层次图

飞机订票系统课程设计报告

数据结构 课程设计报告 院系:信息管理学院 专业:软件工程 班级:软件Q1141 学号:11150132 姓名:王毅 教师:邓沌华 时间:2013. 4 一、问题描述 题目:飞机订票系统 题目要求: (1)可以录入航班情况 (2)可以查询某个航线的情况(如,输入航班号,查询起降时间, 起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)可以退票,退票后修改相关数据文件;

(5)当航班信息改变可以修改航班数据文件 二、系统分析及设计 1 2、概要设计 主函数中 flight a[15]; //全局航班数组,存储供测试的航班信息,一共15架飞机,航班信 息可以在所有文件中改变 o_customer co; //全局乘客数组存储已经买了票的顾客信息,顾客信息可以在所有文 件中调用、修改 int k = 15; //全局变量,当前的共有航班的辆数,也可被所有文件调用和修改供测试的航班情况如下:

○1按航班号查询航班int number_check() //有此辆航班则返回1,无则返回0 ○2按终点站查询航班int station_check() //有到该站的航班则返回1,无则返回0. ○3订票 int Init(int k);//录入乘客信息,订票成功返回1,否则返回0. order_f() //订票函数 { m = n = 0; m = number_check();//乘客选择航班号方式的查询航班,m = 1方可订票 n = station_check();//乘客选择终点站查询方法查询航班,n = 1,方可订票 if(Init(0) == 0){} //按编号查询,只显示一个编号的信息,票存在,但订票失败就给予其它方案 if(Init(k) == 0){}//按照终点站查询,订票失败时给予相应处理方法} ○4退票 void takeoff(){} //请用户输入他的证件号,避免同名现象造成的影响 //买票的乘客的信息已经存入全局数组中,直接从数组中找出该乘客信息,然后改变相应航班和乘客的信息

机票预订系统课程设计报告

《数据库原理及应用课程设计》 系统开发报告 学号: 姓名: 题目:机票预订系统 指导教师: 提交时间: 2015年12月 计算机工程系 目录 一.概述 (2) 1.1 课程实训目的与要求 (2) 1.2 机票预订系统 (2) 1.2.1 系统功能的基本要求 (2) 1.2.2 数据库要求 (3) 二.需求分析 (3) 2.1背景分析 (3) 2.2 功能分析 (3) 2.3 数据词典 (4) 三.概念结构设计 (6) 3.1概念结构设计的方法与步骤 (6) 3.2 局部 E-R 图设计 (6) 3.4总体概念 E-R 图结构 (7) 四.逻辑结构设计 (9) 4.1 逻辑结构设计 (9) 4.2 数据库表的建立 (10) 五.物理结构设计 (10) 5.1 表的建立与数据载入 (10) 5.2 视图建立 (11) 5.3 索引建立 (11) 5.4 存储过程 (11) 5.5 触发器 (11) 5.6 创建登陆账户和添加数据库用户 (12) 六.数据流图及程序结构框图 (13) 6.1 功能模块图 (13) 6.2数据流图 (13) 七.界面设计与功能测试................................ 错误!未定义书签。 7.1登录界面及代码 (14) 7.2 进入系统界面 (15) 7.3 订票过程 (15) 八.总结 (19)

一.概述 应用对数据库技术及应用的理论学习通过上机实践的方式将理论知识与实 践更好的结合起来巩固所学知识。 实践和巩固在课堂教学中学习的关于数据库的有关知识熟练掌握对于给定 实训任务的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库 系统的建立方法熟练掌握对于给定实际问题为了建立一个关系数据库信息管 理系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系 统调试、维护以及系统评价的一般过程为将来在学习工作中的应用打下基础。1.1 课程实训目的与要求 课程实训的目的是本次课程实训的主要任务是运用在《数据库原理及应用》课程中学到的理论知识来指导实践了解数据库设计过程及其实现方法学会用 数据库建模的方法解决实际问题。掌握数据库原理、范式理论、规范化等相关知识掌握数据库分析设计的具体步骤与基本方法掌握 SQL 语言的基本语法和 基本内容并能运用 SQL Server 2005 实现设计数据库掌握 SQL Server 2005 数据库、表、视图、约束、索引、存储过程、触发器的使用利用一种前台开发工 具实现数据库管理系统的开发实现特定的业务功能。通过综合课程实训提高 实践动手技能培养独立分析分析问题和解决问题的能力。 课程实训的要求本次课程实训的选题比较灵活可以是自主选题也可以 自己选择比较感兴趣的题目重点是完成数据库的分析、设计与实现题目要符 合《数据库原理及应用》的要求并且具备一定的难度和深度除此以外可以 从备选题目之外选择一个题目完成。 1.2 机票预订系统 在所给的实训题目中我选择的是机票预订系统的设计。 1.2.1 系统功能的基本要求 每个航班信息的输入 每个航班的坐位信息的输入 当旅客进行机票预定时输入旅客基本信息系统为旅客安排航班打印取 票通知和帐单 旅客在飞机起飞前一天凭取票通知交款取票 旅客能够退订机票

数据结构航空订票系统课程设计报告

攀枝花学院学生课程设计报告摘要 摘要 飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。方便了大家 关键词航空订票系统、查询、订票、退票

目录 摘要...................................................................................... I 1 需求分析 . (2) 1.1 需求概述 (2) 1.2 需求环境 (2) 1.3 功能描述 (2) 2 概要设计 (3) 2.1 程序功能模块 (3) 2.2 程序流程图 (3) 2.3 课程设计的思想 (3) 3 详细设计 (4) 3.1 程序初始化 (4) 3.1.1代码功能 (4) 3.1.2 功能实现代码 (4) 3.2 查询航班信息 (6) 3.2.1代码功能 (6) 3.2.3 功能实现代码 (7) 3.3 订票模块 (8) 3.3.1 代码功能 (8) 3.3.2 功能实现代码 (8) 4 测试与运行 (14)

5结束语.................................................................................................... . (16) 6 参考文献.................................................................................................... .. (17) 7附录.................................................................................................... . (18) 1 需求分析 1.1 需求概述 航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量 客户管理。有关订票的客房信息(包括姓名、订票量、舱位等级(1,2和3)以及等替补的客房名单(包括姓名、所需标量)。

机票订票系统详细设计说明书

五、详细设计说明书 1.引言 (2) 1.1编写目的 (2) 1.2项目背景 (2) 1.3定义 (2) 1.4参考资料 (2) 2.总体设计 (3) 2.1需求概述 (3) 2.2软件结构 (3) 3.程序描述 (4) 3.1功能 (4) 3.2性能 (4) 3.3输入,输出项目 (5) 3.4程序逻辑 (7) 3.4.1、登录 (7) 3.4.2、查询系统 (7) 3.4.3、订票系统 (8) 3.4.4、修改系统 (8) 3.4.5、退票系统 (9) 3.5接口 (9) 3.5.1、用户接口 (9) 3.5.2、外部接口 (9) 3.5.3、内部接口 (9) 3.6存储分配 (9) 3.7限制条件 (10) 3.8测试要点 (10)

1.引言 1.1编写目的 在本机票预定系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明。 本阶段已在系统的概要设计的基础上,对机票预定系统做详细设计。主要解决了实现该系统程序模块具体设计问题。包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。 在下一阶段的编码过程中,程序设计员可参考此详细设计报告,在详细设计对机票预定系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在详细设计过程中所完成的各模块算法设计,或在修改时找出在本阶段设计的不足或错误。 1.2项目背景 开发软件名称:机票订票系统 项目开发者:兰州理工大学软件工程机票订票系统开发小组: 用户单位:旅客、航空公司 1.3定义 数据字典:关于数据的信息的集合,也即对数据流图中包含的元素的定义的集合。 1.4参考资料 1.《软件工程导论》清华大学出版社张海藩编著

航空公司管理信息系统

航空公司管理信息系统 一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。 本章我们将以一个航空公司管理信息系统为例子,来讲述如何建立一个航空公司管理信息系统。 1.1 系统设计 1.1.1 系统功能分析 系统开发的总体任务是实现各种信息的系统化、规范化和自动化。 系统功能分析是在系统开发的总体任务的基础上完成。本例子中的航空公司管理信息系统需要完成功能主要有: ●舱位信息的输入和修改,包括舱位等级编号、舱位等级名称、提供的各种服务类别, 以及备注信息等。 ●客机信息的输入、修改和查询,包括客机编号、客机型号、购买时间、服役时间、 经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。 ●航线信息的输入、修改和查询,包括航线编号、出发城市、到达城市、航班日期、 出发时间、到达时间、客机编号、经济舱价格、公务舱价格、头等舱价格和备注信 息等。 ●客户等级信息的输入、修改,包括客户等级编号、客户等级名称、折扣比例和备注 信息等。 ●客户信息的输入、修改和查询,包括客户编号、客户姓名、客户性别、身份证号码、 联系电话、客户类型和备注信息等。 ●订票信息的输入、查询和修改,包括订票编号、客户编号、客户姓名、客户类型、 折扣比例、航线编号、出发城市、到达城市、出发时间、舱位类型、票价、结算金 额和备注信息等。 1.1.2 系统功能模块设计 对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1-1所示的系统功能模块图。 图1-1 系统功能模块图

航空客运订票系统的设计与实现

课程设计说明书 课程名称 题目航空客运订票系统的设计与实现 院系_电子信息工程学院____ 班级__计算机科学与技术__ 学生______________ 指导教师_____________ 日期_ 2011.12.19-2011.12.30__ 数据结构课程设计任务书

指导教师:时间: 2011.12.8 航空客运订票系统的设计与实现一、简介

1.设计目的: 1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发 2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 航空空订票系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (2)熟练掌握队列的建立过程和常用操作; (3)学会自己调试程序的方法并掌握一定的技巧。 2.问题的描述: 航空客运订票的业务包括查询航线和客票预定的信、客票预定和办理退票等,设计一个程序以使上述任务借助计算机完成。 二、数据结构的设计: (1)航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、以訂票的客户。 (2)客户信息:客户、证件号、座位号。 三、功能(函数)设计: 1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、载客量、余票量、票价格,折扣,已订票的客户(包括、订票量、舱位等级1,2或3)以及等候替补的客户(包括、所需票量); 2.全部数据可以只放在存中; 3.系统能实现的操作和功能如下: a) 查询航线: 根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; b) 承办订票业务: 根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续, 输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补; c) 退票业务: 根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

飞机订票系统设计与实现 (里面附有源代码!)

课程设计题目飞机订票系统 院系******* 专业*************** 姓名****** 学号********* 指导教师*** 2012年7月

1. 需求分析 1.1 问题描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。本课程设计的题目为:飞机订票系统。 1.2 基本要求 1.2.1 输入的形式和输入值的范围 录入航班信息时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息)。 客户订票时,需要输入起飞抵达城市,然后选择航班进行查询,选择航班时需要输入航班号,值为字符串。 客户退票时,需要输入姓名,证件号进行退票操作,值为字符串。 查询某个航班的情况时,需要输入航班号,值为字符串;在查询某个航线的情况时,还可以通过输入起飞抵达城市来查询,值为字符串。 查询某个订单时,需要输入订单号,值为整型(int);或者需要输入客户姓名和证件号,值为字符串。 修改航班时,需要输入字符型数据选择进行何种修改操作;增加航班时,需要输入航班号,起降时间,起飞抵达城市,值为字符串;还需要输入航班票价,票价折扣,值为浮点型(float);还需要输入航班是否满仓,值为整型(int)(“1”表示已满仓,“0”表示没有满仓);如需要继续录入航班信息,要输入判别信息,值为整型(“1”表示继续录入航班信息,“0”表示停止录入航班信息);删除航班时,需要输入要删除的航班的航班号;修改航班时间时,需要输入要修改的航班的航班号,修改后的航班起飞时间和抵达时间。 1.2.2 输出形式 在所有操作后的输出中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。 录入航班情况时,输出显示添加航班信息是否成功。 客户订票时,当客户输入起飞抵达城市后,输出可供客户选择的航班信息;客户选择了航班后,输入提示信息告知用户订票是否成功。 客户退票时,输出客户退票成功或者无此客户,无法退票。 查询航班时,输出显示对应的航班信息,或者输出提示信息告知没有相应的航班信息。 查询订单时,输出显示对应的订单信息,或者输出提示信息告知没有相应的订单信息。 修改航班时,输出对应的提示的信息,提示操作是否成功。

飞机订票系统设计报告

算法与数据结构程序设计题目:飞机订票系统 学院:计算机科学与过程学院 专业:信息安全 姓名: 学号: 指导教师:王瑞霞 2011年9 月9 日

目录 引言 (1) 1.系统概述 (1) 2.课程设计的目的 (2) 3.需求分析 (3) 4.详细设计 (4) 5.所遇到的问题和分析解决 (10) 6.系统特色及关键技术 (10) 7.结论 (10)

引言: 当今时代是飞速发展的信息时代,科技的日新月异的发展必然会给人们的生活带来一定的变化。就数据处理方面来说,单纯的手工操作不仅工作量大、出错率高、更面临着修改难,时间成本过高的问题,寻求一种更为细致安全,高效率的数据管理方式成为人们日益探讨和追求的问题。而现代计算机的出现使者些成为了现实。从上世纪七十年代问世至今,计算机已经不是单纯的数据计算机器,它已经被广泛地应用于信息系统的环境。尤其对于复杂的信息管理,计算机往往表现出极高的效率和安全性。 本文论述的飞机订票系统是为公司的管理者提供的一种集录入、删除、查询修改、排序、统计等于一体的便捷的飞机订票系统。该系统主要使得顾客订票能够更方便快捷。为此,本系统能够给他们带来一些较为方便快捷的导航帮助。 本系统论述了飞机订票系统的开发目标、实现过程,并着重介绍了系统设计、所遇到问题的分析和解决、系统特色及关键技术等方面。 本文共分为6章: 1.系统概述 2.课程设计的目的 3.需求分析 4.详细设计 5.所遇到的问题和分析解决 6.系统特色及关键技术 7.结论(心得体会) 1.系统概述 数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 关于数据结构在计算机学界至今还没有标准的定义: Sartaj Sahni 在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象定义为“一个数据对象是实例或值的集合”。 Clifford A.Shaffer 在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。” Lobert L.Kruse 在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。 而本人的理解,数据结构通俗来讲就是将数据元素依据某种逻辑联系组织起来通过特定的算法将理论运用到生活中解决一些现实问题应用。在这次课程设计中,正是基于这样一种理念,在经过需求分析将实际情况综合起来之后设计并开发出了这样一个飞机订票系统。 本系统的主要功能是通过接收顾客的输入建立航班信息、顾客信息、订票情

航空售票管理系统

摘要 伴随着经济的不断发展,必然带动交通业和旅游业务的不断扩大, 特别是航空售票和订票的信息管理日异复杂, 传统的售票方式已经难以满足快节奏, 高效率的现代生活需求,这就要求航空公司要有一套好的售票数据库系统。 一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,但更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。对数据的添加、修改、删除及查询等方面的操作应简单易行,并且能够具有较好的稳定性。航空售票管理系统主要采用Delphi 7.0做为开发工具,进行开发与设计的。本系统的使用界面具有十分人性化的特征,具有方便的查询功能,对售票、网上订票等方面的操作应简单易行,并且能够具有较好的稳定性。 关键词: 航空;售票;网上订票;管理系统;数据库;SQL语言。

目录 1.开发一个航空售票管理系统的背景和意义 (1) 1.1.传统售票方式的回顾和特点分析 (1) 1.2.航空售票管理系统的应用现状和前景展望 (1) 2.用计算机开发一个航空售票管理系统的可行性分析 (1) 2.1.技术可行性 (1) 2.2.经济可行性 (2) 2.3.法律可行性 (2) 3.开发环境的选择 (3) 3.1.Delphi 7.0简介 (3) 3.2.开发工具的选择 (3) 4.航空售票管理系统的需求分析 (3) 4.1.系统分析 (4) 4.2.系统功能模块设计 (4) 4.3.功能子模块分析 (5) 4.3.1.网上订票模块 (5) 4.3.2.用户查询模块 (5) 4.3.3.用户订票模 (5) 4.4.后台管理系统 (6) 4.4.1.后台管理系统子模块 (6) 4.5. 民航售票管理系统的顶级数据流程图 (8) 4.6. 民航售票管理系统一级数据流图 (9) 4.7. 数据字典定义 (10) 4.7.1.数据项定义 (10) 4.8.E/R模型 (13) 5.详细设计 (14) 5.1.系统的总体流程图 (14) 5.2.系统各模块的实现 (15) 5.2.1.系统登录窗口 (15) 5.2.2.主界面窗口 (16) 5.2.3.信息操作模块 (17) 5.2.4.送票员模块 (22) 5.2.5.员工管理模块 (23) 5.2.6.系统模块 (24) 5.2.7.售票员模块 (25) 5.2.8.前台订票模块 (26)

网上航空订票系统毕业设计说明书

摘要 本文着重阐述了网上航空订票管理系统的整体开发过程。介绍了系统的开发环境以及开发工具,对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个程序设计的规划及具体实现。 本系统采用了B/S体系结构,以ASP作为前台开发工具,以Microsoft SQL作为后台数据库管理系统进行开发。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成网上航空订票管理的全过程,包括前台用户订票、用户发短信、线路管理、系统设置、站点设置、文章管理、插件设置、其他管理、预订管理、查看站内消息、查看预订信息等几大功能模块。 本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员的工作负担,简化了用户的购票过程,提高了购票的工作效率和站点的信息化水平。 关键词:模块;管理系统;数据库;ASP

Abstract This paper focuses on online air booking management system as a whole development process. Introduces the system development environment, and development tools for the design concept and design process has also made a comprehensive narrative, to create ideas in the database and various specific links between data tables are also made such detailed and concrete analysis of the system implementation process of various functions and the detailed design process, in drawing a simple block diagram of system functions, while more clearly sought to show that the design and the design of the entire process of planning and realization. The system uses the B / S architecture, to ASP as a development tool to Microsoft Sql Server as the backend database management system development. The system is easy to manipulate and user-friendly, flexible, practical, safety requirements, the completion of online air bookings, management of the entire process, including the front user booking, user send text messages, line management, system settings, site settings, the article management , plug-in settings, other management, reservations management, check your messages, view the booking information for several major functional blocks. This system has many features: System fully functional, user convenience is simple, intuitive user interface, security settings are complete, thus greatly reducing the workload of the operator, simplifying the user's purchase process, improve the work tickets efficiency and the level of the site's information. Keywords: modules; management system; database; ASP

航空订票系统详细设计

详细设计报告 一、引言 1.1 编写目的: 本阶段在系统的需求分析的基础上,对航空订票系统做详细设计。主要解决了实现该系统程序模块具体设计问题。包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。 在下一阶段的编码过程中,程序设计员可参考此详细设计报告,在详细设计对机票预定系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。 1.2 项目背景: 开发软件名称:航空订票系统。 用户:航空公司 运行环境:宿舍电脑。 开发平台:MyEclipse 7.0 PostgreSql数据库。 系统架构:该系统采用java+jsp框架 1.3 定义: 查询:对数据库的操作的一种,用于搜索数据信息。 插入:对数据库的操作的一种,用于将数据存入数据库中。 更新:对数据库的操作的一种,用于更改数据库中的数据信息。 PostgreSql: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言 事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 1.4 参考资料: 需求分析说明书软件开发小组 软件工程齐治昌谭庆平宁洪等高等教育出版社 实用软件工程郑人杰等,清华大学出版社。 二、总体设计 2.1 需求概述 航空订票系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。具体功能为用户把预定机票的旅客信息(姓名、性别、身份证号码(护照号码)、乘坐时间、出行始发地和目的地等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。同时还需完成旅客延误了取票时间的处理,航班取消后的处理,旅客临时更改航班的处理等。 根据可行性研究的结果和客户的要求,分析现有情况及问题,采用B/S结构,将机票预定系统划主要就是服务器端子系统。

航空订票系统测试(学术参考)

航空机票预订系统软件编码和测试说明书 1引言 1.1编写目的 作为软件工程过称的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量,但所选用的程序设计语言的特点和编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 但在开发如此复杂的航空订票系统软件的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,系统一定会存在差错。测试的目的就是在软件投入生产运行之前,尽可能多的发现并改正软件中的错误。 编码阶段可参考概要设计和详细设计说明书,软件测试以及软件维护阶段也可参考编码和详细设计说明书,以便于了解在概要设计及详细设计的过程中所完成的各模块设计结构,或在测试阶段找出各模块的设计思路和流程。 该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。 1.2背景 ①名称:机票预订系统 ②委托方:某某航空公司 ③开发方:某某团队 ④组成:编码模块分组,服务器,编码人员,测试人员 ⑤本系统与其他系统的关系如下: 系统的详细 设计 编码测试实现验证 修改

1.3定义 黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑 程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查 程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当 地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结 构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进 行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定 有误,用黑盒测试方法是发现不了的。 白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规 定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部 逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行 测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的 状态一致。 1.4参考资料 (1)张海藩《软件工程导论》(第五版)北京:清华大学出版社。 (2)《机票预订系统需求分析说明书》 (3)《机票预订系统可行性分析说明书》 (4)《机票预订系统概要和详细设计说明书》 2 各模块的实现: 本系统主要用于机票预订,所以提供了以下几个子功能:机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。

航空订票系统 数据库课程设计

《数据库设计与开发Ⅱ》课程设计报告航空订票系统 学院: 班级: 学号: 姓名: 完成时间:

目录 一.需求分析 (1) 1.引言 (1) 2.项目概述 (1) 3.需求规定 (2) 4.运行环境规定 (4) 二.系统结构数据设计 (5) 三.视图设计 (8) 1.E-R图 (8) 2.关系模式 (9) 3.数据流程图 (10) 四.逻辑结构设计 (11) 1.数据表描述 (11) 2.程序描述 (12) 3.功能描述 (13) 五.系统设计 (19) 1.系统功能分析 (19) 2.系统功能模块设计 (19) 六.项目总结 (20) 1.本项目设计的优点 (20) 2.项目实现流程 (20) 3.心得体会 (20)

一、需求分析 1.引言 编写本套航空订票系统的《软件规格说明书》的目的在于根据软件需求说明书中的任务概述,需求规定等规划设计出一套可执行软件的结构模型。 1.1编写目的 (1)便于用户、分析人员和软件设计人员进行理解和交流 (2)希望系统的外部项(旅客、旅行社、航空公司)均支持目标软件系统的确认。根据需求规格说明书中确立的可测试标准进行测试,并得到确认。 (3)控制系统进化过程 1.2项目背景 随着社会的发展,人民生活水平的不断提高,人们出行的交通工具也跟随社会的发展而发展起来了。乘飞机出行的人越来越多。所以这方面的市场非常大。所以“机票预订系统”的开发是势在必行。经过对各方面人士对该系统功能的意见的调查,我们在此基础上确定了旅客与各航空公司所需要的“机票预订系统”。同时我们会不断更新该系统的功能来满足不断发展的市场需求。1.3项目描述 为各旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入到该系统,系统为旅客安排航班。当旅客交付了预定金后,系统印出取票通知和帐单交款取票,系统核对无误即印出机票给旅客。此外为了航空公司能够随时掌握各航向飞机的乘载情况,而能够定期进行查询统计,以便适当调整 1.4定义 软件需求:IEEE软件工程标准词汇表(1997年)中定义软件需求为: (1)用户解决问题或达到目标所需的条件或权能(Capability)。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。 (3)一种反映上面(1)或(2)所描述的条件或权能的文档说明同工作,以及相互之间进行有效的交流和沟通。 1.5参考资料(标准) ?中华人民共和国国家标准UDC681.3: 《信息技术软件生存期过程》(GB/T8566-1995) 《计算机软件产品开发文件编制指南》(GB8567-88) 《软件工程术语》(GB/T11457-1995) ?IEEE软件工程标准词汇表(1997年) 2.项目概述 2.1目标 该系统是要将航空订票管理系统信息化,使操作方便,且效率高。 2.2用户的特点 用户其实就是航空公司。而旅行社和旅客都是向航空公司提供数据,由航空公司操作数据。即航空公司是直接用户。 2.3假定与约束 对各航班班机的命名和航班号都要求与全国的各大航空公司的标准要求保持一致。各航班的出发城市,抵达城市,出发时间,抵达时间,价格,座位数

数据结构课程设计航空订票系统

目录 总体设计 (2) 概要设计 (2) 详细设计 (3) 调试分析 (11) 测试数据及截图 (11) 时间复杂度分析 (15) 问题思考 (15) 算法的改进设想 (15) 课设总结体会 (15) 附录 (17) 程序说明 (17) 源代码 (17) 主要参考文献 (30)

总体设计 通过此系统可以实现如下功能: 1).录入:可以录入航班情况(数据存储在一个数据文件中) 2).查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 3).订票:(订票情况存在一个数据文件中) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 4).退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5).修改航班信息: 当航班信息改变可以修改航班数据文件 概要设计 每个模块的算法设计说明如下: (1)录入模块: 查找单链表的链尾,在链头插入一个“航班信息”的新结点。 (2)浏览模块: 顺着单链表输出航班信息。 (3)修改模块: 输入密码,确认是否有权限对航班信息进行修改,有则进行修改,否则不能修改。 提供两种修改方式:添加航班和对已有的航班信息进行改动(修改和删除),1添加航线,0对已有的航班信息进行改动(修改和删除)。 对已有的航班信息进行改动(修改和删除):顺着单链表查找,若找到则进行相关操作。 (4)查询模块: 提供两种查方式:按航号和起飞抵达城市查询,0代表按航号查询,1代表按起飞抵达

城市查询。 顺着单链表查找,如果与航班号(起飞抵达城市)一致,输出相关信息并询问乘客是否要订票,若订进入订票模块;否则,查询不成功。 (5)订票模块: 查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功;否则查找这个月此乘客起飞城市和降落城市的有空位航班,供乘客选择,若有则订票,若无则订票不成功并把此乘客的信息录入此航班等候订票队列中,退出订票。 (6)退票模块: 输入要退票的乘客姓名以及所退票的编号,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并判断是否有等候订票的乘客(有则通知等候订票乘客订票,无则余票加乘客所退票数);无则退票失败。 (7)文件模块: 顺着单链表把链表的信息写入文件。 详细设计 将航线信息写入文件 将乘客信息写入文件

相关文档
最新文档