九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

大大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 舞伴問題

  • 資源ID:86661604       資源大?。?span id="24d9guoke414" class="font-tahoma">351.50KB        全文頁數(shù):54頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

大大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 舞伴問題

word分類號 編 號華北水利水電大學North China Institute of Water Conservancy and Hydroelectric Power課 程 設(shè) 計題目 舞伴問題 院 系 信息工程學院 專業(yè) 計算機科學與技術(shù) 姓 名 賈 寧 指 導 教 師 楊 彬 第一章 需求分析21.1 問題描述21.2 根本要求21.2.1 輸入與輸出格式21.2.2 程序所完成的功能2第二章 概要設(shè)計32.1 數(shù)據(jù)結(jié)構(gòu)32.2 程序模塊42.3 模塊調(diào)用與算法5第三章 詳細設(shè)計73.1 操作實現(xiàn)73.2 算法實現(xiàn)8第四章 編碼調(diào)試104.1 調(diào)試環(huán)境104.2 調(diào)試方法104.3 調(diào)試項目與調(diào)試結(jié)果104.3.1 登陸測試104.3.2 加載學生信息114.3.3 學生配對調(diào)試124.3.4 顯示總配對134.3.5 查詢配對13第五章 總結(jié)15參考文獻16附錄 系統(tǒng)源代碼17第一章 需求分析 問題描述一班有m個女生、n個男生(m不等于n), 舉辦一場舞會. 男女生分別編號坐在舞池兩邊的椅子上,每曲開始時, 依次從男生和女生中各出一人配對跳舞, 本曲沒成功配對者坐著等待下一曲找舞伴,設(shè)計一個程序模擬舞伴配對過程。1.2 根本要求1.2.1 輸入與輸出格式輸入男、女學生的某某、性別,由程序自動為男女生編號,可以順序編號,也可以隨機編號,輸出每曲配對情況包括男、女生的某某、性別和編號。原始數(shù)據(jù)和結(jié)果數(shù)據(jù)要保存到文件中。在讀入男女生信息時,可以從文件中直接讀取學生的某某和性別信息。輸出顯示時顯示每首歌的配對情況,包括對應(yīng)配對學生的某某、性別以與編號??梢暂敵稣麄€舞池配對過程的所有配對情況。將輸出顯示的內(nèi)容對應(yīng)寫入到指定的文件中。1.2.2 程序所完成的功能從文件或者手動輸入班級的學生信息,包括某某和性別根本信息,根據(jù)性別使男女生分別坐在舞池兩邊的座位上,學生的座位編號順序生成,且一旦編號確定,將不再發(fā)生變化。每一首歌曲播放時,依次從男女生隊列中出來學生進展配對,由于男女生人數(shù)不一致,會使某個隊列中剩下假如干學生配對不成功,配對不成功者等待下首歌時再進展配對。該首歌完畢時,配對成功的學生再回到座位上。然后再依次進展配對,未成功者等待下首歌再進展配對。配對成功時,會顯示本首歌的詳細配對情況,以與整個過程的配對情況,并且可以將配對情況寫入到文件。根據(jù)男女生的某某或者某首歌曲的名字可以查詢到對應(yīng)的配對情況。第二章 概要設(shè)計2.1 數(shù)據(jù)結(jié)構(gòu)學生座位隊列:ADT StuQueue 數(shù)據(jù)對象:D= ai|aiElemSet,i=1,2.n;n0 數(shù)據(jù)關(guān)系:R= <ai-1,ai > aiD ,i=1,2.nvoid InitQueue(StuQueue &Q) 操作結(jié)果:初始化一個空的循環(huán)隊列void EnQueue(StuQueue &Q,FinalStu stu) 初始條件:循環(huán)隊列Q已經(jīng)存在,并且無信息 操作結(jié)果:向Q中循環(huán)參加信息void EnQueue2(StuQueue &Q,FinalStu stu) 初始條件:循環(huán)隊列已存在,非首次進循環(huán)隊列 操作結(jié)果:向Q中添加信息FinalStu DeQueue(StuQueue &Q) 初始條件:循環(huán)隊列已存在 操作結(jié)果:使隊列頭的元素出隊列,且返回FinalStu類型值A(chǔ)DT StuQueue /學生座位隊列音樂隊列:ADT MusicList數(shù)據(jù)對象:D= ai|aiElemSet,i=1,2.n;n0 數(shù)據(jù)關(guān)系:R= <ai-1,ai > aiD ,i=1,2.nvoid InitMusic(MusicList & MList)操作結(jié)果:創(chuàng)建循環(huán)鏈表void InsertMusic(MusicList &MList,char* name)初始條件:該鏈表已存在 操作結(jié)果:向鏈表中添加數(shù)據(jù)ADT MusicList;臨時隊列:ADT TempQList數(shù)據(jù)對象:D= ai|aiElemSet,i=1,2.n;n0 數(shù)據(jù)關(guān)系:R= <ai-1,ai > aiD ,i=1,2.nvoid InitQList(TempQList &TQL) 操作結(jié)果:初始化臨時隊列void EnTempQueue(TempQList & TQL,FinalStu stu) 初始條件:隊列TQL已存在 操作結(jié)果:向TQL中添加信息FinalStu DeTempQueue(TempQList &TQL) 初始條件:隊列TQL存在 操作結(jié)果:取出隊列的對頭元素,返回FinalStu類型ADT TempQList;2.2 程序模塊本系統(tǒng)主要包括登陸模塊、學生入座、自動配對、顯示配對過程以與查詢配對信息模塊。登陸:輸入正確的用戶名以與密碼,方可進入系統(tǒng),連續(xù)輸入錯誤三次如此禁止進入系統(tǒng)。學生入座:以不同的方式獲取學生信息后,根據(jù)學生性別依次進入兩個循環(huán)隊列,并為每個學生唯一編號。自動配對:每首歌開始時,男女生依次從坐席中出來進展本首歌的配對,配對不成功者等待下首歌繼續(xù)配對,下首歌時,上首歌未配對成功者本首歌先進展配對。顯示配對過程:在播放歌曲的過程中,顯示播放的歌曲信息,以與本首歌的配對信息。查詢配對:根據(jù)男女生的某某查出兩人的在哪一首歌進展過配對,根據(jù)歌曲名稱查詢出本首歌的配對信息。文件操作:將配對情況與學生的座位信息寫入文件根據(jù)系統(tǒng)模塊的劃分,本系統(tǒng)的功能模塊圖如圖2-1所示圖 2-1 功能模塊2.3 模塊調(diào)用與算法登陸成功后進入主界面,進入主界面后,需要先運行學生入座模塊,方能進展下邊的操作。學生入座后會得到相關(guān)的根本信息。之后調(diào)用配對模塊函數(shù),進展學生的配對。學生配對成功后,才能利用顯示配對過程進展顯示配對的情況,后續(xù)的查詢配對模塊也必須在配對成功的根底上進展。模塊間的調(diào)用流程如圖2-2所示圖 2-2 模塊調(diào)用 在進展配對過程中用到算法,在每首歌配對時,依次從男女生隊列中出來一個學生,進入到臨時隊列,從臨時隊列中獲取配對的情況。在本首歌完畢,下首歌開始之前,讓臨時隊列中的男女在分別根據(jù)性別入隊,依次循環(huán),每次調(diào)用配對函數(shù),實現(xiàn)學生的循環(huán)配對。第三章 詳細設(shè)計3.1 操作實現(xiàn)本系統(tǒng)包含七個文件。設(shè)計分有歡迎界面,登陸系統(tǒng),入隊函數(shù),配對函數(shù),顯示函數(shù),查詢函數(shù)等。登陸界面是整個系統(tǒng)的入口,其主要是讓合法人員進入系統(tǒng),入隊函數(shù)主要讓學生進入男女隊列,配對函數(shù)主要是根據(jù)每首歌曲把男女生進展配對,顯示函數(shù)主要是顯示男女生的配對情況,查詢函數(shù)主要是根據(jù)男女生某某和歌曲名查找配對情況。系統(tǒng)首先通過程序調(diào)用void main()進入歡迎界面和系統(tǒng)登陸界面,根據(jù)用戶的某某和密碼登陸成功后進入主菜單。根據(jù)用戶的選擇可分別進入:1.學生就坐;2.每曲配對;3.顯示結(jié)果;4.查詢配對;5.退出。選擇“項,會顯示學生信息來源,包括“1.按班級獲取(推薦)“2.手動輸入.兩項可供選擇。其中,1是從文件中獲取學生信息,2是用戶手動輸入學生信息。選擇“項,會顯示播放歌曲的類型,有“兩個音樂風格可供選擇,當用戶選擇其中一個風格并確定播放后,會顯示出當前播放的歌曲名字和所配對的男女生。選擇“項,會有“和“兩項操作可供選擇。當選擇1,會把學生就坐后的信息顯示出來,選擇2,會把每首歌學生的配對情況顯示出來。選擇“項,也有兩個操作可供選擇,分別是“按歌曲名兩項。選擇1,會根據(jù)用戶輸入的男女生某某查看他們的配對情況,選擇2,會根據(jù)用戶輸入的歌曲名稱顯示每首歌曲學生的配對情況。選擇“項,會出現(xiàn)感謝使用系統(tǒng)界面,并按任意鍵退出系統(tǒng)。本系統(tǒng)的主流程圖如圖3-1 所示圖 3-1 主流程3.2 算法實現(xiàn)定義學生結(jié)構(gòu)體FinalStu ,將學生的信息放到本結(jié)構(gòu)體中,定義兩個循環(huán)隊列Boys和Girls隊列,分別存儲男女生的座位信息。定義MusicList循環(huán)鏈表,用于存放音樂信息。定義TempQueue隊列,用于臨時存放從男女生隊列中出來的學生信息。創(chuàng)建一個存放每首歌配對情況的數(shù)組stuTable,用來存放播放該首歌曲時男女生的信息。每一首歌開始時,男女生依次用Boys和Girls隊列中出對,依次進入臨時隊列TempQueue,從TempQueue中讀取男女生的信息,放到stuTable數(shù)組中,表示該首歌的配對情況。下首歌開始時,讓臨時隊列中的學生再根據(jù)性別依次進入男女循環(huán)隊列。同時將存放歌曲的MusicList循環(huán)鏈表指針后移,播放下首歌曲,再執(zhí)行上述操作,便可實現(xiàn)循環(huán)配對。第四章 編碼調(diào)試4.1 調(diào)試環(huán)境硬件環(huán)境:Intel 1GHZ處理器或AMD同類處理器,512M或以上內(nèi)存容量,10G或以上硬盤容量,可連接互聯(lián)網(wǎng)的相關(guān)設(shè)備。軟件環(huán)境軟件、操作系統(tǒng):Windows XP或Windows 2003或Windows vista或Windows 7操作系統(tǒng),Microsoft Visual Studio 2008。4.2 調(diào)試方法為了提高測試效率,降低測試本錢,本測試方案采用黑盒法設(shè)計根本的測試方案,再用白盒法補充一些方案。在黑盒法測試方案中,采用等價劃分技術(shù),把所有可能的數(shù)據(jù)劃分成幾個等價類。4.3 調(diào)試項目與調(diào)試結(jié)果4.3.1 登陸測試用戶根據(jù)用戶名與密碼登陸系統(tǒng),內(nèi)置用戶為Admin,密碼為888888。登陸成功如圖4-1所示,登陸失敗如圖4-2所示圖 4-1 登陸成功圖 4-2 登陸失敗4.3.2 加載學生信息 可以從文件或者手動輸入學生信息,從文件中選擇時,可以選擇不同的文件,其運行結(jié)果如圖4-2 與圖4-3 所示圖 4-3 選擇信息來源圖 4-4 顯示獲取信息4.3.3 學生配對調(diào)試 在進展配對之前,需要先將音樂信息加載到系統(tǒng)中,其加載過程如圖4-5所示圖 4-5 加載音樂 學生就位與音樂加載成功后,開始播放音樂,并進展配對,其音樂播放情況與每首歌曲的配對情況如圖4-6、圖4-7與圖4-8所示圖 4-6 配對開始圖 4-7 播放下一首圖 4-8 循環(huán)配對4.3.4 顯示總配對 在整個過程完畢后,停止播放音樂,可以顯示整個過程的配對情況,其結(jié)果如圖4-9所示圖 4-9 顯示配對結(jié)果4.3.5 查詢配對 可以根據(jù)男女生的某某查詢兩人的配對情況,當輸入兩個學生某某時,顯示在整個過程中的配對情況,其結(jié)果如圖 4-10所示圖4-10 某某查詢配對 根據(jù)每一首歌曲情況查詢在本首歌曲中的配對情況,其結(jié)果如圖4-11 所示圖 4-11 按歌名查找第五章 總結(jié)這次的課程設(shè)計懂得了理論與實際相結(jié)合是很非常重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為,從而提高自己的實際動手能力和獨立思考的能力。在整個設(shè)計過程中,構(gòu)思是很花費時間的,在構(gòu)思總體架構(gòu)時,需要先將需求分析搞清楚,需要在找到了需要解決的問題后,再想方法解決該問題。而不是在設(shè)計過程中邊想邊解決,需要先將所有可能的問題都考慮到,再依次解決。在整個系統(tǒng)設(shè)計完成后,如果再遇到新的問題,可以對系統(tǒng)進展適當?shù)母?。調(diào)試時經(jīng)常會遇到這樣那樣的錯誤,有的時候是因為一些最根本的錯誤,如標點的中英錯誤,括號的匹配問題,數(shù)據(jù)的輸入錯誤等。當然,也有很多地方是因為用錯了解決方法。在設(shè)計的過程中,最能表現(xiàn)出的缺點就是根底不扎實,本可以防止的錯誤卻一再出現(xiàn)。在實現(xiàn)舞池配對問題過程中,需要使學生循環(huán)配對,此程序設(shè)計的是當一個光盤的音樂播放完畢時,整個配對過程隨之完畢,而沒有讓學生再次進去坐席,導致不再從新將學生入座,就無法實現(xiàn)配對。設(shè)計的是在每首歌開始之前學生進入隊列,可以改為當某個學生坐席為空時,隨即讓學生再次進入隊列,可以解決不能重復(fù)換歌曲的問題。剛開始的時候我直接在開發(fā)環(huán)境下一邊看題一邊寫代碼,瞪了半天什么也沒寫出來,于是我便先開始在紙上畫畫寫寫,將事件的整個過程畫下來,然后考慮怎么才能運用代碼來實現(xiàn),一邊思考一邊寫一些粗略的代碼,最后從上到下執(zhí)行代碼看看是不是符合題目要求。有沒有什么漏洞。等這些完成以后,再在開發(fā)環(huán)境下將代碼完善、編譯和調(diào)試。雖然說代碼還有許多要改良的地方,有的功能還不夠完善,可畢竟是自己親自寫出來的,對于程序的條理有了一個清晰的了解,對編程也有了更加深刻的認識。參考文獻1 譚浩強. C程序設(shè)計(第三版)M.:清華大學,2005.2 嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)M.:清華大學,1997.3 陸麗娜. 軟件工程. :經(jīng)濟科學,2005.4 姚詩斌.數(shù)據(jù)庫系統(tǒng)根底.計算機工程與應(yīng)用,1981年第8期附錄 系統(tǒng)源代碼#include<iostream>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<Windows.h>#define MAXQSIZE 20 /循環(huán)隊列最大存儲量#define STU_SIZE 5 /學生人數(shù)#define SIZE 100 int idCount=1000;/全局變量控制學生id自增int length;/記錄每首歌配對的數(shù)量int index=0;/記錄最終配對表的下標usingnamespace std;/舞池就坐后的學生信息結(jié)構(gòu)體struct Adminchar name15;char passWord15;Admin *next;Admin *admin;struct FinalStuchar name15;char sex3;int id;FinalStu stuSTU_SIZE;FinalStu stuSeatSTU_SIZE;/用來存放入座后的學生信息FinalStu stuTableSTU_SIZE2;/用來存放沒收歌曲的配對情況/舞池座位struct StuQueueFinalStu *base;int front;int rear;StuQueue Boys; /男生隊列StuQueue Girls; /女生隊列/初始化學生坐席void InitQueue(StuQueue &Q)Q.base=(FinalStu*)malloc(MAXQSIZE*sizeof(FinalStu);if(Q.base=NULL)return ;Q.front=Q.rear=0;/學生就坐,首次入隊,需要獲取學生的idvoid EnQueue(StuQueue &Q,FinalStu stu)int i=100;if(Q.rear+1)%MAXQSIZE=Q.front)return ;strcpy(Q.baseQ.rear.name,stu.name);strcpy(Q.baseQ.rear.sex,stu.sex);Q.baseQ.rear.id=idCount+;Q.rear=(Q.rear+1)%MAXQSIZE;/非首次入隊,不需獲取學生的idvoid EnQueue2(StuQueue &Q,FinalStu stu)strcpy(Q.baseQ.rear.name,stu.name);strcpy(Q.baseQ.rear.sex,stu.sex);Q.baseQ.rear.id=stu.id;Q.rear=(Q.rear+1)%MAXQSIZE;/從坐席上出來FinalStu DeQueue(StuQueue &Q)FinalStu stu;if(Q.rear!=Q.front)stu=Q.baseQ.front;Q.front=(Q.front+1)%MAXQSIZE;return stu;/存放音樂信息struct Musicchar M_Name15;Music *next;/存放音樂鏈,循環(huán)鏈表struct MusicListMusic *head; Music *tail;MusicList ML;Music *M_p;/初始化指針void InitMusic(MusicList & MList)MList.head=MList.tail=(Music *)malloc(sizeof(Music);MList.head->next=NULL;/向音樂鏈表中添加音樂void InsertMusic(MusicList &MList,char* name)Music *p=(Music*)malloc(sizeof(Music);MList.tail->next=p;strcpy(p->M_Name,name);MList.tail=p;MList.tail->next=MList.head;/臨時隊列,用于存放從男女生隊列中配對成成功的學生信息struct TempQueueFinalStu stu;TempQueue * next;struct TempQListTempQueue *front;TempQueue *rear;TempQList TempQL; /臨時隊列,用于存放每次出來的男女生信息void InitQList(TempQList &TQL)TQL.front=TQL.rear=(TempQueue *)malloc(sizeof(TempQueue);TQL.front->next=NULL;void EnTempQueue(TempQList & TQL,FinalStu stu)TempQueue *p=(TempQueue *)malloc(sizeof(TempQueue);p->stu=stu;p->next=NULL;TQL.rear->next=p;TQL.rear=p;FinalStu DeTempQueue(TempQList &TQL)FinalStu stu;TempQueue *p;p=TQL.front->next;if(p=TQL.rear)stu=p->stu;TQL.rear=TQL.front;elsestu=p->stu;TQL.front->next=p->next;free(p);return stu;/=配對信息存放=struct MatchListchar musiame20;FinalStu stu2;MatchList matchTableSIZE;/從鍵盤讀入學生信息void GetInfKey()for(int i=0;i<STU_SIZE;i+)cout<<"輸入第"<<i+1<<"個學生的某某:"scanf("%s",stui.name);cout<<"輸入第"<<i+1<<"個學生的性別:"scanf("%s",stui.sex);/學生入座void StudentSit()for(int i=0;i<STU_SIZE;i+)if(strcmp(stui.sex,"男")=0)EnQueue(Boys,stui);elseEnQueue(Girls,stui);/獲取就坐后的男女生性別、某某、編號,stuSeat 存放就坐后的學生信息,包括學生編號void GetStuSeat()int i=0; int j=0;i=Boys.front;j=Girls.front;while(i!=Boys.rear)stuSeati=Boys.basei;i+;while(j!=Girls.rear)stuSeati=Girls.basej;j+;i+;/將就座的學生信息寫入文件int InFileStuSeat()FILE *fp_Seat;int res=0;if(fp_Seat=fopen("Seat.txt","wt")=NULL)cout<<"讀取學生座位信息失??!"return -1;fprintf(fp_Seat,"某某t性別t序號n");for(int i=0;i<STU_SIZE;i+)fprintf(fp_Seat,"%st%st%d",stuSeati.name,stuSeati.sex,stuSeati.id);fprintf(fp_Seat,"n");res+;fclose(fp_Seat);return res;void PrintStuSeat()cout<<"ttt某某t性別t序號"<<endl;for(int i=0;i<STU_SIZE;i+)cout<<"ttt"<<stuSeati.name<<"t"cout<<stuSeati.sex<<"t"<<stuSeati.id<<endl;/從文件中獲取管理員信息void ReadAdmin()admin=(Admin*)malloc(sizeof(Admin);admin->next=NULL;Admin *q=admin;FILE *fp_Admin;if(fp_Admin=fopen("admin.txt","rt")=NULL)cout<<"打開文件失??!"return;while(!feof(fp_Admin)Admin *p=(Admin *)malloc(sizeof(Admin); p->next=NULL;fscanf(fp_Admin,"%s%s",p->name,p->passWord);q->next=p;q=p;fclose(fp_Admin);/從文件獲取學生信息void ReadStuFile(int res)FILE *fp;if(res=1)if(fp=fopen("student1.txt","rt")=NULL)cout<<"打開文件失??!"<<endl;return;elseif(res=2)if(fp=fopen("student2.txt","rt")=NULL)cout<<"打開文件失敗!"<<endl;return;int i=0;while(!feof(fp)fscanf(fp,"%s%s",stui.name,stui.sex);i+;if(i>=STU_SIZE)break;fclose(fp);/加載音樂信息int LoadMusic(int cd)char music520; /存放從文件中獲取的音樂名稱int res=0;FILE *fp_music;if(cd=1)if(fp_music=fopen("music1.txt","rt")=NULL)cout<<"打開音樂文件失??!"<<endl;return -1;elseif(cd=2)if(fp_music=fopen("music2.txt","rt")=NULL)cout<<"打開音樂文件失??!"<<endl;return -1;for(int j=0;j<5;j+)if(fread(musicj,20*sizeof(char),1,fp_music)=1)res+;fclose(fp_music);InitMusic(ML);for(int i=0;i<5;i+)InsertMusic(ML,musici);return res;int InFileMatchTable()FILE *fp_MTable;if(fp_MTable=fopen("matchtable.txt","wt")=NULL)cout<<"打開文件失敗"<<endl;return -1;fprintf(fp_MTable,"歌曲名稱t某某t性別t序號t某某t性別t序號n");for(int i=0;i<index;i+)fprintf(fp_MTable,"%stt%st%st%dt",matchTablei.musiame,matchTablei.stu0.name,matchTablei.stu0.sex,matchTablei.stu0.id);fprintf(fp_MTable,"%st%st%dn",matchTablei.stu1.name,matchTablei.stu1.sex,matchTablei.stu1.id);fclose(fp_MTable);return 1;void StudentSitAgain()FinalStu stu;while(TempQL.front!=TempQL.rear)stu=DeTempQueue(TempQL);if(strcmp(stu.sex,"男")=0)EnQueue2(Boys,stu);elseEnQueue2(Girls,stu);/播放歌曲void PlayMusic()cout<<"tt正在播放:t"<<M_p->M_Name;/下一首void NextMusic()M_p=M_p->next;if(M_p=ML.head)M_p=ML.head->next;/學生配對void Match()/FinalStu studentSTU_SIZE;intstatic i=0;int j=0;length=0;while(Boys.front!=Boys.rear&&Girls.front!=Girls.rear)EnTempQueue(TempQL,DeQueue(Boys); /從男生隊列中出來進入臨時隊列EnTempQueue(TempQL,DeQueue(Girls);/從女生隊列中出來進入臨時隊列l(wèi)ength+;/記錄每首歌的配對數(shù)/從臨時隊列中將信息賦值給表TempQueue *tem=TempQL.front->next;while(tem)strcpy(matchTableindex.musiame,M_p->M_Name);strcpy(matchTableindex.stu0.name,tem->stu.name);strcpy(matchTableindex.stu0.sex,tem->stu.sex);matchTableindex.stu0.id=tem->stu.id;/-每曲歌的配對情況strcpy(stuTablej0.name,tem->stu.name);strcpy(stuTablej0.sex,tem->stu.sex);stuTablej0.id=tem->stu.id;tem=tem->next;/-整個播放過程的配對表strcpy(matchTableindex.stu1.name,tem->stu.name);strcpy(matchTableindex.stu1.sex,tem->stu.sex);matchTableindex.stu1.id=tem->stu.id;/-每首歌配對表strcpy(stuTablej1.name,tem->stu.name);strcpy(stuTablej1.sex,tem->stu.sex);stuTablej1.id=tem->stu.id;tem=tem->next;index+;j+;/顯示每首歌配對情況void PrintEachMatch()cout<<endl;cout<<"本首歌的配對情況:"<<endl;cout<<"某某t性別t序號t某某t性別t序號"<<endl;for(int i=0;i<length;i+) /length為每首歌的配對長度cout<<stuTablei0.name<<"t"<<stuTablei0.sex<<"t"<<stuTablei0.id<<"t" cout<<stuTablei1.name<<"t"<<stuTablei1.sex<<"t"<<stuTablei1.id<<endl;/播放下首歌時需要進展的各種操作void Next()StudentSitAgain();NextMusic();PlayMusic();Match();PrintEachMatch();/-獲取要顯示信息的一些操作/-顯示界面的一些函數(shù)void MainMenu()cout<<"tttt "<<"主界面"<<endl;cout<<"ttt"<<"1、學生就坐"cout<<"t"<<"2、每曲配對"<<endl;cout<<"ttt"<<"3、顯示結(jié)果"cout<<"t"<<"4、查詢配對"<<endl;cout<<"tttt 5、退出"/配對顯示void PrintMatchTable()cout<<"歌曲名稱t某某t性別t序號t某某t性別t序號"<<endl;for(int i=0;i<index;i+)cout<<matchTablei.musiame<<"t"<<matchTablei.stu0.name<<"t"<<matchTablei.stu0.sex<<"t"<<matchTablei.stu0.id<<"t"cout<<matchTablei.stu1.name<<"t"<<matchTablei.stu1.sex<<"t"<<matchTablei.stu1.id<<endl;void PrintStuRes()cout<<"ttt請選擇學生信息來源:"<<endl;cout<<"ttt1、按班級獲取(推薦)"<<endl;cout<<"ttt2、手動輸入."<<endl;void StudentChose()PrintStuRes();cout<<"請選擇操作:"int res;cin>>res;switch(res)case 1: /從文件讀取數(shù)據(jù)int res;cout<<"請選擇班級:"<<endl;cout<<"1.三年一班t2.三年二班"<<endl;cin>>res;if(res=1)ReadStuFile(1);elseif(res=2)ReadStuFile(2);break;case 2:cout<<"開始輸入."<<endl;GetInfKey(); /鍵盤鍵入數(shù)據(jù)break;default:cout<<"輸入有誤,再見"<<endl;break;void MusicMenu()cout<<"請選擇要放入的光盤類型:"<<endl;cout<<"1.流行t2.復(fù)古n"int res,i;char ch;cin>>res;if(res=1)i=LoadMusic(1);elsei=LoadMusic(2);if(i)M_p=ML.head->next;/p指向第一首歌cout<<"歌曲光盤已就位,是否現(xiàn)在播放(Y/N)"<<endl;cin>>ch;InitQList(TempQL); /初始化臨時隊列if(ch='Y'|ch='y')system("cls");PlayMusic();Match();PrintEachMatch();cout<<"按n進展下一首歌曲、n"cout<<"按q停止播放音樂、"<<endl;cin>>ch;while(ch='n'|ch='N')system("cls");Next();cout<<"按n進展下一首歌曲、n"cout<<"按q停止播放音樂、"<<endl;cin>>ch;if(ch='q'|ch='Q')return;void Wele()cout<<"tttt歡迎進入進入舞池"<<endl<<endl;cout<<"ttt按任意鍵繼續(xù)."getch();system("cls");void LoadAdmin()Wele();int res=0;int i;ReadAdmin();char userName15;char key15;for( i=0;i<3;i+)Admin *p=admin->next;cout<<"ttt請輸入您的用戶名:"cin>>userName;cout<<"ttt請輸入您的密 碼:"cin>>key;while(p)if(strcmp(p->name,userName)=0)break;p=p->next;if(!p)system("cls");cout<<"ttt輸入的用戶名不存在"<<endl;continue;if(p)if(strcmp(p->passWord,key)=0)system("cls");cout<<"tttt歡迎回來."Sleep(500);system("cls");cout<<"tttt歡迎回來."Sleep(500);system("cls");cout<<"tttt歡迎回來."Sleep(500);/system("cls");break;elsesystem("cls");cout<<"ttt輸入的密碼錯誤、"<<endl;continue;if(i>=3)cout<<"ttt您今天的機會已經(jīng)用完,再見"exit(0);void ShowMessage()system("cls");int res;cout<<"ttt選擇要操作的信息:"<<endl;cout<<"ttt1.學生座位信息t2.學生配對信息"<<endl;cin>>res;if(res=1)cout<<"ttt座位信息如下:"<<endl;PrintStuSeat();char ch;cout<<"是否將該信息寫入文件(Y/N):"cin>>ch;if(ch='Y'|ch='y')if(InFileMatchTable()cout<<"數(shù)據(jù)已寫入文件."<<endl;elseif(res=2)PrintMatchTable();char ch;cout<<"是否將該信息寫入文件(Y/N):"cin>>ch;if(ch='Y'|ch='y')if(InFileMatchTable()cout<<"數(shù)據(jù)已寫入文件."<<endl;Sleep(3000);void Quit() system("CLS"); printf("nnnnnnnnttt o");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使用");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使用o");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使用onntttt -");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使用onntttt -GoodBye!");Sleep(200);system("CLS"); printf("nnnnnnnnttt o歡迎下次使用onntttt -GoodBye!n");void CheckByName() /根據(jù)某某查詢配對情況char boyName15;char girlName15;cout<<"請輸入男生某某:"cin>>boyName;cout<<"請輸入女生某某:"cin>>girlName;int count=0;for(int i=0;i<index;i+)if(strcmp(matchTablei.stu0.name,boyName)=0&& strcmp(matchTablei.stu1.name,girlName)=0)count+;if(count=0)cout<<"未找到配對情況:"elsecout<<"ttt查詢的學生的配對情況如下:"<<endl;cout<<"歌曲名稱t某某t性別t編號t某某t性別t編號"<<endl;for(int j=0;j<index;j+)if(strcmp(matchTablej.stu0.name,boyName)=0&& strcmp(matchTablej.stu1.name,girlName)=0)cout<<matchTablej.musiame<<"t"<<matchTablej.stu0.name<<"t"<<matchTablej.stu0.sex<<"t"<<matchTablej.stu0.id<<"t"cout<<matchTablej.stu1.name<<"t"<<matchTablej.stu1.sex<<"t"<<matchTablej.stu1.id<<endl;void CheckByMusic()char Musiame15;cout<<"請輸入歌名:"cin>>Musiame;int count=0;for(int i=0;i<index;i+)if(strcmp(matchTablei.musiame,Musiame)=0)count+;if(count=0)cout<<"未找到該歌曲"elsecout<<"ttt查詢的學生的配對情況如下:"<<endl;cout<<"歌曲名稱t某某t性別t編號t某某t性別t編號"<<endl;for(int j=0;j<index;j+)if(strcmp(matchTablej.musiame,Musiame)=0)cout<<matchTablej.musiame<<"t"<<matchTablej.stu0.name<<"t"<<matchTablej.stu0.sex<<"t"<<matchTablej.stu0.id<<"t"cout<<matchTablej.stu1.name<<"t"<<matchTablej.stu1.sex<<"t"<<matchTablej.stu1.id<<endl;/主界面選項void MainChoose()int ins;LoadAdmin();while(1)system("cls");MainMenu();cout<<endl<<"請選擇操作(1-4):"cin>>ins;switch(ins)case 1:system("cls");StudentChose();InitQueue(Boys);InitQueue(Girls);StudentSit(); /學生分別入座GetStuSeat(); /獲取學生座位信息cout<<"ttt男女生已分別就位."<<endl;cout<<"ttt座位信息如下:"<<endl;PrintStuSeat();char ch;cout<<"是否將該信息寫入文件(Y/N):"cin>>ch;if(ch='Y'|ch='y')if(InFileStuSeat()cout<<"數(shù)據(jù)已寫入文件."<<endl;Sleep(3000);break;case 2:system("cls");cout<<"tttt請先放入歌曲光盤."<<endl;MusicMenu();break;case 3:ShowMessage();break;case 4:system("cls");cout<<"ttt請選擇查詢的方式:"<<endl;cout<<"ttt1.按學生某某t2.按歌曲名"<<endl;int i;cin>>i;switch(i)case 1:CheckByName();break;case 2:CheckByMusic();break;/CheckByMusic();getch

注意事項

本文(大大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 舞伴問題)為本站會員(痛***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!