版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上任务18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。以顺序存储结构设计程序能实现以下航空公司服务器端功能: (1)航线的维护(创建、修改、删除(不能删除已出票、售完航班)(2) 航班的维护(创建、修改、删除(不能删除已出票、售完航班)。(3)显示航班列表。(4)显示指定航班的售票情况(明细和统计值)。(5)显示各航班的销售情况
2、。int hbId; int userId;char userNameNUMBER;char buytimeNUMBER;任务19课题名称某航空公司飞机购票模拟系统(客户端)课题内容航班文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。以链式存储结构设计程序能实现以下顾客端功能:(1)搜索指定航线、指定时间段的航班(2)购票(3)退票(4)输入顾客ID,显示顾客的购票信息主菜单/*/* 模块名称: Menu.c
3、 功能描述:实现菜单功能 */#include "stdio.h"/*输入输出函数的头文件 */#include "shoupiao.c"#include "hangban.c"#include "hangxian.c"void menu(); /*菜单 */航班void init_hb(hbnum *hb);/初始化列表void create_hb(hbnum *hb);/从文件中加载数据void append_hb(hbnum *hb, hbinfo x);/*添加数据*/void display_hb(hbn
4、um 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 creat
5、e_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);/将数据
6、保存到文件中/售票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)
7、;/删除航班信息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);/对航班表排序
8、 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
9、,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
10、"); printf("6根据航班编号删除航班n"); printf("7显示指定航班的售票情况(明细)n"); printf("8显示指定航班的售票情况(统计值)n"); printf("9显示各航班的销售情况n"); printf("0返回菜单:"); printf("请选择按键<0-6>:"); scanf("%d",&j); if(j!=1&&j!=0&&j!=2&&j!
11、=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, &am
12、p;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.f
13、lytime); 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, &
14、;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
15、%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: pr
16、intf("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(&qu
17、ot;%d", &id); total=search_tj(sp,id); printf("%dn",total ); menu();break; case 9:display_xs(hb); menu();break; case 0:menu(); 航班信息#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXhbsize 100#define NUMBER 50typedef structint hbId; int hxId;char qife
18、iNUMBER;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
19、 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-&
20、gt;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; i<hb.hbsize; i+)printf("%d,%d,%s,%d,%s,%sn", hb.ai.hbId,hb.ai.hx
21、Id,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; i<hb.hbsize; i+) printf("航班编号,可售机票总数n");printf("%d,%dn", hb.ai.hbId,hb.ai.emptytotal);/*判断所查找学生是否在创建的学生表内*/hbin
22、fo search_hb(hbnum hb, int hId)int i=0; while(i<hb.hbsize&&hb.ai.hbId !=hId) i+; return hb.ai;/*根据id修改航班信息*/hbnum update_hb(hbnum hb,hbinfo x)int i=0; while(i<hb.hbsize&&hb.ai.hbId !=x.hbId) i+; hb.ai=x; return hb;/*删除航班数据*/void dele_hb(hbnum *hb, int id)int i=0,j;if (hb->hb
23、size = 0)printf("n顺序表是空的");exit(1);while (i < hb->hbsize && id != hb->ai.hbId)i+;if(i<0|i>hb->hbsize)printf("n指定的删除位置不存在!");exit(1);elsefor (j = i; j < hb->hbsize - 1; j+)hb->aj = hb->aj + 1;hb->hbsize-;/*按学号进行顺序排序*/void InsertSort_hb(hbnu
24、m *r)int i, j;hbinfo x;for (i = 1; i>r->hbsize; i+) /*待插入记录下标为 1 r->len-1 */x = r->ai;j = i - 1;while (j >= 0 && x.hbId < r->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", "
25、;w") = NULL)printf("can hIdt open file !");exit(-1);for (i = 0; i<hb->hbsize; 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,a
26、dd;/ int id;/ /*创建一个包含航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)信息表并输出到屏幕,学生信息从recod.txt读取*/ init(&hb);/初始化线性表/ create(&hb);/创建学生表/ printf("nsource list:n");/ /*对已建立的学生信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt)*/ InsertSort(&hb);/ display(hb);/*输出学生信息表*/ printf("nInput update
27、 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查询航班/ print
28、f("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);/将查找到的数
29、据输出/ /*从键盘输入航班的相关信息插入到已排序的信息表中*/ 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
30、 id: ");/ scanf("%d", &id);/ dele(&hb, id);/ printf("n save-baocun: ");/ save(&hb);/ getchar();/ 航线信息#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXhxsize 100#define NUMBER 50typedef struct int hxId; char qidianNUMBER; char zhon
31、gdianNUMBER; 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
32、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)pri
33、ntf("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; i<hx.hxsize; i+)printf("%d,%s,%s,%s,%sn", hx.ai.hxId,hx.ai.qidian,hx.ai.zhongdian,hx.ai.g
34、ongli,hx.ai.flytime);/*判断所查找学生是否在创建的学生表内*/hxinfo search_hx(hxnum hx, int hId)int i=0; while(i<hx.hxsize&&hx.ai.hxId !=hId) i+; return hx.ai;/*根据id修改航班信息*/hxnum update_hx(hxnum hx,hxinfo x)int i=0; while(i<hx.hxsize&&hx.ai.hxId !=x.hxId) i+; hx.ai=x; return hx;/*删除航线数据*/void del
35、e_hx(hxnum *hx, int id)int i=0,j;if (hx->hxsize = 0)printf("n顺序表是空的");exit(1);while (i < hx->hxsize && id != hx->ai.hxId)i+;if(i<0|i>hx->hxsize)printf("n指定的删除位置不存在!");exit(1);elsefor (j = i; j < hx->hxsize - 1; j+)hx->aj = hx->aj + 1;hx-&g
36、t;hxsize-;/*按学号进行顺序排序*/void InsertSort_hx(hxnum *r)int i, j;hxinfo x;for (i = 1; i>r->hxsize; i+) /*待插入记录下标为 1 r->len-1 */x = r->ai;j = i - 1;while (j >= 0 && x.hxId < r->aj.hxId)r->aj + 1 = r->aj;j-;r->aj + 1 = x;/*保存数据到文件*/void save_hx(hxnum *hx)FILE *fp;int i
37、;if (fp = fopen("hangxian.txt", "w") = NULL)printf("can hIdt open file !");exit(-1);for (i = 0; i<hx->hxsize; 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 ma
38、in()/ 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
39、 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(&qu
40、ot;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);/将查找到的数据输出/ /*从键盘输入航班的
41、相关信息插入到已排序的信息表中*/ 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("%
42、d", &id);/ dele(&hx, id);/ printf("n save-baocun: ");/ save(&hx);/ 售票信息#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXspsize 100#define NUMBER 50typedef structint hbId; int userId;char userNameNUMBER;char buytimeNUMBER;spinfo;typedef stru
43、ctspinfo 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%
44、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+;/
45、*输出航班信息表*/void display_sp(spnum sp)int i;if (!sp.spsize)printf("nempty table");elsefor (i = 0; i<sp.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(i<sp.spsize&
46、;&sp.ai.hbId !=hId) i+; return sp.ai;/显示指定航班的售票情况(明细)void search_mx(spnum sp, int id)int i=0; while(i<sp.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; whil
47、e(i<sp.spsize&&sp.ai.hbId !=id) j+; i+; return j;/*删除航班数据*/void dele_sp(spnum *sp, int id)int i=0,j;if (sp->spsize = 0)printf("n顺序表是空的");exit(1);while (i < sp->spsize && id != sp->ai.hbId)i+;if(i<0|i>sp->spsize)printf("n指定的删除位置不存在!");elsefor (j = i; j < sp->spsize - 1; j+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股票配资合作协议范本
- 票据贴现服务合同
- 写字楼租赁条件谈判协议模板
- 写字楼租赁协议
- 护理院服务协议
- 《减少公司内耗方案模板》
- 2024至2030年中国实验室溶解氧计数据监测研究报告
- 2024至2030年中国塑钢带专用纸管数据监测研究报告
- 教育机构贷款合同
- 2024年中国轮因挂具市场调查研究报告
- 俄语商务迎接对话
- 劳务派遣项目-投标技术方案
- QGW 203038-2018 风力发电机组 全金属自锁螺母技术条件
- 中学生行为规范与守则试题及答案
- 微信公众号使用教程课件
- 【高中语文大单元教学设计研究国内外文献综述6800字】
- 房顶彩钢瓦施工合同协议书
- 传统文化与现代化课件
- 扑克牌搭高塔 课件(16张PPT) 小学班会活动
- 语文-2023年全国高考新课标I卷试题评讲课件
- 小学数学-【课堂实录】已知一个数的几分之几是多少求这个数教学设计学情分析教材分析课后反思
评论
0/150
提交评论