2022年C语言-飞机订票系统.docx

上传人:C****o 文档编号:12788763 上传时间:2022-04-26 格式:DOCX 页数:37 大小:533.18KB
返回 下载 相关 举报
2022年C语言-飞机订票系统.docx_第1页
第1页 / 共37页
2022年C语言-飞机订票系统.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《2022年C语言-飞机订票系统.docx》由会员分享,可在线阅读,更多相关《2022年C语言-飞机订票系统.docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源飞机订票系统欢迎下载精品学习资源一、课程设计目的1明白并把握算法的设计方法,具备初步的独立分析和设计才能;2初步把握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3提高综合运用所学的理论学问和方法独立分析和解决问题的才能;二、课程设计的内容和要求本程序主要用于机票的治理,甩以供应了以下功能,行班信息输入输出储存、航线查询、订票,退票,和修改航班信息;创建航班信息: 包括航班号、起飞时间、降落时间、起飞抵达城市、航班票价、及票价的折扣,票数等信息 . 录入的信息应当储存在一个文件里;浏览航班信息 : 通过浏览系统,客户可以依据自己时间、金钱等多方面的因素选择适合自

2、己的航班;修改航班信息: 当航班信息转变可以修改航班数据文件;查询航班信息: 可通过航班号查询, 可通过飞机终点站查询, 也可以按航线查询 ;删除航班信息 : 可通过航班号删除,也可以按航线删除;添加航班信息: 按添加的航班数量依次添加航班信息订票: 可以订票,假如该航班已经无票,可以举荐相关航班退票: 不中意所订的票时可进行退票三、算法的基本思想1. 涉及到的数据结构typedef struct flightnode/定义结构体数组int num;/航班号char start20;char over20;/起始城市终点城市char Stime10;/起始时间har Etime10; int

3、Price;int Discount;/折扣 int count;/机票数struct flightnode *next; NODE;欢迎下载精品学习资源飞机票治理系统2. 基本功能模块创浏修查删添建览改找除加航航航航航航订退班班班班班班票票信信信信信信息息息息息息主函数模块;1) 函数原形: void main;2) 功能:调用 initlist&h函数和 menu函数,初始化函数和显示主界面创建航班信息模块1) 函数原形: void creat;2) 功能: 本模块是对程序中的 create函数和 save函数的详细说明链表的储备结构,对该创建的链表调用save函数,储备到数据文件中去浏览

4、航班信息模块1) 函数原形 : void print;2) 功能:输出航班信息修改航班信息模块1) 函数原形 : void change2) 功能:当航班信息转变可以修改航班数据文件欢迎下载精品学习资源20 查找航班信息模块1函数原形 :NODE *search :查找航班信息数据2功能:由于航班的录入和储存是由链表储备结构进行的,所以此查询就可通 过链表对该文件进行查看或者查询, 查询我们可依据航班号和航班抵达的城市和航线匹配查询,在查询中将需要查询的航班号no和文件阅读时指针所指的值num 进行比较,而按抵达城市查找就利用函数strcmpp-next-start,name1 假设匹配就输出

5、;删除航班信息模块1函数原形 :void del2功能:选择按什么方式删除,然后按该方式删除添加航班信息模块1函数原形 :void add;2功能:按添加的航班数量依次添加航班信息订票信息模块1函数原形 : int book_tickets2功能: 先依据 search 函数查询要订票的航班, 在订票时应先按乘客想要定的航班号或者抵达城市或航线查询,并按乘客欲定的票的数目与查询数目进行比较,假设订票的票数小于该航班票数, 就输出订票成功, ,且在整个定票系统中, 全部的定票都用链表进行储备治理退票信息模块1函数原形 : int tuipiao2功能:在退票系统中即对航班票的数据文件进行治理,所

