www.pudn.com > v4670_flight.rar > Manage.c
/* Please run Chinese a system, then you can read the comment. */ /* 文件名:manage.c 说明:航班管理模块 作者:01090B1 李子明 13号 创建日期:2003/6/30 修改日期:2003/7/9 */ #include#include #include "datatype.h" #include "manage.h" void Add(FLIGHT fltlist[]) { char c = 'y'; while (c == 'y' || c == 'Y') { FLIGHT flt; BOOL b; printf("请输入航班号(1 - 10000):"); scanf("%d", &flt.m_fltno); printf("请输入起飞港:"); scanf("%s", flt.m_szFrom); printf("请输入途经港:"); scanf("%s", flt.m_szPass); printf("请输入到达港:"); scanf("%s", flt.m_szTo); printf("请输入起飞时间(hh:mm):"); scanf("%d:%d", &flt.m_start.m_hour, &flt.m_start.m_min); printf("请输入到达时间(hh:mm):"); scanf("%d:%d", &flt.m_arrive.m_hour, &flt.m_arrive.m_min); printf("请输入飞行固定时间(hh:mm):"); scanf("%d:%d", &flt.m_fly.m_hour, &flt.m_fly.m_min); printf("请输入乘客限额:"); scanf("%d", &flt.m_people); ClearBuffer(); if (AddFlight(fltlist, &flt)) printf("添加成功,"); else printf("添加失败,"); printf("继续添加航班吗(Y/N)?"); c = getchar(); } } void Del(FLIGHT fltlist[]) { BOOL b = FALSE; int i, fltno; char c = 'y'; while (c == 'y' || c == 'Y') { printf("可以取消的航班号:"); for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno != -1) { b = TRUE; printf("%d ", fltlist[i].m_fltno); } } if (!b) { printf("无\n按任意键返回。"); getch(); return; } printf("\n请输入要取消的航班号:"); scanf("%d", &fltno); for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == fltno) { DelFlight(fltlist, i); break; } } printf("继续删除吗(y/n)?"); ClearBuffer(); c = getchar(); } } void Query(FLIGHT fltlist[]) { char c = 'y'; while (c == 'y' || c == 'Y') { BOOL b = FALSE; int i, fltno; printf("可以查询的航班号:"); for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno != -1) { b = TRUE; printf("%d ", fltlist[i].m_fltno); } } if (!b) { printf("无\n按任意键返回。"); getch(); return; } printf("\n请输入要查询的航班号:"); scanf("%d", &fltno); for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == fltno) { printf("%s--%s--%s 乘客限额:%d\n", fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo, fltlist[i].m_people); printf("起飞时间:%2d:%02d 到达时间:%2d:%02d 飞行固定时间:%2d:%02d\n", fltlist[i].m_start.m_hour, fltlist[i].m_start.m_min, fltlist[i].m_arrive.m_hour, fltlist[i].m_arrive.m_min, fltlist[i].m_fly.m_hour, fltlist[i].m_arrive.m_min); break; } } printf("继续查询吗(y/n)?"); ClearBuffer(); c = getchar(); } } void OneDay(FLIGHT fltlist[], PNODE psglist) { char c = 'y'; while (c == 'y' || c == 'Y') { DATE date; int people[40], i; PNODE p; for (i = 0; i < 40; i++) people[i] = 0; printf("请输入您要管理的日期(yyyy,mm,dd):"); scanf("%d,%d,%d", &date.m_year, &date.m_month, &date.m_day); for (p = psglist->next; p != NULL; p = p->next) { if (datecmp(&p->m_psg.m_Date, &date)) { for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == p->m_psg.m_fltno) people[i]++; } } } for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno != -1) { printf("%d %s--%s--%s 人数:%d\n", fltlist[i].m_fltno, fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo, people[i]); } } printf("继续管理吗?(y/n)"); ClearBuffer(); c = getchar(); } } void MultiDay(FLIGHT fltlist[], PNODE psglist) { char c = 'y'; while (c == 'y' || c == 'Y') { DATE date[7]; int n, i, j; int people[40][7]; PNODE p; printf("请输入要查询的天数(1-7):"); do { scanf("%d", &n); if (n > 7 || n < 1) printf("输入非法,请重新输入:"); } while (n > 7 || n < 1); for (i = 0; i < n; i++) { printf("请输入第%d个日期(yyyy,mm,dd):", i); scanf("%d,%d,%d", &date[i].m_year, &date[i].m_month, &date[i].m_day); } for (i = 0; i < 40; i++) for (j = 0; j < 7; j++) people[i][j] = 0; for (p = psglist->next; p != NULL; p = p->next) { for (j = 0; j < n; j++) { if (datecmp(&date[j], &p->m_psg.m_Date)) { for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == p->m_psg.m_fltno) people[i][j]++; } } } } for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno != -1) { printf("%d %s--%s--%s ", fltlist[i].m_fltno, fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo); for (j = 0; j < n; j++) printf("%d ", people[i][j]); printf("\n"); } } printf("继续查询吗?(y/n)"); ClearBuffer(); c = getchar(); } } void Manage(FLIGHT fltlist[], PNODE psglist) { for (;;) { char c; clrscr(); printf("航班管理\n"); printf("~~~~~~~~\n"); printf("1.查询航班基本情况\n"); printf("2.对某天航班飞行情况管理\n"); printf("3.近期航班飞行情况管理\n"); printf("4.取消航班\n"); printf("5.新增航班\n"); printf("6.返回\n"); printf("\n请选择1-6:"); c = getchar(); switch (c) { case '1': Query(fltlist); break; case '2': OneDay(fltlist, psglist); break; case '3': MultiDay(fltlist, psglist); break; case '4': Del(fltlist); break; case '5': Add(fltlist); break; case '6': break; default: continue; } if (c == '6') break; } }