飞机订票系统
报告
一
1.1问
分析
本需求规格
是为了开发《飞机订票系统》而编写的,主要面向分析员、程序
员、测试员和最终用户。可以更好地理解系统的功能和实现系统。
本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成
后系统验收的依据。同时本说明书还是《用户手册》和《测试计划》的编写依据。
1.2背景
待开发的系统名称:飞机订票系统
由于现在企业的销售业务的数据随着业务的增多而增多,信息量大,而这些数据用手
工来管理这些纷繁复杂的已经不适应的时代的潮流,为实现数据的规范化、自动化提高业务
的业绩,本系统是为了实现高效管理,提高企业的竞争力,使企业的可以随着市场的动力而
调整销售的流程,创出更好的业绩。
2 任务概述
2.1目标
本系统开发的一套飞机订票系统,是为了提高企业的竞争力和业务的业绩,为了用现
代的技术管理数据而的开发的系统
2.2 系统功能
登录用户
启动主界面
录查订退修
入询票票改
航航办办航
班 班 理 理 班
2.3 数据流图
业务处理 客户信息 发票 订票客户 订票客户
顶层DFD
登录
订票
系统
登录系统 用户
登录
航班录入 航班查询
登录飞机
订票系统
订票办理 退票办理
修改航班
二层 订票和退票DFD
有效订票信息 退票信息 业务办订票客户 退票客户 理
票数不足或无效客户信息
检查是否有足够数量的票
客户订票信息表 航班信息表
二层 航班查询
查询结果信息 显
示
查询结果 查查询处理 查询客户 有效查询条件 询
结
无效查询条件 果
航班信息表
2. 4 用户的特点
本系统的最终用户是****航空公司,其操作员只要具备了计算机的操作、简单的数据
库操纵、管理知识即可,其对数据库的维护人员也只要具备的数据库故障解决、备份、恢复
等相关的知识水平就可以操作数据库了。加上本系统操作简单,都是图形界面操作。
2. 5 假定和约束
本系统在开发的过程中,可能由于技术、人员等其他的原因,可能会影响到系统的某方
面的问题,如确实不能解决的,请用户单位相协助解决,如:有某些方面确实不能实行的,
实现不了的功能,就不再用原来的
,另选其他的可行的方案。 3. 数据字典
登录数据库: 用户名+密码.
登录系统:用户名+密码.
Schedule 表:航班号+起飞时间+抵达城市+降落时间+票价+折扣+票数. Ordertable 表:客户姓名+证件号码+航班号+订票数量. User表:用户姓名+用户密码.
4.接口
数据库连接:用户名、密码、数据库
用户界面:用户名、密码
5.系统特性
输入数据:输入的数据必须与数据表所规定的字段的字段名、数据类型、长度一样,如:
航班信息表:当输入航班号或抵达城市时数据类型必须是文本型的,起飞时间和降落时间必须是时间日期型的数据,票价折扣和票数必须是数字型等,否则系统会报错!
数据库系统:数据库系统采用Microsoft access 2003作为数据库系统,当系统数据增加时,按照数据库所在的磁盘空间增长,为保证数据库有足够的空间存储数据,会自动按照
10%地增长,但也不会无限大地增长,当其增长得一定的大的空间后,数据库系统会停止增
长,这是因为在设计数据库时已经设置好,而且其数据也会由数据库管理会定期地备份,保
存,已经备份保存的数据可以删除,这也就不会无限地增长。
软件可用性:本系统是根据现在的需求分析基础上开发的,对以后的可能根据某方面的
业务或其他需要而本系统的暂时没有的功能,本系统可以在现有的系统的基础上进行更新,
升级。其成本由用户承担。本系统的版本号是根据现在用户的要求提出而开发的。对于本系
统,我们也会参考其他一些好的管理,领悟其好的方面,吸收本系统有帮助。同时,用户也
可以借鉴其他的系统。
二
1. 编写这份概要设计说明书的目的是让读者能够了解本系统的概要设计,包括任务要
求、总体设计、接口设计、运行设计、系统出错处理设计。预期的读者包括老师,相关开发
人员以及管理人员。
2. 需求规定:
开发该软件的基本要求和功能是可以直观的浏览、查询和掌握航班信息,同时能够让客户方便查询了解各个航班的信息.下面是个功能模块的设计说明:
登录模块:
系统用户通过输入用户名和密码进行登录,系统首先连接数据库找出与用户名和密码相符合
的数据,如果符合则用户进入主界面,不符合则跳出相应的错误信息提示! 主界面模块:
用户通过主界面可以进入各个功能模块,包括录入航班,查询航班,订票办理,退票办理,修改航班信息等.首先通过录入航班模块可以为数据库添加航班信息,默认每个航班的数量是30个座位,如果订票数量超过30则系统跳出相应提示.
下面对各模块(以数字表示)进行功能说明:
1.解开数据 解开/解密打包的数据,并将恢复的数据格式化送入30。 判断操作 由数据判断需要做什么数据库操作,它是一事务处理中心,若为定票操作则将数
据送4,若为领票操作则将数据送30。
.2.准备数据库查询语句 由定票数据准备访问SQL SERVER数据库所需的SQL 语句,送入5。
3.数据库操作 运行SQL 语句,查询并存入数据库,获得相应的定票数据,将数据送入6。它需包括初步对查询的判断。它必须为乘客安排可抵达目的地的有座位的航班。 4.判断查询是否成功 利用查询所得的数据判断定票是否成功,它是一事务处理中心,若为
定票操作成功则将数据送7,若不成功则将数据送8。
5.准备回送数据 准备定票成功后需回送客户机程序的数据,送16。 6.确定原因 由查询数据判断定票不成功的原因,送9。
7.准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 8.准备数据库查询语句 由领票数据准备访问SQL SERVER数据库所需的SQL 语句,送入11。
数据库操作 运行SQL 语句,查询并存入数据库获得相应的领票数据,将数据送入6。它需包括初步对查询的判断。
9.判断查询是否成功 利用查询所得的数据判断领票是否成功,它是一事务处理中心,若为
10.领票操作得到确认则将数据送11,若不成功则将数据送8。 11.准备回送数据 准备领票确认后需回送客户机程序的数据,送16。 12.确定原因 由查询数据判断领票不能确认的原因,送15。 13.准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 14.准备网络数据包 将数据准备/加密成网络传输数据包。 三 :
1.: connect(){
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("驱动器加载成功!");
String str="jdbc:odbc:order";
Connection con=DriverManager.getConnection(str,"order",""); //建立连接
System.out.println("数据库连接成功!");
Statement stmt=con.createStatement();//建立发送SQL命令的Statement对象
String str1=text1.getText();
String str2=text2.getText();
String str3=text3.getText();
String str4=text4.getText();
str5=Integer.parseInt(text5.getText());
str6=Integer.parseInt(text6.getText());//***下面的SQL语句中单双引号的使用需要注意!我弄了半天时间才解决!郁闷啊!!
String sql="INSERT INTO schedul
VALUES('"+str1+"','"+str2+"','"+str3+"','"+str4+"','"+str5+"','"+str6+"','"+30+"')"
;
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(Frame,"数据已经成功添加!");
System.out.println("数据成功添加!");
text1.setText("");
text2.setText("");
text3.setText("");
text4.setText("");
text5.setText("");
text6.setText("");
stmt.close();
con.close();
}(SQLException e2){
e2.printStackTrace();
}(Exception e1)
{
e1.printStackTrace();
}
}
find(){
Connection con;
{
con = connectdb();
Statement stmt=con.createStatement(); //建立发送SQL命令的
Statement对象
(com.getSelectedIndex()==0){
area.setText("航班号 起飞时间 抵达城市
降落时间 票价 折扣");
String cx=text.getText();
String sql="select * from schedul where flightnum='"+cx+"'";
ResultSet sr=stmt.executeQuery(sql);
out.print("查询成功!"); System.
(sr.next()){
String s=sr.getString("flightnum");
String s2=sr.getString("settime");
String s3=sr.getString("city");
String s4=sr.getString("offtime");
String s5=sr.getString("money");
String s6=sr.getString("discount");
area.setText(area.getText()+'\n'+s+" "+s2+" "+s3+" "+s4+"
"+s5+" "+s6);
System.out.print(s+" "+s2+" "+s3+" "+s4+" "+s5+" "+s6);
}
stmt.close();
con.close();
}{
area.setText("航班号 起飞时间 抵达城市
降落时间 票价 折扣");
String cx=text.getText();
String sql="select * from schedul where city='"+cx+"'";
ResultSet sr=stmt.executeQuery(sql);
System.out.print("查询成功!");
(sr.next()){
String s=sr.getString("city");
String s2=sr.getString("settime");
String s3=sr.getString("flightnum");
String s4=sr.getString("offtime");
String s5=sr.getString("money");
String s6=sr.getString("discount");
area.setText(area.getText()+'\n'+s+" "+s2+" "+s3+"
"+s4+" "+s5+" "+s6);
out.print(s+" "+s2+" "+s3+" "+s4+" "+s5+" "+s6); System.
}
stmt.close();
con.close();
}
} (ClassNotFoundException e) {
// 自动生成 catch 块
e.printStackTrace();
} (SQLException e) {
// 自动生成 catch 块
e.printStackTrace();
}
connect(){
num=0;
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("驱动器加载成功!");
String str="jdbc:odbc:order";
Connection con=DriverManager.getConnection(str,"order",""); //建立连接
System.out.println("数据库连接成功!");
Statement stmt=con.createStatement();//建立发送SQL命令的Statement对象
String str1=text1.getText();
String str2=text2.getText();
str3=Integer.parseInt(text3.getText());
str4=Integer.parseInt(text4.getText());
ResultSet sr=stmt.executeQuery("select * from schedul where flightnum='"+str2+"'");
(sr.next()){
String getnum=sr.getString("quantity");
num=Integer.parseInt(getnum);
}
(str4>num){
JOptionPane.showMessageDialog(Frame,"没有足够的票数!");
System.out.println("没有足够的票数!");
}{
String sql="INSERT INTO ordertable
VALUES('"+str1+"','"+str2+"','"+str3+"','"+str4+"')";
stmt.executeUpdate(sql);
showMessageDialog(Frame,"客户"+str1+"已经成功订票!"); JOptionPane.
newnum;
newnum=num-str4;
ResultSet sr2=stmt.executeQuery("update schedul set quantity='"+newnum+"'
where flightnum='"+str2+"'");
System.out.println("数据成功添加!");
text1.setText("");
text2.setText("");
text3.setText("");
text4.setText("");
}
stmt.close();
con.close();
}(SQLException e2){
System.out.println("数据已经成功修改!");
}(Exception e1)
{
e1.printStackTrace();
}
}
测试数据:
航班信息输入:
航班号:A10
起飞时间:2007-2-1 8:30 抵达城市:南宁
降落时间:2007-2-1 12:30