6、以可先依据查询航班票的方法, 假设查询到的票的信息和乘客此时要求退票的信息相匹配,就在该定票数据文件中删除相应的该票的节点,再修改其航班信息;欢迎下载精品学习资源3. 主要功能模块流程图开头输出界面选择操作欢迎下载精品学习资源选择 1选择 2创建航班信息浏览航班信息欢迎下载精品学习资源欢迎下载精品学习资源选择 3选择 4选择 5选择 6选择 7选择 8修改航班信息查找航班信息删除航班信息添加航班信息订票信息退票信息按航班或终点站或航线按航班号或航线欢迎下载精品学习资源选择 0退出终止欢迎下载精品学习资源四、系统测试1. 选择 1,运行界面如下:2. 选择 2,运行界面如下:欢迎下载精品学习资源

7、3选择 3,运行界面如下:4选择 4,运行界面如下:欢迎下载精品学习资源5选择 5,运行界面如下:6. 选择 6,运行界面如下:欢迎下载精品学习资源7. 选择 7,运行界面如下:8. 选择 8,运行界面如下:欢迎下载精品学习资源9. 选择 0,运行界面如下:五结论本次程序设计主要用到了结构体、 调用函数、文件的储存、 输入以及输出等功能;使我对数据结构有了更深一层的熟识, 特别是对动态链表和文件的运用得到了很大的提高;在本次试验中程序曾多次编译、 运行出错, 多亏了王帅老师的指导才将错误找出并改正,通过本次试验,我熟识到实践和动手的重要性;欢迎下载精品学习资源六源程序及系统文件使用说明程序清单

8、#include/标准输入、输出头文件#include/包含字符串函数处理头文件#include/包含动态储备与释放函数头文件typedef struct flightnode/定义结构体数组int num;/航班号char start20;/起始城市char over20;/终点城市char Stime10;/起始时间char Etime10;intPrice;floatDiscount;/折扣intcount;/ 机票数struct flightnode*next; NODE;#definePRINT%4d%9.6s %9.6s %9.6s %9.6s%9d%.1f%9dn,p-next-

9、num,p-next-start,p-next-over,p-next-Stime,p-next-Etime,p-n ext-Price,p-next-Discount,p-next-count /定义输出格式void creat;/ 创建航班信息文件void print;/输出航班信息void save;/储存航班信息int read;/读取航班信息NODE *search;/查找航班信息void del;/删除航班信息int book_tickets;/订票信息int tuipiao;/退票信息 void change;/修改信息void menu;/菜单void initlistNODE

10、 *;/ 初始化函数void add;/添加信息函数NODE *h=NULL; / 建立全局变量,存链表头指针int m=0;/航班数量void initlistNODE *h*h=NODE *mallocsizeofNODE; *h-next=NULL;void creat/ 打印模块程序FILE *fp;欢迎下载精品学习资源NODE *p=NULL;/ 定义移动指针int i,flightnum;char y; p=h;iffp=fopenair.dat,rb.=NULL/打开文件,并判定是否出错printf信息文件已经存在,不必创建 . 按任意键后回车返回 nnn;/ 打印出错提示fcl

11、osefp; fflushstdin; getchar; return ;p=h;printf 请输入要输入的航班数量 :;fflushstdin;/清除文件缓冲区scanf%d,&flightnum;/读取航班数systemcls;/ 清屏printf 请依次输入航班信息 :nn; /打印提示信息printfn;fori=0;inext=NODE *mallocsizeofNODE; p-next-next=NULL;printf 航班号:;fflushstdin;scanf%d,&p-next-num;/读取航班号printf 起始站:;fflushstdin;scanf%10s,&p-n

12、ext-start;/ 读取起飞城市printf 终点站:;fflushstdin;scanf%10s,&p-next-over;/ 读取抵达城市printf 起始时间 :;fflushstdin;scanf%10s,&p-next-Stime;/ 读取起飞时间printf 抵达时间 :;fflushstdin;scanf%10s,&p-next-Etime;/ 读取抵达时间printf 航班票价 :;fflushstdin;scanf%d,&p-next-Price;/ 读取航班票价printf 票价折扣 :; fflushstdin;欢迎下载精品学习资源scanf%10f,&p-next-

