完整word版飞机订票系统.docx

上传人:b****1 文档编号:23206225 上传时间:2023-05-15 格式:DOCX 页数:15 大小:89.91KB
下载 相关 举报
完整word版飞机订票系统.docx_第1页
第1页 / 共15页
完整word版飞机订票系统.docx_第2页
第2页 / 共15页
完整word版飞机订票系统.docx_第3页
第3页 / 共15页
完整word版飞机订票系统.docx_第4页
第4页 / 共15页
完整word版飞机订票系统.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

完整word版飞机订票系统.docx

《完整word版飞机订票系统.docx》由会员分享,可在线阅读,更多相关《完整word版飞机订票系统.docx(15页珍藏版)》请在冰豆网上搜索。

完整word版飞机订票系统.docx

完整word版飞机订票系统

课程设计任务书

设计题目

飞机订票系统

学生姓名

所在院部

计算机科学与信息工程学院

专业、班级

设计要求:

设计一个飞机订票系统,具体要求如下:

1。

航班信息(包括航班号,起点站,终点站,机票数等)

2.航班信息浏览

3。

按航班号排序

4。

查询航线:

按航班号查询

5。

承办订票和退票业务

7.保存到文件

8.退出

学生应完成的工作:

1.学生应认真学习参考程序,理解每个文件、每个函数以及各个变量的作用和意义.在此基础上进一步改进程序,最后正确地运行程序。

2.对程序进行测试,设计详细的测试计划,然后根据测试计划设计测试用例,对程序进行测试。

测试时应注意对各种边缘情况进行测试。

3.完成课程设计报告。

参考文献:

1。

梁旭等C程序设计课程设计电子工业出版社2011

2.谭浩强C程序设计(第四版)清华大学出版社2010

工作计划:

1。

小组审题,查阅资料,进行设计前的必要资料准备(3天).

2.把程序完整运行出来(4天)。

3。

增加改进程序(3天)。

4。

写课程设计报告(3天)。

5.提交课程设计报告及答辩(1天)

任务下达日期:

2013年6月10日

任务完成日期:

2013年6月23日

指导教师(签名):

学生(签名):

 

飞机订票系统

1前言

编写一个程序来完成航班订票.通过程序来完成航班信息录入功能(航班信息用文件保存),其中包括航班号、起始站、重点站、机票数等;航班信息浏览功能;按航班号排序;查询航线:

按航班号查询;承办订票和退票业务。

2需求分析

2.1要求

(1)用C语言实现程序设计;

(2)利用结构体、共用体进行相关信息处理;

(3)画出查询模块的流程图;

(4)系统的各个功能模块要求用函数的形式实现;

(5)界面友好(良好的人机互交),程序要有注释。

2。

2任务

(1)定义一个结构体类型数组,包括航班号,起点站,终点站,机票数等;

(2)输入航班号进行查询;

(3)画出部分模块的流程图;

(4)编写代码;

(5)程序分析与调试。

2。

3运行环境

(1)WINDOWS2000/XP系统

(2)C++6.0编译环境

2。

4开发工具

C语言

3概要设计

3。

1系统流程图

 

飞机

订票

系统

系统

初始化

增加

航班

信息

航班

信息

浏览

航班

排序

订票

业务

退票

业务

建立

新数据

文件

从已有的数据文件读取

按航班号从小到大排序

按航班号从大到小排序

查找

航班

信息

航班号查找

退出并保存

 

3.2查询函数流程图

 

数据文件

是否存在

输入航班信息并建立新数据文件保存下来

从已有的数据文件读取已有的航班信息

Y

初始化

结束

N

 

4详细设计

在程序的开头部分定义了结构替类型,用来存放按钮信息

通过这些为形成整个界面提供了大的前提.

structairline*start;

