- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构订票系统
荆楚理工学院
《数据结构》课程设计
学院:计算机工程学院 班 级: 计算机科学与技术(1)班
学生姓名: ….. 学 号: 20094040101..
设计地点(单位)
设计题目: 订票系统
完成日期: 2011年 01 月4 日
指导教师评语:
成绩(五级记分制):
教师签名:
目 录
一、需求分析………………………………………… 3
二、算法流程图…………………………………………3
三、详细设计……………………………………………4
四、源程序………………………………………………5
五、程序测试…………………………………………19
六、心得体会…………………………………………20
一、需求分析:
通过此系统可以实现如下功能:
1) 录入航线信息
每条航线信息包括航班号、飞机号、目的地、订票数、余票数共5项。假设现在有3条航线, 目的地分别是北京, 上海, 广州, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100) , 将这3条航线信息存入文件“airline.dat” 中。
2) 订票业务
客户信息包括姓名, 航班号, 座位号(初始为0), 假设已有3个客户信息存入文件“customer.dat”中。
有新客户订票时, 先输入客户的姓名和他提出的航班号, 查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加到文件“customer.dat”中, 并修改文件“airline.dat”中该航线的订票数和余票数。若无余票, 则输出客满信息。进一步可实现如果该航班已经无票,可以提供相关可选择航班信息。
3) 退票业务
根据客户提出的航班号, 办理退票, 从文件“customer.dat”中删除该客户的信息, 并修改文件“airline.dat”中相应航线的订票数和余票数。
4) 修改航班信息:当航班信息改变可以修改航班数据文件。
5) 输出全部航线信息和全部客户信息。
6) 退出系统。
二、算法流程图
三、详细设计:
所需抽象数据类型定义和一些函数的声明见设计概要。
这里只解释一下执行函数和一些比较复杂一点的算法。
航空订票系统:
1)、执行函数:
见void air_main();
2)、定票函数:
status book(airline const *l,char *line_num,customer *c,char *name)//订票
{
//订票
airline *p=l;
customer *q=c-next ;
p=l-next ;
for(;q-next !=NULL;q=q-next){}
// PR(%s\n,q-name );
for(;p!=NULL;p=p-next )
{
if(strcmp(line_num,p-line_num )==0)
{
if(p-left 0)
{
PR(恭喜您!订票成功!\n);
PR(你的座位号是: %d\n,(p-total -p-left+1));
insert_customer(q,name,line_num,p-total-p-left +1);
p-left --;
return OK;
}
else PR(对不起,座位已满!\n);
return 0;
}
}
PR(对不起,没有这个航班号!\n);
return ERROR;
}
定票的同时也同时了修改航线信息,并在修改后把修改后的信息储存到文件中去。
文档评论(0)