13、Discount;/ 读取票价折扣printf 机票数:,m; fflushstdin;scanf%d,&p-next-count;/ 读取机票数printf第%d 个信息已经输完 n,i+1; p=p-next;m+;printf 信息输入完毕,是否存盘 :存盘按 0,不存盘按其他任意键 ; fflushstdin;y=getchar; ify=0save;/将结构体信息存盘print;/ 输出输入的航班信息void save/储存模块程序NODE *p=NULL;/ 定义移动指针FILE *fp,*fp1;/ 定义指向文件指针p=h;iffp=fopenair.dat,wb=NULL/打开

14、文件并判定是否出错printf创建文件失败 .nnn;/ 打印出错提示fflushstdin;getchar; return;iffp1=fopennum.dat,wb=NULL/打开文件并判定是否出错printf创建文件失败 .nnn;/ 打印出错提示fflushstdin;getchar; return;whilep-next.=NULLiffwritep-next,sizeofNODE,1,fp=0/ 向文件写入数据, 并判定是否出错printf向文件输入数据失败 .nnn; break;欢迎下载精品学习资源else p=p-next;fprintffp1,%d,m; / 按指定的格式输

15、出到fp1 所指定的文件中fclosefp;/ 关闭文件fclosefp1;/ 关闭文件int read/从文件读取信息模块FILE *fp,*fp1;/ 定义文件指针NODE *p=NULL;int i; initlist&h; p=h;iffp=fopenair.dat,rb=NULL/打开文件,并判定是否出错printf 出错,请检查信息文件是否存在,按任意键后回车返回住菜单nnn;/ 打印出错提示fflushstdin; getchar; return 0;iffp1=fopennum.dat,rb=NULL/打开文件并判定是否出错printf创建文件失败 .nnn;/ 打印出错提示f

16、flushstdin; getchar; return 0;fscanffp1,%d,&m;/ 从 fp1 所指定的文件中按给定的格式将输入数据送内存中fclosefp1;/关闭文件printfn总共%d 个航班信息 n,m; fori=0;inext=NODE *mallocsizeofNODE; p-next-next=NULL;freadp-next,sizeofNODE,1,fp;/ 从文件中读取信息p=p-next;fclosefp;/ 关闭文件return 1;void print/ 打印模块欢迎下载精品学习资源NODE *p=NULL;ifread=0return;/ 调用读取文

17、件函数 ,并判定是否文件存在;p=h;printf n;printf 航班号起始站终点站起始时间抵达时间航班票价票价折扣票数 n;whilep-next.=NULLprintfPRINT;/ 打印信息p=p-next;printf ;printfnnnnnn 请按任意键后回车终止返回上层菜单 :n; fflushstdin;getchar;NODE *search/ 查询模块NODE *p=NULL;NODE *x=NULL;/* 用于记录查询到的记录 */ char name120;char name220; char ii10;int n,no; int flag=0;ifread=0re

18、turn 0;p=h; doprintf请选择查找方式:nn;/打印查询方式菜单printfn;printf1.按航班号查找 nn2.按终点站查找 nn3.按航线查找 nn0.返回nn;printf请在 0-3 中选择: nn按其他键后回车返回主菜单 :nnnnn; fflushstdin;scanf%d,&n;/ 读取查找方式ifn=0break;欢迎下载精品学习资源switchncase 1:printf请输入航班号: n;fflushstdin; scanf%d,&no;/ 航班号break;case 2:printf请输入终点站名称: n; fflushstdin;scanf%10s,

19、name2;/读取终点站break; case 3:printf请输入起始站名称:n;fflushstdin;scanf%10s,name1;/读取起始站printffflushstdin;请输入终点站名称:n;scanf%10s,name2;/终点站break;default: printf请选择有效查询方式 .nnn;whilep-next.=NULLifstrcmpp-next-start,name1=0|strcmpp-next-over,name2=0/按终点站起始站判定输出条件printfn 查找航班信息成功 .nnn; printf 航班号起始站终点站起始时间抵达时间航班票价票价

