为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

机票退订

2017-09-21 32页 doc 63KB 29阅读

用户头像

is_601191

暂无简介

举报
机票退订机票退订 #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 typedef int BOOL; #define NEW(type, size) (type*)malloc(sizeof(type) * size) typedef struct _date { /* ÈÕÆÚ */ int m_year; int m_month; int m_day;...
机票退订
机票退订 #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 typedef int BOOL; #define NEW(type, size) (type*)malloc(sizeof(type) * size) typedef struct _date { /* ÈÕÆÚ */ int m_year; int m_month; int m_day; } DATE; typedef struct _time { /* Ê??ä */ int m_hour; int m_min; } TIME; typedef struct _flight { /* º??àÊý?Ý */ int m_fltno; /* º??àºÅ??Èô?Ë?ÉÔ?Ϊ-1??Ôò?íÊ??˺??àÎ?Ê?Óà */ char m_szFrom[30]; /* Æð?É?Û */ char m_szPass[30]; /* Í??,?Û */ char m_szTo[30]; /* µ??ï?Û */ TIME m_start; /* Æð?ÉÊ??ä */ TIME m_arrive; /* µ??ïÊ??ä */ TIME m_fly; /* ?ÉÐÐ?Ì??Ê??ä */ int m_people; /* ?Ë?ÍÏÞ?î */ } FLIGHT, *PFLIGHT; typedef struct _passengernode { /* ?Ë?ÍÊý?Ý */ char m_szName[20]; /* ÐÕÃû */ char m_szCorp[30]; /* µ?Î? */ char m_szNumber[19]; /* Éí?ÝÖ?ºÅ????Âǵ?×ÖÄ?µÄÇé?ö???ÊÊ?ÓÃ×Ö?û?? */ DATE m_Date; /* ??Æ?ÈÕÆÚ */ int m_fltno; /* º??àºÅ */ int m_seatno; /* ×ùÎ?ºÅ */ } PASSENGER, *PPASSENGER; typedef struct _psgnode { /* ?Ë?Í?áµã */ PASSENGER m_psg; struct _psgnode *next; } NODE, *PNODE; /* Çå?Õ?üÅÌ?º?åÇø */ void ClearBuffer(void); /* ?ÁÈ?º??àÊý?Ý */ void ReadFlight(FLIGHT fltlist[]); /* ?ÁÈ??Ë?ÍÊý?Ý */ void ReadPassenger(PNODE psglist); /* Ìí?Óº??à */ BOOL AddFlight(FLIGHT fltlist[], PFLIGHT fltdata); /* É??ýº??à */ void DelFlight(FLIGHT fltlist[], int index); /* Ìí?Ó?Ë?Í */ void AddPassenger(PNODE psglist, PPASSENGER psgdata); /* É??ý?Ë?Í */ BOOL DelPassenger(PNODE psglist, int index); /* Çå?Õ?Ë?ÍÁ??í */ void ClearPsgList(PNODE psglist); /* È?µÃ?Ë?Í×ÜÊý */ unsigned int GetPsgCount(PNODE psglist); BOOL datecmp(DATE* date1, DATE* date2); void Book(FLIGHT fltlist[], PNODE psglist); void query(FLIGHT fltlist[], PNODE psglist); void fltnumber(FLIGHT fltlist[]); void psgname (PNODE psglist); void fromto (FLIGHT fltlist[]); void fltdat(FLIGHT fltlist[], PNODE psglist); /* ???æº??àÊý?Ý */ void SaveFlight(FLIGHT fltlist[]); /* ???æ?Ë?ÍÊý?Ý */ void SavePassenger(PNODE psglist); /* ÍË?ö */ void Quit(FLIGHT fltlist[], PNODE psglist); BOOL datecmp(DATE* date1, DATE* date2) { return (date1->m_year == date2->m_year && date1->m_month == date2->m_month && date1->m_day == date2->m_day); } BOOL timecmp(TIME* time1, TIME* time2) { return (time1->m_hour == time2->m_hour && time1->m_min == time2->m_min); } void ClearBuffer(void) { getchar(); } void ReadFlight(FLIGHT fltlist[]) { FILE *fp; if ((fp = fopen("flight.dat", "rb")) != NULL) fread(fltlist, sizeof(FLIGHT), 40, fp); else { int i; for (i = 0; i < 40; i++) fltlist[i].m_fltno = -1; } fclose(fp); } void ReadPassenger(PNODE psglist) { FILE *fp; if ((fp = fopen("psg.dat", "rb")) == NULL) psglist->next = NULL; else { int i, n; fread(&n, sizeof(int), 1, fp); for (i = 0; i < n; i++) { PASSENGER psg; fread(&psg, sizeof(PASSENGER), 1, fp); AddPassenger(psglist, &psg); } } } BOOL AddFlight(FLIGHT fltlist[], PFLIGHT fltdata) { int i; BOOL bResult = FALSE; for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == -1) { memcpy(&fltlist[i], fltdata, sizeof(FLIGHT)); bResult = TRUE; break; } } return bResult; } void DelFlight(FLIGHT fltlist[], int index) { fltlist[index].m_fltno = -1; } void AddPassenger(PNODE psglist, PPASSENGER psgdata) { PNODE p, q; for (p = psglist; p->next != NULL; p = p->next) ; q = NEW(NODE, 1); memcpy(&q->m_psg, psgdata, sizeof(PASSENGER)); q->next = NULL; p->next = q; } BOOL DelPassenger(PNODE psglist, int index) { int i = 0; PNODE p, q; for (p = psglist->next; p->next != NULL; p = p->next) i++; if (p != NULL && i == index - 1) { q = p->next; p->next = q->next; free(q); return TRUE; } else return FALSE; } void ClearPsgList(PNODE psglist) { PNODE p = psglist->next, q; while (p != NULL && p->next != NULL) { q = p; p = p->next; free(q); } } unsigned int GetPsgCount(PNODE psglist) { PNODE p; unsigned int s = 0; for (p = psglist->next; p != NULL; p = p->next) s++; return s; } void Book(FLIGHT fltlist[], PNODE psglist) { char c = 'y'; BOOL b; while (c == 'y' || c == 'Y') { int i; PASSENGER psg; printf("ÇëÊäÈëº??àºÅ?º"); scanf("%d", &psg.m_fltno); while (psg.m_fltno >= 10000 || psg.m_fltno < 0) { printf("ÇëÖØÐÂÊäÈë?º"); scanf("%d", &psg.m_fltno); } for(i = 0; i < 40; i++) { if(fltlist[i].m_fltno == psg.m_fltno) { PNODE p; BOOL *q; int j; printf("ÇëÊäÈë??Æ?ÈÕÆÚ?º(yyyy,mm,dd)"); scanf("%d,%d,%d", &psg.m_Date.m_year, &psg.m_Date.m_month, &psg.m_Date.m_day); q = NEW(int, fltlist[i].m_people); for (j = 0; j < fltlist[i].m_people; j++) q[j] = FALSE; for (p = psglist->next; p != NULL; p = p->next) { if(datecmp(&p->m_psg.m_Date, &psg.m_Date) && psg.m_fltno == p->m_psg.m_fltno) q[p->m_psg.m_seatno - 1] = TRUE; } printf("ÒÔÏÂ×ùÎ?ÉÐÎ?ÓÐÈË???º"); for (j=0; j < fltlist[i].m_people; j++) { if (!q[j]) printf("%d ", j + 1); } printf("\nÇëÊäÈë??Æ?×ùÎ?ºÅ?º"); scanf("%d", &psg.m_seatno); b = FALSE; do { int k; if (psg.m_seatno > 0 && psg.m_seatno <= fltlist[i].m_people + 1) { if (!q[psg.m_seatno - 1]) { b = TRUE; break; } else printf("Õâ?ö×ùÎ?ÓÐÈËÁË??"); } else printf("Êý?Ý?Ç????"); scanf("%d", &psg.m_seatno); } while (!b); printf("ÇëÊäÈë?Ë?ÍÐÕÃû?º") ; scanf("%s", psg.m_szName); printf("ÇëÊäÈë?Ë?͵?Î??º"); scanf("%s", psg.m_szCorp); printf("ÇëÊäÈë?Ë?ÍÉí?ÝÖ?ºÅ?º"); scanf("%s", psg.m_szNumber); AddPassenger(psglist, &psg); printf("ÄúµÄ??Æ?ÒÑ?É????"); free(q); } } c = getchar(); } } void query(FLIGHT fltlist[], PNODE psglist) { for (;;) { char c; system("cls"); printf("º??à?éÑ?\n"); printf("~~~~~~~~\n"); printf("1.??º??àºÅ?éÑ?\n"); printf("2.??ÐÕÃû?éÑ??Ë?Í\n"); printf("3.??Æð?É??µ??ï?Û?éÑ?\n"); printf("4.??ÈÕÆÚ?éÑ?º??àÇé?ö\n"); printf("5.?µ?Ø\n"); printf("\nÇëÑ?Ôñ1-5?º"); c = getchar(); switch (c) { case '1': fltnumber(fltlist); break; case '2': psgname(psglist); break; case '3': fromto(fltlist); break; case '4': fltdat(fltlist, psglist); break; case '5': break; default: continue; } if (c == '5') break; } } void fltnumber(FLIGHT fltlist[]) { char c = 'y'; while (c == 'y' || c == 'Y') { BOOL b = FALSE; int fltno, i; 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\n", fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo); 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_fly.m_min); printf("?Ë?ÍÏÞ?î?º%d\n", fltlist[i].m_people); break; } } printf("?ÌÐø?éÑ?Âð??(y/n)"); ClearBuffer(); c = getchar(); } } void psgname(PNODE psglist) { char c = 'y'; while (c == 'y' || c == 'Y') { char name[20]; PNODE p; BOOL b = FALSE; printf("ÇëÊäÈë?Ë?ÍÐÕÃû?º"); scanf("%s",name); for (p = psglist->next; p != NULL; p = p->next) { if(strcmp(p->m_psg.m_szName, name) == 0) { b = TRUE; printf("ÐÕÃû?º%s µ?Î??º%s Éí?ÝÖ?ºÅ?º%s\n", p->m_psg.m_szName, p->m_psg.m_szCorp, p->m_psg.m_szNumber); printf("??Æ?ÈÕÆÚ?º%d-%d-%d ", p->m_psg.m_Date.m_year, p->m_psg.m_Date.m_month, p->m_psg.m_Date.m_day); printf("º??àºÅ?º%d ×ùÎ?ºÅ?º%d", p->m_psg.m_fltno, p->m_psg.m_seatno); break; } } if (!b) { printf("?éÎÞ?ËÈË????ÈÎÒâ?üÍË?ö"); getch(); return; } printf("ÊÇ?ñ?ÌÐø?éÑ???(y/n)"); ClearBuffer(); c = getchar(); } } void fromto (FLIGHT fltlist[]) { char c = 'y'; while (c == 'y' || c == 'Y') { BOOL b = FALSE; char from[30], to[30]; int i; printf("ÇëÊäÈëÆð?É?Û?º"); scanf("%s", from); printf("ÇëÊäÈëµ??ï?Û?º"); scanf("%s", to); for(i = 0; i < 40; i++) { if(strcmp(fltlist[i].m_szFrom,from)==0) { if(strcmp(fltlist[i].m_szTo,to)==0) { b=TRUE; break; } } } if(b) { printf("%s--%s--%s\n",fltlist[i].m_szFrom,fltlist[i].m_szPass,fltl ist[i].m_szTo); 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_fly.m_min); printf("?Ë?ÍÏÞ?î?º%d",fltlist[i].m_people); } else printf("ÎÞ?Ë?É?ú"); getch(); printf("ÊÇ?ñ?ÌÐø?éÑ???"); ClearBuffer(); c = getchar(); } } void fltdat(FLIGHT fltlist[], PNODE psglist) { int people[40], i; DATE date; 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(&date, &p->m_psg.m_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 (people[i] > 0) { printf("%d %s--%s--%s ÈËÊý?º%d", fltlist[i].m_fltno, fltlist[i].m_szFrom, fltlist[i].m_szPass, fltlist[i].m_szTo, people[i]); } } getch(); } 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; system("cls"); 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; } } void SaveFlight(FLIGHT fltlist[]) { FILE *fp; if ((fp = fopen("flight.dat", "wb")) == NULL) { printf("??ÄÜ?ò?ªflight.datÎÄ?þ??º??àÊý?ÝÎÞ?????æ??\n"); fclose(fp); return; } fwrite(&fltlist[0], sizeof(FLIGHT), 40, fp); fclose(fp); printf("º??àÊý?ÝÒÑ???æÖÁflight.datÎÄ?þ??\n"); } void SavePassenger(PNODE psglist) { FILE *fp; PNODE p; int n = GetPsgCount(psglist); unlink("psg.dat"); if (n == 0) return; if ((fp = fopen("psg.dat", "wb")) == NULL) { printf("??ÄÜ?ò?ªpsg.datÎÄ?þ???Ë?ÍÊý?ÝÎÞ?????æ??\n"); fclose(fp); return; } fwrite(&n, sizeof(int), 1, fp); for (p = psglist->next; p != NULL; p = p->next) fwrite(&p->m_psg, sizeof(PASSENGER), 1, fp); fclose(fp); printf("?Ë?ÍÊý?ÝÒÑ???æÖÁpsg.datÎÄ?þ??\n"); } void Quit(FLIGHT fltlist[], PNODE psglist) { SaveFlight(fltlist); SavePassenger(psglist); } void main(void) { FLIGHT fltlist[40]; NODE psglist; ReadFlight(fltlist); ReadPassenger(&psglist); for (;;) { char c; system("cls"); printf("?É?ú??Æ?ϵÍ?\n"); printf("~~~~~~~~~~~~\n"); printf("---Ö??˵?---\n"); printf("1.??Æ?\n"); printf("2.ÍËÆ?\n"); printf("3.º??à?ÜÀí\n"); printf("4.?éÑ?\n"); printf("5.ÍË?ö\n"); printf("\nÇëÑ?Ôñ1-5?º"); c = getchar(); switch (c) { case '1': Book(fltlist, &psglist); break; case '2': /*c_ticket(fltlist, &psglist);*/ break; case '3': Manage(fltlist, &psglist); break; case '4': query(fltlist, &psglist); break; case '5': Quit(fltlist, &psglist); break; default: continue; } if (c == '5') break; } ClearPsgList(&psglist); }
/
本文档为【机票退订】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索