日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++课程设计详解-12306的模拟实现

發布時間:2023/12/15 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++课程设计详解-12306的模拟实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

設計思路... 3

思路分析:.... 3

數據組織:.... 4

具體功能實現過程... 4

管理端具體功能實現:.... 4

用戶端具體功能實現:.... 5

調試截圖和調試過程中遇到的問題及改進:... 12

時間類.... 12

站臺類.... 14

列車站點類.... 16

列車類.... 17

車票類.... 19

用戶數據類.... 21

查詢類:.... 22

管理端.... 28

設計體會與小結... 29

?

?

?

?

設計思路

設計一個系統,首先要考慮實現什么功能,需要怎樣組織數據。所以先通過查詢12306,知道了12306最終要實現:

?

其次在分析實現方式,或者說自己以什么方式實現:

思路分析:

站臺中不能存車次的所有信息,那樣就會站臺包括車次,車次包括站臺,循環定義,空間無限大,編譯應該是不通過,利用車次與車站名是唯一的,所以站臺與列車信息種只存彼此的名字即可。而對于車票,因為一個月最多有31天,開一個31天的int儲存,這樣今天20號,那么輸入11號的話絕對是下個月的,因為不可能買今天之前的票,21號的話絕對是這個月的21號,因為最多買后30天的票。余票的話,因為車站發售的票,不一定是實際可乘坐的余票,所以在每個站臺存車次的余票為該站臺最多可發售的余票,而火車種存有每個站臺實際可賣的余票,乘車區間的火車實際余票最小值與該站臺最多發售余票取最小值即為該乘車區間可發售的余票。

在在個系統中一定會有時間,應寫一個時間類,時間類包括年月日時分,get/set函數,通過兩個時間類計算停靠時間,這里會發現,任何一輛高鐵夜間都是不行車的,所以不會出現跨天的可能,其實也不會出現超過一小時的,所以返回分鐘即可。因為要存日志文件,所以要判斷記錄中的出行時間是否小于當前時間,要是小于就代表已經出行,需要生成日志文件,而不繼續存在文件的數據中,這里用了流對象的儲存文件名參數可以為一個string變量,可以自定義。最后便于從文件中讀取數據,重載了>>與<<運算符。

詳細的站臺數據應該包括站臺名,站臺包括的車次及余票,也應該包括某輛車到該站點的時間信息等,將站臺分為兩個類,第一個是時間得站臺包括車次信息,另一個是組合于列車類的站臺信息包括時間參數等及其打印函數。

為了能夠生成記錄,以及查詢已購的票,設置了一個車票類或稱record類,包括車站、車次信息,出發、到達時間,購票人的身份證,同一張車票將人車于站臺全部聯系起來,為了使車票有自己唯一的編號,通過一個生成名字的函數,基于車次身份證出發時間生成,這樣生成的車票名確定且唯一。

用戶信息類,用戶需要驗證身份信息,所以必須需要一個類來儲存身份信息,應該包括登陸賬號手機號,身份證號,姓名,密碼,是否為黑名單,已買到的票可以通過向量保存,儲存車票名即可。也許打印身份信息函數,修改手機號函數,改密碼函數。

數據組織:

通過前面的實現思路,數據組織方式也很明確,數據類共計6個分別是①時間類、②站臺類、③列車站點類、④列車類、⑤車票類、⑥用戶數據類。所有數據類都重載類輸入輸出運算符。操作了類共計3個分別是①查詢類、②用戶端類、③管理端類。

具體功能實現過程

管理端具體功能實現:

增刪查改站點:

查,可以繼承用戶端,用戶的操作的管理員的都能做,除了買票退票,但是除此之外的所有有功能在管理端都可以進行于是用戶端繼承查詢類,而修改站點可以簡化為新建一個站點,刪除舊站點。

增刪查改車次:

查也可以繼承,增可以寫創建函數,刪寫刪除函數,在列車數據vector中遍歷查找要刪除的車次,進行實刪。

用戶端具體功能實現:

查車票:

查詢票需要三個參數,初始站,目的站,乘車日期,此時系統會打印那天所有經過兩個站點的車次信息,是否有票無票都會打印,實現方法,將起始站經過的所有車次于目的站所經過車次對比,相同的保留,可以通過set將車次名放入,車次名在我國意一一對應車次,當放不進set去之后,用vector保存,則vector中的?? 存儲車次為可到達車次。通過遍歷取最小值獲得余票,通過數據里的打印函數打印列車信息。