20、折扣票数n;printfPRINT;/ 打印信息x=p-next; flag=1; break;ifp-next-num=no/ 按航班号判定输出条件printfn 查找航班信息成功 .nnn; printf 航班号起始站终点站起始时间抵达时间航班票价票价折扣票数n;printfPRINT;/ 打印信息x=p-next; flag=1; break;欢迎下载精品学习资源p=p-next;if.flag printf 查找失败 .:nnnnn; printf nnn是否重新查找 .n请键入 yes 或 non后回车键终止 nnnnnn;no=0;/将航班号赋值为 0 p=h;flag=0; ff

21、lushstdin; scanf%10s,ii;whilestrcmpii,yes=0;/ 判定终止returnx;void addint flightnum; int i,y;NODE*p=NULL;i=read; ifi=0return; p=h;whilep-next.=NULLp=p-next; printf 请输入要输入的航班数量 :; fflushstdin;scanf%d,&flightnum;/读取航班数systemcls;printf 请依次输入航班信息 :nn; / 打印提示信息printfn;fori=0;inext=NODE *mallocsizeofNODE; p-n

22、ext-next=NULL;printf 航班号:;fflushstdin;scanf%d,&p-next-num;/读取航班号printf 起飞城市 :;fflushstdin;scanf%10s,&p-next-start;/ 读取起飞城市printf 抵达城市 :;欢迎下载精品学习资源fflushstdin;scanf%10s,&p-next-over;/ 读取抵达城市printf 起飞时间 :;fflushstdin;scanf%10s,&p-next-Stime;/ 读取起飞时间printf 抵达时间 :;fflushstdin;scanf%10s,&p-next-Etime;/ 读

23、取抵达时间printf 航班票价 :;fflushstdin;scanf%d,&p-next-Price;/ 读取航班票价printf 票价折扣 :; fflushstdin;scanf%10f,&p-next-Discount;/ 读取票价折扣printf 机票数 :,m; fflushstdin;scanf%d,&p-next-count;/ 读取机票数printf第%d 个信息已经输完 n,i+1; p=p-next;m+;printf 信息输入完毕,是否存盘 :存盘按 0,不存盘按其他任意键后回车 ; fflushstdin;scanf%d,&y; ify=0save;/将结构体信息存

24、盘print;/ 输出输入的航班信息void del/ 删除模块NODE *p=NULL;NODE *temp=NULL; char name120; char name220; char ii10;int no,n; int flag=0;ifread=0return;/ 调用读取函数doprintf请选择删除以方式回车键终止: nn; printf*1. 按航班号删除 nn欢迎下载精品学习资源*2. 按航线删除 nn*0. 返回nn;printf请在 0-2 中选择以回车键终止: nnn; fflushstdin;scanf%d,&n;/ 读取删除方式ifn=0break;/跳出循环swi

25、tchncase 1:printf航班号: n;fflushstdin;scanf%d,&no;/读取航班号p=h;break;/ 跳出循环case 2:printf起始站名称: n;fflushstdin; scanf%10s,name1;/读取起始站printf终点站名称: n;fflushstdin;scanf%10s,name2;/读取终点站p=h;break;/跳出循环default: printf请选择有效的选项: n; continue;whilep-next.=NULLifp-next-num=no|strcmpp-next-start,name1=0&strcmpp-nex

26、t-over,name2=0./判定输入信息是否存在temp= p-next-next; p-next=temp;m-;flag=1;printf删除成功 .剩余%d 条信息nnnnn,m; break;p= p-next;if.flagprintf没有这个信息 .nnnnn; printf是否连续删除 n请键入 yes 或 no 以回车键终止 n; fflushstdin;欢迎下载精品学习资源scanf%10s,ii;/读取是否连续信息save; /调用储备函数if.strcmpii,yes / 判定是否连续删除printf请按任意键后回车终止返回上层菜单 :nnnnnn; break;wh

