飞机订票系统c语言大作业,c语言课程设计---飞机订票系统

《c语言课程设计---飞机订票系统》由会员分享,可在线阅读,更多相关《c语言课程设计---飞机订票系统(46页珍藏版)》请在皮匠网上搜索。

1、C 语言程序设计课程设计报告设计题目:飞机订票系统 学 院 专 业 班 级 学 号 姓 名 21 设计任务1.1 设计题目的描述飞机订票系统设计假定民航机场共有 10 个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和机票数。试设计一民航订票系统,使之能提供下列功能:.航班信息由管理员录入、修改、删除;.旅客可以浏览、按航线查询、按航班号查询、按终点站查询;.承办订票和退票业务;1.2 设计要求(1)仔细审题,明确题目要求。(2)按照结构化的程序设计思想,将程序模块化,将相对独立的功能写成函数。(3)要求编程、调试通过并演示;程序编写规范,添加适当注释。(4)。

2、按照课程设计报告的内容和格式要求,撰写课程设计报告,并且打印。2 设计方案说明2.1 数据的存储结构struct plane /定义结构体 long num; / 航班号char start12; / 起始站char end12; / 终点站char time10; / 飞行时间int piao; / 机票数struct plane *next;/ 指向自己结构体类型3;2.2 函数之间的调用关系说明2.3 函数说明函数 creat():(1) struct plane *creat();(2) 建立一个动态链表;(3) *head , *p1 ,他们都是指向 struct plane 数据类。

3、型的, head 是指向链表的最前边,p1 指向要插入的地方;(4) N-S-1:开辟一个新的节点,并使 p1 指向它读入一个航班的信息给 p1 指向的节点head=NULLinsertmainloadinputdisplaydeletemodifyquerybookingrefundcreatesave query_endprint query_numquery_start4p1-next!=0n 等于 1?head=p1输入航班信息p1-next=NULL函数 insert(1)struct plane *insert(struct plane * head, struct plane *。

4、 plan);(2)插入数据;(3)参数:head, plan . head 指向文件链表的第一个节点;plan 指向要插入的节点关键变量:*p0,*p1. p1 指向第一个节点;p0 指向要插入的节点;(4)N-S-2:p1=head;p0=plan;原来的链表是空的真 假当 p0-nump1-num 以及 p1 所指向的不是表尾节点 p1 指向 p2 的位置 p1 向后移一个节点真 p0-numnum 假Y p1 指向头结点 N将 p0 所指的节点作为唯一的节点head=0p0-next=p1P2-next=p0P0-next=p1p1-next=p0p0-next=NULLn=n+1函数。

5、 save:真 假真 假N-S-1假N-S-25(1)void save(struct plane *head);(2)保存数据到 plane_list 文件中;(3)参数:head 指向头结点;主要参数:p 为 struct plane 数据类型,指向要写入的节点;(4)N-S-3:ending.num = 0; p=head;真 写文件 plane_list 假结束程序当 p!=NULL真 写入正确 假继续写 returnp=p-next;关闭文件函数 print:(1) void print(struct plane *head );(2) 把信息显示出来;(3) 参数:head,指向链。

6、表的头结点;主要变量:p,指向要输出的节点;(4)N-S-4:p=head;真 head!=NULL 假当 p!=NULL输出数据p=p-next;N-S-36函数 load:(1) struct plane *load();(2) 读入链表文件;(3) 主要变量:head, p.;head 指向的是链表的头结点,而 p 指向的是读入的节点,是变化的;他们都指向结构体数据类型 struct plane;(4) N-S-5:h=NULL真 打开链表文件 假p=(struct plane *)malloc(LEN);开辟新节点假 !p 真 head=p; return h;真 读文件 假出错当 p。

7、-num != 0p-next=(struct plane *)malloc(LEN);真 !p-next 假return head;q=p; p=p-next;真 读文件 假exit(0);q-next=NULL;关闭文件return head;return h;结束N-S-4N-S-5N-S-47函数 del:(1) struct plane *del(struct plane * head, long num)(2) 删除数据;(3) 参数:head ,num;head 链表头结点;num 要删除的航班号;主要变量:p1,p2; 他们交替指向需要查询的节点;(4)N-S-6:真 head。

8、=NULL 假p1=head;num!=p1-num p1=p1-next;真 num=p1-num 假真 p1=head 假head=p1-next; p2-next=p1-next;free(p1);return(head);函数 query(query_num,query_start,query_end):(1) void query_num(struct plane *head,long int num);void query_start(struct plane *head,char i);void query_end(struct plane *head,char i);(2) 分。

9、别按照航班号、起始站、终点站查询;(3) 参数:head 为链表头结点;num 航班 号、i起始站、i 终点站;N-S-68主要变量:p 指向链表的节点;(4) :(以 query_num 为例,query_start,query_end 只需把图中的变量 换成对应的 start,end)p=head;真 head!=NULL 假当 p!=NULL真 p-num=num 假 p=p-next;结束;回到主函数调用输出函数输出函数 modify:(1) void modify(struct plane *head,int num,char a);(2) 修改数据;(3) 参数:head 指向链表。

10、头节点;num 要修改的航班号;a 为修改选项;主要变量:p 指向链表节点;(4) N-S-8:p=head;真 head!=NULL 假p!=NULL真 p-num=num 假输出要修改的数据 p=p-next;p=head;真 head!=NULL 假选择相应的选项修改数据N-S-79调用 save()函数来保存数据;结束函数(1) void booking(struct plane *head,int num,int book);(2) 订票函数;(3) 参数:(4) N-S-9:p=head;真 head!=NULL 假当 p!=NULL 指向的不是表尾节点真 p-num=num 假真。

11、 p-piao=book 假p-piao=p-piao-book;p=p-next; 调用 save()函数保存信息;结束;函数 refund:(1) void refund(struct plane *head,int num,int book);(2) 退票函数;(3) 参数:head 指向链表头节点;num 要订票的航班号;book 退票数量;主要变量:p 指向链表节点;N-S-9N-S-810(4) N-S-10:主函数 main:11N-S-11:按照主菜单上的选项输入相应的指令;c=getchar();1:调用 creat(),insert(),save(),print();录入数。

12、据;2:调用 laod(),print();显示录入的航班信息;3:调用 laod(),del(),save(),print();删除航班信息;4:调用 laod(),query_num();按航班号查询;5: 调用 laod(),query_start();按航班的起始站查询;6: 调用 laod(),query_end();按航班的终点站查询;7:调用 laod(),query_num();再用 modify(),save();遇到错误重新输入c=getchar();8: 调用 laod(),booking();订票并显示;p=head;真 head!=NULL 假当 p!=NULL 指向的不是表尾节点真 p-num=num 假p-piao=p-piao+book;p=p-next; 调用 save()函数保存信息;结束;N-S-10。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值