structairlineair[MAXSIZE]={

{”beijing”,”1”,"B8571","SUN”,3,1},

{"shanghai”,"2”,”S1002",”MON",2,5},

{”london”,"3”,"L1003","FRI”,1,3}

};;

voiddisplay(structairline*info)

printf("%8s\t%3s\t%s\t%4s\t\%d\t\%d\t\n”,info-〉ter_name,info->air_num,info—〉plane_num,info-〉date,info—〉tkt_amt,info->tkt_sur);

}

/*浏览航线信息函数*/

voidlist()

structairline*info;

inti=0;

info=start;

printf("终点站名\t航班号\t飞机号\t飞行日期””乘员定额"”余票量\n”);

while(i〈MAXSIZE){

display(info);

info++;

i++;

}

printf("\n\n");

}

voidsearch()

structairline*info,*find();

charname[10];

inti=0;

info=start;

printf(”请输入终点站名:

”);

scanf(”%s",name);

while(i〈MAXSIZE)

{

if(!

strcmp(name,info—〉ter_name))break;

info++;

i++;

if(i〉=MAXSIZE)

printf("对不起,该航线未找到!

\n”);

else

{

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n”);

display(info);

}

structairline*find()

{

structairline*info;

charnumber[10];

inti=0;

info=start;

printf("请输入航班号:

");

scanf("%s",number);

while(i

{

if(!

strcmp(number,info-〉air_num))returninfo;

info++;

i++;

}

printf(”对不起,该航线末找到!

\n");

returnNULL;

}

/*浏览已订票客户信息*/

voidprtlink()

linklist*p;

structairline*info;

info=find();

p=info-〉order;

if(p!

=NULL){

printf("客户姓名订票数额舱位等级\n”);

while(p){

printf("%s\t\t%d\t%d\n",p->name,p—>ord_amt,p-〉grade);

p=p—〉next;

}

else

printf(”该航线没有客户信息!

!

\n");

}

linklist*insertlink(linklist*head,intamount,charname[],intgrade)

{linklist*p1,*new1;

p1=head;

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

if(!

new1){printf(”\nOutofmemory!

\n");returnNULL;}

strcpy(new1—>name,name);

new1—〉ord_amt=amount;

new1-〉grade=grade;

new1->next=NULL;

if(head==NULL)

{head=new1;new1—>next=NULL;}

else

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==NULL)

q。

front=new1;

else

q.rear->next=new1;

q。

rear=new1;

returnq;

voidorder()

{structairline*info;

intamount,grade;

charname[10];

info=start;

if(!

(info=find()))return;

printf(”请输入你订票所需要的数量:

");

scanf(”%d”,&amount);

if(amount>info-〉tkt_amt)

{printf("\n对不起,您输入的票的数量已经超过乘员定额!

");

return;

}

if(amount〈=info->tkt_sur)

{

inti;

printf("请输入您的姓名(订票客户):

");

scanf("%s",name);

printf(”请输入%s票的舱位等级:

",name);

scanf("%d”,&grade);

info-〉order=insertlink(info—〉order,amount,name,grade);

for(i=0;i

printf(”%s的座位号是:

%d\n",name,info—>tkt_amt-info->tkt_sur+i+1);

info-〉tkt_sur—=amount;

printf("\n祝您乘坐愉快!

\n");

}

else

{charr;

printf(”\n已经没有更多的票,您需要排队等候吗?

(Y/N)”);

//r=getch();

//printf(”%c”,r);

scanf("回车继续等待%c”,&r);

if(r==’Y’||r==’y’)

{printf("\n请输入您的姓名(排队订票客户):

");

scanf(”%s”,name);

info->wait=appendqueue(info—〉wait,name,amount);

printf("\n注册成功!

\n”);

elseprintf("\n欢迎您下次再次订购!

\n");

}

voidreturn_tkt()

{structairline*info;

qnode*t,*back,*f,*r;

intgrade;

linklist*p1,*p2,*head;

charcusname[10];

if(!

(info=find()))return;

head=info—>order;

p1=head;

printf("请输入你的姓名(退票客户):

");

scanf("%s”,cusname);

while(p1!

=NULL){

if(!

strcmp(cusname,p1—>name))break;

p2=p1;p1=p1-〉next;

if(p1==NULL){printf("对不起,你没有订过票!

\n”);return;}

else

if(p1==head)head=p1—〉next;

elsep2->next=p1->next;

info—>tkt_sur+=p1—〉ord_amt;

grade=p1—〉grade;

printf("%s成功退票!

\n”,p1—>name);

free(p1);

}

info->order=head;

f=(info—〉wait)。

front;

r=(info—>wait)。

rear;

t=f;

while(t)

{

if((info-〉tkt_sur=info—>wait。

front—>req_amt))

{

inti;

info-〉wait.front=t->next;

printf(”%s订票成功!

\n",t—>name);

for(i=0;i〈t—>req_amt;i++)

printf(”%s的座位号是:

%d\n”,t->name,(info—>tkt_sur)-i);

info—〉tkt_sur-=t—>req_amt;

info—>order=insertlink(info—〉order,t—〉req_amt,t—>name,grade);

free(t);

break;

}

back=t;t=t->next;

if((info—〉tkt_sur)〉=(t—>req_amt)&&t!

=NULL)

{inti;

back->next=t—〉next;

printf("%s订票成功!

\n”,t—>name);

for(i=0;i

printf(”<%s>’sseatnumberis:

%d\n”,t->name,(info—〉tkt_sur)-i);

info—>tkt_sur—=t—>req_amt;

info—〉order=insertlink(info->order,t—〉req_amt,t—〉name,grade);

free(t);break;

if(f==r)break;

}

voidsort_tkt()

intj;

structairlinet,*info,*p,*q;

p=info=air;

for(p=info;(p+1)—〉tkt_sur;p++)

for(q=p+1;q-〉tkt_sur;q++)

if(p—>tkt_sur〈q->tkt_sur)

t=*p;

*p=*q;

*q=t;

}

}

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");

for(j=0;j〈MAXSIZE;j++)

display(info);

info++;

}

}

intmenu_select()

{

intc;

chars[20];

printf(”\n\t\t航空客运订票系统(byzjhxmjl)\n");

printf("******************************************\n");

printf(”**1。

浏览航线信息**\n");

printf("**2。

浏览已订票客户信息**\n");

printf("**3。

查询航线**\n");

printf(”**4.办理订票业务**\n");

printf("**5.办理退票业务**\n”);

printf(”**6。

查看剩余票数并排序**\n");

printf(”**0。

退出系统**\n”);

printf(”*******************************************\n");

do

{

printf("请选择:

”);

scanf("%s”,s);

c=atoi(s);/*atoi将字符串转换为整型*/

}while(c〈0||c>7);

returnc;

}

intmain()

start=air;

for(;;)

{

switch(menu_select())

{

case1:

list();break;

case2:

prtlink();break;

case3:

search();break;

case4:

order();break;

case5:

return_tkt();break;

case6:

sort_tkt();break;

case0:

printf("\n欢迎使用本系统,再见!

\n");exit(0);

}

printf(”\nPressanykeytocontinue!

\n”);

getchar();

}

return0;

}

通过调用上面定义的函数实现了飞机订票整个功能.

5改进或增加功能模块说明

6程序测试

(1).测试系统能否正确显示菜单选项

执行程序后,显示本系统的菜单选项界面,如图6-1所示.

图6—1飞机订票系统主界面

(2).测试系统能否正确显示机票信息

输入如下数据:

终点站名航班号飞机号飞行日期成员定额余票量

Beijing1B8571SUN31

Shanghai2S1002MON25

London3L1003FRI13

进入主菜单界面后,输入数字1进入浏览航线信息,根据提示输入你要进行的操作的序号,就能完成你要进行的操作。

图6—2输入浏览航线信息界面

7课程设计总结

本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时,可根据提示运行本程序,得到结果。

8参考文献

[1]张福祥.C语言程序设计[M]。

辽宁大学出版社,2008。

1

[2]张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:

辽宁大学出版社,2008.

[3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:

中国铁道出版社,2008.

9致谢

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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