C++實現(xiàn)飛機訂票系統(tǒng)
更新時間:2022年03月14日 11:19:07 作者:那時初見
這篇文章主要為大家詳細介紹了C++實現(xiàn)飛機訂票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)飛機訂票系統(tǒng)的具體代碼,供大家參考,具體內容如下
// 飛機訂票系統(tǒng).cpp : 定義控制臺應用程序的入口點。 // #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)string存取二進制數(shù)據(jù)的方法
這篇文章主要介紹了C++實現(xiàn)string存取二進制數(shù)據(jù)的方法,針對STL中string的用法進行了較為詳細的分析,需要的朋友可以參考下2014-10-10Qt利用QJson實現(xiàn)解析數(shù)組的示例詳解
這篇文章主要為大家詳細介紹了Qt如何利用QJson實現(xiàn)解析數(shù)組功能,文中的示例代碼講解詳細,對我們學習Qt有一定幫助,需要的小伙伴可以了解一下2022-10-10