舞會(huì)配對(duì)問(wèn)題課程設(shè)計(jì)(精編版)_第1頁(yè)
舞會(huì)配對(duì)問(wèn)題課程設(shè)計(jì)(精編版)_第2頁(yè)
舞會(huì)配對(duì)問(wèn)題課程設(shè)計(jì)(精編版)_第3頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告撰寫要求(一)紙張與頁(yè)面要求1 采用國(guó)際標(biāo)準(zhǔn)a4 型打印紙或復(fù)印紙,縱向打印。2 封頁(yè)和頁(yè)面按照下面模板書(shū)寫(正文為:小四宋體1.5 倍行距)。3圖表及圖表標(biāo)題按照模板中的表示書(shū)寫。(二)課設(shè)報(bào)告書(shū)的內(nèi)容應(yīng)包括以下各個(gè)部分:(按照以下順序裝訂)1. 封頁(yè)( 見(jiàn)課設(shè)模版 )2、學(xué)術(shù)誠(chéng)信聲明,所有學(xué)生必須本人簽字,否則教師拒絕給予成績(jī)。2. 任務(wù)書(shū) ( 學(xué)生教師均要簽字, 信息填寫完整 )3. 目錄4. 正文一般應(yīng)包括以下內(nèi)容:( 1) 題目介紹和功能要求(或描述)課程設(shè)計(jì)任務(wù)的詳細(xì)描述( 注意不能直接抄任務(wù)書(shū)), 將內(nèi)容做更詳細(xì)的具體的分析與描述;( 2)系統(tǒng)功能模塊結(jié)構(gòu)圖

2、繪制系統(tǒng)功能結(jié)構(gòu)框圖及主要模塊的功能說(shuō)明;( 3)使用的數(shù)據(jù)結(jié)構(gòu)的描述:數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明;( 4)涉及到的函數(shù)的描述;( 5)主要算法描述 (程序流程圖 )( 6)給出程序測(cè)試/ 運(yùn)行的結(jié)果設(shè)計(jì)多組數(shù)據(jù)加以描述(包括輸入數(shù)據(jù)和輸出結(jié)果)( 7)課程設(shè)計(jì)的總結(jié)及體會(huì)( 8)參考文獻(xiàn)格式要求: 1 作者,等 .書(shū)名. 出版地:出版社,出版年5. 附錄:程序清單( 應(yīng)帶有必要的注釋)-沈陽(yáng)航空航天大學(xué)課 程 設(shè) 計(jì) 報(bào) 告課程設(shè)計(jì)名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)課程設(shè)計(jì)題目:舞會(huì)配對(duì)問(wèn)題院(系): 專業(yè):班級(jí):學(xué)號(hào):姓名: 指導(dǎo)教師:說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依

3、據(jù);格式不符合要求;數(shù)據(jù)不實(shí) ,不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。學(xué)術(shù)誠(chéng)信聲明本人聲明 :所呈交的報(bào)告(含電子版及數(shù)據(jù)文ixin 件)是我個(gè)人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中 特別加以標(biāo)注或致謝中所羅列的內(nèi)容以外,報(bào)告中不包含其他人己經(jīng) 發(fā)表或撰寫過(guò)的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過(guò)的材料。與 我一同工作的同學(xué)對(duì)本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的 說(shuō)明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接 受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評(píng)分結(jié)論并承擔(dān)相關(guān)一 切后果。本人簽名 :日期:年月日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)任務(wù)

4、書(shū)課程設(shè)計(jì)名稱數(shù) 據(jù)結(jié) 構(gòu)課 程設(shè) 計(jì)專業(yè)學(xué)生姓名班級(jí)學(xué)號(hào)題目名稱起止日期年月日起至年月日止課設(shè)內(nèi)容和要求:參考資料:算法與數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言程序設(shè)計(jì)教 研室 審核 意見(jiàn) :教 研室 主任 簽字 :指導(dǎo)教師(簽名)年月日學(xué) 生(簽名)年月日課程設(shè)計(jì)總結(jié):緊張的兩周數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)很快就過(guò)去了,通過(guò)這兩周的數(shù)據(jù)結(jié)果編程練習(xí),不僅使我鞏固了以前的知識(shí)并在此基礎(chǔ)上還對(duì)數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和算法有了更深的了解,使我們?cè)谶@門課程的實(shí)際應(yīng)用上也有了一個(gè)提高。當(dāng)我拿到舞會(huì)配對(duì)問(wèn)題的這個(gè)課程設(shè)計(jì)任務(wù)書(shū)的時(shí)候,我不知道和個(gè)程序應(yīng)該如何下手,應(yīng)該選擇什么數(shù)據(jù)結(jié)構(gòu)才能使整個(gè)算法的效率很高,但是參考了一些c 語(yǔ)言專業(yè)方面比較權(quán)

