程序课程设计报告.docx

上传人:b****7 文档编号:10143413 上传时间:2023-02-08 格式:DOCX 页数:67 大小:215.50KB
下载 相关 举报
程序课程设计报告.docx_第1页
第1页 / 共67页
程序课程设计报告.docx_第2页
第2页 / 共67页
程序课程设计报告.docx_第3页
第3页 / 共67页
程序课程设计报告.docx_第4页
第4页 / 共67页
程序课程设计报告.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

程序课程设计报告.docx

《程序课程设计报告.docx》由会员分享,可在线阅读,更多相关《程序课程设计报告.docx(67页珍藏版)》请在冰豆网上搜索。

程序课程设计报告.docx

程序课程设计报告

 

程序课程设计报告

 

学院:

专业:

电子信息工程

班级:

学号:

姓名:

指导教师:

时间:

 

一、课程名称

名称:

航班管理系统

二、系统简介

航班查询的业务流程:

当顾客到达营业网点后向航空公司营业员提供出发地,目的地和出发日期,营业员根据以上信息,操作软件查询满足条件的航班。

购票的业务流程:

在查询出航班信息的基础上,根据顾客的要求选择某个航班,输入乘客信息,以及舱位信息,然后等待顾客确认,并收取票款,然后执行出票操作。

退票的业务流程:

根据顾客提供的机票号(和)证件号码,查询出该机票的信息,然后根据该机票的退改签规定收取一定手续费,将剩余票款退还给顾客,并将机票收回(如果有纸质机票的话)。

该系统要求能进行航班管理,航班管理员能添加和删除航班计划,还能临时修改航班计划,对航班计划的修改包括临时添加航班。

除此之外,航班管理员还能随时更新每天的航班季节折扣。

该系统要求能进行用户账户的管理,系统管理员可以添加新帐户,删除或屏蔽现有账户,或设置某个账户的密码清空。

该系统要求能进行用户权限的管理,系统管理员能为每一个用户帐号赋予权限或删除权限。

所有可能的权限类型预先定义,在程序运行中不能加入新的权限类型。

功能概述:

系统功能模块分为以下几部分:

前台营业,后台管理,后台服务。

前台营业

1.用户登录/登出

1.1登录

1.2修改账户密码

2.售票

2.1查询航班

2.2购票

3.退票

3.1退票

4.查询航班

4.1查询航班

5.浏览航班

5.1浏览航班

6.浏览乘客

6.1按航班浏览

6.2按日期浏览

6.3按航班日期浏览

6.4全部浏览

后台管理:

7.航班计划管理

7.1查询航班计划

7.2添加航班计划

7.3删除航班计划

7.4修改航班计划(起飞时间,到达时间,基准票价)

7.4浏览航班计划

8.账户管理

8.1添加用户账户

8.2删除用户账户

8.3修改用户信息

8.4查询用户信息

8.5浏览用户信息

后台服务:

9.航班表和航班记录表的维护

9.1处理过期航班数据

9.2处理过期航班计划数据

数据字典:

可用座位公里:

飞行公里乘以可出售座位数量。

收费客公里:

飞行公里乘以收费旅客数量。

客座率:

以收费客公里除以可用座位公里所得的百分比。

航线(Airline):

描述两个机场间有直达航班的线路,航线包含的数据有:

出发地机场,目的地机场,里程。

航班计划(FlightScheduler):

用来描述TOLO航空公司执行的某个定期航班的计划表。

例如:

由TOLO航空公司执行的每天早上8:

00从北京起飞,上午10:

00到达上海的TL1202就是一个航班计划。

根据中国民航相关管理部门的规定,TOLO航空公司可以在每一季度前一个月提交下一季度的航班计划申请,由民航管理部门核准后执行。

在一个季度的执行过程中,TOLO航空公司不得随意改变航班计划。

如有特殊情况需临时改变航班计划,可由TOLO航空公司提出申请,由民航管理部门审核通过后执行更改。

航班计划包含的信息:

航班号,起始日期,结束日期,执行航线,离港时间,到港时间,飞机机型,班期,基准票价。

航班(Flight):

用来描述在某个确定日期执行某个定期航班计划的一次航班。

