當前位置:編程學習大全網 - 源碼下載 - 求數據結構C++舞伴配對問題程序代碼

求數據結構C++舞伴配對問題程序代碼

int?main()

{

list<dancer>Mdancer;?//定義dancer類鏈表,保存男舞者信息

list<dancer>Fdancer;?//定義dancer類鏈表,保存女舞者信息

while(m)//輸入舞者信息

{

dancer?person;?//定義臨時dancer變量,保存輸入信息

person.input();?

if(person.sex!="男"&&person.sex!="女")?//判斷輸入性別是否符合要求

{

cout<<"輸入的舞者性別不正確,請重新輸入";

continue;

}

else?if(person.hour<0||person.hour>23||person.minute<0||person.minute>59||person.second<0||person.second>59)

{

cout<<"輸入的舞者到場時間不正確,請重新輸入";

continue;

}

else

{

if(person.sex=="男")

Mdancer.push_back(person);?//將男舞者信息存入男性鏈表

else

Fdancer.push_back(person);?//將女舞者信息存入女性鏈表

}

cout<<"\n是否繼續錄入舞者信息:1為繼續錄入,0為不再錄入!\n";

cin>>m;

}

cout<<"首先為男性舞者排隊!\n";

pai_dui(Mdancer);?//對男舞者進行排隊

cout<<"然後為女性舞者排隊!\n";

pai_dui(Fdancer);?//對女舞者進行排隊

/*cout<<"\n排隊後:"<<endl;?//輸出排隊後所有男舞者信息

for(p=Mdancer.begin();p!=Mdancer.end();p++)

cout<<(*p).name<<"?"<<(*p).sex<<"?"<<(*p).height<<"?"<<(*p).hour

<<":"<<(*p).minute<<":"<<(*p).second<<endl;*/

cout<<"請輸入跳舞的最大輪數:";

int?k?=?0;?//跳舞輪數

cin>>k;

for(int?i=0;?i<k;?i++)/*舞伴配對*/

{

int?num1?=?Mdancer.size();?//男舞者個數

int?num2?=?Fdancer.size();?//女舞者個數

int?min?=?num1<num2num1:num2;

cout<<"第"<<i+1<<"輪舞伴配對情況:\n";

if(min<=N)?//舞者對數小於等於舞場容納量,則全部舞者可進入

{

for(int?i=0;?i<min;?i++)?//輸出第k輪的舞伴

{

cout<<Mdancer.front().name<<"<-->"<<Fdancer.front().name<<endl;

Mdancer.push_back(Mdancer.front());?//將配對的舞者重新排在隊尾

Fdancer.push_back(Fdancer.front());

Mdancer.pop_front();?//將配對的舞者從隊首刪除

Fdancer.pop_front();

}

}

else?//舞者對數大於舞場容納量

{

for(int?i=0;?i<N;?i++)?//輸出第k輪的舞伴

{

cout<<Mdancer.front().name<<"<-->"<<Fdancer.front().name<<endl;

Mdancer.push_back(Mdancer.front());?//將配對的舞者重新排在隊尾

Fdancer.push_back(Fdancer.front());

Mdancer.pop_front();?//將配對的舞者從隊首刪除

Fdancer.pop_front();

}

}

/*每跳完壹輪詢問是否有舞者要離開*/

cout<<"\n是否有舞者要離開,有舞者離開請輸入1,否則輸入0!\n";

int?lev?=?0;?//有舞者離開的標誌,1為有舞者要離開

cin>>lev;

/*跳完舞的人默認排到了隊伍中,若選擇離開(還沒跳舞的人也可以選擇離開)*/

if(lev==1)

{

cout<<"請輸入要離開的舞者姓名:";

cin>>leaver.name;

cout<<"請輸入要離開的舞者性別:";

cin>>leaver.sex;

if(leaver.sex=="男")

Mdancer.remove_if(leave);?//根據姓名從隊列中刪除舞者

else?if(leaver.sex=="女")

Fdancer.remove_if(leave);

cout<<leaver.name<<"已離開舞場!\n\n";

}

}

return?0;

}

完整文件在附件,妳看下是否符合要求,有問題再問!

  • 上一篇:程序員做中獎小程序套路父親換空調,父親相信了嗎?
  • 下一篇:javaee混亂概念hibernate+spring+struts和EJB和mvc模式區別。現在常用的技術是哪些呢
  • copyright 2024編程學習大全網