5、威的資料以后,我決定選用隊(duì)列這種數(shù)據(jù)結(jié)構(gòu),因?yàn)檎麄€(gè)程序主要是男女生配對(duì)進(jìn)行跳 舞,將男女生分別放在兩隊(duì)列里進(jìn)行各種操作就會(huì)方便很多,再確定了使用隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)之后, 我就開(kāi)始認(rèn)真查閱資料,由于隊(duì)列需要用到很多指針?lè)矫娴闹R(shí),我又對(duì)以前學(xué)過(guò)的指針好好復(fù)習(xí)了一下。它激發(fā)了我們創(chuàng)新意識(shí), 開(kāi)發(fā)創(chuàng)造的能力和培養(yǎng)溝通能力隨著高級(jí)語(yǔ)言的發(fā)展, 數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)的研究和應(yīng)用中已展現(xiàn)出強(qiáng)大的生命力, 它兼顧了諸多高級(jí)語(yǔ)言的特點(diǎn), 是一種典型的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,它處理能力強(qiáng),使用靈活方便,應(yīng)用面廣,具有良好的可移植性。最后,在這次的課程設(shè)計(jì)過(guò)程中,我們深刻的認(rèn)識(shí)到了自己在學(xué)習(xí)方面的不足之處,讓 我發(fā)現(xiàn)很多沒(méi)

6、有完全理解的舊知識(shí),這次課程設(shè)計(jì)從某種角度來(lái)說(shuō)也是一次對(duì)以前學(xué)過(guò)的知識(shí)進(jìn)行查漏補(bǔ)缺的好時(shí)機(jī),我知道我還有太多的基本的思想沒(méi)有真正的理解,當(dāng)然我們不會(huì)灰心, 我們會(huì)在以后的日子里努力彌補(bǔ)我們的不足。總的來(lái)說(shuō), 這次課程設(shè)計(jì)讓我學(xué)到不少知識(shí),讓我受益匪淺。目錄1概要設(shè)計(jì) .-.1. -1.1題目?jī)?nèi)容和要求1-1.2系統(tǒng)功能模塊 .1-2詳細(xì)設(shè)計(jì) .-.3. -2.1 主函數(shù)模塊 .3. -2.2 輸入信息模塊4-2.3輸出信息模塊 .5-2.4信息查詢模塊 .6-2.5退出模塊 .6. -3調(diào)試分析 .-.7. -4使用說(shuō)明 .-.8. -4.1使用說(shuō)明 .8. -4.2執(zhí)行結(jié)果 .8. -參考文

7、獻(xiàn) .-.1.0 -附錄(關(guān)鍵部分程序清單).-.11 -1概要設(shè)計(jì)1.1 題目?jī)?nèi)容和要求在一個(gè)舞會(huì)上男女生分別編號(hào)坐在舞池兩邊的椅子上等待跳舞,舞廳內(nèi)播放不同的舞曲, 每曲開(kāi)始時(shí), 男生和女生中各出一人從舞池走向舞臺(tái)配對(duì)跳舞,如果本首歌曲沒(méi)有成功配對(duì)者坐著等待下一首歌曲找舞伴。請(qǐng)?jiān)O(shè)計(jì)一個(gè)程序模擬動(dòng)態(tài)地顯示出上述過(guò)程。要求是程序運(yùn)行時(shí)可以進(jìn)行初始化設(shè)置,可以自定義男生人數(shù),女生人數(shù), 舞曲編號(hào)。程序中可以輸出所有舞曲配對(duì)情況,包括舞曲編號(hào),男女生配對(duì)情況。為 了方便用戶進(jìn)行查詢, 程序支持用戶可以選擇單獨(dú)查看某個(gè)編號(hào)舞曲的男女生的配對(duì)情況本程序代碼選擇合適的數(shù)據(jù)結(jié)構(gòu),程序運(yùn)行時(shí)侯界面要美觀實(shí)用

