




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。以顺序存储结构设计程序能实现以下航空公司服务器端功能: (1)航线的维护(创建、修改、删除(不能删除已出票、售完航班)(2) 航班的维护(创建、修改、删除(不能删除已出票、售完航班)。(3)显示航班列表。(4)显示指定航班的售票情况(明细和统计值)。(5)显示各航班的销售情况。int hbId; int userId;char userNameNUMBER;char buytimeNUMBER;任务19课题名称某航空公司飞机购票模拟系统(客户端)课题内容航班文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。以链式存储结构设计程序能实现以下顾客端功能:(1)搜索指定航线、指定时间段的航班(2)购票(3)退票(4)输入顾客ID,显示顾客的购票信息主菜单/*/* 模块名称: Menu.c 功能描述:实现菜单功能 */#include stdio.h/*输入输出函数的头文件 */#include shoupiao.c#include hangban.c#include hangxian.cvoid menu(); /*菜单 */航班void init_hb(hbnum *hb);/初始化列表void create_hb(hbnum *hb);/从文件中加载数据void append_hb(hbnum *hb, hbinfo x);/*添加数据*/void display_hb(hbnum hb);/*输出航班信息表*/void display_xs(hbnum hb);/*输出航班销售信息表*/hbinfo search_hb(hbnum hb, int id);/根据id查找航班的售票情况hbnum update_hb(hbnum hb,hbinfo x);/根据id修改航班信息void dele_hb(hbnum *hb, int id);/删除航班信息void InsertSort_hb(hbnum *r);/排序void save_hb(hbnum *hb);/将数据保存到文件中/航线void init_hx(hxnum *hx);/初始化列表void create_hx(hxnum *hx);/从文件中加载数据void append_hx(hxnum *hx, hxinfo x);/*添加数据*/void display_hx(hxnum hx);/*输出航班信息表*/hxinfo search_hx(hxnum hx, int id);/根据id查找航班的售票情况hxnum update_hx(hxnum hb,hxinfo x);/根据id修改航线信息void dele_hx(hxnum *hx, int id);/删除航班信息void InsertSort_hx(hxnum *r);/排序void save_hx(hxnum *hx);/将数据保存到文件中/售票void init_sp(spnum *sp);/初始化列表void create_sp(spnum *sp);/从文件中加载数据void append_sp(spnum *sp, spinfo x);/*添加数据*/void display_sp(spnum sp);/*输出航班信息表*/spinfo search_sp(spnum sp, int id);/根据id查找航班的售票情况void search_mx(spnum sp, int id);int search_tj(spnum sp, int id);void dele_sp(spnum *sp, int id);/删除航班信息void InsertSort_sp(spnum *r);/排序void save_sp(spnum *sp);/将数据保存到文件中 /*主函数*/main() hbnum hb; hxnum hx; spnum sp; init_hb(&hb);/初始化航班表create_hb(&hb);/创建航班表 init_hx(&hx);/初始航线表 create_hx(&hx);/创建航线表 init_sp(&sp);/初始化售票表 create_sp(&sp);/创建售票表 InsertSort_hb(&hb);/对航班表排序 InsertSort_hx(&hx);/对航线表排序 InsertSort_sp(&sp);/对售票表排序 menu(); save_hb(&hb); save_hx(&hx); save_sp(&sp);/*/* 函数定义 函数名称:menu 功能描述 : 实现主菜单功能的循环选择。 */void menu() int j; hbnum hb; hxnum hx; spnum sp; hbinfo hb_up,hb_sea,hb_add; hxinfo hx_up,hx_sea,hx_add; spinfo sp_sea,sp_add; int id,total; printf(nnnn $-$n); printf( | * welcome * |n); printf(_ 管理员能查看和查询的航空信息 _n); printf(nn 输入航班信息 :nn); printf(1添加新的航班n); printf(2添加新的航线n); printf(3修改航班信息n); printf(4修改航线信息 n); printf(5根据航班编号删除航班n); printf(6根据航班编号删除航班n); printf(7显示指定航班的售票情况(明细)n); printf(8显示指定航班的售票情况(统计值)n); printf(9显示各航班的销售情况n); printf(0返回菜单:); printf(请选择按键:); scanf(%d,&j); if(j!=1&j!=0&j!=2&j!=3&j!=4&j!=5&j!=6&j!=7&j!=8&j!=9) printf(您输入的选项不存在,请重新输入: ); menu(); else switch(j) case 1: printf(nInput a hxdent information: n); scanf(%d%d%s%d%s%s, &hb_add.hbId, &hb_add.hxId, &hb_add.qifei, &hb_add.emptytotal,&hb_add.price, &hb_add.state); append_hb(&hb, hb_add); display_hb(hb); menu();break; case 2: printf(nInput a hxdent information: n); scanf(%d%s%s%s%s, &hx_add.hxId, &hx_add.qidian, &hx_add.zhongdian,&hx_add.gongli, &hx_add.flytime); append_hx(&hx, hx_add); display_hx(hx); menu();break; case 3: printf(nInput update id: n); scanf(%d, &hb_up.hbId); printf(nInput update hx,qifeishijian,kongpiao,price,state: n); scanf(%d%s%d%s%s, &hb_up.hxId, &hb_up.qifei, &hb_up.emptytotal,&hb_up.price, &hb_up.state); hb=update_hb(hb,hb_up); display_hb(hb);/*输出学生信息表*/ menu();break; case 4: printf(nInput update id: n); scanf(%d, &hx_up.hxId); printf(nInput update hx,qifeishijian,kongpiao,price,state: n); scanf(%d%s%s, &hx_up.qidian, &hx_up.zhongdian, &hx_up.gongli,&hx_up.flytime); hx=update_hx(hx,hx_up); display_hx(hx);/*输出学生信息表*/ menu();break; case 5: printf(n Inputa you wang delete hangban id: ); scanf(%d, &id); dele_hb(&hb, id); menu();break; case 6: printf(n Inputa you wang delete hangban id: ); scanf(%d, &id); dele_hb(&hb, id); menu();break; case 7: printf(nInput a hangbanid: n); scanf(%d, &id); search_mx(sp,id); menu();break; case 8: printf(nInput a hangbanid: n); scanf(%d, &id); total=search_tj(sp,id); printf(%dn,total ); menu();break; case 9:display_xs(hb); menu();break; case 0:menu(); 航班信息#include#include#include#define MAXhbsize 100#define NUMBER 50typedef structint hbId; int hxId;char qifeiNUMBER;int emptytotal;char priceNUMBER;char stateNUMBER;hbinfo;typedef structhbinfo aMAXhbsize;int hbsize;hbnum;/*置一个空表*/void init_hb(hbnum *hb)hb-hbsize = 0;/*创建航班表并从文件读取*/void create_hb(hbnum *hb)FILE *fp;int i = 0;if (fp = fopen(hangban.txt, r) = NULL)printf(can hIdt open file !);exit(-1);while (!feof(fp)fscanf(fp, %d%d%s%d%s%s, &hb-ai.hbId, &hb-ai.hxId,&hb-ai.qifei,&hb-ai.emptytotal,&hb-ai.price,&hb-ai.state);i+;hb-hbsize+;fclose(fp);/*追加航班信息*/void append_hb(hbnum *hb, hbinfo x)if (hb-hbsize = MAXhbsize)printf(The sequence is full!);exit(1);elsehb-ahb-hbsize = x;hb-hbsize+;/*输出航班信息表*/void display_hb(hbnum hb)int i;if (!hb.hbsize)printf(nempty table);elsefor (i = 0; ihb.hbsize; i+)printf(%d,%d,%s,%d,%s,%sn, hb.ai.hbId,hb.ai.hxId,hb.ai.qifei,hb.ai.emptytotal,hb.ai.price,hb.ai.state);/*输出航班销售信息表*/void display_xs(hbnum hb);int i;if (!hb.hbsize)printf(nempty table);elsefor (i = 0; ihb.hbsize; i+) printf(航班编号,可售机票总数n);printf(%d,%dn, hb.ai.hbId,hb.ai.emptytotal);/*判断所查找学生是否在创建的学生表内*/hbinfo search_hb(hbnum hb, int hId)int i=0; while(ihb.hbsize&hb.ai.hbId !=hId) i+; return hb.ai;/*根据id修改航班信息*/hbnum update_hb(hbnum hb,hbinfo x)int i=0; while(ihbsize = 0)printf(n顺序表是空的);exit(1);while (i hbsize & id != hb-ai.hbId)i+;if(ihb-hbsize)printf(n指定的删除位置不存在!);exit(1);elsefor (j = i; j hbsize - 1; j+)hb-aj = hb-aj + 1;hb-hbsize-;/*按学号进行顺序排序*/void InsertSort_hb(hbnum *r)int i, j;hbinfo x;for (i = 1; ir-hbsize; i+) /*待插入记录下标为 1 r-len-1 */x = r-ai;j = i - 1;while (j = 0 & x.hbId aj.hbId)r-aj + 1 = r-aj;j-;r-aj + 1 = x;/*保存数据到文件*/void save_hb(hbnum *hb)FILE *fp;int i;if (fp = fopen(hangban.txt, w) = NULL)printf(can hIdt open file !);exit(-1);for (i = 0; ihbsize; i+)fprintf(fp, %d %d %s %d %s %sn, hb-ai.hbId, hb-ai.hxId, hb-ai.qifei,hb-ai.emptytotal,hb-ai.price,hb-ai.state);fclose(fp);/ void main()/ hbnum hb;/ hbinfo up,sea,add;/ int id;/ /*创建一个包含航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)信息表并输出到屏幕,学生信息从recod.txt读取*/ init(&hb);/初始化线性表/ create(&hb);/创建学生表/ printf(nsource list:n);/ /*对已建立的学生信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt)*/ InsertSort(&hb);/ display(hb);/*输出学生信息表*/ printf(nInput update id: n);/ scanf(%d, &up.hbId);/ printf(nInput update hx,qifeishijian,kongpiao,price,state: n);/ scanf(%d%s%d%s%s, &up.hxId, &up.qifei, &up.emptytotal,&up.price, &up.state);/ hb=update(hb,up);/ display(hb);/*输出学生信息表*/ / 根据id查询航班/ printf(nInput a hangbanid: n);/ scanf(%d, &id);/ sea=search(hb,id);/ /对查找返回的数据进行判断,如果为空则提示没找到,否则输出数据/ if(sea.hbId=0) / printf(no found %dn,id);/ else/ printf(%d,%d,%s,%d,%s,%sn, sea.hbId, sea.hxId, sea.qifei, sea.emptytotal,sea.price, sea.state);/将查找到的数据输出/ /*从键盘输入航班的相关信息插入到已排序的信息表中*/ printf(nInput a hbdent information: n);/ scanf(%d%d%s%d%s%s, &add.hbId, &add.hxId, &add.qifei, &add.emptytotal,&add.price, &add.state);/ append(&hb, add);/ display(hb);/ printf(n Inputa you wang delete hangban id: );/ scanf(%d, &id);/ dele(&hb, id);/ printf(n save-baocun: );/ save(&hb);/ getchar();/ 航线信息#include#include#include#define MAXhxsize 100#define NUMBER 50typedef struct int hxId; char qidianNUMBER; char zhongdianNUMBER; char gongliNUMBER;char flytimeNUMBER;hxinfo;typedef structhxinfo aMAXhxsize;int hxsize;hxnum;/*置一个空表*/void init_hx(hxnum *hx)hx-hxsize = 0;/*创建航班表并从文件读取*/void create_hx(hxnum *hx)FILE *fp;int i = 0;if (fp = fopen(hangxian.txt, r) = NULL)printf(can hIdt open file !);exit(-1);while (!feof(fp)fscanf(fp, %d%s%s%s%s, &hx-ai.hxId, &hx-ai.qidian,&hx-ai.zhongdian,&hx-ai.gongli,&hx-ai.flytime);i+;hx-hxsize+;fclose(fp);/*追加航班信息*/void append_hx(hxnum *hx, hxinfo x)if (hx-hxsize = MAXhxsize)printf(The sequence is full!);exit(1);elsehx-ahx-hxsize = x;hx-hxsize+;/*输出航班信息表*/void display_hx(hxnum hx)int i;if (!hx.hxsize)printf(nempty table);elsefor (i = 0; ihx.hxsize; i+)printf(%d,%s,%s,%s,%sn, hx.ai.hxId,hx.ai.qidian,hx.ai.zhongdian,hx.ai.gongli,hx.ai.flytime);/*判断所查找学生是否在创建的学生表内*/hxinfo search_hx(hxnum hx, int hId)int i=0; while(ihx.hxsize&hx.ai.hxId !=hId) i+; return hx.ai;/*根据id修改航班信息*/hxnum update_hx(hxnum hx,hxinfo x)int i=0; while(ihxsize = 0)printf(n顺序表是空的);exit(1);while (i hxsize & id != hx-ai.hxId)i+;if(ihx-hxsize)printf(n指定的删除位置不存在!);exit(1);elsefor (j = i; j hxsize - 1; j+)hx-aj = hx-aj + 1;hx-hxsize-;/*按学号进行顺序排序*/void InsertSort_hx(hxnum *r)int i, j;hxinfo x;for (i = 1; ir-hxsize; i+) /*待插入记录下标为 1 r-len-1 */x = r-ai;j = i - 1;while (j = 0 & x.hxId aj.hxId)r-aj + 1 = r-aj;j-;r-aj + 1 = x;/*保存数据到文件*/void save_hx(hxnum *hx)FILE *fp;int i;if (fp = fopen(hangxian.txt, w) = NULL)printf(can hIdt open file !);exit(-1);for (i = 0; ihxsize; i+)fprintf(fp, %d %s %s %s %sn, hx-ai.hxId, hx-ai.qidian, hx-ai.zhongdian,hx-ai.gongli,hx-ai.flytime);fclose(fp);/ void main()/ hxnum hx;/ hxinfo add,sea,up;/ int id;/ /*创建一个包含航线编码、起点、终点、公里数、飞行时间信息表并输出到屏幕,学生信息从recod.txt读取*/ init(&hx);/初始化线性表/ create(&hx);/创建学生表/ printf(nsource list:n);/ /*对已建立的学生信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt)*/ InsertSort(&hx);/ display(hx);/*输出学生信息表*/ printf(nInput update id: n);/ scanf(%d, &up.hxId);/ printf(nInput update qidian,zhongdian,gongli,feixingshijan: n);/ scanf(%s%s%s%s, &up.qidian, &up.zhongdian, &up.gongli,&up.flytime);/ hx=update(hx,up);/ display(hx);/*输出学生信息表*/ / 根据id查询航班/ printf(nInput a hangbanid: n);/ scanf(%d, &id);/ add=search(hx,id);/ /对查找返回的数据进行判断,如果为空则提示没找到,否则输出数据/ if(add.hxId=0) / printf(no found %dn,id);/ else/ printf(%d,%s,%s,%s,%sn, add.hxId, add.qidian, add.zhongdian,add.gongli, add.flytime);/将查找到的数据输出/ /*从键盘输入航班的相关信息插入到已排序的信息表中*/ printf(nInput a hxdent information: n);/ scanf(%d%s%s%s%s, &sea.hxId, &sea.qidian, &sea.zhongdian,&sea.gongli, &sea.flytime);/ append(&hx, sea);/ display(hx);/ printf(n Inputa you wang delete hangxian id: );/ scanf(%d, &id);/ dele(&hx, id);/ printf(n save-baocun: );/ save(&hx);/ 售票信息#include#include#include#define MAXspsize 100#define NUMBER 50typedef structint hbId; int userId;char userNameNUMBER;char buytimeNUMBER;spinfo;typedef structspinfo aMAXspsize;int spsize;spnum;/*置一个空表*/void init_sp(spnum *sp)sp-spsize = -1;/*创建航班表并从文件读取*/void create_sp(spnum *sp)FILE *fp;int i = 0;if (fp = fopen(shoupiao.txt, r) = NULL)printf(can hIdt open file !);exit(-1);while (!feof(fp)fscanf(fp, %d%d%s%s, &sp-ai.hbId, &sp-ai.userId,&sp-ai.userName,&sp-ai.buytime);i+;sp-spsize+;fclose(fp);/*追加航班信息*/void append_sp(spnum *sp, spinfo x)if (sp-spsize = MAXspsize)printf(The sequence is full!);exit(1);elsesp-asp-spsize = x;sp-spsize+;/*输出航班信息表*/void display_sp(spnum sp)int i;if (!sp.spsize)printf(nempty table);elsefor (i = 0; isp.spsize; i+)printf(%d,%d,%s,%sn, sp.ai.hbId,sp.ai.userId,sp.ai.userName,sp.ai.buytime);/*判断所查找学生是否在创建的学生表内*/spinfo search_sp(spnum sp, int hId)int i=0; while(isp.spsize&sp.ai.hbId !=hId) i+; return sp.ai;/显示指定航班的售票情况(明细)void search_mx(spnum sp, int id)int i=0; while(isp.spsize&sp.ai.hbId !=id) printf(%d,%d,%s,%sn, sp.ai.hbId,sp.ai.userId,sp.ai.userName,sp.ai.buytime); i+;/显示指定航班的售票情况(统计)int search_tj(spnum sp, int id)int i=0,j=0; while(ispsize = 0)printf(n顺序表是空的);exit(1);while (i spsize & id != sp-ai.hbId)i+;if(isp-spsize)printf(n指定的删除位置不存在!);elsefor (j = i; j spsize - 1; j+)sp-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021-2023北京重点校高二(上)期末历史汇编:古代文明的产生与发展章节综合
- 2025版高考英语一轮复习Unit7TheSea能力提升题组训练A含解析北师大版
- 2024高考数学二轮复习专题六第十二讲圆锥曲线及其性质习题文
- 国际化肥贸易中的中间商风险管理研究-洞察阐释
- 基于大数据的绿色供应链精准管理-洞察阐释
- 海洋工程环保技术-洞察阐释
- 江苏工程职业技术学院《文艺学前沿问题》2023-2024学年第二学期期末试卷
- 高选择性催化反应-洞察阐释
- 德阳农业科技职业学院《钢琴即兴伴奏Ⅰ》2023-2024学年第二学期期末试卷
- 和君职业学院《经济学基础(双语)》2023-2024学年第二学期期末试卷
- HY/T 0305-2021养殖大型藻类和双壳贝类碳汇计量方法碳储量变化法
- 刑法的基本原则课件
- API-650-1钢制焊接石油储罐
- 小学数学四年级(下册)教师用书
- 医学影像科-山东省临床重点专科评分标准(试行)
- 会计专业工作简历表(中级)
- 重庆市沙坪坝区2021-2022学年三年级下学期期末综合检测语文试题(无答案)
- 篮球--传切配合(纵切)课件.ppt
- 《消防安全培训资料》word版
- 绘就“行走的思政课”
- 临床技术操作规范重症医学分册(共41页)
评论
0/150
提交评论