[問題] 售票系統 可以用哪種方法精簡???

看板C_and_CPP作者 (啥小達人)時間15年前 (2009/06/29 19:47), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> int main(void) { int ticket,change,a,b,c,d,vip,k; do { for(k=1;k<70;k++) { printf("*"); if(k%70==0) printf("\n"); } printf("\n"); start: printf("\t\t\t<<歡迎訪客進入網路售票系統>>\n請選擇所要買的預售票\n(1)棒球 (2)籃球 (3)演唱會:"); scanf("%d",&ticket); if(ticket==2 || ticket==3) { if(ticket==2) { printf("籃球票還沒開賣啦"); printf("\n"); } if(ticket==3) { printf("演唱會票還沒開賣啦"); printf("\n"); } goto end; } while(ticket<1 || ticket>3) { printf("\t\t\t===輸入錯誤!請重新輸入===\n"); printf("\t\t\t<<歡迎訪客進入網路售票系統>>\n請選擇所要買的預售票\n(1)棒球 (2)籃球 (3)演唱會:"); scanf("%d",&ticket); } } while(ticket>3 && ticket<1); { if(ticket==1) { printf("請輸入你所需要的位子\n(1)貴賓 (2)下層 (3)上層:"); scanf("%d",&a); while(a<1 || a>3) { printf("\t\t\t===輸入錯誤!請重新輸入===\n"); printf("請輸入你所需要的位子\n(1)貴賓 (2)下層 (3)上層:"); scanf("%d",&a); } { if(a==1) { printf("請選擇張數:"); scanf("%d",&b); vip=b*1500; printf("你所訂購的是貴賓位%d張 總計是%d元",b,vip); } if(a==2) { printf("請選擇張數:"); scanf("%d",&b); vip=b*1000; printf("你所訂購的是下層位%d張 總計是%d元",b,vip); } if(a==3) { printf("請選擇張數:"); scanf("%d",&b); vip=b*500; printf("你所訂購的是上層位%d張 總計是%d元",b,vip); } } do { printf("\n輸入是否正確\n(1)正確(2)錯誤(3)取消:"); scanf("%d",&c); if(c==2) { goto start; } if(c==3) { goto end; } } while(c<1 || c>1); { if(c==1) printf("請輸入你所要付的金額:"); scanf("%d",&d); change=d-vip; if(change<0) { change=0-change; do { printf("你所付的金額還差%d元\n",change); printf("請輸入補足的金額:"); scanf("%d",&k); } while(k<change); { change=k-change; } } if(change>0) printf("找你的零錢為%d元\n",change); } end: printf("\t\t\t<<歡迎再度使用網路售票系統>>\n"); for(k=1;k<70;k++) { printf("*"); if(k%70==0) printf("\n"); } printf("\n"); system("pause"); return 0; } } } 我突然覺得 我這寫法 又臭又長 想請問一下 = = 還有什麼方法 能讓這寫法更少 寫到130行了 goto 這個語法是不是不好用 @@? -- http://www.wretch.cc/album/fanyangshin -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.146.57 ※ 編輯: gungygy 來自: 220.138.146.57 (06/29 19:48)

06/29 19:49, , 1F
不是不好用 應該說不要用比較好
06/29 19:49, 1F

06/29 20:30, , 2F
switch
06/29 20:30, 2F

06/29 20:41, , 3F
懷念.....
06/29 20:41, 3F

06/29 21:24, , 4F
寫的多少沒差吧,寫得好懂好Debug更重要
06/29 21:24, 4F

06/30 10:31, , 5F
把排版先當function分出去 main留下流程就好
06/30 10:31, 5F
文章代碼(AID): #1AIAdjUk (C_and_CPP)