8、。按課程設(shè)計(jì)老師要求寫好課程設(shè)計(jì)報(bào)告。1.2 系統(tǒng)功能模塊對(duì)本程序進(jìn)行功能分析,本程序包括五個(gè)模塊,它們分別為主函數(shù)模塊,輸 入信息模塊,輸出信息模塊,查詢信息模塊和退出模。塊,其中主函數(shù)模塊的功 能是調(diào)用其余相關(guān)功能模塊實(shí)現(xiàn)相應(yīng)的功能,輸入信息模塊可以自定義舞會(huì)信息, 包括男女生的人數(shù)和舞曲的信息,輸出信息模塊可以輸出所有舞曲的男女生配對(duì) 情況,為了方便用戶使用,信息查詢模塊可以單獨(dú)查看某個(gè)舞曲的男女生搭配情 況,退出模塊的作用是退出程序,圖 1.1 為本程序的功能模塊圖。舞會(huì)配對(duì)程序退出模塊主輸輸查函入出詢數(shù)模信息信息信息塊模模模塊塊塊圖 1.1系統(tǒng)總體模塊圖2 詳細(xì)設(shè)計(jì)2.1 主函數(shù)模塊

9、主函數(shù) main ()輸入 j10j輸入信息sr ()男隊(duì)和女隊(duì)不空yn輸出配對(duì)情況sc ()銷毀隊(duì)列xh()結(jié)束主函數(shù)是整個(gè)程序的主要部分,是實(shí)現(xiàn)程序各個(gè)功能的基礎(chǔ),通過(guò)主函數(shù)可以調(diào)用程序中的自定義數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)程序所具有自定義初始化數(shù)據(jù)的功能自定義的數(shù)據(jù)內(nèi)容都包括跳舞人員信息,即男生人數(shù),女生人數(shù),曲目信息即所有曲目的總數(shù),顯示舞會(huì)中所有曲目中男女舞伴的搭配情況等功能,并且主函數(shù)還可以調(diào)用信息查詢模塊,實(shí)現(xiàn)單首舞曲中男生和女生的搭配情況,這個(gè)功能可以節(jié)約使用者的時(shí)間,提高程序的友好性,主函數(shù)模塊是程序中不可或缺的部分。本程序的主函數(shù)流程圖如圖 2.1 所示。圖 2.1主函數(shù)模塊流程圖2.2

10、輸入信息模塊本模塊是程序初始化的重要過(guò)程,在本模塊中,用戶可以根據(jù)自己的需要去定義程序的初始信息,也就是男生和女生的總?cè)藬?shù),還有總的曲目數(shù),在輸入男生和女生信息之前首先要建立兩個(gè)隊(duì)列,分別存放男生和女生的信息,然后將每一個(gè)男生和女生都看成一個(gè)元素,然后將元素插入建立的隊(duì)列的隊(duì)尾,隨著隊(duì)尾指針的后移,逐步的將男生和女生的所有信息放入到建立的兩個(gè)隊(duì)列中,此時(shí)需要判斷是否輸入了男女生的信息,如果未輸入,則提示隊(duì)列為空隊(duì)列(隊(duì)列頭指針與隊(duì)列的尾指針相等) ,要求用戶重新輸入數(shù)據(jù)。 本模塊的流程圖如圖 2.2 所示。輸入跳舞人的信息sr()輸入人跳舞人的個(gè)數(shù)ni=0i<nny是否為男ny男入男隊(duì)女

11、入女隊(duì)i+結(jié)束圖 2.2輸入信息模塊流程圖2.3 輸出信息模塊輸出函數(shù)sc ()輸出配對(duì)情況如下男隊(duì)和女隊(duì)不空y男隊(duì)列隊(duì)頭出隊(duì)女隊(duì)列隊(duì)頭出隊(duì)輸出男女配對(duì)情況結(jié)束本模塊是程序的主要部分,這部分的功能是輸出每一首歌曲的跳舞的男生和女生的信息,方便用戶直接查看每首歌曲的男女生配對(duì)情況,在查看男女生信息之前,首先要讓男生和女生出隊(duì),讓他們搭配成舞伴,如果該隊(duì)列為空隊(duì)列,則程序直接返回,如果隊(duì)列不為空,則首先讓男生隊(duì)列和女生隊(duì)列各自的隊(duì)頭先出列進(jìn)行搭配,隨著元素的逐步出隊(duì)而釋放存儲(chǔ)空間,隊(duì)頭指針指針隨之后移,如果隊(duì)列中的所有元素出隊(duì)成功,即隊(duì)列變成空隊(duì)列時(shí)便會(huì)打印每首歌曲的男女生配對(duì)信息。本模塊的流程圖