?????? ? bool Baseque :: cxyp(string a,string b,int riqi){auto w=station[natosta[a]].quecheci();auto v=station[natosta[b]].quecheci(); //vector<pair<string,int>> checiset<piao>tem;vector<piao>temp;temp.clear();for(auto po=w.begin();po!=w.end();po++) tem.insert(*po);for(auto po=v.begin();po!=v.end();po++){if(tem.insert(*po).second==0) temp.push_back(*po);}if(temp.size()==0){cout<<"No ticket"<<endl;return 0 ;}int? Train::cxyp(string? a,string? b,int c){bool flag=0;int mini=0x3f3f3f3f;for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a) flag=true;if(flag) mini=min(mini,po->getpiao(c));if(po->getsta()==b) break;}return mini;}

車站車次查詢:

應該有三個參數出發時間段,到達時間段,車站。此時系統會打印,在出發時段或到達時段通過該站點的車次,通過基類的get函數,獲得經過該站點的車次名稱,在操作類中找到對應的車次信息,判斷他出發時間和到達時間,符合要求打印車次信息。

void Baseque ::czcc(string a,int b,int d){vector<piao>w=station[natosta[a]].quecheci();for(auto po=w.begin();po!=w.end();po++){vector<Zt> q= train[checitotrain[po->name]].getzt();for(auto pi=q.begin();pi!=q.end();pi++){if(a==pi->getsta()){if(pi->getarr()==b||b==0||pi->getlea()==d||d==0){cout<<po->name<<endl;if(pi!=q.begin()){q.begin()->printl();if(pi==q.end()-1){(q.end()-1)->printa();//cout<<2<<endl;cout<<endl;}else{pi->print();//?? cout<<endl;(q.end()-1)->printa();//? cout<<3<<endl;}cout<<endl;}else{q.begin()->printl();(q.end()-1)->printa();cout<<endl;}cout<<endl;}}}}}

車次查詢:

應該有一個參數,車次名,車次每天的都是重復的一樣的,所以只輸入車次名即可,輸入車次名得到對應的車次的數據進而借助的列車的print函數打印列車的詳細信息。??????

void Baseque ::cxcx(string a)? //車次查詢{if(checitotrain.find(a)==checitotrain.end()){cout<<"NO Train"<<endl;return ;} //查不到不打印vector<Zt> w=train[checitotrain[a]].getzt();for(auto po=w.begin();po!=w.end();po++){cout<<station[natosta[po->getsta()]].getname()<<' ';if(po!=w.begin()&&po!=w.end()-1){po->print();//cout<< po->getleave().first<<' '<<po->getleave().first;}else if(po==w.begin()){cout<< po->getleave().first<<' '<<po->getleave().first;}else?? cout<<po->getarrive().first<<' '<< po->getarrive().second<<' ';}cout<<endl;}

購票:

購票需要傳四個參數,但是在查詢中已經輸入了三個參數,所以只用再選擇車次即可購票。購票為對某個乘車區間內的要出發那天車票進行自減操作,除此之外還要對起始站站臺內這個車次的那一天的余票也要減1;實現方式調用站臺類的函數,跟火車類的函數,通過遍歷對火車的區間操作。此外要注意,是否為黑名單,是否為買的票超過了5張。

bool Client::buytic(string a,string b,int c) //先查后買,查不到不能買。{if(!(cxyp(a,b,c))){cout<<"無票"<<endl;return 0;}if(user[now].getboupiao()>5||user[now].getban()){cout<<"購票限制"<<endl;return 0;}else{string id;cin>>id;pair<int,int>www=train[checitotrain[id]].buytic(a,b,c);station[natosta[a]].buytic(a,c);Time no1,no2;no1.loadtime();no2.loadtime();no2.seth(www.first,www.second);if(no2.getday()<c) no2.setmonth(no2.getmonth()+1);Tick tem(no1,no2,a,b,now2,id);tick.push_back(tem);hashtotick.insert(make_pair(tem.getname(),tick.size()-1));user[now].buytic(tem.getname());}return 1;}

退票:

退票需要先查詢自己買到了什么票,然后在進行選擇要推動票,實現方式與買票實現方式相同(某個區間的票+1) ,火車開了之后,不能退票,但是可以改簽。

void Client::reback() //先查后買,查不到不能買。{printmp();string id=now2;int n;cout<<"退哪一張票"<<endl;cin>>n;n=n-1;auto ww=user[now].gettic();string a=tick[ hashtotick[ww[n]]].getfrom();string b=tick[ hashtotick[ww[n]]].getto();int c=tick[ hashtotick[ww[n]]].getlea().getday();train[checitotrain[id]].reback(a,b,c);string e=tick[ hashtotick[ww[n]]].getna();station[natosta[a]].rebac(e,c);// tick.erase(hashtotick[ww[n]]+tick.begin());}?????????????????????????

改簽:

相當于退票+重新購票,不過改簽的關鍵為能否找到合適的票進行改簽,如果沒找到要改簽的的票,這樣的改簽無意義,所以相當于先購票后買票,購票失敗等于改簽失敗,所以購票的返回值為bool類型,購票成功返回1否則返回0。

void Client::replacetic(){string a,b,id;int c;cin>>a>>b>>c;if(? buytic(a,b,c)){cin>>a>>b>>c;reback();}}

換乘:

兩個城市不能接聯通,需要借助最短路,需要找出中轉城市,但是鑒于京滬線的所有站點都有車次經過,且換乘實現有難度,不考慮這個功能。

查詢修改個人信息:

通過寫一個用戶信息類,一方面用于信息查詢,另一方面用于登陸。這樣再通過用戶信息類的打印函數,即可完成身份信息的查詢。

???????????????????? void Client::printmp(){auto ww=user[now].gettic();if(ww.size()==0)return ;for(auto po=ww.begin();po!=ww.end();po++){cout<<po-ww.begin()+1<<endl;tick[ hashtotick[*po]].print();}}

列車、站臺數據文件讀寫:

void Baseque::load(){int x,y,n;ifstream in1("station.txt",ios::in);in1>>n;while(??? n--){Station tem1;in1>>tem1;if(tem1.getname()=="$$") continue;station.push_back(tem1);natosta.insert(make_pair(tem1.getname(),station.size()-1));}in1.close();ifstream in2("train.txt",ios::in);in2>>n;while(n--?? ){Train tem2;in2>>tem2;if(tem2.gettr()=="$$") continue;train.push_back(tem2);checitotrain.insert(make_pair(tem2.gettr(),train.size()-1));}in2.close();}void Baseque::save(){ofstream out1("station.txt",ios::out);out1<<station.size()<<endl;for(auto po=station.begin();po!=station.end();po++)out1<<*po<<endl;out1.close();ofstream out2("train.txt",ios::out);out2<<train.size()<<endl;for(auto po=train.begin();po!=train.end();po++)out2<<*po<<endl;out2.close();}

車票(記錄)和用戶數據讀寫及日志文件的形成:

void Client::load2(){ifstream in("user.txt",ios::in);int n;if(!in) return ;in>>n;while(n--){User tem;in>>tem;if(tem.getphone()=="&&&")continue;user.push_back(tem);idtouse.insert(make_pair(tem.getname(),user.size()-1));}in.close();ifstream in2("tick.txt",ios::in);if(!in2) return ;in2>>n;while(n--){Tick tem;in2>>tem;if(tem.getname()=="$$$") continue;tick.push_back(tem);hashtotick.insert(make_pair(tem.getname(),tick.size()-1));}in.close();}void Client::save2(){ofstream out("user.txt",ios::out);out<<user.size()<<endl;for(auto po=user.begin();po!=user.end();po++) out<<*po<<endl;out.close();ofstream out2("tick.txt",ios::out);stringstream sss;Time now;now.loadtime();string temp;sss<<now.getyear()<<"年"<<now.getmonth()<<"月"<<now.getday()<<"日";sss>>temp;ofstream out3(temp,ios::out);?? //做過的車,就存到日志文件不在讀取。int sum=0;for(auto po=tick.begin();po!=tick.end();po++){if(now>po->getlea()){out3<<*po<<endl;}else sum++;}out3.close();out2<<sum<<endl;for(auto po=tick.begin();po!=tick.end();po++){if(now>po->getlea()) continue;out2<<*po<<endl;}out2.close();}

設計體會與小結

課程設計中遇到了一個文件讀寫的問題,讓我很棘手,從來不會覺得自己是文件對不上數據讀取出現問題,開始尋找問題,一開始以為是文件流寫錯了,開始檢查檢查了好幾遍,最后該手動輸入但是還是有問題,我覺的可能是vector的內存空間不夠了,輸入指針失效了,但是在CSDN只是看到了這個問題,并沒有找到合適的解決方法,系統就到了瓶頸期,只要這個文件讀不進去,整個系統都完蛋了,開始發荒,再檢查一遍還是不對,這個時候還是沒察覺到自己文件有問題,回過頭去重新測重載輸入流,測試發現正確,于是我覺得我的文件出現了問題,去檢查數據文件,數據文件看上去沒問題,發現還是不能正常讀入,于是又回過頭用之前數據類的重載的輸入輸出流測數據,發現有一組數據兩個數之間少了空格,于是輸入int的位置放上了string,才導致錯誤,經過修改后程序終于可以順利運行,但是就因為一個數據文件,卻耽誤了整整一天,這對于這段段代碼來說,一天不是什么問題,但是如果真的到了就業,還是犯這種粗枝大葉的毛病的話,那可能不是耽誤自己,而是耽誤一個團隊,從一點小事就反映出,敲代碼是一個謹慎的工作,可能一字之差,帶了結果影響巨大,在這次課程設計中,我通過調代碼的痛苦過程銘記謹小慎微的心態,而不是抱著一種我覺得這樣沒錯,這樣跟我想的一樣,而不真的去檢驗,也沒有考慮的那么全面,這是我在課程設計中最大的教訓,也是最大收獲。

課程設計中又回顧了很久之前用過的字符串流,很長時間沒有使用確實略顯生疏,但是在摸索下還是上手很快,其他也使用很多的重載運算符,尤其是對于輸入輸出流的重載,這對于文件讀寫來說甚是方便。最重要的是學習了一種文件讀寫的方式,ifstream于oftream的open參數是一個字符串,這是之前沒有發現的事情,只是知道第一個參數可以傳“參數”,但是卻忽略了雙引號就是一個string,在查閱記錄無果后,詢問老師,老師給出了方法,在看了源碼后發現這里就是一個string,通過傳一個string 參數就可以動態的打開一個文件,也可以動態生成任意文件名儲存到任意路徑。

?????? 通過自己寫代碼發現,思路設計的時候總是眼高手低,覺得這個可以這樣實現,那個可以那樣實現,但是等到真的實現的時候卻發現他并不是那么輕易的就會被實現,所以設想哥實現了具體操作的時候是有很大的出入的,所以應該在設想的時候就要具體的去設計一些功能,而不是淺顯的覺得這個東西用什么可以去實現,比如買票,而買票的,厄設計的時候當時想的整個區間都減一,但是卻沒有想到這個票的站臺票和車次車次上的余票是分開的,而且操作的時候也要分兩步進行操作。

代碼中的不足之處是沒有寫出換乘,一是換乘的實現過程比較復雜,二是數據文件不太支持,所以沒有寫出來是比較遺憾的,沒有把算法和程序結合,這點也是不足之處,需要改進!

?

#include<bits/stdc++.h.> using namespace std; class Time {int year,month,day;int hour,mini; public:Time(){loadtime();}Time(int y,int m,int d):year(y),month(m),day(d){}; //用于車票生成。void loadtime(); //定義時間獲取函數,用于獲取買票時間,直接從系統讀入;friend istream & operator>>(istream &in,Time & a);friend stringstream & operator>>(stringstream &in,Time & a);friend ostream & operator<<(ostream &out,Time & a); //排序函數,用于車票信息的儲存;bool operator <(const Time &d)const; //重載小于號,用于數據時間排序,不需要修改數據constint judge() const; //判斷是否為閏年;int judge(int year) const ;//寫一個有參的判斷函數;Time operator +(int a) ; //重載加號,用于放票;bool operator ==(Time & a) ; //判斷是否為一天;friend int operator -(Time a,Time b); //計算兩段時間間隔;void print()const;//打印時間;bool operator>(Time&a);int getday(){return day;}int getmonth(){return month;}int getyear(){return year;}int gethour(){return hour;}void set();void setmonth(int a){month=a;}pair<int,int> tksj(Time&b); //停靠時間void seth(int a,int b){hour=a;mini=b;} };bool Time ::operator>(Time&a){return (year!=a.year)?year>a.year:month!=a.month?month>a.month:day!=a.day?day>a.day:0;} bool Time::operator ==(Time & a) {return (year!=a.year)?0:month!=a.month?0:day!=a.day?0:hour!=a.hour?0:mini==a.mini; } Time Time::operator +(int a) {int m[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};day+=a;int flag=1;while(day>m[month]){if(month==2){if(day>m[month]+judge()){day-=m[month]+judge();month++;}}else {day=day-m[month];month++;}if(month>12){month-=12;year++;}} } int operator -(Time a,Time b) {int monthdays[2][12] = { { 31,28,31,30,31,30,31,31,30,31,30,31 },{ 31,29,31,30,31,30,31,31,30,31,30,31 } };int yeardays[2] = { 365,366 };int sumdays=0;if (a.year == b.year&& a.month == b.month){sumdays = b.day - a.day;}elseif (a.year == b.year){sumdays += monthdays[a.judge(a.year)][a.month-1] - a.day;for (int i = a.month; i < b.month-1; i++)sumdays += monthdays[a.judge(a.year)][i];sumdays += b.day;}else{sumdays += monthdays[a.judge(a.year)][a.month-1] - a.day;for (int i = a.month; i < 12; i++)sumdays += monthdays[a.judge(a.year)][i];for (int i = a.year + 1; i < b.year; i++)sumdays += yeardays[a.judge(i)];for (int i = 0; i < b.month - 1; i++)sumdays += monthdays[a.judge(b.year)][i];sumdays += b.day;}return sumdays; } int Time::judge() const{if(year % 4 == 0 && year %100 != 0 ||year % 400 == 0) return 1;else return 0; } int Time::judge(int year) const{if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)return 1;else return 0; } void Time::loadtime(){time_t rawtime;struct tm *ptminfo;time(&rawtime);ptminfo = localtime(&rawtime);year=ptminfo->tm_year + 1900;month=ptminfo->tm_mon + 1;day=ptminfo->tm_mday;hour=ptminfo->tm_hour;mini=ptminfo->tm_min; } istream & operator>>(istream &in,Time & a){in>>a.year>>a.month>>a.day>>a.hour>>a.mini;return in; } ostream & operator<<(ostream &out,Time & a) {out<<a.year<<" "<<a.month<<" "<<a.day<<" "<<a.hour<<" "<<a.mini<<' ';return out; } stringstream & operator>>(stringstream &in,Time & a){in>>a.year>>a.month>>a.day>>a.hour>>a.mini;return in; } bool Time:: operator <(const Time &d)const{return year!=d.year?year<d.year:month!=d.month?month<d.month:day!=d.day?hour<d.hour:mini<d.mini; } void Time:: print()const {cout<<year<<"年"<<month<<"月"<<day<<"日";printf("%02d:%02d\n",hour,mini); } void Time::set()//容錯處理 {int monthdays[2][12] = { { 31,28,31,30,31,30,31,31,30,31,30,31 },{ 31,29,31,30,31,30,31,31,30,31,30,31 } };cout<<"請依次輸入"<<" 年"<<" 月"<<" 日"<<" 小時"<<" 分鐘"<<endl;cin>>year;while(year<2019){cout<<"不是正確時間,請重新輸入年"<<endl;cin>>year;}cin >>month;while(month>12||month<1){cout<<"不是正確時間,請重新輸入月"<<endl;cin>>month;}cin>>day;while(monthdays[judge()][month-1]<day||day<1){cout<<"不是正確時間,請重新輸入日"<<endl;cin>>day;}cin>>hour;while(hour>24||hour<0){cout<<"不是正確時間,請重新輸入小時"<<endl;cin>>hour;}cin>>mini;while(mini>60||mini<0){cout<<"不是正確時間,請重新輸入分鐘"<<endl;cin>>mini;}cout<<"時間已更改為"<<endl;print(); } pair<int,int> Time::tksj(Time &b)//高鐵晚上不開車,不考慮超過一天; {pair<int,int> w;if(mini<b.mini){w.second=mini-b.mini+60;w.first=hour-b.hour-1;return w;}w.second=mini-b.mini;w.first=hour-b.hour;return w; } /* int main() {Time demo;demo.loadtime();cout<<demo<<endl;demo.print(); }*/ /*int main() {Time demo1;cin>>demo1;Time demo2(demo1);demo1.print(); }*/ /* int main() {Time demo;cout<<demo.judge()<<endl;cout<<demo.judge(2008)<<endl; }*/ /* int main() {set<Time>demo;Time tx;int n=3;while(n--){tx.set();demo.insert(tx);}set<Time>::iterator po;for(po=demo.begin();po!=demo.end();po++) (*po).print(); }*/ /* int main() {Time demo1,demo2;demo1.loadtime();cin>>demo2;cout<<demo2.tksj(demo1).first<<' '<<demo2.tksj(demo1).second; }*/ struct piao {string name;int sum[31];bool operator <(const piao& a)const{return name<a.name;} }; class Station {string name; //車站名唯一int crotrain;//經過車次數量vector<piao> checi; //第一個string是車次,第二個是余票//這個車站最多買多少張票,不一定跟總票數相同 public:Station(string na,int n);Station():name(""),crotrain(0){checi.clear();}void print(int riqi);void insert(string a);//為站臺增加車次vector<piao>& quecheci();friend istream& operator>>(istream &in,Station & a);friend ostream& operator<<(ostream &out,Station & a);bool del(string a);bool set(string a,int b,int c);// 如果需要調度余票,可以修改void setname(string a){this->name=a;}string getname(){return name;}void buytic(string a,int b);void rebac(string a,int b); }; void Station::rebac(string a,int b) {for(auto po=checi.begin();po!=checi.end();po++)if(po->name==a) po->sum[b]++; } void Station::buytic(string a,int b) {for(auto po=checi.begin();po!=checi.end();po++)if(po->name==a) po->sum[b]--; } Station::Station(string na,int n) {name=na;crotrain=n;for(int i=0;i<n;i++){cout<<"輸入車次 余票:\n";piao w;cin>>w.name;for(int i=0;i<31;i++) cin>>w.sum[i];checi.push_back(w);} } istream& operator>>(istream& in,Station & w) {in>>w.name>>w.crotrain;//cout<<w.crotrain<<endl;for(int i=0;i<w.crotrain;i++){piao qq;in>>qq.name;for(int i=0;i<31;i++) in>>qq.sum[i];w.checi.push_back(qq);}return in; } ostream& operator<<(ostream& out,Station & w) {out<<w.name<<" "<<w.crotrain<<endl;for(auto po=w.checi.begin();po!=w.checi.end();po++){out<<po->name<<endl;for(int i=0;i<31;i++) out<<po->sum[i]<<' ';out<<endl;}return out; } void Station::print(int b) {cout<<name<<":"<<endl;for(auto po=checi.begin();po!=checi.end();po++){cout<<"車次:"<<po->name<<" 余票:"<<po->sum[b]<<endl;} } vector<piao>& Station ::quecheci() {return checi; } void Station::insert(string a) {piao w;w.name=a;for(int i=0;i<31;i++) cin>>w.sum[i];checi.push_back(w); } bool Station::del(string a) {for(auto po=checi.begin();po!=checi.end();po++){if(po->name==a) {checi.erase(po);break;}}if(checi.size()!=crotrain){crotrain=checi.size();return 1;}else return 0; }bool Station::set(string a,int b,int c){for(auto po=checi.begin();po!=checi.end();po++){if(po->name==a) {po->sum[c]=b;return 1;}else return 0;}} /* int main() {int n;string a;cin>>n>>a;Station demo(a,n) ;demo.print(); } */ /* int main() {Station demo;cin>>demo;cout<<demo; }*/ /* int main() {Station demo;int a;string b;cin>>b>>a;demo.insert(b,a);cin>>b>>a;demo.insert(b,a);vector<pair<string,int>>w=demo.quecheci();for(auto po=w.begin();po!=w.end();po++)cout<<po->first<<' '<<po->second<<endl; }*/ /* int main() {Station demo;string a;cin>>a;demo.setname(a);int b;cin>>a>>b;demo.insert(a,b);cin>>a>>b;demo.insert(a,b);demo.print();cin>>a;cout<<demo.del(a)<<endl;cin>>a;cout<<demo.del(a);cin>>a>>b;cout<<demo.set(a,b)<<endl;cin>>a>>b;cout<<demo.set(a,b)<<endl;demo.print(); }*/ //修改后從新測試,get/set比較比較簡單,一般不會寫錯。 /* int main() {Station demo;string b;cin>>b;demo.insert(b);cin>>b;demo.insert(b);vector<piao>w=demo.quecheci();for(auto po=w.begin();po!=w.end();po++){cout<<po->name<<' ';for(int i=0;i<31;i++) cout<<po->sum[i]<<' ';cout<<endl;}}*/ class Zt //中規中矩的全家桶數據類 {pair<int,int> arrive; //在某站的出發到達時家間;pair<int,int> leave;string station; //作為數據類時指向vector站臺;int piao[31];// 實際上存在多少票,今天五號,五號前的是下個月,五號后是這個月,不能買今天前的票。 public:Zt(string a,int c,int d,int e,int f):station(a){setarrive(c,d);setleave(e,f);fill(piao,piao+31,100);}Zt(){fill(piao,piao+31,100);}pair<int,int> &getarrive(){return arrive;}pair<int,int> &getleave(){return leave;}int getarr(); //出發時段到達只是時段int getlea();string getsta()const{return station;}void setarrive(int a,int b){arrive.first=a;arrive.second=b;} //用于修改出站到站時間;void setleave(int a,int b){leave.first=a;leave.second=b;}void setsta(string a){station=a;}void printtk();void print();void printa();void printl();int getpiao(int i){return piao[i];}void setpiao(int a,int b){piao[b]=a;}friend istream&operator>>(istream &in,Zt& a);friend ostream&operator<<(ostream &out,Zt& a); }; void Zt:: print() {cout<<station<<endl;printf("%02d:%02d ",arrive.first,arrive.second);//cout<<arrive.first<<arrive.second<<endl;printf("%02d:%02d\n",leave.first,leave.second);// cout<<leave.first<<leave.second<<endl; } void Zt:: printl() {cout<<station<<endl;printf("%02d:%02d\n",leave.first,leave.second); } void Zt:: printa() {cout<<station<<endl;printf("%02d:%02d ",arrive.first,arrive.second); } int Zt::getarr() {if(arrive.first>=0||arrive.first<6) return 1;else if(arrive.first>=6||arrive.first<12) return 2;else if(arrive.first>=12||arrive.first<18) return 3;else return 4; } int Zt::getlea() {if(leave.first>=0||leave.first<6) return 1;else if(leave.first>=6||leave.first<12) return 2;else if(leave.first>=12||leave.first<18) return 3;else return 4; } void Zt::printtk() {cout<<leave.second-arrive.second<<"分鐘 "<<endl;//沒有超過一個小時的; } istream&operator>>(istream &in,Zt& a) {in>>a.station;// cout<<a.station;in>>a.arrive.first;// cout<<a.station;in>>a.arrive.second; // cout<<a.station;in>>a.leave.first;// cout<<a.station;in>>a.leave.second;//cout<<a.station;for(int i=0;i<31;i++) in>>a.piao[i];return in; } ostream&operator<<(ostream &out,Zt &a) {out<<a.station<<' '<<a.arrive.first<<' '<<a.arrive.second<<' '<<a.leave.first<<' '<<a.leave.second<<' ';for(int i=0;i<31;i++) out<<a.piao[i]<<' ';out<<endl;return out; } /* int main() {string a;int b,c,d,e;Zt demo(a,b,c,d,e);cout<<demo.getpiao(15)<<endl; }*/ /* int main() {Zt demo1;vector<Zt>demo;while(cin>>demo1) demo.push_back(demo1);cout<<demo1; }*/ /* int main() {short n;cin>>n;Zt demo(n);demo.print();demo.printtk();cout<<demo.getlea()<<endl;cout<<demo.getarr()<<endl;cout<<demo.getsta()<<endl; } */ /* int main() {Zt demo;demo.setarrive();demo.setleave();cout<<demo.getarrive()<<endl;cout<<demo.getleave()<<endl; } */ /* int main() {Zt demo;int n;cin>>n;demo.setpiao(n);cout<< demo.getpiao(); }*/ class Train {string train; //車次vector<Zt> station;vector<string>people;//誰買了票指向peo下標,居題買那張票,再等用戶的數據,或者存身份證。//雙重map,不如直接stringmap<string,int> ys;struct node{int val;int len;int lazy;int l,r;}tree[31][300005]; public:Train():train(""){people.clear();station.clear();}Train(string tr):train (tr){people.clear();station.clear();}pair<int,int> buytic(string a,string b,int riqi);void reback(string a,string b,int riqi);void insert(string a,int d,int f,int g,int h,string w);bool del(string a);void cx(string a); //查到就打印,查不到就拉倒void setarrive(string a);//修改某個站的到站時間出發時間void setleave(string a);void setsta(string a);int cxyp(string a, string b,int c);vector<string>&getpeople(){return people;}// void printf();無法獲取站臺信息,只能傳引用了vector<Zt>& getzt(){return station;}friend istream&operator>>(istream& in,Train &a);friend ostream&operator<<(ostream& out,Train &a);void settr(string a){train=a;}string gettr(){return train;}//void built_tree( int node, int left, int right,int day );// void pushdown(int root,int day) ;//向下傳遞lazy標記// int query(int root,int l,int r,int day); //計算區間和// void update(int root,int l,int r,int addval,int day); //區間更新 }; /*void Train:: built_tree(int root,int l,int r,int day) //建樹 {int mid;tree[day][root].lazy=0;tree[day][root].l=l;tree[day][root].r=r;tree[day][root].len=r-l+1;if (l==r) tree[day][root].val=station[l].getpiao(day);else{mid=(l+r)/2;built_tree(root*2,l,mid,day);built_tree(root*2+1,mid+1,r,day);tree[day][root].val=min(tree[day][root*2].val,tree[day][root*2+1].val);} }*/ /*void Train:: pushdown(int root,int day) //向下傳遞lazy標記 {if (tree[day][root].lazy){tree[day][root*2].lazy+=tree[day][root].lazy;tree[day][root*2+1].lazy+=tree[day][root].lazy;tree[day][root*2].val+=tree[day][root].lazy;tree[day][root*2+1].val+=tree[day][root].lazy;tree[day][root].lazy=0;} } int Train:: query(int root,int l,int r,int day) //計算區間和 {int mid;if (tree[day][root].l>=l&&tree[day][root].r<=r)return tree[day][root].val;if (tree[day][root].l>r||tree[day][root].r<l)return 0x7f7f7f7f;if (tree[day][root].lazy) pushdown(root,day);return min(query(root*2,l,r,day),query(root*2+1,l,r,day)); } void Train:: update(int root,int l,int r,int addval,int day) //區間更新 {int mid;if (tree[day][root].l>=l&&tree[day][root].r<=r){tree[day][root].lazy+=addval;tree[day][root].val+=addval;return;}if (tree[day][root].l>r||tree[day][root].r<l)return;if (tree[day][root].lazy) pushdown(root,day);update(root*2,l,r,addval,day);update(root*2+1,l,r,addval,day);tree[day][root].val=min(tree[day][root*2].val,tree[day][root*2+1].val); }*/ pair<int,int> Train::buytic(string a,string b,int c) //站臺的票和列車票是分步的 ,這是買票操作的一部分。 {pair<int,int> www;// update(1,ys[a],ys[b],-1,c);www=station[ys[a]].getleave();return www; } void Train::reback(string a,string b,int riqi) {//update(1,ys[a],ys[b],1,riqi); } void Train::insert(string a,int d,int f,int g,int h,string w) {Zt tem(a,d,f,g,h);if(w=="END"||w=="end"||w=="End"){station.push_back(tem);ys.insert(make_pair(a,station.size()-1));}else {station.insert(station.begin()+ys[w],tem);for(auto po=station.begin()+ys[w]-1;po!=station.end();po++){ys.insert(make_pair(po->getsta(),po-station.begin()));}} // for(int i=0;i<=31;i++)built_tree(0,0,station.size()-1,i); } int Train::cxyp(string a,string b,int c) {// return query(1,ys[a],ys[b],c); } /* void Train::print() {for(auto po=station.begin();po!=station.end();po++){cout<<} }*/ bool Train::del(string a) {bool flag=0;for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a){station.erase(po);flag=1;break;}}return flag; } void Train::cx(string a) {for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a){po->print();po->printtk();break;}} } void Train::setarrive(string a) {for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a){int a,b;cin>>a>>b;po->setarrive(a,b);break;}} } void Train:: setleave(string a) {for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a){int a,b;cin>>a>>b;po->setleave(a,b);break;}} } void Train::setsta(string a) {for(auto po=station.begin();po!=station.end();po++){if(po->getsta()==a){po->setsta(a);break;}} } istream&operator>>(istream& in,Train &a) {//vector<Zt> ww;a.ys.clear();int m,n;Zt demo;in>>a.train>>n>>m;//=0;while(n--){in>>demo;a.station.push_back(demo);a.ys.insert(make_pair(demo.getsta(),a.station.size()-1));// cout<<ww.station.size()<<endl;}// a.station.swap(ww);while(m--){string w;in>>w;a. people .push_back(w);} // for(int i=0;i<=31;i++)a.built_tree(0,0,a.station.size()-1,i);return in; } ostream&operator<<(ostream& out,Train &a) {out<<a.train<<' '<<a.station.size()<<' '<<a.people.size()<<endl;for(auto po=a.station.begin();po!=a.station.end();po++) out<<*po<<' ';for(auto po=a.people.begin();po!=a.people.end();po++) out<<*po<<' ';out<<endl;return out; } /* int main() {Train demo;cin>>demo;cout<<demo; }*/ /* int main() {Train demo;short a,b;int c;cin>>a>>c;demo.insert(a,c);cin>>b>>c;demo.insert(b,c);cout<<demo.cxyp(a,b)<<endl;demo.buytic(a,b);cout<<demo.cxyp(a,b)<<endl;demo.reback(a,b);cout<<demo.cxyp(a,b)<<endl; } */ /* int main() {Train demo;cin>>demo;short int a;cin>>a;demo.cx(a);demo.del(a);demo.cx(a);cin>>a;demo.setarrive(a);demo.cx(a);demo.setleave(a);demo.cx(a);demo.setsta(a);demo.cx(a); }*/ /* int main() {Train demo;cin>>demo;cout<<demo.gettr()<<endl;string tem;cin>>tem;demo.settr(tem);cout<<demo.gettr()<<endl; }*/int main() {Train demo;cin>>demo;string a,b;int c;int d,e,f,g;cin>>a>>d>>e>>f>>g>>b;demo.insert(a,d,e,f,g,b);cin>>a>>b>>c;cout<<demo.cxyp(a,b,c)<<endl;cin>>a>>b>>c;cout<<demo.cxyp(a,b,c)<<endl;demo.buytic(a,b,c);cout<<demo.cxyp(a,b,c)<<endl;demo.reback(a,b,c);cout<<demo.cxyp(a,b,c)<<endl; } class Tick //即使車票,又是記錄 {Time buy;Time leave; //出發時間,用于確定存日志文件string from;string to;string id;string name; public://只有get函數Tick():from(" "),to(" "),id(" "){}Tick(Time b,Time l,string f,string t,string i,string w):buy(b),leave(l),from(f),to(t),id(i),name(w){}Time&getbuy(){return buy;}Time&getlea(){return leave;}string getfrom(){return from;}string getto(){return to;}string getid(){return id;}string getname();//本來想hash,但是有點復雜void print();string getna(){return name;}bool operator ==(Tick &a);friend istream& operator>>(istream& in,Tick &a );friend ostream& operator<<(ostream &out,Tick &a ); }; string Tick::getname() {string w;stringstream tem;w.clear();tem.clear();tem<<leave.getday();tem<<leave.getmonth();tem<<leave.getyear();tem>>w;w=w+id+from+to;return w; } bool Tick::operator ==(Tick &a) {return a.buy==buy?(a.leave==leave?(from==a.from?(to==a.to?id==a.id:0):0):0):0; } istream& operator>>(istream &in,Tick &a ) {in>>a.buy>>a.leave>>a.from>>a.to>>a.id>>a.name;return in; } ostream& operator<<(ostream &out,Tick &a ) {out<<a.buy<<' '<<a.leave<<' '<<a.from<<' '<<a.to<<' '<<a.id<<' '<<a.name<<endl;return out; } void Tick::print() {cout<<leave<<endl;cout<<from<<"----->"<<to<<endl;cout<<id<<endl; }/* int main() {Tick demo;cin>>demo;cout<<demo.getname()<<endl; }*/ /* int main() {Tick demo;cin>>demo;cout<<demo; } */ /* int main() {Time demo1,demo2;short a,b;string id;cin>>demo1>>demo2>>a>>b>>id;Tick demo(demo1,demo2,a,b,id);cout<<demo.getbuy()<<endl;cout<<demo.getlea()<<endl;cout<<demo.getfrom()<<endl;cout<<demo.getto()<<endl;cout<<demo.getid()<<endl; }*/ /* int main() {string a,b,c;cin>>a>>b>>c;Time q, e;cin>>q>>e;Tick demo(q,e,a,b,c);cout<<demo;demo.print(); }*/ /* int main() {Tick demo;cin>>demo;demo.print(); }*/ class User//用戶信息 {string name;string id; //不能改vector<string > tic;string phone;string key;bool ban;//黑名單 public:User():name(""),id(""),phone(""){tic.clear();}User(string a,string b,string c):name(a),id(b),phone(c){tic.clear();}void buytic(string a){ tic.push_back(a);} //只考慮買就行了,判斷能不能買在下面的類.void setph(string p){ phone=p;}vector<string >& gettic(){return tic;}string getname(){return name;}string getphone(){return phone;}string getid(){return id;}string getkey(){return key;}void del(string a); //這是系統操作出行后,就看不到訂單了。int getboupiao(){return tic.size();}bool getban(){return ban;}friend istream&operator>>(istream&in,User&a);friend ostream&operator<<(ostream&out,User&a); }; void User::del(string a) {for(auto po=tic.begin();po!=tic.end();po++){if(*po==a) tic.erase(po);} } istream&operator>>(istream&in,User&a) {int w;in>>a.name>>a.id>>a.phone>>a.key>>a.ban>>w;while(w--) //一個月前的就不讀了{string q;in>>q;int dday=(q[0]-'0')*10+(q[1]-'0');int dmonth=(q[2]-'0')*10+(q[3]-'0');int dyear=(((q[4]-'0')*10+(q[5]-'0'))*10+(q[6]-'0'))*10+(q[7]-'0');Time tem(dyear,dmonth,dday);Time now;now.loadtime();if(now>tem) continue;a.tic.push_back(q);}return in; } ostream&operator<<(ostream&out,User&a) {out<<a.name<<' '<<a.id<<' '<<a.phone<<' '<<a.key<<' '<<' '<<a.ban<<' '<<a.tic.size()<<endl;for(auto po=a.tic.begin();po!=a.tic.end();po++) out<<*po<<' ';return out; } /* int main() {User demo;cin>>demo;cout<<demo; } */ /* int main() {string name,id,phone;cin>>name>>id>>phone;User demo(name,id,phone);cout<<demo.getname()<<endl;cout<<demo.getid()<<endl;cout<<demo.getphone()<<endl;cin>>phone;demo.setph(phone);cout<<demo.getphone()<<endl; } */ /* int main() {User demo;int a;cin>>a;demo.buytic(a);cin>>a;demo.buytic(a);vector<int> w=demo.gettic();for(auto po=w.begin();po!=w.end();po++)cout<<*po<<endl;cin>>a;demo.del(a);w=demo.gettic();for(auto po=w.begin();po!=w.end();po++)cout<<*po<<endl; }*/ class Baseque //查詢類 { protected://12306所有的都具有唯一性。vector<Station> station;//列車里的int(站臺編號)對應station的int;map<string,int>natosta;vector<Train> train;map<string,int>checitotrain;// vector<User> user;// map<string,int> idtouser;// vector<Tick> tick; // map<int,int> nutotic; public:Baseque(){station.clear();natosta.clear();train.clear();checitotrain.clear();load();}void czcc(string a,int b,int d);void cxcx(string a);bool cxyp(string a,string b,int c);void load();void save();//void insert()~Baseque(){save();} };/*void Baseque;;insert(){Train tem2;while( cin>>tem2){cout<<-2; //手動調試點if(tem2.gettr()=="$$") continue;train.push_back(tem2);checitotrain.insert(make_pair(tem2.gettr(),train.size()-1));}}*/ void Baseque ::czcc(string a,int b,int d) {vector<piao>w=station[natosta[a]].quecheci();for(auto po=w.begin();po!=w.end();po++){vector<Zt> q= train[checitotrain[po->name]].getzt();for(auto pi=q.begin();pi!=q.end();pi++){if(a==pi->getsta()){if(pi->getarr()==b||b==0||pi->getlea()==d||d==0){cout<<po->name<<endl;if(pi!=q.begin()){q.begin()->printl();// cout<<1<<endl;if(pi==q.end()-1){(q.end()-1)->printa();//cout<<2<<endl;cout<<endl;}else{pi->print();// cout<<endl;(q.end()-1)->printa();// cout<<3<<endl;}cout<<endl;}else{q.begin()->printl();(q.end()-1)->printa();cout<<endl;}cout<<endl;}}// pi->print();}// cout<<endl;} } void Baseque ::cxcx(string a) //車次查詢 {if(checitotrain.find(a)==checitotrain.end()){cout<<"NO Train"<<endl;return ;} //查不到不打印vector<Zt> w=train[checitotrain[a]].getzt();for(auto po=w.begin();po!=w.end();po++){cout<<station[natosta[po->getsta()]].getname()<<' ';if(po!=w.begin()&&po!=w.end()-1){po->print();//cout<< po->getleave().first<<' '<<po->getleave().first;}else if(po==w.begin()){cout<< po->getleave().first<<' '<<po->getleave().first;}else cout<<po->getarrive().first<<' '<< po->getarrive().second<<' ';}cout<<endl; } bool Baseque :: cxyp(string a,string b,int riqi) {auto w=station[natosta[a]].quecheci();auto v=station[natosta[b]].quecheci(); //vector<pair<string,int>> checiset<piao>tem;vector<piao>temp;temp.clear();for(auto po=w.begin();po!=w.end();po++) tem.insert(*po);for(auto po=v.begin();po!=v.end();po++){if(tem.insert(*po).second==0) temp.push_back(*po);}if(temp.size()==0){cout<<"No ticket"<<endl;return 0 ;}for(auto po=temp.begin();po!=temp.end();po++){auto x= train[checitotrain[po->name]].getzt();int mini=po->sum[riqi];int ss=train[checitotrain[po->name]].cxyp(a,b,riqi);mini=min(mini,ss);cout<<train[checitotrain[po->name]].gettr()<<endl;;for(auto pi=x.begin();pi!=x.end();pi++) //336{//cout<<spi->print();}cout<<mini<<endl;}return 1; } void Baseque::load(){int x,y,n;ifstream in1("station.txt",ios::in);in1>>n;while( n--){Station tem1;in1>>tem1;// cout<<-1; 手動調試點if(tem1.getname()=="$$") continue;station.push_back(tem1);natosta.insert(make_pair(tem1.getname(),station.size()-1));// cout<<1;}in1.close();ifstream in2("train.txt",ios::in);in2>>n;while(n-- ){Train tem2;in2>>tem2;// cout<<-2; //手動調試點if(tem2.gettr()=="$$") continue;train.push_back(tem2);checitotrain.insert(make_pair(tem2.gettr(),train.size()-1));}in2.close(); } void Baseque::save(){ofstream out1("station.txt",ios::out);out1<<station.size()<<endl;for(auto po=station.begin();po!=station.end();po++)out1<<*po<<endl;out1.close();ofstream out2("train.txt",ios::out);out2<<train.size()<<endl;for(auto po=train.begin();po!=train.end();po++)out2<<*po<<endl;out2.close();}/* int main() {Baseque demo;cin>>demo;cout<<demo; } */ /* int main() {Baseque demo;string a;int c;int b;cin>>a>>b>>c;demo.czcc(a,b,c);cin>>a>>b>>c; //一天分四個時段查詢。5就查不到demo.czcc(a,b,c); }*/ /* int main() {Baseque demo;string a;int c;int b;cin>>a;//>>b>>c;demo.cxcx(a);cin>>a;//>>b>>c;demo.cxcx(a); } */ /* int main() {Baseque demo;string a,b;cin>>a>>b;demo.cxyp(a,b); } */ /* int main() {Baseque demo; }*/ class Client:public Baseque { protected:vector<User> user;map<string,int> idtouse;vector<Tick>tick;map<string,int> hashtotick;int now;//用于記錄當前用戶string now2; public:Client(){load2();}void load2();void save2();bool buytic(string a,string b,int c);void reback();void replacetic();virtual void login();void setphone(string a);void printmp();~Client(){save2();} };void Client::printmp(){auto ww=user[now].gettic();for(auto po=ww.begin();po!=ww.end();po++){cout<<po-ww.begin()+1<<endl;tick[ hashtotick[*po]].print();}} bool Client::buytic(string a,string b,int c) //先查后買,查不到不能買。 {if(!(cxyp(a,b,c))){cout<<"無票"<<endl;return 0;}if(user[now].getboupiao()>5||user[now].getban()){cout<<"購票限制"<<endl;return 0;}else{string id;cin>>id;pair<int,int>www=train[checitotrain[id]].buytic(a,b,c);station[natosta[a]].buytic(a,c);Time no1,no2;no1.loadtime();no2.loadtime();no2.seth(www.first,www.second);if(no2.getday()<c) no2.setmonth(no2.getmonth()+1);Tick tem(no1,no2,a,b,now2,id);tick.push_back(tem);hashtotick.insert(make_pair(tem.getname(),tick.size()-1));user[now].buytic(tem.getname());}return 1; } void Client::reback() //先查后買,查不到不能買。 {printmp();string id=now2;int n;cout<<"退哪一張票"<<endl;cin>>n;n=n-1;auto ww=user[now].gettic();string a=tick[ hashtotick[ww[n]]].getfrom();cout<<1<<endl;;string b=tick[ hashtotick[ww[n]]].getto();cout<<2<<endl;;int c=tick[ hashtotick[ww[n]]].getlea().getday();cout<<3<<endl;;train[checitotrain[id]].reback(a,b,c);cout<<4<<endl;;string e=tick[ hashtotick[ww[n]]].getna();station[natosta[a]].rebac(e,c);cout<<5<<endl;;// tick.erase(hashtotick[ww[n]]+tick.begin());} void Client::replacetic() {string a,b,id;int c;cin>>a>>b>>c;if( buytic(a,b,c)){cin>>a>>b>>c;reback();} } void Client::setphone(string a) {user[now].setph(a); } void Client::login() {string phone;string key;while(cin>>phone>>key){for(auto po=user.begin();po!=user.end();po++){if(po->getphone()==phone)if(po->getkey()==key){cout<<"Login prosperity"<<endl;now=po-user.begin();now2=po->getid();return ;}}cout<<"Wrong password"<<endl;} } void Client::load2() {ifstream in("user.txt",ios::in);int n;if(!in) return ;in>>n;while(n--){User tem;in>>tem;user.push_back(tem);idtouse.insert(make_pair(tem.getname(),user.size()-1));}in.close();ifstream in2("tick.txt",ios::in);if(!in2) return ;in2>>n;while(n--){Tick tem;in2>>tem;if(tem.getname()=="$$$") continue;tick.push_back(tem);hashtotick.insert(make_pair(tem.getname(),tick.size()-1));}in.close(); } void Client::save2() {ofstream out("user.txt",ios::out);out<<user.size()<<endl;for(auto po=user.begin();po!=user.end();po++) out<<*po<<endl;out.close();ofstream out2("tick.txt",ios::out);stringstream sss;Time now;now.loadtime();string temp;sss<<now.getyear()<<"年"<<now.getmonth()<<"月"<<now.getday()<<"日";sss>>temp;ofstream out3(temp,ios::out); //做過的車,就存到日志文件不在讀取。int sum=0;for(auto po=tick.begin();po!=tick.end();po++){if(now>po->getlea()){out3<<*po<<endl;}else sum++;}out3.close();out2<<sum<<endl;for(auto po=tick.begin();po!=tick.end();po++){if(now>po->getlea()) continue;out2<<*po<<endl;}out2.close(); } /* int main() {Client demo;//demo.login(); }*//*int main() {Client demo;demo.login();//登陸密碼18053176044 123456string a,b;int riqi;cin>>a>>b>>riqi;demo.buytic(a,b,riqi);demo.cxyp(a,b,riqi); }*/ /* int main() {Client demo;demo.login();string a,b;int riqi;cin>>a>>b>>riqi;demo.buytic(a,b,riqi);demo.reback();demo.cxyp(a,b,riqi); }*/ class Admin:public Client { public:void login(){}void insertsta();bool delsta(string a);void setsta(string a);void inserttr();bool deltr(string a);void settr(string a); }; void Admin:: insertsta() {Station tem1;cin>>tem1;station.push_back(tem1);natosta.insert(make_pair(tem1.getname(),station.size()-1)); } bool Admin::delsta(string a) {for(auto po=station.begin();po!=station.end();po++)if(po->getname()==a){vector<piao> ww=po->quecheci();for(auto pi=ww.begin();pi!=ww.end();pi++)train[checitotrain[pi->name]].del(a);station.erase(po);return 1;}cout<<"無此車站"<<endl;return 0; } void Admin::setsta(string a) {if(!delsta(a))return ;insertsta();return ; } void Admin::inserttr() {Train tem2;cin>>tem2;train.push_back(tem2);checitotrain.insert(make_pair(tem2.gettr(),train.size()-1));return ; } bool Admin::deltr(string a) {for(auto po=train.begin();po!=train.end();po++)if(po->gettr()==a){vector<Zt> ww=po->getzt();for(auto pi=ww.begin();pi!=ww.end();pi++)station[natosta[pi->getsta()]].del(a);train.erase(po);return 1;}cout<<"無此高鐵"<<endl;return 0; } void Admin::settr(string a) {if(!deltr(a))return ;inserttr(); } /* int main() {Admin demo;demo.insertsta();string a;cin>>a;demo.delsta(a);// cout<<1<<endl;demo.insertsta();cin>>a;demo.setsta(a);// cout<<2<<endl; }*/ /* int main() {Admin demo;demo.inserttr(); }*/ /* int main() {Admin demo;demo.inserttr();string a;cin>>a;demo.deltr(a); }*/ /* int main() {Admin demo;demo.inserttr();string a;cin>>a;demo.settr(a);// cout<<2<<endl; } */

?

總結

以上是生活随笔為你收集整理的C++课程设计详解-12306的模拟实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲日本三级 | 国产aa免费视频 | 免费国产在线观看 | 日韩高清成人 | 93久久精品日日躁夜夜躁欧美 | 国产精品视频线看 | 99精品国产99久久久久久97 | 欧美日韩高清不卡 | 日韩免费一区二区在线观看 | 91精品国产高清自在线观看 | 久久不卡国产精品一区二区 | 久久久久国产一区二区三区四区 | 亚洲伦理一区二区 | 97热久久免费频精品99 | 天天干天天干天天干天天干天天干天天干 | 97视频在线观看播放 | 国产在线国产 | 久久综合九色九九 | 日韩免费看 | 国产精品久久久久久久久久妇女 | 人人超碰人人 | 成年人免费在线观看网站 | 国产午夜精品一区二区三区在线观看 | 黄色三级网站在线观看 | 在线观看免费观看在线91 | 91精品蜜桃| 免费在线观看av不卡 | 国产亚洲精品久久久久久无几年桃 | 狠狠干我| 黄色网在线播放 | 久久久一本精品99久久精品 | 亚洲视频在线看 | 最新av网址大全 | 天天天天天操 | 日韩激情网 | 91 在线视频播放 | 三级黄色大片在线观看 | 91麻豆看国产在线紧急地址 | 久久免费高清 | 欧美91精品国产自产 | 91高清免费在线观看 | 91精品在线看 | 成人福利在线播放 | 欧美日韩中文在线观看 | 久久这里只有精品23 | 色婷婷激情四射 | 92精品国产成人观看免费 | 免费韩国av | 亚洲精品一区二区三区在线观看 | 国产精品自产拍在线观看 | 久久久久久久99精品免费观看 | 五月婷婷综合在线 | 91一区二区在线 | 久久精品人人做人人综合老师 | 精品国产一区二区三区在线 | 蜜臀久久99精品久久久久久网站 | 国产96精品 | 午夜12点 | 欧美日韩高清在线观看 | 九九九热精品免费视频观看网站 | 一区二区三区精品在线视频 | 国产1区2区 | a电影免费看 | 在线观看色视频 | 国产在线91精品 | 欧美专区国产专区 | 91丨九色丨勾搭 | 欧美日韩国内在线 | 又黄又爽又刺激 | 欧美91精品国产自产 | 日韩夜夜爽 | 免费日韩三级 | 五月综合激情 | 亚洲一区二区精品3399 | 国产一区二区在线播放视频 | 国产精品免费人成网站 | 久久精品欧美视频 | 国产一二区在线观看 | 九九精品视频在线看 | 国产黄色精品在线观看 | 久草在线视频免赞 | 国产精品情侣视频 | 中文字幕91视频 | 久久激情网站 | 日韩精品免费一区二区三区 | 99热这里只有精品国产首页 | 午夜在线日韩 | 精品成人a区在线观看 | 亚洲一级久久 | 午夜精品视频免费在线观看 | 99久久综合狠狠综合久久 | 中文字幕网站视频在线 | 久久综合久色欧美综合狠狠 | 91看片在线 | 黄色视屏av | 国产精品网站 | 国产97视频在线 | 免费看的黄网站软件 | 午夜精品区 | 视频一区二区在线 | 亚洲乱码在线 | 亚洲男人天堂2018 | 色诱亚洲精品久久久久久 | 久久a v视频 | 国产91在线播放 | 国产成人精品综合久久久 | 欧美精品九九99久久 | 国产国语在线 | av亚洲产国偷v产偷v自拍小说 | 激情视频久久 | 欧美激情另类文学 | 欧美先锋影音 | 激情综合六月 | 国产探花| 精品专区一区二区 | 国产一区二区三区免费在线 | 99视频免费观看 | 久久精品—区二区三区 | av福利在线免费观看 | 91在线视频观看免费 | 99在线精品视频 | 天天激情在线 | www.天天操| 99久久精品电影 | 国产一区二区在线播放视频 | 免费97视频| 在线小视频你懂得 | 国产97在线视频 | 久久看片网 | 久久97久久97精品免视看 | 中文字幕在线久一本久 | 免费亚洲视频 | 国产福利电影网址 | www.五月天色 | 日韩中文在线视频 | 欧美综合色在线图区 | 97成人在线视频 | 久久国产成人午夜av影院宅 | 一区二区精品久久 | a在线观看免费视频 | 亚洲国产精品视频 | 精品国产视频在线观看 | 深夜免费小视频 | 国产福利一区在线观看 | 欧美日韩99 | 久久无码精品一区二区三区 | 国产视频1区2区 | 一级特黄aaa大片在线观看 | 蜜臀久久99精品久久久久久网站 | 成人欧美一区二区三区在线观看 | 天天干夜夜 | 人人添人人澡人人澡人人人爽 | 国产一级大片免费看 | 日日干影院 | 婷婷久操 | 中文字幕在线观看免费高清完整版 | 国产无套精品久久久久久 | 麻豆视频国产精品 | 久久久久久久久综合 | 免费看黄色91 | 久草免费福利在线观看 | av电影一区 | 国产精品第一 | 欧美在线一二 | 欧美夫妻性生活电影 | 欧美999| 国产高清免费在线观看 | 亚洲免费成人av电影 | 高清av免费一区中文字幕 | 一级黄视频 | 中文一区二区三区在线观看 | 久久高清免费观看 | 97国产在线观看 | 精品日韩在线一区 | 亚洲精品美女久久久久网站 | 国产女教师精品久久av | 日韩欧美综合在线视频 | 天天操夜 | 日韩av在线网站 | 亚洲成a人片在线观看网站口工 | 精品视频久久久久久 | 99热国产精品 | 天天射天天爱天天干 | 久热电影 | 国产精品99免费看 | 黄色成人免费电影 | 丝袜精品视频 | 午夜三级理论 | 久久久亚洲网站 | 一级欧美日韩 | 久草在线最新 | 久久久久久蜜桃一区二区 | 欧美激情综合色 | 91精品爽啪蜜夜国产在线播放 | 色黄www小说 | 在线观看电影av | 日韩电影一区二区三区在线观看 | 久久久电影网站 | 美女久久视频 | 97精品伊人| 亚洲一区二区高潮无套美女 | 国产丝袜高跟 | 中文在线字幕免费观 | 日韩成人高清在线 | 久久国产精品免费观看 | 婷婷久久网 | 久久久久久久久久免费视频 | 欧美作爱视频 | 四虎影视精品永久在线观看 | 欧美日韩网址 | 免费观看一级特黄欧美大片 | 国产在线观看免费观看 | 97成人精品 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美精品一区二区免费 | 青青网视频 | 国产在线观看一区 | 91精品视频导航 | 玖玖玖影院 | 99视频国产精品 | 中文字幕精品一区 | 亚洲一区二区高潮无套美女 | 久久视频精品在线观看 | 91九色成人蝌蚪首页 | 国产亚洲精品久久久久久久久久久久 | 99在线精品视频 | 狠狠色丁香婷婷综合久小说久 | 亚洲黄色av | 91精品专区 | 国产精品99在线观看 | 国内精品久久久久影院优 | 操操操干干干 | 日本黄色大片免费看 | 人人爽影院 | 999精品视频 | 欧美日韩免费在线观看视频 | 97人人澡人人添人人爽超碰 | 国产精品扒开做爽爽的视频 | 中文字幕人成不卡一区 | 99热国内精品 | 久久国产欧美日韩精品 | 国产91成人| 久要激情网 | 亚洲成人午夜在线 | 最新日本中文字幕 | 成人网在线免费视频 | 国产成人精品免高潮在线观看 | 亚洲午夜久久久综合37日本 | 久久精品—区二区三区 | 丁香婷婷色 | 麻豆精品传媒视频 | 色射色 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲精品网页 | 叶爱av在线 | 草久视频在线观看 | 在线免费中文字幕 | 久久久精品一区二区 | 亚洲人成在线电影 | 一区 二区电影免费在线观看 | 免费视频成人 | 亚洲欧美国产视频 | 国产理论一区二区三区 | 久久ww| 亚洲国产精品第一区二区 | 99久久精品国产观看 | 夜夜骑首页| 久久亚洲视频 | 亚洲视频 在线观看 | 日韩欧美精品一区二区三区经典 | 国产精成人品免费观看 | 91传媒在线播放 | 天天干夜夜爱 | 久久国产精品色婷婷 | www天天操 | 亚洲专区中文字幕 | 日韩剧 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩理论在线视频 | 伊人射 | 五月婷婷激情 | 欧美 国产 视频 | 日韩高清片 | 色婷婷狠狠操 | 91麻豆福利 | 久久五月天综合 | 国产视频午夜 | 日韩大片在线免费观看 | 免费观看性生活大片3 | 人人精品久久 | 亚州精品天堂中文字幕 | 亚洲春色成人 | 黄色三级免费片 | 91丨九色丨首页 | 五月婷婷一区二区三区 | 天天操天天干天天操天天干 | 色夜影院 | 一级性视频 | 久久久久久久免费 | 亚洲精品免费在线观看视频 | 国产综合91 | 狠狠干狠狠久久 | 国产精品美女免费看 | 92中文资源在线 | 在线播放一区二区三区 | 91成人亚洲 | 精品国产一区二区三区日日嗨 | 国产午夜精品久久 | 日韩手机在线观看 | 永久免费看av | 国产成人综合图片 | 成人网444ppp| 国产精品中文字幕在线观看 | 日韩成人高清在线 | 亚洲在线视频网站 | 丁香六月婷 | 97超碰超碰久久福利超碰 | 久久99久久久久久 | 日韩欧美精品在线 | 18岁免费看片 | 午夜精品久久久久久久99 | 久久久久久久久久久精 | a级国产乱理伦片在线观看 亚洲3级 | 精品一二三区视频 | 在线免费观看麻豆视频 | 综合av在线| 免费日韩一区二区三区 | 国产亚洲欧美一区 | 日韩av片无码一区二区不卡电影 | 天天操夜夜逼 | 久久久久久草 | 欧美激情第一页xxx 午夜性福利 | 欧美先锋影音 | 国产精品美女毛片真酒店 | 日日碰夜夜爽 | 久草男人天堂 | 亚洲午夜精品久久久久久久久 | 中文字幕国产视频 | 婷婷久久国产 | 欧美精品天堂 | 六月丁香在线视频 | 日韩视频1区 | 久久黄色片子 | 人人插人人舔 | 精品视频www | 美女视频黄的免费的 | 日b视频在线观看网址 | 欧美成人手机版 | 在线播放一区二区三区 | 日韩视频免费在线观看 | 久久精品视频免费播放 | 极品久久久久 | 奇米影视777四色米奇影院 | 精品久久久久一区二区国产 | 国产精品99精品 | 日韩专区视频 | 午夜成人免费电影 | 在线亚洲欧美日韩 | 中文字幕二区 | 黄色大片视频网站 | 免费观看成人网 | a级一a一级在线观看 | 久久久美女 | 国产香蕉av | 免费的国产精品 | 99久久精品国产一区 | 欧美精品久久久久性色 | 999久久国精品免费观看网站 | 日韩大片在线 | 中文字幕成人av | 在线成人看片 | 色视频网站在线观看一=区 a视频免费在线观看 | 成 人 黄 色 视频播放1 | 欧美男同网站 | 福利视频一二区 | 免费午夜网站 | 亚洲三级黄色 | 婷婷色六月天 | 丰满少妇在线观看网站 | 欧美一区二区三区免费观看 | 亚洲成人免费在线 | 免费亚洲片 | 久久视频这里有久久精品视频11 | 在线看成人av| 国产美女被啪进深处喷白浆视频 | 成人免费一级片 | 日女人免费视频 | 美女国产 | 97在线视频免费观看 | 99久久婷婷国产综合亚洲 | 中文字幕在线一区观看 | 国产中文字幕网 | 久久高视频| 久久午夜精品影院一区 | 日韩av不卡在线观看 | 久久国产精品99久久久久久进口 | 黄色一级大片在线免费看国产一 | 二区三区av | 国产精品自产拍在线观看网站 | 久久免费av电影 | 777xxx欧美 | 91欧美国产| 国产精品久久久久久久久久久久午夜 | 成人小视频在线 | 91精品视频免费看 | 日韩视频免费 | 久久影院一区 | 天天操天天射天天 | 亚洲国产精品电影在线观看 | 狠狠色噜噜狠狠狠狠2021天天 | 国产真实精品久久二三区 | 在线看国产| 91亚洲在线| 国产免费亚洲 | 狠狠色狠狠色终合网 | 一区二区三区四区五区在线 | av线上免费观看 | 色片网站在线观看 | 亚洲国产丝袜在线观看 | 视频在线观看国产 | 91在线公开视频 | 国产黄色免费电影 | 天海冀一区二区三区 | 美女免费电影 | 国产精品麻豆视频 | 免费av网站在线看 | av久久在线 | 91在线视频观看免费 | 久久精品视频18 | 又黄又爽又刺激的视频 | 美女禁18| 精品国产一区二区三区久久 | 日韩视频一区二区在线 | 欧美一级看片 | 国产护士hd高朝护士1 | 性日韩欧美在线视频 | 久久九九影视网 | 天天se天天cao天天干 | 国产乱对白刺激视频不卡 | 999久久久久久 | 999国内精品永久免费视频 | 欧美在线视频一区二区三区 | 日韩免费视频网站 | 夜夜夜夜夜夜操 | 日韩精品久久久久 | 视频 国产区 | 国产精品视频观看 | 久久精品视频在线看 | 国产精品18毛片一区二区 | 2023亚洲精品国偷拍自产在线 | 精品在线观看一区二区 | 91网站免费观看 | 91精品综合在线观看 | 久久爱资源网 | 日韩欧美国产精品 | 天天翘av | 欧美一级片在线播放 | 日本久久久久久久久 | 在线观看蜜桃视频 | 久久久久国产精品午夜一区 | 综合网色 | 天天色欧美 | av成人亚洲 | 超碰人人在线 | 激情在线网站 | 国产香蕉97碰碰碰视频在线观看 | 操久久网| 毛片在线网 | 午夜精品av在线 | 在线观看你懂的网站 | 久久综合久久综合久久综合 | 亚洲精品国产精品乱码在线观看 | 久久综合成人网 | 国产精品九九视频 | 97福利在线观看 | 国产经典三级 | 国产69久久久| 欧美成人影音 | 视频 国产区 | 二区三区中文字幕 | 日韩在线视| 日韩精品一区二区三区在线视频 | 日韩丝袜在线 | 四虎在线免费观看视频 | 99免费在线观看 | 亚洲三级黄色 | 99re国产视频| 亚洲精品乱码久久久久v最新版 | 一区二区三区精品在线 | 黄www在线观看 | 91综合久久一区二区 | 激情 一区二区 | 亚洲激情视频在线观看 | 国产91精品一区二区麻豆亚洲 | 福利视频一二区 | 成人午夜影院在线观看 | www视频免费在线观看 | 欧美日韩调教 | 日韩欧美精品在线视频 | 91入口在线观看 | 天天舔夜夜操 | 美女视频黄频大全免费 | 亚洲第一香蕉视频 | 狠狠躁日日躁狂躁夜夜躁 | 欧美日韩在线第一页 | 国产最新福利 | 操操操日日 | 美女网站免费福利视频 | 亚洲aⅴ久久精品 | 好看av在线 | 丁香资源影视免费观看 | 天躁狠狠躁| 91精品国产一区二区三区 | 毛片网站观看 | 热久久免费国产视频 | 天天色成人 | 亚洲日本一区二区在线 | 91丨九色丨蝌蚪丨对白 | 成人久久18免费网站麻豆 | 91免费高清观看 | 在线免费观看av网站 | 天天亚洲 | 亚洲精品视频www | 天天搞天天 | 久久久国产成人 | 午夜精品久久久久久久99 | 成人久久久精品国产乱码一区二区 | 精品国产视频在线观看 | 中文字幕乱视频 | 日韩午夜电影网 | 超碰成人av| 在线不卡中文字幕播放 | 麻豆视频在线观看免费 | av黄在线播放 | 最新色视频 | 五月婷婷丁香六月 | 欧美最猛性xxxxx(亚洲精品) | 99热国产在线观看 | 在线精品一区二区 | 午夜精品视频免费在线观看 | 亚洲国产成人久久 | 国产一级一级国产 | 亚洲va在线va天堂va偷拍 | 色网站免费在线观看 | 91精品综合在线观看 | 探花视频在线观看+在线播放 | 麻豆免费视频 | 亚州激情视频 | 97在线精品 | 免费观看日韩 | 激情视频免费在线观看 | 国产视频 亚洲精品 | 免费精品在线视频 | 久久er99热精品一区二区 | 午夜视频在线观看一区二区三区 | 99精品区 | 天天综合中文 | 在线观看岛国 | 毛片永久免费 | 日韩在线视频免费看 | www在线观看国产 | 97精品国产97久久久久久免费 | 久久99精品国产99久久 | 色婷婷激情 | 狠狠色丁香婷婷综合久久片 | 综合久久综合久久 | 在线观看一级片 | 日韩三级在线 | 亚洲免费一级电影 | 成人久久综合 | 日韩免费高清在线 | 在线观看免费福利 | 最近中文字幕视频完整版 | 国产精品久久久av久久久 | 成人在线免费视频 | 免费在线观看成人av | 欧美一级乱黄 | 国产精品久久久久久久久久久久冷 | 五月婷婷av在线 | 麻豆视频在线免费观看 | 午夜美女视频 | 日本最新一区二区三区 | 黄色三级免费观看 | 免费观看性生交大片3 | 一级片色播影院 | 日韩在线观看电影 | 欧美性高跟鞋xxxxhd | 狠狠躁夜夜躁人人爽超碰97香蕉 | 四虎影视国产精品免费久久 | 日韩免费专区 | 国产精品一区二区三区久久 | 欧美一区二区三区在线 | 中文字幕在线观看网址 | 福利一区视频 | 国产成人精品一区二区三区福利 | 久草在线高清 | 99这里只有久久精品视频 | 九九免费在线视频 | 正在播放国产精品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 蜜臀一区二区三区精品免费视频 | 91久久久久久国产精品 | 久久这里只有精品视频99 | 人人玩人人添人人澡超碰 | 亚洲精品小区久久久久久 | 日韩国产精品久久久久久亚洲 | av专区在线 | 18久久久| 少妇视频一区 | 国产精品观看 | 国产精品伦一区二区三区视频 | 国产123区在线观看 国产精品麻豆91 | 亚洲综合射| 日本久久中文字幕 | 日韩精品免费在线观看视频 | 久久av在线 | 亚州免费视频 | 四虎在线观看视频 | 欧美在线视频一区二区三区 | 天天色婷婷 | 久久久久精| 丝袜美腿亚洲综合 | 色视频一区 | 国产v在线观看 | 日韩有码在线观看视频 | 国产精品国产三级国产不产一地 | 黄色小说免费观看 | 午夜av剧场 | 日韩久久久 | 久久国产精品系列 | 欧美日韩高清在线一区 | 久久国产精品一国产精品 | 国产成人免费观看 | 成年人在线看视频 | av免费网| 欧美精品在线观看 | 成人看片| 国产精品久久久久一区二区三区共 | 在线观看视频一区二区三区 | 91看片在线 | 99tvdz@gmail.com | 国产中文在线观看 | 国产成人免费观看 | 欧美成人中文字幕 | 午夜色性片 | 天天爱天天射天天干天天 | 亚洲国产精品va在线看黑人动漫 | 九色91福利 | 天天干干| 天天干天天操天天射 | 国产精品成人久久久久久久 | 日韩精品免费一线在线观看 | 久久久久久久网 | 久久久九九| 成年人在线观看网站 | 国产一区二区日本 | 国产亚洲精品久久19p | 在线观看第一页 | 玖玖玖影院 | 五月天色站 | 亚洲视频每日更新 | 亚洲精品av在线 | 亚洲一级黄色大片 | 欧美少妇18p | 九九热.com | 成在人线av| 就操操久久 | 亚洲 综合 精品 | 国产视频精选 | 天天在线视频色 | 亚洲成人免费在线观看 | 欧美激情第八页 | 国产精品系列在线观看 | 久久人91精品久久久久久不卡 | 欧美伦理一区二区 | 五月天中文字幕mv在线 | 精品字幕在线 | 国产 欧美 在线 | 欧美日韩亚洲第一页 | 成人午夜电影免费在线观看 | 99视频一区二区 | 久久福利国产 | 久久久久国产精品一区 | 欧美天天射 | 精品国产一区二区三区男人吃奶 | 国产视频观看 | 久久精品男人的天堂 | 国产精品成人免费 | 亚洲久草在线 | 免费黄色av | 国产精品电影一区二区 | 91插插插网站 | 精品视频久久久久久 | 中文电影网 | 婷婷五月色综合 | 国产精品视频专区 | 久久久久综合精品福利啪啪 | 国产99精品 | 精品在线不卡 | 日韩91精品| 又黄又爽的视频在线观看网站 | 丁香六月久久综合狠狠色 | 91中文字幕网 | 成人在线免费看视频 | 99视频精品| 日韩欧美aaa | 69绿帽绿奴3pvideos | 手机av在线不卡 | 久久国产欧美日韩 | adn—256中文在线观看 | 亚洲在线 | 蜜桃传媒一区二区 | 久久综合久色欧美综合狠狠 | 欧美999| 精品国产伦一区二区三区观看体验 | 日韩精品在线免费观看 | 日本公乱妇视频 | 亚洲免费资源 | 日本少妇高清做爰视频 | 国产精品毛片一区视频播 | 国产精品久久久久久婷婷天堂 | 在线天堂中文在线资源网 | 久久久久综合精品福利啪啪 | 四虎国产免费 | 国产精品mm | 国产乱对白刺激视频在线观看女王 | 97超碰福利久久精品 | 精品无人国产偷自产在线 | 日本99干网 | 亚洲乱亚洲乱亚洲 | 超碰97人人干 | 国产精品嫩草55av | 欧美与欧洲交xxxx免费观看 | 国产精品久久99综合免费观看尤物 | 欧美激情视频一区二区三区免费 | 91av蜜桃 | 免费看的黄色 | 天天天天爽| 国产精品久久久久久久久久了 | www.国产毛片 | 日韩91精品| 久久99热精品这里久久精品 | 久久免费精彩视频 | 日韩网站免费观看 | 亚洲国产欧美一区二区三区丁香婷 | 免费看色的网站 | 天天色成人 | 亚洲精品一区中文字幕乱码 | 黄色免费观看 | 精品不卡av | 在线观看免费一级片 | www国产亚洲精品 | 中文字幕在线网 | 一级精品视频在线观看宜春院 | 日韩欧美网址 | www视频在线播放 | 欧美人zozo| 超碰在线个人 | 国产视频一区二区在线 | 欧美精品中文字幕亚洲专区 | 中文字幕在线国产精品 | 911国产在线观看 | av在线看网站 | 成人av电影免费在线播放 | 免费男女羞羞的视频网站中文字幕 | 国产成人a亚洲精品 | 国产精品白浆视频 | 国产免费二区 | 欧美韩日精品 | 亚洲黄a| 久久综合久久综合这里只有精品 | 在线电影a | 国产成人精品一区二区三区在线 | 亚洲专区一二三 | 色中色亚洲 | 欧美久久久| av片在线观看 | 99精品观看 | 波多野结衣在线视频免费观看 | 久久免费视频国产 | 成 人 黄 色 免费播放 | 国产91探花 | 在线播放国产一区二区三区 | 成人一级在线 | 亚洲成人av片在线观看 | 精品视频亚洲 | 天天拍天天干 | 一级片免费观看视频 | 国产福利一区在线观看 | 色婷婷九月 | 91成人在线视频观看 | 在线播放日韩av | 国产麻豆视频网站 | 国产精品不卡在线 | 视频在线观看亚洲 | 国产精品综合在线 | 麻豆av一区二区三区在线观看 | 999久久国产 | 91综合色| www狠狠| 久久精品综合 | 久久久久久久免费看 | 69av国产| 黄色av网站在线观看免费 | 免费视频你懂得 | 天天色天天操天天爽 | 中文字幕一区二区三区视频 | 国产精品正在播放 | 久草观看视频 | 日韩在线中文字幕视频 | 91成年视频| 超碰免费av | 91av99| 天天操天天操一操 | www.com久久久 | 黄色av在| 国产成人一区三区 | 亚洲成av人片在线观看无 | 中文字幕视频 | 麻豆视频在线免费看 | 粉嫩av一区二区三区免费 | 日韩午夜在线播放 | 九色福利视频 | 久草视频手机在线 | 亚洲欧洲成人精品av97 | 中文字幕在线影院 | 成 人 免费 黄 色 视频 | 久久综合中文色婷婷 | 91精品国产综合久久婷婷香蕉 | 亚洲播播 | 99精品国产一区二区三区麻豆 | 天天操天天操天天操 | 久久女同性恋中文字幕 | 国产精品一区在线观看 | 成人午夜影院 | 国产高清免费 | 波多野结衣在线播放一区 | 亚洲精品国产成人av在线 | 国产精品久久一区二区三区不卡 | 日韩爱爱网站 | 黄色激情网址 | 久久夜色网 | 中文在线a√在线 | 四虎影视国产精品免费久久 | 国产va精品免费观看 | 国产精品一区二区在线 | 久久精品欧美一区二区三区麻豆 | 中文久久精品 | 久久国产精品一区二区 | 日韩av免费一区 | 91精品国产乱码在线观看 | 四虎免费av | 日韩免费一区二区在线观看 | 精品久久亚洲 | 爱情影院aqdy鲁丝片二区 | 国产在线无 | 天天色综合三 | 91传媒视频在线观看 | 激情综合五月天 | 色精品视频 | av久久在线| 九九九热视频 | 久久毛片网 | 欧美少妇18p | 四虎国产| 奇米影视777影音先锋 | 波多野结衣在线视频免费观看 | 久久99精品国产一区二区三区 | 国产精品久久麻豆 | 亚洲狠狠丁香婷婷综合久久久 | 青青草国产精品视频 | 亚洲毛片在线观看. | 亚州精品天堂中文字幕 | 97人人模人人爽人人少妇 | 亚洲狠狠操 | 日日射天天射 | 美女国产在线 | 日韩欧美在线高清 | 日韩理论影院 | 超碰在线中文字幕 | 免费av福利 | 婷婷午夜激情 | 免费观看黄色12片一级视频 | 91精品一区二区三区蜜桃 | 麻豆视频在线看 | 国产精品一区二区在线播放 | 久草电影在线观看 | 97精品国产97久久久久久春色 | 99爱精品视频 | 国产精品久久久久久模特 | 香蕉影视在线观看 | 九色91在线 | 99精品系列| 一本色道久久精品 | 国产探花在线看 | 欧美视频国产视频 | 日韩欧美在线观看一区 | 久久国产高清 | 狠狠地操| 国产98色在线 | 日韩 | 人人看人人爱 | 国产三级久久久 | 久久国产精品偷 | 国产女教师精品久久av | 精品在线播放 | 人人射网站 | 日韩欧美视频在线免费观看 | 成人资源网 | 高清一区二区三区av | 91禁在线看| 久久99久久99精品免观看软件 | 欧美精品做受xxx性少妇 | 久久99精品国产麻豆婷婷 | 99视频国产精品免费观看 | 欧美一区二区在线免费看 | 九九热视频在线免费观看 | 免费看国产黄色 | 日韩超碰在线 | 国内精品国产三级国产aⅴ久 | 69精品在线观看 | 国产在线精品二区 | 日日爱视频 | 日韩系列 | 99热精品久久 | 在线观看国产www | 蜜桃视频在线观看一区 | 久久综合电影 | 国产精品18久久久久久首页狼 | 亚洲最新av在线网站 | 免费高清在线观看成人 | 国产精品网站一区二区三区 | 韩国一区二区在线观看 | 99色国产 | 亚洲国产成人在线 | 久久精品99北条麻妃 | 小草av在线播放 | 香蕉在线影院 | 欧美午夜寂寞影院 | 麻豆久久久久 | 在线 国产一区 | 狠狠干狠狠艹 | 久青草电影 | 色欧美成人精品a∨在线观看 | 国内精品在线观看视频 | 久久人视频 | 特级毛片在线免费观看 | 成人av资源网站 | 久久久久久国产精品999 | 欧美日韩久久不卡 | 69av视频在线观看 | 国产手机视频精品 | 日韩中文字幕免费在线观看 | 亚洲成人在线免费 | 亚洲天天综合网 | 免费观看的黄色 | 国产经典 欧美精品 | 国产最新91 | 天天干天天摸天天操 | av日韩av | 国产一卡在线 | 久久超碰在线 | www.超碰97.com | 成人国产精品一区二区 | 色婷婷亚洲婷婷 | 成人精品在线 | 免费看一级一片 | 日韩久久精品一区二区三区 | 日韩黄色免费电影 | 中文字幕影片免费在线观看 | 欧美日韩免费视频 | 伊人狠狠色丁香婷婷综合 | 日韩大片在线 | 国产在线精品视频 | 日韩激情小视频 | 成人免费视频视频在线观看 免费 | 一区二区三区三区在线 | 色资源在线 | 久久 在线| 91网免费观看 | 国产在线理论片 | 五月天天天操 | 日韩精品欧美专区 | 91在线视频精品 | 久久精品国产v日韩v亚洲 | 国产精品一区二区久久国产 | 久久精品一区二区三区视频 | 色爽网站 | 日本中文乱码卡一卡二新区 | www.久热 | 国产精品久久久久久久久久久久 | 亚洲欧美国产精品va在线观看 | 91精品国产乱码久久 | 成人高清av在线 | 91中文字幕在线播放 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 米奇四色影视 | 国产精品免费人成网站 | 国产一区欧美一区 |