久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3701|回復: 1
收起左側

編寫的飛機訂票系統C源碼

[復制鏈接]
ID:250103 發表于 2017-11-16 21:51 | 顯示全部樓層 |閱讀模式
運行效果如下:
QQ截圖20171116214717.png

單片機源程序如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. //#include <conio.h>
  5. #define MAXSIZE 10
  6. typedef struct wat_ros
  7. {
  8.         char name[10];
  9.         int req_amt;
  10.         struct wat_ros *next;
  11. }qnode,*qptr;
  12. typedef struct pqueue
  13. {
  14.         qptr front;
  15.         qptr rear;
  16. }linkqueue;
  17. typedef struct ord_ros
  18. {
  19.         char name[10];
  20.         int ord_amt;
  21.         int grade;
  22.         struct ord_ros *next;
  23. }linklist;
  24. struct airline
  25. {      
  26.         char ter_name[10]; /* 站點名 */
  27.         char air_num[10]; /* 航班號 */
  28.         char plane_num[10]; /* 飛機號 */
  29.         char date[7]; /* 飛行日期 */
  30.         int tkt_amt; /* 乘員定額 */
  31.         int tkt_sur; /* 余票量 */
  32.         linklist *order;
  33.         linkqueue wait;
  34. }lineinfo;
  35. struct airline *start;
  36. struct airline air[MAXSIZE]={
  37.                                 {"北京", "1", "S1001", "星期一", 130, 10},
  38.                                    {"上海","2","S1002","星期二",120,5},
  39.                                 {"廈門","3","S1003","星期三",157,15},
  40.                                 {"廣州","4","S1004","星期四",146,5},
  41.                                 {"海口","5","S1005","星期四",173,15},
  42.                                 {"深圳","6","S1006","星期五",120,35},
  43.                                 {"長沙","7","S1007","星期四",145,65},
  44.                                 {"成都","8","S1008","星期六",125,53},
  45.                                 {"杭州","9","S1009","星期四",146,24},
  46.                             {"重慶","10","S1010","星期五",100,30}
  47. };;
  48. void display(struct airline *info)
  49. {      
  50.         printf("%8s\t%3s\t%s\t%4s\t\%d\t\%d\t\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur);
  51. }
  52. /* 瀏覽航線信息函數 */
  53. void list()
  54. {
  55.         struct airline *info;
  56.         int i = 0;
  57.         info = start;
  58.         printf("終點站名\t航班號\t飛機號\t飛行日期" "乘員定額" "余票量\n");
  59.         while(i < MAXSIZE){
  60.                 display(info);
  61.                 info++;
  62.                 i++;
  63.         }
  64.         printf("\n\n");
  65. }
  66. void search()
  67. {
  68.         struct airline *info,*find();
  69.         char name[10];
  70.         int i=0;
  71.         info=start;
  72.         printf("請輸入終點站名:");
  73.         scanf("%s",name);
  74.         while(i<MAXSIZE)
  75. {
  76. if(!strcmp(name,info->ter_name)) break;
  77. info++;
  78. i++;
  79. }
  80. if(i>=MAXSIZE)
  81. printf("對不起,該航線未找到!\n");
  82. else
  83. {
  84. printf("終點站名\t航班號\t飛機號\t飛行日期\t乘員定額\t余票量\n");
  85. display(info);
  86. }
  87. }
  88. struct airline *find()
  89. {
  90.         struct airline *info;
  91.         char number[10];
  92.         int i=0;
  93.         info=start;
  94.         printf("請輸入航班號:");
  95.         scanf("%s",number);
  96.         while(i<MAXSIZE)
  97.         {
  98.                 if(!strcmp(number,info->air_num)) return info;
  99.                 info++;
  100.                 i++;
  101.         }
  102.         printf("對不起,該航線末找到!\n");
  103.         return NULL;
  104. }
  105. /* 瀏覽已訂票客戶信息 */
  106. void prtlink()
  107. {
  108.         linklist *p;
  109.         struct airline *info;
  110.         info=find();
  111.         p=info->order;
  112.         if(p!=NULL){
  113.         printf("客戶姓名 訂票數額 艙位等級\n");
  114.                 while(p){
  115.                 printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);
  116.                 p=p->next;
  117.                 }
  118.         }
  119.         else
  120.         printf("該航線沒有客戶信息!!\n");
  121. }
  122. linklist *insertlink(linklist *head,int amount,char name[],int grade)
  123. { linklist *p1,*new1;
  124. p1=head;
  125. new1=(linklist *)malloc(sizeof(linklist));
  126. if(!new1) {printf("\nOut of memory!!\n");return NULL;}
  127. strcpy(new1->name,name);
  128. new1->ord_amt=amount;
  129. new1->grade=grade;
  130. new1->next=NULL;
  131. if(head==NULL)
  132. {head=new1;new1->next=NULL;}
  133. else
  134. head=new1;
  135. new1->next=p1;
  136. return head;
  137. }
  138. linkqueue appendqueue(linkqueue q,char name[],int amount)
  139. { qptr new1;
  140. new1=(qptr)malloc(sizeof(qnode));
  141. strcpy(new1->name,name);
  142. new1->req_amt=amount;
  143. new1->next=NULL;
  144. if(q.front==NULL)
  145. q.front=new1;
  146. else
  147. q.rear->next=new1;
  148. q.rear=new1;
  149. return q;
  150. }
  151. void order()
  152. { struct airline *info;
  153. int amount,grade;
  154. char name[10];
  155. info=start;
  156. if(!(info=find())) return;
  157. printf("請輸入訂飛機票的數量:");
  158. scanf("%d",&amount);
  159. if(amount>info->tkt_amt)
  160. { printf("\n對不起,您輸入的數量已經超額!");
  161. return;
  162. }
  163. if(amount<=info->tkt_sur)
  164. {
  165. int i;
  166. printf("請輸入您的姓名(訂票客戶):");
  167. scanf("%s",name);
  168. printf("請輸入%s票的艙位等級:",name);
  169. scanf("%d",&grade);
  170. info->order=insertlink(info->order,amount,name,grade);
  171. for(i=0;i<amount;i++)
  172. printf("%s的座位號是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);
  173. info->tkt_sur-=amount;
  174. printf("\n祝您旅途愉快!\n");
  175. }
  176. else
  177. { char r;
  178.         printf("\n已經沒有更多的票,您需要登記嗎?(Y/N)");
  179. //r=getch();
  180. //printf("%c",r);
  181.         scanf ( "回車繼續等待%c", &r );
  182. if(r=='Y'||r=='y')
  183. { printf("\n請輸入您的姓名(排隊訂票客戶):");
  184. scanf("%s",name);
  185. info->wait=appendqueue(info->wait,name,amount);
  186. printf("\n注冊成功!\n");
  187. }
  188. else printf("\n歡迎您再次乘坐!\n");
  189. }
  190. }
  191. void return_tkt()
  192. { struct airline *info;
  193. qnode *t,*back,*f,*r;
  194. int grade;
  195. linklist *p1,*p2,*head;
  196. char cusname[10];
  197. if(!(info=find())) return;
  198. head=info->order;
  199. p1=head;
  200. printf("請輸入你的姓名(退票客戶):");
  201. scanf("%s",cusname);
  202. while(p1!=NULL) {
  203. if(!strcmp(cusname,p1->name)) break;
  204. p2=p1;p1=p1->next;
  205. }
  206. if(p1==NULL){ printf("對不起,您沒有訂過票!\n");return;}
  207. else
  208. {
  209. if(p1==head) head=p1->next;
  210. else p2->next=p1->next;
  211. info->tkt_sur+=p1->ord_amt;
  212. grade=p1->grade;
  213. printf("%s退票成功!\n",p1->name);
  214. free(p1);
  215. }
  216. info->order=head;
  217. f=(info->wait).front;
  218. r=(info->wait).rear;
  219. t=f;
  220. while(t)
  221. {
  222.         if((info->tkt_sur = info->wait.front->req_amt))
  223. {
  224. int i;
  225. info->wait.front=t->next;
  226. printf("%s訂票成功!\n",t->name);
  227. for(i=0;i<t->req_amt;i++)
  228. printf("%s的座位號是:%d\n",t->name,(info->tkt_sur)-i);
  229. info->tkt_sur-=t->req_amt;
  230. info->order=insertlink(info->order,t->req_amt,t->name,grade);
  231. free(t);
  232. break;
  233. }
  234. back=t;t=t->next;
  235. if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)
  236. { int i;
  237. back->next=t->next;
  238. printf("%s訂票成功!\n",t->name);
  239. for(i=0;i<t->req_amt;i++)
  240. printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);
  241. info->tkt_sur-=t->req_amt;
  242. info->order=insertlink(info->order,t->req_amt,t->name,grade);
  243. free(t);break;
  244. }
  245. if(f==r) break;
  246. }
  247. }
  248. void sort_tkt()
  249. {
  250. int j;
  251. struct airline t,*info,*p,*q;
  252. p=info=air;
  253. for(p=info;(p+1)->tkt_sur;p++)
  254. for(q=p+1;q->tkt_sur;q++)
  255. {
  256. if(p->tkt_sur<q->tkt_sur)
  257. {
  258. t=*p;
  259. *p=*q;
  260. *q=t;
  261. }
  262. }
  263. printf("終點站名\t航班號\t飛機號\t飛行日期\t乘員定額\t余票量\n");
  264. for(j=0;j<MAXSIZE;j++)
  265. {
  266. display(info);
  267. info++;
  268. }
  269. }
  270. int menu_select()
  271. {
  272.         int c;
  273.         char s[20];
  274.         printf("\n\t\t 飛訂票系統(信息來自 12306官網)\n");
  275.         printf(" ******************************************\n");
  276.         printf(" ** 1.瀏覽航線信息 **\n");
  277.         printf(" ** 2.查詢航班 **\n");
  278.         printf(" ** 3.瀏覽已訂票客戶信息 **\n");
  279.         printf(" ** 4.辦理訂票業務 **\n");
  280.         printf(" ** 5.辦理退票業務 **\n");
  281.         printf(" ** 6.查看剩余票數 **\n");
  282.         printf(" ** 0.退出系統 **\n");
  283.         printf(" *******************************************\n");
  284.         do
  285.         {
  286.                 printf("請選擇:");
  287.                 scanf("%s",s);
  288.                 c = atoi(s);        /* atoi將字符串轉換為整型 */
  289.         }while(c < 0||c > 7);
  290.         return c;
  291. }
  292. int  main()
  293. {
  294.         start = air;
  295.         for(;;)
  296.         {
  297.                 switch(menu_select())
  298.                 {
  299.                         case 1:list();break;
  300.                         case 2:prtlink();break;
  301.                         case 3:search();break;
  302.                         case 4:order();break;
  303.                         case 5:return_tkt();break;
  304.                         case 6:sort_tkt();break;
  305.                         case 0:printf("\n歡迎使用12306訂票系統,再會!\n");exit(0);
  306.                 }
  307.         printf("\nPress any key to continue!\n");
  308.         getchar();
  309.         }
  310.         return 0;
  311. }