12、如圖 2.3 所示。n圖 2.3 輸出配對(duì)情況函數(shù)的流程圖2.4 信息查詢模塊本模塊的作用是方便用戶直接查詢自己感興趣的曲目的跳舞人員的信息,本 模塊的存在,大大的提高了用戶的使用體驗(yàn),通過(guò)輸入想查詢的曲目的編號(hào),系 統(tǒng)會(huì)自動(dòng)查詢相關(guān)信息,本模塊的實(shí)現(xiàn)過(guò)程與模塊2.3 有著緊密的聯(lián)系,首先, 將上一個(gè)模塊輸出的每首曲目的跳舞的男女生的信息存儲(chǔ)在一個(gè)預(yù)先定義好的結(jié) 構(gòu)體中,等用戶在查詢的時(shí)候系統(tǒng)直接調(diào)用相關(guān)曲目所在的結(jié)構(gòu)體信息即可,這 樣就可以直接展示每首歌曲跳舞的男生和女生的信息了。是整個(gè)程序界面變得更 加友好,更加人性化。2.5 退出模塊程序?yàn)榱朔奖阌脩羰褂茫?增加了手動(dòng)退出功能, 只要程序

13、不是用戶手動(dòng)退出, 便會(huì)一直循環(huán)運(yùn)行,可以多次使用,避免用戶重復(fù)頻繁的啟動(dòng)程序,每次執(zhí)行完之后程序都會(huì)自動(dòng)清理內(nèi)存重新運(yùn)行, 直到用戶手動(dòng)選擇退出之后程序才會(huì)退出。3 調(diào)試分析問(wèn)題 1:個(gè)別運(yùn)用的變量沒(méi)定義。解決 1:定義變量后再使用。問(wèn)題 2:程序不能循環(huán)使用。解決 2:while語(yǔ)句不能按照要求運(yùn)行 , 添加“ ”,程序結(jié)束后結(jié)束添加continue語(yǔ)句,使程序能夠不退出,一直運(yùn)行。圖 3.1 程序出錯(cuò)圖解決 3:重新定義隊(duì)列,調(diào)整隊(duì)列尾指針的位置,成功建立隊(duì)列,完成了所有曲目的男女配對(duì)信息的輸出。解決后程序運(yùn)行正常,如圖3.2 所示。問(wèn)題 3:隊(duì)列定義時(shí)出現(xiàn)問(wèn)題,導(dǎo)致輸入完信息之后程序死

14、掉,不能繼續(xù)運(yùn)行。如圖 3.1 所示。圖 3.2 改正后運(yùn)行圖4 使用說(shuō)明4.1 使用說(shuō)明1. 在 vc+ 環(huán)境下,將程序代碼輸入。2. 對(duì)輸入好的程序進(jìn)行檢查。3. 修改程序中出現(xiàn)的語(yǔ)法錯(cuò)誤(如:符號(hào)的遺失等。)4. 運(yùn)行程序。5. 在界面中選擇相應(yīng)的功能:(1) 按 1 程序開(kāi)始。(2) 按 0 程序結(jié)束。6. 當(dāng)選擇一個(gè)功能后,程序會(huì)執(zhí)行選擇的功能。7. 當(dāng)想要結(jié)束程序時(shí),選擇功能(2),程序結(jié)束。4.2 執(zhí)行結(jié)果主界面:開(kāi)始時(shí)輸出歡迎使用舞伴配對(duì)系統(tǒng),然后提示用戶進(jìn)行功能選擇使用程序或者退出程序。如圖4.1 所示。圖 4.1 程序歡迎界面1.輸入跳舞人的信息:輸入男女生的人數(shù)和歌曲的總