例如:

2009年12月25日从北京飞上海的TL1202就是一个航班的实例。

航班包含的信息:

执行的航班计划,出发日期,各舱剩余座位数,季节折扣。

航班计划的起始日期(StartDate):

用来描述某个航班计划开始的日期,该日期精确到天。

航班计划的结束日期(EndDate):

用来描述某个航班计划结束的日期,该日期精确到天。

营业员(Sales):

用来描述在营业网点操作营业柜员系统的操作人员,每个营业员必须凭帐号和密码登录系统后才能为顾客提供服务。

营业员包含的信息:

营业员编号,营业员帐号,密码,所属营业网点编号。

航班号(FlightNumber):

由航空公司给航班计划定义的唯一标识号码,该号码由2位英文字符和3_5位数字组成,2位英文字符是航空公司编码,3_5位数字是航班编码,TOLO航空公司的编码为:

TL。

例如:

TL1202就是一个航班计划的航班号,其中TL代表TOLO航空公司,1202代表航班的编号。

出发地(FromCity):

用来描述某个航班计划的起飞城市和机场,所有国内机场均用三个英文字母的代码表示,详情请见附录I(国内机场代码表)。

目的地(ToCity):

用来描述某个航班计划的到达城市和机场,所有国内机场均用三个英文字母的代码表示,详情请见附录I(国内机场代码表)。

离港时间:

(Departure):

用来描述某个航班计划的从出发地机场离开的时刻,离港时间一般代表飞机舱门关闭,不再接收乘客的时刻。

该时间精确到分钟。

到港时间:

(Arrival):

用来描述某个航班计划到达目的地机场的时间,到港时间一般代表飞机舱门开启,允许乘客下飞机的时刻,该时间精确到分钟。

出发日期(Date):

用来描述某个航班的出发日期,该日期精确到某一天。

班期(Scheduler):

用来描述某个航班计划在一周之内哪些天有航班,哪些天没有航班。

舱位等级:

(CabinClass):

用来描述航班的不同舱位,一般分为三种:

头等舱(F),公物舱(C),经济舱(Y)。

不同的舱位等级具有不同的机票折扣,详情请参见舱位折扣和机票价格。

**实际情况中航空公司定义的舱位等级可能更复杂,在本项目中为简化业务模型,只对舱位等级作上述三种划分。

乘客类型:

(Passengertype):

用来描述乘坐航班的乘客的类型,一般分为三种:

成人(A)(age>12),儿童(C)(2

不同的乘客类型具有不同的机票折扣,详情请见乘客折扣。

在这三种乘客类型中,成人和儿童占用座位,而婴儿不占用座位,婴儿票不能单独出售,一张婴儿票必须凭一张成人票售出。

飞机机型:

(AirplaneModel):

用来描述执行某个航班计划的飞机的型号,一般来讲,一个航班计划的各次航班都应该采用同种机型的飞机来执行。

不同的飞机型号有不同的航程及各舱座位数。

详情请参见附录II民航飞机型号一览表。

**实际情况中,各种机型的座位数是不一样的,同一机型还分好几个系列,如B737(波音737)有B737_200、B737_300....B737_900等多个系列,每个系列座位数都不一样。

即使是同一型号、同一系列的机型,所属的航空公司不同,座位数也会不同,因为航空公司在购买飞机时,会根据自己的需要要求厂家采用不同的布局,不同的布局会有不同的头等舱、公务舱、经济舱座位数。

在本项目中为简化业务模型,我们认为同种型号的飞机各舱座位数是固定的。

基准票价:

(FullPrice):

是指某个航班在没有季节折扣时的一张经济舱成人票的价格,该价格作为该航班计划的基准价格,最终机票价格应该在此基础上乘以季节折扣,舱位折扣和乘客类型折扣。

基准票价=[航班里程*0.75],对个位四舍五入,保留整十位,该票价是可修改的。

季节折扣:

(SeasonDiscount):

航空公司根据不同季节的客流状况调整的航班的折扣,只有经济舱的成人票才享受季节折扣。

舱位折扣:

(ClassDiscount):

不同舱位在基准价格基础上的价格系数,头等舱为1.5,公务舱为1.3,经济舱为1.0

乘客类型折扣:

(PassengerDiscount):

不同乘客类型在基准票价基础上的价格系数,成人为1.0,儿童为0.5,婴儿为0.1。

机票(Ticket):

一位乘客乘坐某次航班的确定的出票记录

机票价格:

(TicketPrice):

一张机票的价格,机票价格由以下公式计算:

经济舱成人票票价=基准价格*季节折扣

其他舱位乘客票价=基准价格*舱位折扣*乘客类型折扣

燃油税:

国家统一征收的,由乘坐民航飞机的乘客负担的一种税收,计算办法:

800KM以内(含)的航程,每人税费为60元,800KM以上的航程每人税费为100元,儿童票减半收取,婴儿票免收燃油税。

燃油税的征收不区分乘客舱位。

该项税费捆绑在机票上由航空公司代收代缴。

燃油税的收取额度和征收办法取决于国家相关部门的政策,该政策可能随时调整。

【参考文档2】

机场建设费:

国家统一收取的,由乘坐民航飞机的乘客负担的一种收费项目,用于支援民航机场的建设。

收取办法:

乘坐70座以下(含)的小飞机,每人每次收取10元;乘坐70座以上的大飞机,每人每次收取50元。

儿童和婴儿都不收取机场建设费。

机场建设费的征收不区分乘客舱位。

该项收费捆绑在机票上由航空公司代收代缴。

机场建设费的收取额度和征收办法取决于国家相关部门的政策,该政策可能随时调整。

【参考文档2】

机票应收款:

一张机票的应收款=机票价格+燃油税+机场建设费。

三、系统用例

1、用例描述

概述:

用例编号:

Case_01

用例名称:

登录

活动者:

用户

用例编号:

Case_02

用例名称:

退出登录状态

活动者:

用户

用例编号:

Case_03

用例名称:

更改密码

活动者:

用户

用例编号:

Case_04

用例名称:

查询航班

活动者:

营业员

用例编号:

Case_05

用例名称:

购票

活动者:

营业员

用例编号:

Case_06

用例名称:

退票

活动者:

营业员

用例编号:

Case_07

用例名称:

添加航班计划

活动者:

航班管理员

用例编号:

Case_08

用例名称:

删除航班计划

活动者:

航班管理员

用例编号:

Case_09

用例名称:

更改航班计划

活动者:

航班管理员

用例编号:

Case_10

用例名称:

查询航班计划

活动者:

航班管理员

用例编号:

Case_11

用例名称:

添加用户

活动者:

系统管理员

用例编号:

Case_12

用例名称:

删除用户

活动者:

系统管理员

用例编号:

Case_13

用例名称:

查询用户

活动者:

系统管理员

用例编号:

Case_14

用例名称:

修改用户

活动者:

系统管理员

用例编号:

Case_15

用例名称:

浏览用户

活动者:

系统管理员

详细描述:

用例编号

Case_01

用例名称

登录

活动者

用户

前置条件

启动应用程序

事件流

1、输入工号

2、输入密码

3、选择“登录”选项

4、成功登入相应的主界面

异常事件流

1、若在第3步,输入的帐号密码不正确,则弹出错误提示

2、重新输入

后置事件

用例编号

Case_02

用例名称

退出登录状态

活动者

用户

前置条件

在登录完成的基础上

事件流

1、保存更新的数据

2、成功退出

异常事件流

后置条件

用例编号

Case_03

用例名称

更改密码

活动者

用户

前置条件

在成功登录成功后,选择“密码修改”选项,并成功进入密码修改界面

事件流

1、选择修改密码选项

2、出现一个修改密码的界面

3、输入旧密码

4、输入新密码

5、再次输入新密码

6、选择“确定”选项

7、修改密码成功

异常事件流

1、提示出错信息

后置事件

用例编号

Case_04

用例名称

查询航班

活动者

营业员

前置条件

在成功登录到主界面后,选择“查询航班”选项,成功进入航班查询界面

事件流

1、根据顾客提供的信息,选择出发地与目的地和出发时间

2、告诉乘客具体信息

异常事件流

1、不存在输入的出发地和目的地之间的航线,弹出无直达信息

后置事件

用例编号

Case_05

用例名称

售票

活动者

营业员

前置条件

成功进入主界面后,选择“售票”选项,成功进入售票界面

事件流

1、根据顾客要求选择的某个航班后

2、如果存在所需航班,选择对应的航班,否则返回主界面

3、成功显示填入乘客信息文本

4、根据乘客提供的有效证件,输入乘客信息(姓名,证件号码),选择舱位信息和乘客类型

异常事件流

后置事件

用例编号

Case_06

用例名称

退票

活动者

营业员

前置条件

成功登录主界面后,选择“退票”选项

事件流

1、根据乘客提供的有效证件,输入机票编号或者输入乘客的证件号码或者乘客

2、成功显示查询结果

3、选择“退票”选项

4、成功退票

异常事件流

1、提示相应的出错信息

后置事件

用例编号

Case_07

用例名称

添加航班计划

活动者

航班管理员

前置条件

登录完成后,进入航班管理界面

事件流

1、选择'添加航班计划'选项;

2、进入添加航班计划界面表;

3、输入航班号;

4、输入出发地;

5、输入目的地;

6、输入航班班期;

7、输入起飞时间;

8、输入到达时间;

9、输入航班里程;

10、输入航班各舱载客最大容量;

11、成功添加航班计划;

异常事件流

1、显示相应的出错信息

后置条件

用例编号

Case_08

用例名称

删除航班计划

活动者

航班管理员

前置条件

进入航班管理界面,选择删除航班计划选项

事件流

1、输入航班号;

2、输入出发地;

3、输入目的地;

4、选择'确认'选项;

5、成功删除航班计划;

异常事件流

1、在第3步后,如果航班号错误,则显示“不存在的航班,请重新输入”;

后置条件

用例编号

Case_09

用例名称

更改航班计划

活动者

航班管理员

前置条件

进入航班管理界面

事件流

1、选择'修改航班计划'选项;

2、进入修改航班计划界面;

3、选择相应的修改选项(如:

航班日历,起飞时间,到达时间等);

4、选择'确定'选项

5、成功修改航班计划

异常事件流

显示相应的出错信息

后置条件

用例编号

Case_10

用例名称

查询航班计划

活动者

航班管理员

前置条件

进入航班管理界面

事件流

1、输入航班号;

2、输入出发地;

3、输入目的地;

4、输出信息; 

异常事件流

1、在第3步后,如果航班号错误,则显示“不存在的航班,请重新输入”;

后置条件

用例编号:

Case_11

用例名称:

添加用户

活动者:

系统管理员

前置条件

成功进入用户管理界面

事件流

1、填写帐户信息(帐号,密码等);

2、成功创建帐户。

异常事件流

1、显示相应的出错信息

后置条件

用例编号:

Case_12

用例名称:

删除用户

活动者:

系统管理员

前置条件

成功进入系统管理员主界面。

事件流

1、输入要删除的用户ID;

2、成功显示查询的结果;

3、选择确认选项;

4、成功删除所选帐户。

异常事件流

1、显示相应的出错信息

后置条件

用例编号:

Case_13

用例名称:

查询用户

活动者:

系统管理员

前置条件

成功进入系统管理员主界面

事件流

1、选择查询用户选项;

2、成功进入查询用户界面;

3、填写创建信息;(用户ID,用户名称,权限编号)

4、成功创建一个用户。

异常事件流

显示相应的出错信息

后置条件

得到创建许可。

用例编号:

Case_14

用例名称:

修改用户

活动者:

系统管理员

前置条件

成功进入系统管理员主界面

事件流

1、选择修改用户选项;

2、成功进入修改用户界面;

3、选择相应的修改选项(用户ID,用户名称,权限编号);

4、成功修改相应选项。

异常事件流

显示相应的出错信息

后置条件

得到修改许可。

用例编号:

Case_15

用例名称:

浏览用户

活动者:

系统管理员

前置条件

成功进入系统管理员主界面

事件流

1、选择浏览用户选项;

2、成功进入浏览用户界面;

异常事件流

显示相应的出错信息

后置条件

四、主要的数据结构设计

1、航班计划表:

flight

字段名

字段描述

字段类型(长度)

是否为空

范例样本

flightnum

航班号

Char(8)

TL2010

startdate

起始日期

Int

Notnull

20100401

enddate

结束日期

Int

Notnull

20100630

departure

离港时间

Char(6)

Notnull

08:

00

arrival

到港时间

Char(6)

Notnull

09:

00

num

余座

Int

Notnull

sche

班期

Int

Notnull

0110110

max

各舱容量

Int(3)

Notnull

psger

乘客头指针

passenger(367)

mileage

航班里程

Int

Notnull

400

2、用户表:

user

字段名

字段描述

字段类型

是否为空

范例

Worknum

工号

Int

2

name

姓名

Char(10)

NOTNULL

“张三”

password

用户密码

varChar(12)

NOTNULL

“zhangx”

level

角色

Int

NOTNULL

1

usernum

用户总数

Int

NOTNULL

12

3、乘客:

passenger

字段名

字段描述

数据类型

是否为空

范例

idcard

证件号

Char(20)

Notnull

344523452345

fnum

航班编号

Char(8)

Notnull

TL2010

name

乘客姓名

Char(10)

Notnull

Chen

date

航班日期

timestamp

Notnull

20100822

cabin

舱位等级

Char

(1)

Notnull

F

seatnum

座位号

Int

Notnull

A

price

最终票价

Double

4000.00

四、总结

首先,我在本次课程设计开发过程中,充分理解了拥有吃苦耐劳的品质对我们是多么的重要,不管做任何事,它的地位是不可忽视的。

其次,在课程设计的开发中,我认识到了前期开发所作的工作的重要性,在以后的开发中一定要做好前期的工作。

前期工作没有多好,整个设计开发就等于失败。

最后,我明白了有关模块化程序设计的要点:

一、模块与模块之间的耦合性要低;

二、模块的划分要尽量的细;

三、模块的边界要分明,不能模糊;

总之,要想做好课程设计,必须保持高度清晰的头脑,要想做好这一点,至关重要的一点就是做好开发文档,并不断完善之。

 

C程序代码

/************************************************************

航空管理系统

作者:

罗树英

时间:

2011年05月04日

*************************************************************/

#include

#include

#include

#include

#include

#defineseason_discount0.9/*季度折扣*/

typedefstructuser/*用户定义*/

{

charname[10];

intworknum;

intusernum;

charpassword[12];

intlevel;

structuser*next;

}user,*linkuser;

typedefstructpassenger/*乘客定义*/

{

charname[10];

charidcard[20];

intage;

charfnum[8];

intdate;

charcabin;

intprice;

intseatnum;

structpassenger*next;

}passenger,*linkpsger;

typedefstructflight/*航班定义*/

{

charflightnum[8];

charfcity[10];

chartcity[10];

intstartdate;

intenddate;

chardeparture[6];

chararrival[6];

intsche;

intmileage;

intnum[367][3],max[3];

structpassenger*psger[367];

structflight*next;

}flight,*linkflight;

linkflightfhead;/*航班表头*/

linkuseruhead;/*用户表头*/

linkusernowuser;/*当前用户*/

linkflightpre_f;

linkuserpre_user;

intw,f=0;

character[4][12]={"营业员","航班管理员","系统管理员"};

linkusersearch_user(int);

linkflightsearch();

intbelong(int);

voidsave2();

voidsave1();

voidprint_user(linkuser);

voidmenu1();

voidmenu2();

voidmenu3();

voidmenupass();

voidloginmenu();

intdaynum(int);

voidscan_passenger();

voidscan_user()/*浏览用户信息模块*/

{

linkuseru=uhead->next;

system("cls");

puts("\t\t\t\t欢迎查询用户信息!

\n\n");

printf("\t\t\t\t\t活动者:

%s用户:

%s\n",acter[nowuser->level-1],nowuser->name);

puts("\t\t*********************MENU*********************\n\n");

puts("\n\n\t\t用户名工号密码等级职位员工数\n");

while(u)

{

print_user(u);

u=u->next;

}

puts("\n\n\t\t**********************************************\n\n");

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1