復制代碼




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:362692 發表于 2020-3-23 15:01 來自手機 | 顯示全部樓層
這是用的什么編譯軟件啊??
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美 日韩 国产 成人 在线 | 波多野结衣中文字幕一区二区三区 | 伊人久久大香线 | 中文字幕精品一区 | 毛片网在线观看 | 国产精品久久久久久久久久 | 黄色毛片在线观看 | www.青娱乐| 先锋资源网| 粉嫩国产精品一区二区在线观看 | 成人在线视频观看 | 国产免费看 | 亚洲第一av | 久久www免费视频 | 欧美日韩国产精品一区二区 | 中文字幕av第一页 | 99re视频在线观看 | 99久久精品一区二区毛片吞精 | 久久久久久国 | 久久综合久久久 | 色香蕉在线 | 97精品超碰一区二区三区 | 欧美亚洲免费 | 成人免费一区二区三区牛牛 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 国产无人区一区二区三区 | 久久精品色欧美aⅴ一区二区 | 国产欧美精品一区二区色综合朱莉 | 日韩国产欧美一区 | av手机在线免费观看 | 亚洲久视频 | 仙人掌旅馆在线观看 | 国产大学生情侣呻吟视频 | 日韩精品在线观看视频 | 91资源在线观看 | 成人免费看片网 | 国产精品美女久久久久久免费 | 日韩成人在线免费视频 | 黄色精品 | 日韩精品一区二 | 国产一区二区三区久久久久久久久 |