15、數(shù),儲(chǔ)存起來(lái)并進(jìn)行男女分隊(duì),為舞伴配對(duì)作準(zhǔn)備,如圖4.2 所示。圖 4.2 自定義舞會(huì)信息輸出配對(duì)情況:根據(jù)輸入跳舞人的信息經(jīng)過(guò)操作, 男隊(duì)和女隊(duì)分別從隊(duì)頭出跳舞的人員,作為一對(duì),輸出跳舞人配對(duì)的情況。如圖4.3 所示。圖 4.3 輸出配對(duì)信息用戶可直接輸入曲子編號(hào)查看該曲子是哪位男生和女生在跳舞,戶直接使用。如圖4.4 所示。方便用2.3.圖 4.4 查詢某個(gè)舞曲配對(duì)信息參考文獻(xiàn)1 嚴(yán)蔚敏,吳偉民 . 數(shù)據(jù)結(jié)構(gòu) m. 北京:清華大學(xué)出版社,20072 戴艷等. 零基礎(chǔ)學(xué)算法(第二版)m. 北京:機(jī)械工業(yè)出版社,20123 譚浩強(qiáng).c 語(yǔ)言程序設(shè)計(jì)(第三版)m.北京:清華大學(xué)出版社,20054

16、 張清國(guó).c 語(yǔ)言程序設(shè)計(jì)教程(第二版)m. 北京:清華大學(xué)出版社,20095 張長(zhǎng)海.c 語(yǔ)言程序設(shè)計(jì) m. 北京: 高等教育出版社 ,20066 吳文虎. 程序設(shè)計(jì)基礎(chǔ)(第二版)m. 北京:清華大學(xué)出版社,2004附錄(關(guān)鍵部分程序清單)#include <string.h> #include<stdio.h> #include <time.h> #include <malloc.h> #define maxsize 60#define true 1#define false 0#define ok 1#define error 0#defi

17、ne overflow -1 typedef int system1;struct score/定義結(jié)構(gòu)體,存儲(chǔ)每首歌曲的男女配對(duì)信息int d; int e;stu50;typedef struct qnode int num;struct qnode *next;qnode,* queueptr; typedef struct queueptr front; queueptr rear;linkqueue;void sleep( clock_t wait )/等待時(shí)間clock_t goal;goal = wait + clock(); while( goal > clock() )

18、 ;void initq(linkqueue &q)/初始化空隊(duì)列queueptr p; p=(queueptr)malloc(sizeof(qnode); q.front=p;q.rear=p;q.front->next=null;void enqueue(linkqueue &q,int num)/插入元素建立隊(duì)列queueptr p; p=(queueptr)malloc(sizeof(qnode); p->num=num;p->next=null; q.rear->next=p; q.rear=p;void dequeue(linkqueue &

19、amp;q, int &num)/定義跳舞順序queueptr p,q; if(q.front=q.rear)printf("隊(duì)列為空 ");p=q.front->next; num=p->num;q.front->next=p->next;q=p->next;if(q.rear=q)/只有兩個(gè)元素時(shí)q.rear=q.front; free(p);void printf(linkqueue &f,int i)/顯示第 i 首曲子跳舞的女生queueptr p; int n=1; while(n<i)printf("

20、;_ "); n+;p=f.front->next; while(f.rear!=p)printf("%d ",p->num); p=p->next;printf("%d n",p->num);void printm(linkqueue &m,int i)/顯示第 i 首曲子跳舞的男生queueptr p; int n=1; while(n<i)printf("_ "); n+;p=m.front->next; while(m.rear!=p)printf("%d &qu

21、ot;,p->num); p=p->next;printf("%d n",p->num);int main()while(1)int m,n,k,i,a,b,c,f; int count=0,num; queueptr p,q; linkqueue f;linkqueue m;printf("%n");printf("%沈陽(yáng)航空航天大學(xué) %n");printf("%計(jì)算機(jī)學(xué)院%n");printf("%張慧鑫%n");printf("%n");printf(

22、"歡迎使用本程序n"); printf("按 1 開(kāi)始使用本程序n"); printf("按 0 開(kāi)始退出本程序n");scanf("%d",&f); if(f=1)printf("請(qǐng)輸入女生數(shù)量:"); scanf("%d",&m);printf("請(qǐng)輸入男生數(shù)量:"); scanf("%d",&n);printf("請(qǐng)輸曲子的數(shù)目:"); scanf("%d",&k);/printf("請(qǐng)輸入要查找的男生編號(hào):");/scanf("%d",&a);/printf(&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論