您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用C++實現(xiàn)飛機訂票系統(tǒng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體內(nèi)容如下
// 飛機訂票系統(tǒng).cpp : 定義控制臺應(yīng)用程序的入口點。 // #include "stdafx.h" #include <stdio.h> #include <string.h> #include<stdlib.h> #include<conio.h> #define N 2 typedef struct plane { char ID[10]; char Start_Place[10]; char End_Place[10]; float price; int Buy_num; int Max_num; char time[20]; }PLANE; PLANE p[N]; void menu(); void menu1(); void count() { char a[10]; int i, num = 0; printf("請您輸入要統(tǒng)計的飛機目的地:"); scanf("%s", a); printf("航班代號 起始地點 目的地 票價 已售 乘客容量 時間/n"); for (i = 0; i<N; i++) { if (strcmp(a, p[i].End_Place) == 0) { num++; printf("%s %s %s %7.2f %d %d %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); } } printf("/n您想統(tǒng)計的航班有%d條!/n", num); getchar(); menu1(); } void browse() { int i; system("cls"); printf("瀏覽航班信息:/n"); printf("航班代號 起始地點 目的地 票價 已售 乘客容量 時間/n"); for (i = 0; i<N; i++) { printf("%s %s %s %7.2f %d %d %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); } getchar(); menu(); } void order() { int i, j; PLANE temp; for (i = 0; i<N; i++) { for (j = i; j<N; j++) { if (strcmp(p[i].time, p[j].time)>0) { temp = p[i]; p[i] = p[j]; p[j] = temp; } } } browse(); } void enter() { int i; system("cls"); printf("請您輸入航班信息:"); for (i = 0; i<N; i++) { printf("航班代號:"); scanf("%s", p[i].ID); printf("起飛地點:"); scanf("%s", p[i].Start_Place); printf("目的地點:"); scanf("%s", p[i].End_Place); printf("票價:"); scanf("%f", &p[i].price); p[i].Buy_num = 0; printf("乘客容量:"); scanf("%d", &p[i].Max_num); printf("起飛時間:"); scanf("%s", p[i].time); } getchar(); menu(); } void buy() { char t[20], place[20]; int i, w = 0, num; printf("時間"); scanf("%s", t); printf("mudidi"); scanf("%s", place); for (i = 0; i<N; i++) { if (strcmp(t, p[i].time) == 0 && strcmp(place, p[i].End_Place) == 0) { w = 1; printf("%s %s %s %7.2f %d %d %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); printf("買幾張票!"); scanf("%d", &num); if (p[i].Buy_num + num>p[i].Max_num) { printf("當前余票不足,只剩%d張", p[i].Max_num - p[i].Buy_num); } else { p[i].Buy_num = p[i].Buy_num + num; printf("購票成功!"); } } } if (w == 0) printf("沒有您要得票!"); getchar(); menu1(); } void back() { char id[20]; int i, w = 0; printf("id:"); scanf("%s", id); for (i = 0; i<N; i++) { if (strcmp(id, p[i].ID) == 0) { p[i].Buy_num--; printf("退票成功"); w = 1; } } if (w == 0) printf("退票失敗"); getchar(); menu1(); } void bowse_time() { char a[20]; int i, w = 0; printf("請您輸入要查詢的飛機起飛時間:"); scanf("%s", a); printf("航班代號 起始地點 目的地 票價 已售 乘客容量 時間/n"); for (i = 0; i<N; i++) { if (strcmp(a, p[i].time) == 0) { w = 1; printf("%s %s %s %7.2f %d %d %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); } } if (w == 0) printf("沒有您想查詢的航班!/n"); getchar(); menu1(); } void bowse_palce() { char a[10]; int i, w = 0; printf("請您輸入要查詢的飛機目的地:"); scanf("%s", a); printf("航班代號 起始地點 目的地 票價 已售 乘客容量 時間/n"); for (i = 0; i<N; i++) { if (strcmp(a, p[i].End_Place) == 0) { w = 1; printf("%s %s %s %7.2f %d %d %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); } } if (w == 0) printf("沒有您想查詢的航班!/n"); getchar(); menu1(); } void bowse_ID() { char a[10]; int i, w = 0; printf("請您輸入要查詢的飛機航班號:"); scanf("%s", a); printf("航班代號 起始地點 目的地 票價 已售 乘客容量 時間/n"); for (i = 0; i<N; i++) { if (strcmp(a, p[i].ID) == 0) { w = 1; printf("%s %s %s %7.2f %d %d %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time); } } if (w == 0) printf("沒有您想查詢的航班!/n"); getchar(); menu1(); } void menu1() { int n, w1; do { system("cls"); puts("/t/t/t/t 飛機售票操作!/n/n"); puts("/t/t*********************MENU*********************/n/n"); puts("/t/t/t/t1.Buy ticket"); puts("/t/t/t/t2.return ticket"); puts("/t/t/t/t3.bowse by time"); puts("/t/t/t/t4.bowse by end palce"); puts("/t/t/t/t5.bowse by plane ID"); puts("/t/t/t/t6.return to menu"); puts("/n/n/t/t**********************************************/n"); printf("Choice your number(1-6): [ ]/b/b"); scanf("%d", &n); if (n<0 || n>6) { w1 = 1; printf("your choice is not between 1 and 4,Please input again:"); getchar(); } else w1 = 0; } while (w1 == 1); switch (n) { case 1:buy(); break; case 2:back(); break; case 3:bowse_time(); break; case 4:bowse_palce(); break; case 5:bowse_ID(); break; case 6:menu(); } } int save() { int w = 1; FILE *fp; int i; system("cls"); if ((fp = fopen("c://ticket.txt", "wb")) == NULL) { printf("/nCannot open file/n"); return NULL; } for (i = 0; i<N; i++) if (fwrite(&p[i], sizeof(struct plane), 1, fp) != 1) { printf("file write error/n"); w = 0; } if (w == 1) { printf("file save ok!/n"); } fclose(fp); getchar(); menu(); } int load() { FILE *fp; int i, w; w = 1; system("cls"); if ((fp = fopen("c://ticket.txt", "rb")) == NULL) { printf("/nCannot open file/n"); w = 0; return NULL; } for (i = 0; !feof(fp); i++) { fread(&p[i], sizeof(struct plane), 1, fp); } fclose(fp); if (w == 1) printf("Load file ok!"); getchar(); menu(); } void main() { menu(); } void menu() { int n, w1; do { system("cls"); puts(" 飛機售票系統(tǒng) "); puts("*************************MENU*************************"); puts(" 1. Enter new plane"); puts(" 2. Browse all"); puts(" 3. opreration"); puts(" 4. Save file"); puts(" 5. Load file"); puts(" 6. Exit"); puts("******************************************************"); printf("Choice your number(1-6): "); scanf("%d", &n); if (n<0 || n>6) { w1 = 1; printf("your choice is not between 1 and 6,Please input again:"); getchar(); } else w1 = 0; } while (w1 == 1); switch (n) { case 1: enter(); break; case 2: browse(); break; case 3: menu1(); break; case 4: save(); break; case 5: load(); break; case 6: exit(0); } }
以上是“如何使用C++實現(xiàn)飛機訂票系統(tǒng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。