27、ile1;/判定终止int book_tickets/ 订票模块int n;char a10;NODE *x=NULL;NODE *p=NULL;doprintf 查找要订票的航班: n; x = search;/调用查询模块ifx.=NULLprintf 请输入您要订的机票数以回车键终止: n; fflushstdin;scanf%d,&n;/读取所订机票数else return 0; ifncount.=0&x-count=n/判定是否出错x-count=x-count-n; save;/调用储存函数printf订票成功 .nn; break;ifx-countn/ 判定是否出错print

28、f 该航班机票已被定完,请预定其他航班:nnnnnn; break;printf 是否连续?请输入yes 或 no 以回车键终止 :nnnnnn;/ 判定是否连续订票fflushstdin;欢迎下载精品学习资源scanf%10s,a;while.strcmpa,yes;/判定终止return1;int tuipiao/退票模块int n;char a10;NODE *p=NULL;NODE *x=NULL;doprintf查找要退票的航班 n;x= search;/调用查询模块ifx.=NULLprintf请输入您要退的机票数目: n; fflushstdin;scanf%d,&n;/输入所退

29、票数else return 0;whilencount= x-count+n;save;/调用储存模块printf 退票成功 .nnnnn;printf 是否连续退票?请键入 yes或 no 以回车键终止 :nnn;/ 判定是否连续退票fflushstdin; scanf%10s,a;while.strcmpa,yes;/ 判定并跳出循环return 1; fflushstdin; getchar;void change/修改模块char j10;NODE *x=NULL;NODE *p=NULL;欢迎下载精品学习资源ifread=0return; dox=search; ifx.=NULLp

30、rintf 请重新输入本条信息 nnnnn; printf 航班号:n;fflushstdin;scanf%d,&x-num;/读取航班号printf 起始站:n;fflushstdin;scanf%10s,&x-start;/ 读取起始站printf 终点站:n;fflushstdin;scanf%10s,&x-over;/ 读取终点站printf 起始时间 :n;fflushstdin;scanf%10s,&x-Stime;/ 读取起始时间printf 抵达时间 :n;fflushstdin;scanf%10s,&x-Etime;/ 读取抵达时间printf 航班票价 :n; fflush

31、stdin;scanf%d,&x-Price;/ 读取航班票价printf 票价折扣 :n; fflushstdin;scanf%10f,&x-Discount;/ 读取票价折扣printf 机票数:n; fflushstdin;scanf%d,&x-count;/ 读取机票数save;/调用储存模块printf是否连续修改?请键入 yes或 no 以回车键终止 :nnnnn; fflushstdin;scanf%10s,j;whilestrcmpj,yes=0;/ 判定终止void menuintj;printfn- 欢迎进入中国民航治理系统nn;do欢迎下载精品学习资源printf1.创建

32、航班信息文件n2.浏览航班信息n3.修改航班信息n4.查找航班信息n5.删除航班信息n6.添加航班信息n7.订票信息8.退票信息nn0.退出nn;printf请在 0-9 中选择以回车键终止: nn;欢迎下载精品学习资源fflushstdin; scanf%d,&j; switchjcase 1: creat;/调/ break;用输入模块欢迎下载精品学习资源case 2:print;/调用打印模块break;欢迎下载精品学习资源case 3:change;/调/ break;case 4:search;/调/break;用修改模块用查找模块欢迎下载精品学习资源case 5:del;/调用删除模块break;欢迎下载精品学习资源case 6:add;/调/ break;用订票模块欢迎下载精品学习资源case 7:book_tickets;/调用订票模块break;case 8:tuipiao;/调用退票模块break;case 0:;break;default:printf请 选 择 有 效 选 项 . 按 任 意 键 后 回 车 返 回 ;nnnnnnnnnnnn;fflushstdin; getchar;whilej.=0;/ 判定终止printf感谢使用,再见! n;void maininitlist&h;menu;/ 主函数终止欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