版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言專(zhuān)業(yè)課程設(shè)計(jì)火車(chē)票標(biāo)準(zhǔn)管理系統(tǒng)PAGE29二、設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)火車(chē)票務(wù)管理系統(tǒng),用C語(yǔ)言實(shí)現(xiàn)。對(duì)該系統(tǒng)的要求如下:需求描述:1.系統(tǒng)功能(1)火車(chē)時(shí)刻信息錄入。包括車(chē)次、日期、起點(diǎn)、終點(diǎn)、開(kāi)車(chē)時(shí)間、到達(dá)時(shí)間、票價(jià)。數(shù)據(jù)存入數(shù)據(jù)文件hchsk.dat或hchsk.txt中。(2)火車(chē)時(shí)刻信息查詢(xún)。按照車(chē)次查詢(xún)按終點(diǎn)查詢(xún)按起點(diǎn)查詢(xún)按終點(diǎn)和日期查詢(xún)(3)統(tǒng)計(jì)按終點(diǎn)統(tǒng)計(jì)每日的車(chē)次數(shù)按起點(diǎn)統(tǒng)計(jì)每日的車(chē)次數(shù)2.系統(tǒng)主界面應(yīng)有以下功能選項(xiàng)錄入火車(chē)時(shí)刻信息查詢(xún)火車(chē)時(shí)刻信息統(tǒng)計(jì)火車(chē)車(chē)次退出三、詳細(xì)設(shè)計(jì)說(shuō)明#include<stdio.h>#include<string.h>#include<stdlib.h>intMENU();//菜單模塊voidINPUT();//輸入模塊voidSEARCH();//查詢(xún)模塊voidSELECT();//統(tǒng)計(jì)模塊voidWRITE();//文件記錄模塊voidPRINT();//打印模塊voidREAD();//文件讀取模塊voidWRONG();//糾錯(cuò)模塊#defineN1000//最大列車(chē)組數(shù)#definePrint"%s%13s%10s%10s%12s%15s%11s\n",T[i].code,T[i].data,T[i].lp,T[i].ap,T[i].lt,T[i].at,T[i].price//輸出記錄格式#defineWrong"\n!!!!!!!!!!!輸入錯(cuò)誤,請(qǐng)重新輸入!!!!!!!!!!!\n"#defineGeShi"車(chē)次日期起點(diǎn)終點(diǎn)開(kāi)車(chē)時(shí)間到達(dá)時(shí)間票價(jià)\n"structTrain{ charcode[10];//車(chē)次 chardata[10];//日期 charlp[10];//leftplace起點(diǎn) charap[10];//arriveplace終點(diǎn) charlt[10];//lefttime開(kāi)車(chē)時(shí)間 charat[10];//arrivetime到達(dá)時(shí)間 charprice[10];//票價(jià)}T[N];/*全局變量*/inti=0;//輸入計(jì)數(shù)器intn=0;//合計(jì)計(jì)數(shù)器charl[20];//糾錯(cuò)空間///////////////////////////////////////////////////////////////////////////////////////主函數(shù)intmain(){ intx; do { x=MENU(); switch(x) { case1:INPUT();break; case2:SEARCH();break; case3:SELECT();break; case4: printf("\n"); printf("\n正在退出,請(qǐng)按任意鍵退出"); printf("\n\n"); printf("\n\n"); break; default:WRONG();break; } }while(x!=4); return0; }///////////////////////////////////////////////////////////////////////////////////////菜單模塊intMENU(){ intchoice; system("cls"); printf("\n\n"); printf("\n"); printf("\n"); printf("歡迎進(jìn)入火車(chē)票務(wù)管理系統(tǒng)\n"); printf("\n"); printf("\n"); printf("\n\n"); printf("\n請(qǐng)輸入選項(xiàng)\n"); printf("1.錄入火車(chē)時(shí)刻信息\n"); printf("2.查詢(xún)火車(chē)時(shí)刻信息\n"); printf("3.統(tǒng)計(jì)火車(chē)車(chē)次\n"); printf("4.退出\n"); printf("\n"); printf("請(qǐng)選擇:"); scanf("%d",&choice); gets(l); returnchoice;}///////////////////////////////////////////////////////////////////////////////////////輸入模塊voidINPUT(){ charch; do { system("cls"); printf("\n\n====================歡迎進(jìn)入錄入火車(chē)時(shí)刻信息界面====================\n"); do { printf("\n新建列車(chē)信息?(y/n)"); scanf("%c",&ch); gets(l); if(ch!='y'&&ch!='n') WRONG(); }while(ch!='y'&&ch!='n'); if(ch=='n') break; printf(""); printf("\n錄入第%d趟列車(chē)信息\n",n+1); printf("車(chē)次"); gets(T[i].code); printf("日期"); gets(T[i].data); printf("起點(diǎn)"); gets(T[i].lp); printf("終點(diǎn)"); gets(T[i].ap); printf("開(kāi)車(chē)時(shí)間"); gets(T[i].lt); printf("到達(dá)時(shí)間"); gets(T[i].at); printf("票價(jià)"); gets(T[i].price); n++; i++; }while(i<N); WRITE(); system("cls"); printf("\n"); printf("\n"); printf("系統(tǒng)記載的列車(chē)信息如下\n"); printf("\n\n"); PRINT();}///////////////////////////////////////////////////////////////////////////////////////文件記錄模塊voidWRITE(){ FILE*fp,*fp1; if((fp=fopen("hchsk.txt","w"))==NULL) { printf("無(wú)法創(chuàng)建文件!\n\n"); getchar(); return; } if((fp1=fopen("N.txt","w"))==NULL)//用于記錄共幾趟車(chē) { printf("無(wú)法創(chuàng)建文件!\n"); getchar(); return; } for(i=0;i<n;i++) if(fwrite(&T[i],sizeof(structTrain),1,fp)==0) printf("寫(xiě)入數(shù)據(jù)失敗!\n\n"); fprintf(fp1,"%d",n); fclose(fp); fclose(fp1);}///////////////////////////////////////////////////////////////////////////////////////文件讀取模塊voidREAD(){ FILE*fp,*fp1; if((fp=fopen("hchsk.txt","r"))==NULL) { printf("無(wú)法打開(kāi)文件\n"); getchar(); return; } if((fp1=fopen("N.txt","r"))==NULL) { printf("無(wú)法打開(kāi)文件!\n\n"); getchar(); return; } fscanf(fp1,"%d",&n); fclose(fp1); for(i=0;i<n;i++) { fread(&T[i],sizeof(structTrain),1,fp); } fclose(fp);}///////////////////////////////////////////////////////////////////////////////////////打印模塊voidPRINT(){ charch[10]; READ(); printf("\n===========================================================================\n"); printf(GeShi); for(i=0;i<n;i++) printf(Print); printf("===========================================================================\n"); printf("\n按任意鍵返回上級(jí)菜單:"); gets(ch);}///////////////////////////////////////////////////////////////////////////////////////查詢(xún)模塊voidSEARCH(){ charname1[10];//車(chē)次 charname2[10];//終點(diǎn) charname3[10];//起點(diǎn) charname41[10];//終點(diǎn) charname42[10];//日期 charchoice; intj; intk; do { system("cls"); printf("\n\n====================歡迎進(jìn)入查詢(xún)火車(chē)時(shí)刻信息界面====================\n"); printf("\n++++++++++++++++++請(qǐng)選擇查找方式++++++++++++++++++\n\n"); printf("1.顯示所有列車(chē)信息2.按車(chē)次查詢(xún)3.按終點(diǎn)查詢(xún)\n"); printf("4.按起點(diǎn)查詢(xún)5.按終點(diǎn)和日期查詢(xún)6.返回上級(jí)菜單\n"); printf("\n請(qǐng)選擇:"); scanf("%d",&j); gets(l); switch(j) { case1: PRINT(); break; case2: printf("\n請(qǐng)輸入車(chē)次:"); gets(name1); break; case3: printf("\n請(qǐng)輸入終點(diǎn):"); gets(name2); break; case4: printf("\n請(qǐng)輸入起點(diǎn):"); gets(name3); break; case5: printf("\n請(qǐng)輸入終點(diǎn):"); gets(name41); printf("\n請(qǐng)輸入日期:"); gets(name42); break; case6: break; default: WRONG(); break; } READ(); k=0; if(j==2) { for(i=0;i<n;i++) { if(strcmp(T[i].code,name1)==0) { printf("\n按車(chē)次查找列車(chē)信息成功!\n"); printf("\n===========================================================================\n"); printf(GeShi); break; } } for(i=0;i<n;i++) { if(strcmp(T[i].code,name1)==0) { printf(Print); k++; } } printf("===========================================================================\n"); printf("\n-->共查詢(xún)到%d趟列車(chē)信息,請(qǐng)按任意鍵返回<--",k); gets(l); } if(j==3) { for(i=0;i<n;i++) { if(strcmp(T[i].ap,name2)==0) { printf("\n按終點(diǎn)查找列車(chē)信息成功!\n"); printf("\n===========================================================================\n"); printf(GeShi); break; } } for(i=0;i<n;i++) { if(strcmp(T[i].ap,name2)==0) { printf(Print); k++; } } printf("===========================================================================\n"); printf("\n-->共查詢(xún)到%d趟列車(chē)信息,請(qǐng)按任意鍵返回<--",k); gets(l); } if(j==4) { for(i=0;i<n;i++) { if(strcmp(T[i].lp,name3)==0) { printf("\n按起點(diǎn)查找列車(chē)信息成功!\n"); printf("\n===========================================================================\n"); printf(GeShi); break; } } for(i=0;i<n;i++) { if(strcmp(T[i].lp,name3)==0) { printf(Print); k++; } } printf("===========================================================================\n"); printf("\n-->共查詢(xún)到%d趟列車(chē)信息,請(qǐng)按任意鍵返回<--",k); gets(l); } if(j==5) { for(i=0;i<n;i++) { if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0) { printf("\n按終點(diǎn)和日期查找列車(chē)信息成功!\n"); printf("\n===========================================================================\n"); printf(GeShi); break; } } for(i=0;i<n;i++) { if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0) { printf(Print); k++; } } printf("===========================================================================\n"); printf("\n-->共查詢(xún)到%d趟列車(chē)信息,請(qǐng)按任意鍵返回<--",k); gets(l); } do { system("cls"); printf("\n\n-->繼續(xù)查找(1),返回主菜單(2)<--"); choice=getchar(); gets(l); if(choice!='1'&&choice!='2') WRONG(); }while(choice!='1'&&choice!='2'); }while(choice!='2');}///////////////////////////////////////////////////////////////////////////////////////統(tǒng)計(jì)模塊voidSELECT(){ charname1[10];//終點(diǎn) charname2[10];//起點(diǎn) intt,k; charchoice; do { system("cls"); printf("\n\n====================歡迎進(jìn)入統(tǒng)計(jì)火車(chē)車(chē)次界面====================\n"); printf("\n-|--|--|--|-請(qǐng)選擇統(tǒng)計(jì)方式-|--|--|--|-\n\n"); printf("1.按終點(diǎn)統(tǒng)計(jì)每日的車(chē)次數(shù)\n"); printf("2.按起點(diǎn)統(tǒng)計(jì)每日的車(chē)次數(shù)\n"); printf("\n請(qǐng)選擇:"); scanf("%d",&t); gets(l); switch(t) { case1: printf("請(qǐng)輸入終點(diǎn):"); gets(name1); break; case2: printf("請(qǐng)輸入起點(diǎn):"); gets(name2); break; default: WRONG(); break; } READ(); if(t==1) { k=0; for(i=0;i<n;i++) { if(str
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版企業(yè)信息工程系統(tǒng)性能評(píng)估委托合同3篇
- 2025版學(xué)校學(xué)生食堂餐具清洗消毒服務(wù)合同2篇
- 2025版工業(yè)產(chǎn)品設(shè)計(jì)勞務(wù)分包合同示范文本3篇
- 3簡(jiǎn)歷篩選技巧
- 2025版新型木工機(jī)械設(shè)備租賃服務(wù)合同范本4篇
- 全新神州2025年度車(chē)輛租賃合同6篇
- 互聯(lián)網(wǎng)平臺(tái)未來(lái)發(fā)展趨勢(shì)與挑戰(zhàn)考核試卷
- 2025版建筑施工安全環(huán)保綜合服務(wù)合同2篇
- 2025版嬰幼兒輔食委托加工生產(chǎn)及質(zhì)量控制合同3篇
- 2025版企業(yè)商標(biāo)注冊(cè)委托代理服務(wù)合同2篇
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測(cè)濟(jì)南期末試題和答案
- 中儲(chǔ)糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書(shū)
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 數(shù)字的秘密生活:最有趣的50個(gè)數(shù)學(xué)故事
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)一 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)關(guān)鍵要素分解
- 基于ADAMS的汽車(chē)懸架系統(tǒng)建模與優(yōu)化
- 當(dāng)前中國(guó)個(gè)人極端暴力犯罪個(gè)案研究
- 中國(guó)象棋比賽規(guī)則
評(píng)論
0/150
提交評(píng)論