《面向过程程序设计实践》课题课件
- 格式:doc
- 大小:116.00 KB
- 文档页数:18
任务 18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。
航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。
售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s 以顺序存储结构设计程序能实现以下航空公司服务器端功能:(1)航线的维护(创建、修改、删除(不能删除已出票、售完航班)(2)航班的维护(创建、修改、删除(不能删除已出票、售完航班))。
))。
(3)显示航班列表。
(4)显示指定航班的售票情况(明细和统计值)。
(5)显示各航班的销售情况。
int hbId;int userId;char userName[NUMBER];char buytime[NUMBER];任务 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.c"void 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功能描述:实现主菜单功能的循环选择。
任务18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。
航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。
售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。
以顺序存储结构设计程序能实现以下航空公司服务器端功能:(1)航线的维护(创建、修改、删除(不能删除已出票、售完航班))(2) 航班的维护(创建、修改、删除(不能删除已出票、售完航班))。
(3)显示航班列表。
(4)显示指定航班的售票情况(明细和统计值)。
(5)显示各航班的销售情况。
int hbId;int userId;char userName[NUMBER];char buytime[NUMBER];任务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.c"void 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 功能描述 : 实现主菜单功能的循环选择。
《面向过程程序设计实践》课题任务18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。
航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。
售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。
以顺序存储结构设计程序能实现以下航空公司服务器端功能:(1)航线的维护(创建、修改、删除(不能删除已出票、售完航班))(2) 航班的维护(创建、修改、删除(不能删除已出票、售完航班))。
(3)显示航班列表。
(4)显示指定航班的售票情况(明细和统计值)。
(5)显示各航班的销售情况。
int hbId;int userId;char userName[NUMBER];char buytime[NUMBER];任务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.c"void 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 功能描述 : 实现主菜单功能的循环选择。
任务18课题名称某航空公司飞机购票模拟系统(服务器端)课题内容文件信息:航线信息:航线编码、起点、终点、公里数、飞行时间。
航班信息:航班编号、航线编码、起飞时间、可售机票总数、票价、当前状态(准备、已出票、售完、已结束)。
售票信息:航班编号、顾客ID、顾客姓名、购票时间(y-m-d-h-m-s)。
以顺序存储结构设计程序能实现以下航空公司服务器端功能:(1)航线的维护(创建、修改、删除(不能删除已出票、售完航班))(2) 航班的维护(创建、修改、删除(不能删除已出票、售完航班))。
(3)显示航班列表。
(4)显示指定航班的售票情况(明细和统计值)。
(5)显示各航班的销售情况。
int hbId;int userId;char userName[NUMBER];char buytime[NUMBER];任务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.c"void 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("\n\n\n\n $---------------------------------$\n");printf(" | ** welcome ** |\n");printf("^_^ 管理员能查看和查询的航空信息 ^_^\n");printf("\n\n 输入航班信息 :\n\n");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("请选择按键<0-6>:");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("%d\n",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 struct{int hbId;int hxId;char qifei[NUMBER];int emptytotal;char price[NUMBER];char state[NUMBER];}hbinfo;typedef struct{hbinfo a[MAXhbsize];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->a[i].hbId, &hb->a[i].hxId,&hb->a[i].qifei,&hb->a[i].emptytotal,&hb->a[i].price,&hb->a[i].s tate);i++;hb->hbsize++;}fclose(fp);}/*追加航班信息*/void append_hb(hbnum *hb, hbinfo x){if (hb->hbsize == MAXhbsize){printf("The sequence is full!");exit(1);}else{hb->a[hb->hbsize] = x;hb->hbsize++;}}/*输出航班信息表*/void display_hb(hbnum hb){int i;if (!hb.hbsize){printf("\nempty table");}else{for (i = 0; i<hb.hbsize; i++){printf("%d,%d,%s,%d,%s,%s\n",hb.a[i].hbId,hb.a[i].hxId,hb.a[i].qifei,hb.a[i].emptytotal,hb.a[i].price,hb.a[i ].state);}}}/*输出航班销售信息表*/void display_xs(hbnum hb);{int i;if (!hb.hbsize){printf("\nempty table");}else{for (i = 0; i<hb.hbsize; i++){printf("航班编号,可售机票总数\n");printf("%d,%d\n", hb.a[i].hbId,hb.a[i].emptytotal);}}}/*判断所查找学生是否在创建的学生表内*/hbinfo search_hb(hbnum hb, int hId){int i=0;while(i<hb.hbsize&&hb.a[i].hbId !=hId) {i++;}return hb.a[i];}/*根据id修改航班信息*/hbnum update_hb(hbnum hb,hbinfo x){int i=0;while(i<hb.hbsize&&hb.a[i].hbId !=x.hbId) {i++;}hb.a[i]=x;return hb;}/*删除航班数据*/void dele_hb(hbnum *hb, int id){int i=0,j;if (hb->hbsize == 0){printf("\n顺序表是空的");exit(1);}while (i < hb->hbsize && id != hb->a[i].hbId){i++;}if(i<0||i>hb->hbsize){printf("\n指定的删除位置不存在!");exit(1);}else{for (j = i; j < hb->hbsize - 1; j++)hb->a[j] = hb->a[j + 1];hb->hbsize--;}}/*按学号进行顺序排序*/void InsertSort_hb(hbnum *r){int i, j;hbinfo x;for (i = 1; i>r->hbsize; i++) /*待插入记录下标为 1 ~ r->len-1 */{x = r->a[i];j = i - 1;while (j >= 0 && x.hbId < r->a[j].hbId){r->a[j + 1] = r->a[j];j--;}r->a[j + 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; i<hb->hbsize; i++){fprintf(fp, "%d %d %s %d %s %s\n", hb->a[i].hbId, hb->a[i].hxId, hb->a[i].qifei,hb->a[i].emptytotal,hb->a[i].price,hb->a[i].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 %d\n",id);// }else{// printf("%d,%d,%s,%d,%s,%s\n", 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<stdio.h>#include<stdlib.h>#include<string.h>#define MAXhxsize 100#define NUMBER 50typedef struct{int hxId;char qidian[NUMBER];char zhongdian[NUMBER];char gongli[NUMBER];char flytime[NUMBER];}hxinfo;typedef struct{hxinfo a[MAXhxsize];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->a[i].hxId, &hx->a[i].qidian,&hx->a[i].zhongdian,&hx->a[i].gongli,&hx->a[i].flytime);i++;hx->hxsize++;}fclose(fp);}/*追加航班信息*/void append_hx(hxnum *hx, hxinfo x){if (hx->hxsize == MAXhxsize){printf("The sequence is full!");exit(1);}else{hx->a[hx->hxsize] = x;hx->hxsize++;}}/*输出航班信息表*/void display_hx(hxnum hx){int i;if (!hx.hxsize){printf("\nempty table");}else{for (i = 0; i<hx.hxsize; i++){printf("%d,%s,%s,%s,%s\n",hx.a[i].hxId,hx.a[i].qidian,hx.a[i].zhongdian,hx.a[i].gongli,hx.a[i].flytime);}}}/*判断所查找学生是否在创建的学生表内*/hxinfo search_hx(hxnum hx, int hId){int i=0;while(i<hx.hxsize&&hx.a[i].hxId !=hId) {i++;}return hx.a[i];}/*根据id修改航班信息*/hxnum update_hx(hxnum hx,hxinfo x){int i=0;while(i<hx.hxsize&&hx.a[i].hxId !=x.hxId) {i++;}hx.a[i]=x;return hx;}/*删除航线数据*/void dele_hx(hxnum *hx, int id){int i=0,j;if (hx->hxsize == 0){printf("\n顺序表是空的");exit(1);}while (i < hx->hxsize && id != hx->a[i].hxId){i++;}if(i<0||i>hx->hxsize){printf("\n指定的删除位置不存在!");exit(1);}else{for (j = i; j < hx->hxsize - 1; j++)hx->a[j] = hx->a[j + 1];hx->hxsize--;}}/*按学号进行顺序排序*/void InsertSort_hx(hxnum *r){int i, j;hxinfo x;for (i = 1; i>r->hxsize; i++) /*待插入记录下标为 1 ~ r->len-1 */{x = r->a[i];j = i - 1;while (j >= 0 && x.hxId < r->a[j].hxId){r->a[j + 1] = r->a[j];j--;}r->a[j + 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; i<hx->hxsize; i++){fprintf(fp, "%d %s %s %s %s\n", hx->a[i].hxId, hx->a[i].qidian, hx->a[i].zhongdian,hx->a[i].gongli,hx->a[i].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 %d\n",id);// }else{// printf("%d,%s,%s,%s,%s\n", 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<stdio.h>#include<stdlib.h>#include<string.h>#define MAXspsize 100#define NUMBER 50typedef struct{int hbId;int userId;char userName[NUMBER];char buytime[NUMBER];}spinfo;typedef struct{spinfo a[MAXspsize];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->a[i].hbId, &sp->a[i].userId,&sp->a[i].userName,&sp->a[i].buytime);i++;sp->spsize++;}fclose(fp);}/*追加航班信息*/void append_sp(spnum *sp, spinfo x){if (sp->spsize == MAXspsize){printf("The sequence is full!");exit(1);}else{sp->a[sp->spsize] = x;sp->spsize++;}}/*输出航班信息表*/void display_sp(spnum sp){int i;if (!sp.spsize){printf("\nempty table");}else{for (i = 0; i<sp.spsize; i++){printf("%d,%d,%s,%s\n",sp.a[i].hbId,sp.a[i].userId,sp.a[i].userName,sp.a[i].buytime);}}}/*判断所查找学生是否在创建的学生表内*/spinfo search_sp(spnum sp, int hId){int i=0;while(i<sp.spsize&&sp.a[i].hbId !=hId) {i++;}return sp.a[i];}//显示指定航班的售票情况(明细)void search_mx(spnum sp, int id){int i=0;while(i<sp.spsize&&sp.a[i].hbId !=id) {printf("%d,%d,%s,%s\n",sp.a[i].hbId,sp.a[i].userId,sp.a[i].userName,sp.a[i].buytime);i++;}}//显示指定航班的售票情况(统计)int search_tj(spnum sp, int id){int i=0,j=0;while(i<sp.spsize&&sp.a[i].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->a[i].hbId){i++;}if(i<0||i>sp->spsize){printf("\n指定的删除位置不存在!");}else{for (j = i; j < sp->spsize - 1; j++)sp->a[j] = sp->a[j + 1];sp->spsize--;}}/*按学号进行顺序排序*/void InsertSort_sp(spnum *r){int i, j;spinfo x;for (i = 1; i>r->spsize; i++) /*待插入记录下标为 1 ~ r->len-1 */ {x = r->a[i];j = i - 1;while (j >= 0 && x.hbId < r->a[j].hbId){r->a[j + 1] = r->a[j];j--;}r->a[j + 1] = x;}}/*保存数据到文件*/void save_sp(spnum *sp){FILE *fp;int i;if ((fp = fopen("shoupiao.txt", "w")) == NULL){printf("can hIdt open file !");exit(-1);}for (i = 0; i<sp->spsize; i++){fprintf(fp, "%d %d %s %s\n", sp->a[i].hbId, sp->a[i].userId, sp->a[i].userName,sp->a[i].buytime);}fclose(fp);}// void main(){// spnum sp;// spinfo x,h;// int id;// /*创建一个包含学号,姓名,性别,出生年月日,地址,电话,E-mail信息表并输出到屏幕,学生信息从recod.txt读取*/// init(&sp);//初始化线性表// create(&sp);//创建学生表// printf("\nsource list:\n");// /*对已建立的学生信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt)*/// InsertSort(&sp);// display(sp);/*输出学生信息表*/// // 根据id查询航班// printf("\nInput a hangbanid: \n");// scanf("%d", &id);// x=search(sp,id);// //对查找返回的数据进行判断,如果为空则提示没找到,否则输出数据// if(x.hbId==0) {// printf("no found %d\n",id);// }else{// printf("%d,%d,%s,%s\n", x.hbId, erId, erName, x.buytime);}//将查找到的数据输出// /*从键盘输入航班的相关信息插入到已排序的信息表中*/// printf("\nInput a spdent information: \n");// scanf("%d%d%s%s", &h.hbId, &erId, &erName, &h.buytime); // append(&sp, h);// display(sp);// printf("\n Inputa you wang delete hangban id: ");// scanf("%d", &id);// dele(&sp, id);// printf("\n save-baocun: ");// save(&sp);// getchar();// }。