landingtime Time 到达时间 不能为空
Number1 Int 普通舱座位数量 不能为空
Price1 Long 普通机票单价 不能为空
Rest Int 剩余座位数 不能为空
memo Varchar 备注 系统调入
buyername Varchar 客户姓名 不能为空
buyertel Int 联系电话 不能为空
buyeridnumber Int 身份证号码 不能为空
buyeremail Varchar 邮箱 可以为空
contractno Varchar 订单号 不能为空
bookdate Data 订票日期 不能为空
cancledate data 退票日期 不能为空
3.2.2 表的功能
本程序主要实现旅客信息的输入和查询,包括航班号,航空公司,始发站,中转站,终点站,起飞时间,到达时间,普通舱座位数量,普通机票单价,剩余座位数,备注信息,客户姓名,联系电话,身份证号码,邮箱,订单号,订票日期,退票日期等
第四章 软件功能设计
4.1 客户机接受信息模块结构图
4.1.1系统管理员添加航班信息
图9添加航班信息
4.1.2客户订票信息录入
图10 订票信息录入
4.1.3客户退票信息录入
图11 退票信息录入
4.2客户机输出信息模块
4.2.1缴款取票
图12 缴费取票
4.3系统自动更新航班信息模块
图13 更新航班信息
第五章 界面设计
5.1登录界面
图14 登录界面
5.2主菜单界面
图15 主菜单界面
5.3登记航班信息界面
图16 登记航班信息界面
5.4订购机票界面
图17 订票界面
5.5取消订票界面
图18 退票界面
5.6 航班信息维护界面
图19 更新航班信息界面
5.7 计算航班满座率界面
图20 满座率计算
5.8 统计营业收入界面
图21 统计营业收入界面
第六章 课程设计心得体会
这次课程设计做的比较匆忙,也可以说是毕业设计的一个前瞻。
我用的是PowerBuilder 9.0来设计的,对该软件还不是很熟悉,尤其是Powerscript语言以及它所自带的函数,不得甚解,尤其是当某些功能,譬如说删除,插入我们可以直接用deleterow(0),insertrow()来实现,还比较方便。
总的来说,数据库设计与软件设计有异曲同工之妙,唯一的不同之处就是软件有一个生命周期。从另一方面讲,数据库设计是软件设计的基础,脱离了数据库设计软件设计是没有意义的,而单纯的数据库设计并没有什么实际意义。
该软件需要改进的地方还有很多,譬如说界面不是很友好,数据库表的设计有点不符合BCNF范式,每次只能实现一次操作订购一张票等等。
附录1:参考文献
《PowerBuilder9.0课程设计案例精编》 魏海,黄浩等编著 中国水利水电出版社
《PowerBuilder9.0开发人员指南》 张长富,李匀等编著 北京希望电子出版社
《PowerBuilder9.0信息管理系统开发实例导航》何旭洪,傅立宏编著 人民邮电出版社
《oracle 9i数据库应用标准教程》 李欣主编 上海科学普及出版社
附录2:代码
1.planeticket open()
/*SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass ="manager"
SQLCA.ServerName = "LAB_b14"
SQLCA.LogId = "system"
SQLCA.AutoCommit = false
//SQLCA.DBParm = "PBCatalogOwner='scott'"*/
// Profile fly
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=plane;UID=sa;PWD=sa'"
connect Using SQLCA;
//open (w_main1)
//open(w_planeticket)
//open(w_chooseplane)
//open(w_buyticket)
open(w_main)
2..订购机票界面W_buyticket open()
long rn
string num
dw_3.settransobject (sqlca)
dw_3.retrieve()
dw_3.insertrow(0)
dw_3.ScrollToRow(rn)
dw_3.object.bookdate[1]=today()
String flightnumber,airlinecompany,startstation,middlestation,endstation
int takeofftime,landingtime, price1,rest
String memo
num=message.stringparm
select airlinecompany,startstation,middlestation,endstation,takeofftime,landingtime,memo,
price1
into :airlinecompany,:startstation,:middlestation,:endstation,:takeofftime,:landingtime,:memo,
:price1
from planeticket
where flightnumber=:num
Using sqlca;
dw_3.object.flightnumber[1]=num
dw_3.object.airl