C++课程设计概要.docx

上传人:b****2 文档编号:1902757 上传时间:2022-10-25 格式:DOCX 页数:32 大小:524.24KB
下载 相关 举报
C++课程设计概要.docx_第1页
第1页 / 共32页
C++课程设计概要.docx_第2页
第2页 / 共32页
C++课程设计概要.docx_第3页
第3页 / 共32页
C++课程设计概要.docx_第4页
第4页 / 共32页
C++课程设计概要.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C++课程设计概要.docx

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

C++课程设计概要.docx

C++课程设计概要

扬州大学信息工程学院

课程设计报告

 

课程名称C++课程设计

设计题目航空公司在线订票系统

学生姓名张格伟

班级网络1501班

学号151305131

指导老师严芬

 

2016年6月

 

一、设计任务与要求

制作一个订票系统,通过此系统可以实现如下功能:

1)浏览航线信息:

显示预先输入的航班信息;

2)查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。

3)订票:

可以订票,如果该航班已经无票,可以提供相关可选择航班(订票情况可以存在一个数据文件中,结构自己设定)。

4)退票:

可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

二、需求分析

2.1功能需求分析

功能需求分析模块图如图2.2.1功能模块图:

图2.2.1功能模块图

2.2系统需求分析

开发环境:

PC机

Windows8.1系统

VisualC++6.0

三、功能模块

3.1各模块的算法设计说明

1.浏览航线信息功能,调用display函数进行输出。

2.浏览已订票客户信息功能,按顺序输出客户信息链表中的信息。

流程图如图3.1.1浏览已订票客户信息功能流程图:

图3.1.1浏览已订票客户信息功能流程图

3.查询航线功能,根据客户提出的终点站名输出航线信息。

流程图如图3.1.2查询航线流程图:

图3.1.2查询航线流程图

4.办理订票业务功能,根据客户提出的航线信息等进行订票。

流程图如图3.1.3办理订票业务功能流程图:

图3.1.3办理订票业务功能流程图

5.办理退票业务功能,根据客户提出的航线信息等进行退票。

流程图如图3.1.4办理退票业务功能流程图:

图3.1.4办理退票业务功能流程图

6.主函数流程图如图3.1.7主函数流程图:

图3.1.7主函数流程图

3.2存储结构设计说明

typedefstructwai_cli/*单链队列存储等候替补的客户信息*/

{

charname[10];/*姓名*/

intreq_amt;/*订票量*/

structwai_cli*next;

}qnode,*qptr;

typedefstructpqueue/*等候替补的客户名单*/

{

qptrfront;/*等候替补客户名单域的队头指针*/

qptrrear;/*等候替补客户名单域的队尾指针*/

}linkqueue;

上述单链队列用来存储排队等候的客户名单,这样可以通过队先进先出的特点来进行操作。

先排队的客户可以先订票成功。

typedefstructpas_list/*乘员名单*/

{

charname[10];/*客户姓名*/

intord_amt;/*订票量*/

intgrade;/*舱位等级*/

structpas_list*next;

}linklist;

上述单链表用来存储乘员的信息,包括姓名、订票量、舱位等级。

structairline/*航线信息*/

{

charter_name[10];/*抵达城市*/

charair_num[10];/*航班号*/

charlaughtime[10];/*起飞时间*/

chararrivetime[10];/*到达时间*/

charpri[7];/*票价*/

inttkt_amt;/*乘员定额*/

inttkt_left;/*余票量*/

linklist*order;/*乘员名单域,指向乘员名单链表的头指针*/

linkqueuewait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/

}lineinfo;

这个结构体存储了航线信息,包括抵达城市、航班号、飞行时间、票价、乘员定额、余票量等。

#defineMAXSIZE8/*定义航线数量,可修改*/

航线信息存储在“f1.txt”文件里,程序刚开始进行导入即可。

四、源代码

#include

#include

#include

#include

#include

#include

#defineMAXSIZE8/*定义航线数量,可修改*/

usingnamespacestd;

typedefstructwai_cli/*单链队列存储等候替补的客户信息*/

