版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include<iostream> /數(shù)據(jù)流輸入輸出#include<fstream>/文件輸入輸出#include<string>/字符串操作#include<iomanip>/參數(shù)化輸入輸出#include<time.h>/時(shí)間庫函數(shù)using namespace std;/命名空間class Bus_inforprivate: static int Bus_No;/靜態(tài)數(shù)據(jù)成員,統(tǒng)計(jì)當(dāng)前所有的Bus_infor對象的數(shù)目char start20;/起點(diǎn)站char end20;/終點(diǎn)站int Bus_order;/班次號(hào) int
2、 all_tickted;/額定載量int tickted;/已定票人數(shù)int Hour_start,Minute_start;/發(fā)車時(shí)間float GoHour;/行車時(shí)間public:Bus_infor();Bus_infor();Bus_infor *next;void input();/錄入函數(shù) void input(ifstream & is);/讀取函數(shù) void output();/輸出函數(shù)void output(ofstream & os);/寫入函數(shù)void Order_tickt(int n);/定票函數(shù)void Unorder_tickt(int n);/
3、退票函數(shù)void GetTime_start();/獲取發(fā)車時(shí)間函數(shù)bool GetTime();/判斷當(dāng)前班次狀況函數(shù)int Get_all_tickted() return all_tickted; /內(nèi)聯(lián)函數(shù),返回額定載量 int Get_tickted() return tickted; /返回已定票人數(shù)int Get_bus_order() return Bus_order; /返回班次號(hào)string Get_end()const;/返回終點(diǎn)站的字符串;int Bus_infor:Bus_No=1;Bus_infor:Bus_infor() Bus_No+; tickted=0;Bu
4、s_infor:Bus_infor() Bus_No-;void Bus_infor:input()cout<<"ttt按提示輸入:"<<endl;cout<<"輸入班次: "while(1)cin>>Bus_order;if (cin.fail()/判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n班次輸入錯(cuò)誤,請重新輸入:"cin.clear();cin.get();else break;cout<<"請輸入車的額定座位數(shù): "while(1)
5、cin>>all_tickted;if (cin.fail()/判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n座位數(shù)輸入錯(cuò)誤,請重新輸入:"cin.clear();cin.get();else break;GetTime_start();cout<<"請輸入行車時(shí)間:"while(1)cin>>GoHour;if (cin.fail()/判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n行車時(shí)間輸入錯(cuò)誤,請重新輸入:"cin.clear();cin.get();else brea
6、k;cout<<"請輸入起始站與終點(diǎn)站:" cin>>start;cin>>end;cout<<"是否清空售票(y/n)?"char a;cin>>a;if(a='y'|a='Y') tickted=0;void Bus_infor:input(ifstream & is) is>>Bus_order>>Hour_start>>Minute_start>>start>>end>>GoH
7、our>>all_tickted>>tickted;is.get(); void Bus_infor:output()cout<<" "<<Bus_order<<"t"if(Minute_start=0)/判斷發(fā)車時(shí)的分鐘時(shí)刻,若為分則在后面多顯示個(gè),以符合時(shí)間格式cout<<Hour_start<<":"<< Minute_start<<"0t"elsecout<<Hour_start<&
8、lt;":"<< Minute_start<<"t"cout<<start<<"t"<<end<< "t"<<GoHour<<"t "<<all_tickted<<"t "<<tickted; if(!GetTime()cout<<"t 此班已出發(fā)"<<endl;elsecout<<&quo
9、t;t 此班未出發(fā)"<<endl;void Bus_infor:output(ofstream & os) os<<setw(6)<<Bus_order/setw()設(shè)置輸出寬度<<setw(15)<<Hour_start<<setw(15)<<Minute_start<<setw(15)<<start<<setw(6)<<end<<setw(15)<<GoHour<<setw(15)<<all_t
10、ickted<<setw(15)<<tickted<<endl;void Bus_infor:GetTime_start()cout<<"請輸入始發(fā)時(shí)間(時(shí)分):"while(1)cin>>Hour_start>>Minute_start;if (cin.fail()/判斷輸入的數(shù)據(jù)類型是否有錯(cuò)cout << "n時(shí)間輸入錯(cuò)誤,請重新輸入:"cin.clear();cin.get();else if(Hour_start<0|Hour_start>24|Min
11、ute_start<0|Minute_start>60)cout<<"n時(shí)間格式出錯(cuò),請重新輸入:"/判斷時(shí)間格式是否出錯(cuò),小時(shí)不能小于大于,分鐘不能小于大于elsebreak;bool Bus_infor:GetTime()struct tm *local; time_t t; t=time(NULL); local=localtime(&t);/獲取當(dāng)前系統(tǒng)時(shí)間if(local->tm_hour<Hour_start|(local->tm_hour=Hour_start && local->tm_m
12、in<=Minute_start)return 1; /比較當(dāng)前時(shí)間與發(fā)車時(shí)間,獲得班次的當(dāng)前狀況,返回表示班次未出發(fā)elsereturn 0;/返回表示班次已出發(fā)void Bus_infor:Order_tickt(int n)tickted=tickted+n;void Bus_infor:Unorder_tickt(int n)tickted=tickted-n;string Bus_infor:Get_end()conststring s=end;return s;class Bus_linkpublic:Bus_link()head=new Bus_infor;head->
13、;next=NULL;key=0;/帶參數(shù)的構(gòu)造函數(shù)Bus_link()delete head;/析構(gòu)函數(shù)void input();/錄入車票信息void mend();/修改車票信息void del();/刪除車票信息int find(Bus_infor *p,int num,char *pn);/查找函數(shù) void found();/查詢車票信息void show();/顯示車票信息 void Order();/定購車票信息 void Unorder();/退還車票信息 void save();/保存車票信息 void begin();/初始化車票信息 void clear();/清除函數(shù)
14、void about();/關(guān)于車票信息 char mainmenu();/主菜單函數(shù) void setkey(int k) key=k; /設(shè)置系統(tǒng)修改標(biāo)志 int getkey() return key;/返回系統(tǒng)修改標(biāo)志private: Bus_infor *head; /鏈表指針 int key;/系統(tǒng)修改標(biāo)志int password;/管理員登陸標(biāo)志;void Bus_link:input()if(password=1)Bus_infor *p,*p2=NULL;p=head; int n=1; /int n;while(p->next)p=p->next;while(n
15、)p2=new Bus_infor;p2->input();p->next=p2;p2->next=NULL;p=p->next; Bus_link:setkey(1);cout<<"ttt按繼續(xù),按返回: "cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");elsecout<<"ntt對不起,游客不能錄入車票信息"<<endl;void Bus_link:show()cout<<"客車基本信息如下:"&l
16、t;<endl <<"班次發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間額定載量已定票人數(shù)當(dāng)前狀況"<<endl;Bus_infor *p;p=head;while(p->next)(p->next)->output();p=p->next;void Bus_link:found()Bus_infor *p;int num,n;char name20;docout<<"tt1:按班次查找,2:按終點(diǎn)站查找: "cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤
17、");while(n<1|n>2);if(n=1)cout<<"ttt輸入班次: "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if(n=2)cout<<"ttt輸入終點(diǎn)站: "cin>>name;if(!find(&p,num,name)cout<<"tt找不到你要查找的內(nèi)容!"<<endl;return;int Bus_link:find(Bus_infor *p1,int
18、num,char *pn)Bus_infor *p;p=head;int t=0;while(p->next)(*p1)=p;if( (p->next)->Get_bus_order()=num| (p->next)->Get_end()=pn )cout<<"客車基本信息如下:"<<endl <<"班次發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間額定載量已定票人數(shù)當(dāng)前狀況"<<endl; (p->next)->output(); t=1;p=p->next;retur
19、n t;void Bus_link:del()if(password=1)Bus_infor *p,*p2;int num;char name20;cout<<"ttt輸入班次號(hào): "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,name) )cout<<"tt找不到你要?jiǎng)h除的內(nèi)容!"<<endl;return;cout<<"nttt確定刪除(y/n)?"char a;cin>
20、;>a;if(a='y'|a='Y') p2=p->next;p->next=p2->next;delete p2;Bus_link:setkey(1);elsecout<<"ntt對不起,游客不能刪除車票信息"<<endl;void Bus_link:mend()if(password=1)Bus_infor *p;int num;char name20;cout<<"ttt輸入班次號(hào): "cin>>num;if(!cin)throw string(
21、"數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,name) )cout<<"tt找不到你要修改的內(nèi)容!"<<endl;return;(p->next)->input();Bus_link:setkey(1);elsecout<<"ntt對不起,游客不能修改車票信息"<<endl;void Bus_link:Order()if(password=1)Bus_infor *p;cout<<"nttt確定購票(y/n)?"char X;
22、cin>>X;if(X='y'|X='Y')int num;cout<<"nttt輸入班次號(hào): "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,"") )cout<<"ntt找不到你要定票的車輛的內(nèi)容!"<<endl;return;p=p->next;if(!(p->GetTime()/判斷要定票的車輛是否已經(jīng)出發(fā),若已經(jīng)出發(fā)則不允許定票
23、cout<<"ntt你要訂票的車輛已出發(fā)!"<<endl;return;cout<<"nttt輸入要定的票數(shù)"int n;cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if(p->Get_tickted()+n)<=p->Get_all_tickted()p->Order_tickt(n);else cout<<"ntt對不起,沒有足夠的票數(shù)。"<<endl;else if(X='n
24、'|X='N') cout<<"謝謝使用"<<endl;else cout<<"nttt輸入字符不確定"<<endl;Bus_link:setkey(1);elsecout<<"ntt對不起,訂購車票請?jiān)诠芾韱T處購買"<<endl;void Bus_link:Unorder()if(password=1)Bus_infor *p;cout<<"nttt確定退票(y/n)?"char X;cin>>
25、X;if(X='y'|X='Y')int num;cout<<"nttt輸入班次號(hào): "cin>>num;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if( !find(&p,num,"") )cout<<"ntt找不到你要退票的車輛的內(nèi)容!"<<endl;return;if(!(p->GetTime()/判斷要定票的車輛是否已經(jīng)出發(fā),若已經(jīng)出發(fā)則不允許定票cout<<"ntt你要退
26、票的車輛已出發(fā)!"<<endl;return;cout<<"nttt輸入要退的票數(shù)"int n;cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");p=p->next;if(p->Get_tickted()-n)>=0)p->Unorder_tickt(n);else cout<<"nttt對不起,數(shù)據(jù)出錯(cuò)!。"<<endl;else if(X='n'|X='N') cout<&l
27、t;"謝謝使用"<<endl;else cout<<"nttt輸入字符不確定"<<endl;Bus_link:setkey(1);elsecout<<"ntt對不起,退還車票請?jiān)诠芾韱T處退還"<<endl;void Bus_link:save()if(password=1)Bus_infor *p;p=head;ofstream os("bus.txt",ios:out);/文件以輸出方式打開if (Bus_link:getkey()=1)while(p-
28、>next)(p->next)->output(os);p=p->next;cout<<"ttt文件已保存! "<<endl;Bus_link:setkey(0);elsecout<<"ntt對不起,游客無法保存車票信息"<<endl;void Bus_link:about()cout<<endl<<"關(guān)于車票管理系統(tǒng)"<<endl<<""<<endl;cout<<&quo
29、t;使用說明:"<<endl<<"t1.請按照操作提示輸入正確的格式,以保證系統(tǒng)正常運(yùn)行;"<<endl<<"t2.當(dāng)使用管理員登陸時(shí),需輸入密碼,可進(jìn)行對系統(tǒng)的所有操作;"<<endl<<"t3.當(dāng)使用游客身份登陸時(shí),無需輸入密碼,但只能瀏覽和查詢車票信息;"<<endl<<"t4.車票信息用文本文檔格式,保存在本程序文件夾目錄下,可以直接打開查看."<<endl<<endl<&
30、lt;"系統(tǒng)說明:"<<endl<<"t本系統(tǒng)為課程設(shè)計(jì)作品,可以簡易的進(jìn)行車票管理,歡迎提出意見和建議"<<endl <<"t漳州師范學(xué)院級(jí)計(jì)算機(jī)科學(xué)與工程系非師四班t "<<endl<<endl;void Bus_link:begin()password=0;Bus_infor *p,*p2;p=head;clear();long t;ifstream is("bus.txt",ios:in);/文件以輸入方式打開if(!is)ofstre
31、am os("bus.txt",ios:out);/文件以輸出方式打開os.close();/關(guān)閉文件return ;int num=-1;while(1) num=-1;t=is.tellg();/記錄下當(dāng)前位置is>>num;is.seekg(t);/移動(dòng)到原來位置if(num<0) is.close();return;p2=new Bus_infor;p2->input(is);/輸入is對象內(nèi)容p->next=p2;p2->next=NULL;p=p->next;void Bus_link:clear()Bus_infor
32、*p,*p2;p=head->next;while( p )p2=p;p=p->next;delete p2;char Bus_link:mainmenu()struct tm *local; char s1128;time_t t;t=time(NULL);local=localtime(&t);strftime(s1,128,"%Y-%m-%d %H:%M ",local);/按照指定的格式,把時(shí)間保存在s1字符串里面string s;/定義字符串s,來判斷功能選擇是否輸入錯(cuò)誤cout<<"nn 歡迎使用車票管理系統(tǒng)"
33、<<endl<<endl;cout<<" "<<endl<<" "<<endl<<" 1. 錄入車票信息 2. 瀏覽車票信息 "<<endl<<" 3. 查詢車票信息 4. 刪除車票信息 "<<endl<<" 5. 修改車票信息 6. 定購車票信息 "<<endl<<" 7. 退還車票信息 8. 保存車票信息 "<&
34、lt;endl<<" 9. 關(guān)于車票系統(tǒng) 0. 退出系統(tǒng) "<<endl<<" "<<endl<<" "<<endl<<"tttt "<<s1<<endl<<endl;while(password=0)cout<<"tt請選擇用戶名(1.管理員;2.游客): "int n;cin>>n;if(!cin)throw string("數(shù)據(jù)輸入錯(cuò)誤");if(n=1)cout<<"ntt請輸入管理員密碼: "int m;cin>>m;if(m=123456)password=1;cout<<endl;break;elsecout<<"ntt密碼輸入不正確n"<<endl;elsepassword=2;/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 康復(fù)治療技術(shù)模擬考試題與答案
- 機(jī)械租賃發(fā)票合同范例
- 合伙加盟合同范例
- 2025年運(yùn)城貨運(yùn)資格證考試題答案
- 河北省邯鄲市八年級(jí)語文上冊 第五單元 第18課 蘇州園林教學(xué)實(shí)錄 新人教版
- 2025年海西駕校考試貨運(yùn)從業(yè)資格證考試
- 2025年河南貨運(yùn)從業(yè)資格證考試模擬考試題及答案解析
- 水產(chǎn)種苗供應(yīng)合同范例
- 個(gè)人出售小產(chǎn)權(quán)房合同范例
- 2023九年級(jí)數(shù)學(xué)上冊 第二十一章 一元二次方程21.2 解一元二次方程21.2.1 配方法第2課時(shí) 配方法教學(xué)實(shí)錄(新版)新人教版
- 中國飲食文化智慧樹知到期末考試答案2024年
- 《電力勘測設(shè)計(jì)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化實(shí)施規(guī)范》
- 第五單元《京腔昆韻》-欣賞 ☆姹紫嫣紅 課件- 2023-2024學(xué)年人音版初中音樂八年級(jí)下冊
- 國家糧食和物資儲(chǔ)備局招聘考試試題及答案
- 宿舍零食盒子項(xiàng)目策劃
- 糖尿病治療研究進(jìn)展
- 工業(yè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)體系(版本3.0)
- 山東省菏澤市10校2023-2024學(xué)年高二上學(xué)期期末聯(lián)考地理試題(含答案解析)
- 初一數(shù)學(xué)期中考試分析
- 松果體區(qū)腫瘤護(hù)理
- 招聘司機(jī)方案
評論
0/150
提交評論