<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現車票管理系統的具體程式碼,供大家參考,具體內容如下
設計一個車票管理系統實現錄入、檢視班次資訊,售票,退票等基本功能。設計中要求綜合運用所學知識,上機解決一些與實際應用結合緊密的、規模較大的問題,通過分析、設計、編碼、偵錯等各環節
(1)錄入班次資訊(資訊用檔案儲存),可不定時地增加班次資料
(2)瀏覽班次資訊,可顯示出所有班次當前狀總。
(3)查詢路線:可按班次號查詢 ,可按終點站查詢
(4)售票和退票功能
A:當查詢出已定票人數小於額定載量且當前系統時間小於發車時間時才能售票,自動更新已售票人數
B:退票時,輸入退票的班次,當本班車未發出時才能退票,自動更新已售票人數
【資料結構】
本程式用到2個結構體,方便資訊的錄入,瀏覽,查詢,訂票與退票,等功能的實現。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <dos.h> #include <conio.h> #include <time.h> #define FALSE 0 #define TRUE 1 void mainmenu(void); //主選單函數 void InputMessage(void);//輸入資訊函數 void ShowMessage(void);//顯示資訊函數 void SearchMessage(void);//查詢資訊函數 void searchbynumber();//根據班次號查詢函數 void searchbyaddress();//根據終點站查詢的函數 void TicketManagement(void);//選擇訂票/退票的函數 void TicketOrder();//訂票實現函數 void TicketDelete();//退票實現函數 int FLAG;//標誌 struct time//時間結構體 { int hour; int minutes; }; struct ticket//車票的結構體 { int carnumber;//車次 struct time setout; char beginpoint[20];//起點站 char endpoint[20];//終點站 float lasttime;//行車時間 int fixnumber;//額定載量 int fixednumber;//已定票的人數 }car[4]; int main() {int FLAG=FALSE; do{mainmenu(); }while(FLAG=FALSE); } void mainmenu() {char functioNnumber; printf(" 車票管理系統nn"); printf("=============================================================n"); printf(" 1.錄入班次資訊tn"); printf(" 2.瀏覽班次資訊tn"); printf(" 3.查詢行車路線tn"); printf(" 4.售票與退票系統tn"); printf(" 5.退出該系統tn"); printf("=============================================================n"); printf("請選擇你所需要的功能:"); scanf("%s",&functioNnumber);switch(functioNnumber) { case '1': {system("cls");InputMessage(); printf("n按任意鍵返回主選單n"); getchar(); getchar(); mainmenu(); };break; case '2':{ system("cls");ShowMessage(); printf("n按任意鍵返回主選單n"); getchar(); getchar(); mainmenu(); };break; case '3': { system("cls");SearchMessage(); printf("n按任意鍵返回主選單n"); getchar(); getchar(); mainmenu(); };break; case '4': {system("cls");TicketManagement(); printf("n按任意鍵返回主選單n"); getchar(); getchar(); mainmenu(); };break; case '5':FLAG=TRUE; printf("*****************************感謝使用本系統***********************************************"); exit(0); break; default: { printf("對不起你的輸入有誤,請確保你的輸入為1-5.n"); printf("按任意鍵返回主選單n"); getchar(); getchar(); mainmenu(); }; }; FLAG=FALSE; } void InputMessage() {int i; for(i=0;i<4;i++)//一次錄入四班車 {printf("請輸入班次號:n"); scanf("%d",&car[i].carnumber); printf("請輸入發車時間:n"); scanf("%d %d",&car[i].setout.hour,&car[i].setout.minutes); printf("請輸入起點站:n"); scanf("%s",car[i].beginpoint); printf("請輸入終點站:n"); scanf("%s",car[i].endpoint); printf("請輸入行車時間:n"); scanf("%f",&car[i].lasttime); printf("請輸入額定載量:n"); scanf("%d",&car[i].fixnumber); printf("請輸入已定票人數:n"); scanf("%d",&car[i].fixednumber); } for(i=0;i<4;i++) {printf("班次t發車時間t起點t終點t行車時間(小時)t額定載量t已訂票人數n"); printf("%dt%d:%dt",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes); printf("%st%st%ft%dt%dtn",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber); }} void ShowMessage() {int i; time_t tval; struct tm*now; tval=time(NULL); now=localtime(&tval);for(i=0;i<4;i++) {if((now->tm_hour==car[i].setout.hour&&now->tm_min<car[i].setout.minutes)||(now->tm_hour<car[i].setout.hour)) {printf("%dt%d:%dt",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes); printf("%st%st%ft%dt%dtn",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);} else {printf("此車已出發。n"); printf("%dt%d:%dt",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes); printf("%st%st%ft%dt%dtn",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);} }} void SearchMessage() {char functionnumber; printf("查詢子選單:n"); printf("=========================================================================n"); printf(" 1.按班次號查詢n"); printf(" 2.按終點站查詢n"); printf(" 3.返回主選單n"); printf("=========================================================================n"); printf("請選擇你需要的功能:"); scanf("%s",&functionnumber); switch(functionnumber) { case '1':system("cls");searchbynumber();break; case '2':system("cls");searchbyaddress();break; case '3':system("cls");mainmenu();break; default:printf("輸入錯誤,請確保你的輸入為1-3.n"); printf("請按任意鍵返回查詢子選單n"); getchar(); getchar(); SearchMessage(); } } void searchbynumber() {int searchnumber; int s; printf("請輸入你要查詢的班次號:"); scanf("%d",&searchnumber); if(searchnumber>=1&&searchnumber<=4) {s=searchnumber-1; printf("班次t發車時間t起點t終點t行車時間(小時)t額定載量t已訂票人數n");printf("%dt%d:%dt",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes); printf("%st%st%ft%dt%dtn",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber);} else printf("對不起,沒有這趟車."); } void searchbyaddress() {int i; char address[20]; printf("請輸入終點站名:"); scanf("%s",address); for(i=0;i<=4;i++) if(strcmp(address,car[i].endpoint)==0) {printf("%dt%d:%dt",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes); printf("%st%st%ft%dt%dtn",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber); } } void TicketManagement() { char functionnumber; printf("==========================================================================n"); printf(" 1.訂票.n"); printf(" 2.退票.n"); printf(" 3.返回主選單.n"); printf("==========================================================================n"); printf("請選擇你需要的功能:n"); scanf("%s",&functionnumber); switch(functionnumber) {case '1':system("cls"); TicketOrder();break; case '2':system("cls"); TicketDelete(); break; case '3':system("cls"); {mainmenu();}break; default: {printf("輸入錯誤,請確保你的輸入為1--3.n"); printf("按任意鍵返回子選單.n"); getchar();getchar(); TicketManagement(); } } } void TicketOrder() {int i; int s; printf("請輸入要訂購的車票的班次:n"); scanf("%d",&i); s=i-1; if(s<0||s>3) {printf("對不起,沒有這趟車,請查詢後再訂票.n"); printf("按任意鍵返回車票管理選單。"); getchar(); getchar(); TicketManagement(); } else { time_t tval; struct tm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[s].setout.hour&&now->tm_min<car[s].setout.minutes)||(now->tm_hour<car[s].setout.hour)) {if(car[s].fixednumber<car[s].fixnumber) {car[s].fixednumber++; printf("你的訂票成功,請按時上車,謝謝使用!n"); }else printf("對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作!n"); }else printf("對不起,今天的這趟車已出發,請明天再來,謝謝合作!n"); } printf("班次t發車時間t起點t終點t行車時間(小時)t額定載量t已訂票人數n"); printf("%dt%d:%dt",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes); printf("%st%st%ft%dt%dt",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber); printf("按任意鍵返回主選單。n");getchar(); getchar(); } void TicketDelete() {int i; int s; printf("請輸入要退購的車票的班次:n"); scanf("%d",&i); s=i-1; if(s<0||s>3) {printf("對不起,沒有這趟車,請查詢後再退票.n"); printf("按任意鍵返回車票管理選單。"); getchar(); getchar(); TicketManagement(); } else { time_t tval; struct tm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[s].setout.hour&&now->tm_min<car[s].setout.minutes)||(now->tm_hour<car[s].setout.hour)) {if(car[s].fixednumber<car[s].fixnumber) {car[s].fixednumber--; printf("退票成功,謝謝使用!n"); }else printf("對不起,今天的這趟車的票尚未賣出,無法完成退票!n"); }else printf("對不起,今天的這趟車已出發,無法完成退票!n"); } printf("班次t發車時間t起點t終點t行車時間(小時)t額定載量t已訂票人數n"); printf("%dt%d:%dt",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes); printf("%st%st%ft%dt%dt",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber);`在這裡插入程式碼片` printf("按任意鍵返回主選單。n"); getchar(); getchar(); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45