{charname[10];/*姓名*/

intreq_amt;/*订票量*/

structwai_cli*next;

}qnode,*qptr;

typedefstructpqueue/*等候替补的客户名单*/

{qptrfront;/*等候替补客户名单域的队头指针*/

qptrrear;/*等候替补客户名单域的队尾指针*/

}linkqueue;

typedefstructpas_list/*乘员名单*/

{charname[10];/*客户姓名*/

intord_amt;/*订票量*/

intgrade;/*舱位等级*/

structpas_list*next;

}linklist;

structairline

{chardes_name[10];/*抵达城市*/

charair_num[10];/*航班号*/

charlaughtime[10];/*起飞时间*/

chararrivetime[10];/*到达时间*/

charpri[7];/*票价*/

inttkt_amt;/*乘员定额*/

inttkt_left;/*余票量*/

linklist*order;/*乘员名单域,指向乘员名单链表的头指针*/

linkqueuewait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/

}lineinfo;

structairline*start;

voiddisplay(structairline*info)/*打印每条航线的基本信息*/

{cout<des_name<<"\t"<<"\t"<air_num<<"\t"<laughtime<<"\t"<<"\t"<arrivetime<<"\t"<pri<<"\t"<<""<tkt_amt<<"\t"<<"\t"<<""<tkt_left<

}

voidlist()/*打印全部航线信息*/

{structairline*info;

inti=0;

info=start;

cout<

cout<<"*N代表第二天"<

cout<<"终点站名\t航班号\t起飞时间到达时间\t票价\t乘员定额\t余票量"<

while(i

{display(info);/*调用display函数来输出*/

info++;

i++;

}

cout<

}

voidsearch()/*根据客户提出的终点站名输出航线信息*/

{structairline*info,*find();

charname[10];/*要抵达的城市名称*/

inti=0;

info=start;

cout<<"请输入要抵达城市的名称:

";

cin>>name;

while(i

{if(!

strcmp(name,info->des_name))/*有该站名strcmp则返回,if(!

0)即break*/

{break;}

info++;

i++;

}

if(i>=MAXSIZE)/*没有匹配的航线*/

{cout<<"对不起,没有这条航线!

"<

else

{cout<<"终点站名\t航班号\t起飞时间到达时间\t票价\t乘员定额\t余票量"<

display(info);/*调用display函数输出航线信息*/

}

}

structairline*find()/*根据系统提出的航班号查询并以指针形式返回*/

{structairline*info;

charnumber[10];/*查询的航班号*/

inti=0;

info=start;

cout<<"请输入航班号:

";

cin>>number;

while(i

{if(!

strcmp(number,info->air_num))/*有匹配航班*/

{returninfo;}

info++;

i++;

}/*无匹配航班*/

cout<<"对不起,没有这条航线!

"<

returnNULL;

}

voidprtlink()/*打印订票乘员名单域的客户名单信息*/

{linklist*p;

structairline*info;

info=find();

p=info->order;

if(p!

=NULL)/*按顺序输出客户信息链表*/

{cout<<"客户姓名订票数额舱位等级"<

while(p)

{cout<name<<"\t"<<""<ord_amt<<"\t"<<"\t"<grade<

p=p->next;

}

}

else/*没有人订这个航班*/

cout<<"该航线没有客户信息!

"<

}

linklist*insertlink(linklist*head,intamount,charname[],intgrade)/*增加订票乘员名单域的客户信息*/

{linklist*p1,*new1;

p1=head;

new1=(linklist*)malloc(sizeof(linklist));

if(!

new1)/*存储空间不足*/

{cout<

"<

returnNULL;

}

strcpy(new1->name,name);

new1->ord_amt=amount;

new1->grade=grade;

new1->next=NULL;

head=new1;

new1->next=p1;

returnhead;

}

linkqueueappendqueue(linkqueueq,charname[],intamount)/*增加排队等候的客户名单域*/

{qptrnew1;

new1=(qptr)malloc(sizeof(qnode));

strcpy(new1->name,name);

new1->req_amt=amount;

new1->next=NULL;

if(q.front=

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

当前位置:首页 > 人文社科 > 法律资料

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

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