課程設(shè)計(jì)(舞伴配對(duì))_第1頁
課程設(shè)計(jì)(舞伴配對(duì))_第2頁
課程設(shè)計(jì)(舞伴配對(duì))_第3頁
課程設(shè)計(jì)(舞伴配對(duì))_第4頁
課程設(shè)計(jì)(舞伴配對(duì))_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、武漢工程大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院綜合設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 應(yīng)用軟件綜合設(shè)計(jì) 設(shè)計(jì)題目: 舞伴配對(duì) 學(xué)生學(xué)號(hào): 1105080207 專業(yè)班級(jí): 2011級(jí)計(jì)算機(jī)工程2班 學(xué)生姓名: 胡文博 學(xué)生成績: 指導(dǎo)教師(職稱): 莊朋(講師) 課題工作時(shí)間: 13年9月9日 至 13年9 月20日 說明:1、報(bào)告中的第一、二、三項(xiàng)由指導(dǎo)教師在綜合設(shè)計(jì)開始前填寫并發(fā)給每個(gè)學(xué)生;四、五兩項(xiàng)(中英文摘要)由學(xué)生在完成綜合設(shè)計(jì)后填寫。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計(jì)情況給出各項(xiàng)分值及總評(píng)成績。3、指導(dǎo)教師評(píng)語一欄由指導(dǎo)教師就學(xué)生在整個(gè)設(shè)計(jì)期間的平時(shí)表現(xiàn)、設(shè)計(jì)完成情況、報(bào)告的質(zhì)量及答辯情況,給出客觀、全面的

2、評(píng)價(jià)。4、所有學(xué)生必須參加綜合設(shè)計(jì)的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。5、報(bào)告正文字?jǐn)?shù)一般應(yīng)不少于5000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計(jì)的情況另行規(guī)定。6、平時(shí)表現(xiàn)成績低于6分的學(xué)生,其綜合設(shè)計(jì)成績按不及格處理。7、此表格式為武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計(jì)),各教研室可根據(jù)本門綜合設(shè)計(jì)的特點(diǎn)及內(nèi)容做適當(dāng)?shù)恼{(diào)整,并上報(bào)學(xué)院批準(zhǔn)。成績?cè)u(píng)定表學(xué)生姓名: 胡文博 學(xué)號(hào): 1105080207 班級(jí): 2011計(jì)算機(jī)工程2班 類別合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注平時(shí)表現(xiàn)1010按時(shí)參加綜合設(shè)計(jì),無

3、曠課、遲到、早退、違反實(shí)驗(yàn)室紀(jì)律等情況。完成情況3020按設(shè)計(jì)任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計(jì)內(nèi)容,符合要求。10能對(duì)其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問題進(jìn)行正確的回答。報(bào)告質(zhì)量3510報(bào)告文字通順,內(nèi)容翔實(shí),論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報(bào)告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計(jì)方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強(qiáng),具有說服力。5符號(hào)統(tǒng)一;圖表完備、符合規(guī)范要求。5能對(duì)整個(gè)設(shè)計(jì)過程進(jìn)行全面的總結(jié),得出有價(jià)值的結(jié)論或結(jié)果。5參考文獻(xiàn)數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時(shí)間內(nèi)能就所設(shè)

4、計(jì)的內(nèi)容進(jìn)行闡述,言簡意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題??傇u(píng)成績: 分 補(bǔ)充說明: 指導(dǎo)教師: 莊 朋 (簽字)日 期: 2013 年 9 月 20 日答辯記錄表學(xué)生姓名: 胡文博 學(xué)號(hào): 1105080207 班級(jí): 2011計(jì)算機(jī)工程2班 答辯地點(diǎn): 計(jì)算機(jī)工程專業(yè)機(jī)房 答辯內(nèi)容記錄:答辯成績合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注2510在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字): 2013 年 9 月 20 日

5、指導(dǎo)教師評(píng)語指導(dǎo)教師: 莊 朋 (簽字)日 期: 2013 年 9 月 20 日一、綜合設(shè)計(jì)目的、條件、任務(wù)和內(nèi)容要求:算法與數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,在整個(gè)計(jì)算機(jī)課程體系中處于承上啟下的核心地位,它一方面擴(kuò)展和深化在離散數(shù)學(xué)、程序設(shè)計(jì)語言等課程學(xué)到的基本技術(shù)和方法,一方面為進(jìn)一步學(xué)習(xí)其它專業(yè)課奠定堅(jiān)實(shí)的理論與實(shí)踐基礎(chǔ)。課程的主要任務(wù)是學(xué)習(xí)數(shù)據(jù)的邏輯結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)以及相關(guān)的算法設(shè)計(jì)。應(yīng)用軟件綜合設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實(shí)踐課程,是學(xué)習(xí)完數(shù)據(jù)結(jié)構(gòu)課程后的課程設(shè)計(jì),本課程的目的是使學(xué)生學(xué)會(huì)分析待加工處理數(shù)據(jù)的特性,以便選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)以及進(jìn)行相應(yīng)的算法設(shè)計(jì)

6、。在教給學(xué)生數(shù)據(jù)結(jié)構(gòu)選擇和算法設(shè)計(jì)的同時(shí),培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問題和解決問題的能力。 掌握線性表(隊(duì)列)的基本操作及其實(shí)現(xiàn),能夠利用它來解決實(shí)際生活中的問題,并對(duì)文件流的操作做一定了解。內(nèi)容:分兩個(gè)層次層次一:設(shè)計(jì)一個(gè)模擬配對(duì)系統(tǒng),逐步演示參加舞會(huì)的男士和女士各自排隊(duì)進(jìn)入舞廳。舞會(huì)開始時(shí),從兩隊(duì)中按順序組成舞伴開始跳舞。如果男士和女士人數(shù)不等,則多出的人只能等到下一舞曲才能開始。1程序從文本“dance.txt”讀入男士和女士的信息,文件格式如下: 性別 姓名 其中,性別是一個(gè)字符“F”或“M”。當(dāng)文件中記錄讀完后,兩個(gè)隊(duì)列都已形成。2若有人在等待,程

7、序給出有多少人等待,并打印出等待隊(duì)列中第一個(gè)人的名字。層次二:排在隊(duì)列前面的男士可以在女士隊(duì)列中選擇自己最喜歡的女伴來配對(duì)跳舞。 指導(dǎo)教師簽字: 莊 朋 2013 年 8 月 26 日二、進(jìn)度安排:第2周(9.9-9.10) : 學(xué)生熟悉課題的任務(wù)和要求,查閱相關(guān)文獻(xiàn)和資料,并做好編碼準(zhǔn)備第2周 (9.11-9.13) :程序編碼、調(diào)試第3周 (9.16-9.19) :程序編碼、調(diào)試和測(cè)試,書寫報(bào)告第3周 (9.20): 答辯、檢查、驗(yàn)收、遞交設(shè)計(jì)報(bào)告三、應(yīng)收集資料及主要參考文獻(xiàn):應(yīng)收集的資料:面向?qū)ο蟪绦蛟O(shè)計(jì)思想和方法C/C+語言參考手冊(cè)數(shù)據(jù)結(jié)構(gòu)、軟件工程方面參考書籍主要參考文獻(xiàn):1姬濤,周

8、啟生.計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(上冊(cè))教程.北京:中國傳媒大學(xué)出版社,2010. 2張俊,張彥鐸.c+面向?qū)ο蟪绦蛟O(shè)計(jì).第一版,北京:中國鐵道出版社,2008.3譚浩強(qiáng).c+程序設(shè)計(jì).北京:清華大學(xué)出版社,20114李春葆,尹為民.數(shù)據(jù)結(jié)構(gòu)教程(第三版).北京:清華大學(xué)出版社,2008.四、綜合設(shè)計(jì)(課程設(shè)計(jì))摘要(中文): 舞伴配對(duì)系統(tǒng)模擬的是一個(gè)小型的配對(duì)系統(tǒng),此程序?qū)崿F(xiàn)的功能包括五項(xiàng)主要內(nèi)容,即從文件中讀取舞會(huì)人員信息并將其按男女分類進(jìn)隊(duì),顯示舞會(huì)所有男士姓名,顯示舞會(huì)所有女士姓名,進(jìn)行舞會(huì)人員配對(duì),顯示配對(duì)后剩余人員的信息。每個(gè)舞會(huì)人員信息又包括2項(xiàng)內(nèi)容,即性別和姓名。本程序的主要目的是利用

9、平時(shí)編寫程序以及調(diào)試程序的能力,結(jié)合教學(xué)環(huán)節(jié),運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題的能力,為后續(xù)計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。本程序是用c語言寫的,是基于過程設(shè)計(jì)的方法設(shè)計(jì)的,運(yùn)行時(shí)會(huì)有提示,進(jìn)入主菜單界面后,用戶可以根據(jù)提示選擇任意一個(gè)選項(xiàng),程序會(huì)根據(jù)用戶的選項(xiàng)執(zhí)行相應(yīng)的操作,當(dāng)用戶輸入的信息錯(cuò)誤時(shí),程序會(huì)提示用戶錯(cuò)誤信息,進(jìn)而讓用戶在使用本系統(tǒng)時(shí)感到很人性化。關(guān)鍵詞:舞伴配對(duì);c語言;菜單五、綜合設(shè)計(jì)(課程設(shè)計(jì))Abstract(英文):"Partner matching system" is a small simulation matching system, thi

10、s program features include five main elements, namely read from the file prom personnel information and classified by men and women into the team, showing all the men dance name, display names of all the ladies dance for dance personnel pairing, showing the remaining staff after pairing information.

11、 Each party also includes two personnel information content, that gender and name. The main purpose of this program is the use of the usual programming and debugging programs ability to combine teaching, the use of data structure knowledge to solve practical problems, for subsequent computer science

12、 courses and lay a solid foundation. This procedure is used c language is based on the design of the process design methods, the runtime will be prompted to enter the main menu interface, the user can be prompted to choose either option, the program will be based on the user's option to perform

13、the appropriate actions, when a user enters incorrect information, the program will prompt the user an error message, and then let the user of this system was very humane.Keywords:dance partner pairing; c language; menu武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告目 錄摘 要 IIAbstract . II第一章 課題背景. 11.1 設(shè)計(jì)的背景.11.2 設(shè)計(jì)的目的. 11.

14、3 設(shè)計(jì)的意義. 11.4 解決的主要問題. 11.2 技術(shù)要求. 1第二章設(shè)計(jì)簡介及設(shè)計(jì)方案論述 . 22.1 程序主要流程圖.2 2.2 主要設(shè)計(jì)思路.3第三章詳細(xì)設(shè)計(jì).43.1 所有定義的功能函數(shù).4 3.2 主要功能函數(shù)介紹.43.2.1 菜單函數(shù).43.2.2 保存舞會(huì)人員信息函數(shù).53.2.3 讀取舞會(huì)人員信息函數(shù).53.2.4 顯示舞會(huì)人員信息函數(shù).63.2.5 按順序顯示女隊(duì)舞會(huì)成員函數(shù).73.2.6 按給定編號(hào)刪除女士信息函數(shù).73.2.7 舞會(huì)人員配對(duì)函數(shù).83.2.8 配對(duì)后剩余人員信息函數(shù).9 第四章設(shè)計(jì)結(jié)果及分析.104.1 調(diào)試過程及分析.10 總 結(jié) .14 致

15、謝 .16 參考文獻(xiàn) .17 附錄 主要程序代碼 .18 摘 要舞伴配對(duì)系統(tǒng)模擬的是一個(gè)小型的配對(duì)系統(tǒng),此程序?qū)崿F(xiàn)的功能包括五項(xiàng)主要內(nèi)容,即從文件中讀取舞會(huì)人員信息并將其按男女分類進(jìn)隊(duì),顯示舞會(huì)所有男士姓名,顯示舞會(huì)所有女士姓名,進(jìn)行舞會(huì)人員配對(duì),顯示配對(duì)后剩余人員的信息。每個(gè)舞會(huì)人員信息又包括2項(xiàng)內(nèi)容,即性別和姓名。本程序的主要目的是利用平時(shí)編寫程序以及調(diào)試程序的能力,結(jié)合教學(xué)環(huán)節(jié),運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題的能力,為后續(xù)計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。本程序是用c語言寫的,是基于過程設(shè)計(jì)的方法設(shè)計(jì)的,運(yùn)行時(shí)會(huì)有提示,進(jìn)入主菜單界面后,用戶可以根據(jù)提示選擇任意一個(gè)選項(xiàng),程序會(huì)根據(jù)用戶的

16、選項(xiàng)執(zhí)行相應(yīng)的操作,當(dāng)用戶輸入的信息錯(cuò)誤時(shí),程序會(huì)提示用戶錯(cuò)誤信息,進(jìn)而讓用戶在使用本系統(tǒng)時(shí)感到很人性化。關(guān)鍵詞:舞伴配對(duì);c語言;菜單Abstract "Partner matching system" is a small simulation matching system, this program features include five main elements, namely read from the file prom personnel information and classified by men and women into the team

17、, showing all the men dance name, display names of all the ladies dance for dance personnel pairing, showing the remaining staff after pairing information. Each party also includes two personnel information content, that gender and name. The main purpose of this program is the use of the usual progr

18、amming and debugging programs ability to combine teaching, the use of data structure knowledge to solve practical problems, for subsequent computer science courses and lay a solid foundation. This procedure is used c language is based on the design of the process design methods, the runtime will be

19、prompted to enter the main menu interface, the user can be prompted to choose either option, the program will be based on the user's option to perform the appropriate actions, when a user enters incorrect information, the program will prompt the user an error message, and then let the user of th

20、is system was very humane.Keywords:dance partner pairing; c language; menu- 25 -第一章 課題背景1.1 設(shè)計(jì)的背景 當(dāng)今社會(huì)高速發(fā)展,參加舞會(huì)已成為人們放松心情,陶冶情操,調(diào)節(jié)生活的一種重要工具和途徑。參加舞會(huì)的人可能對(duì)各種舞會(huì)的流程都很了解,然而對(duì)那些還沒有參加過舞會(huì)的人來說,適當(dāng)?shù)牧私庖幌聲?huì)務(wù)的流程是很有必要的。利用計(jì)算機(jī)編程來模擬舞會(huì)配對(duì)就是一個(gè)很好的獲取舞會(huì)流程的途徑和方法。用戶可以根據(jù)提示來一步步的熟悉舞會(huì)流程。1.2設(shè)計(jì)的目的 通過本課程的設(shè)計(jì),學(xué)生可以利用c語言及編程技術(shù)進(jìn)行一系列的操作,掌握線性表(

21、隊(duì)列)的基本操作及其實(shí)現(xiàn),能夠利用它來解決實(shí)際生活中的問題,并對(duì)文件流的操作做一定了解。提升運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題的能力,為后續(xù)計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。1.3設(shè)計(jì)的意義舞會(huì)配對(duì)模擬系統(tǒng)的設(shè)計(jì)是對(duì)學(xué)生所學(xué)知識(shí)的一種很好的綜合應(yīng)用,有助于幫學(xué)生進(jìn)一步熟悉和掌握專業(yè)課程的內(nèi)容。用戶在使用本系統(tǒng)時(shí)也能很好的熟悉和了解一般舞會(huì)的進(jìn)展流程,讓沒參加過舞會(huì)的人員也能從其他途徑獲取舞會(huì)流程的有關(guān)信息。1.4解決的主要問題(1)將所有舞會(huì)人員的信息存到指定的文件中(2)從文件中讀取舞會(huì)人員信息并將其按男女分類進(jìn)隊(duì)(3)顯示舞會(huì)所有男士姓名(4)顯示舞會(huì)所有女士姓名(5)進(jìn)行舞會(huì)人員配對(duì)(6)顯

22、示配對(duì)后剩余人員的信息1.5技術(shù)要求熟練掌握c語言的用法及編程技術(shù),會(huì)進(jìn)行程序的調(diào)試應(yīng)用。能進(jìn)行常規(guī)錯(cuò)誤的自我修正。擁有運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題的基本能力,特別是對(duì)線性表(隊(duì)列)的基本操作及其實(shí)現(xiàn)有很好的了解應(yīng)用,能夠利用它來解決實(shí)際生活中的問題,并對(duì)文件流的操作有一定了解。 第二章 設(shè)計(jì)簡介及設(shè)計(jì)方案論述2.1 程序主要流程圖: 菜單界面菜單界面 用戶選擇其中一項(xiàng)執(zhí)行完后返回到主菜單(沒有選退出)退出菜單界面顯示配對(duì)后剩余人員信息進(jìn)行舞會(huì)人員配對(duì)顯示舞會(huì)所有女士姓名顯示舞會(huì)所有男士姓名讀取舞會(huì)人員信息并分類進(jìn)隊(duì) 2-1-1 主要流程圖2.2主要設(shè)計(jì)思路 程序從main函數(shù)開始執(zhí)行,將參加

23、舞會(huì)的人員信息存到結(jié)構(gòu)體數(shù)組中讓后通過Save函數(shù)將舞會(huì)人員信息保存到指定文件中以便用戶讀取。初始化兩個(gè)隊(duì)列,分別將文件中讀取的男士和女士進(jìn)行進(jìn)隊(duì)操作。用戶進(jìn)入根據(jù)提示進(jìn)入系統(tǒng)菜單界面后,會(huì)有6個(gè)選項(xiàng)可供選擇,用戶根據(jù)自己的需要選擇一個(gè)選項(xiàng)后程序就會(huì)調(diào)用相應(yīng)的函數(shù),實(shí)現(xiàn)相應(yīng)的功能。直到用戶選擇退出菜單后,程序運(yùn)行就會(huì)終止。因此只需設(shè)計(jì)好一個(gè)菜單界面以及相應(yīng)的功能的函數(shù)即可。用一個(gè)無限for循環(huán)加switch選擇語句,case后面的6個(gè)相應(yīng)的功能函數(shù)與菜單界面中的序號(hào)一一對(duì)應(yīng),用戶根據(jù)自己的需要,選擇一個(gè)選項(xiàng)后,switch語句就會(huì)調(diào)用相應(yīng)的功能函數(shù),執(zhí)行相應(yīng)的操作。每次執(zhí)行完后,用戶按任意鍵即

24、可再次進(jìn)入菜單界面,再次選擇自己所要執(zhí)行的選項(xiàng)。當(dāng)然,為了使界面更簡潔明了,每次執(zhí)行完相應(yīng)的功能函數(shù),用戶按任意鍵重新進(jìn)入菜單界面時(shí),都會(huì)清屏,即執(zhí)行system("CLS");語句。這樣用戶使用時(shí)界面就不會(huì)顯得那么不美觀。 2-2-1 主函數(shù)截圖第三章 詳細(xì)設(shè)計(jì)3.1所有定義的功能函數(shù)void InitQueue(LiQueue *&q);/初始化隊(duì)列void enQueue(LiQueue *&q,struct dancer k);/進(jìn)隊(duì)int deQueue(LiQueue *&q);/出隊(duì)void Save(struct dancer a);

25、/將舞會(huì)人員信息保存到指定文件中void ReadIn(LiQueue *&p,LiQueue *&q);/從指定文件中讀取舞會(huì)人員信息int Display1(LiQueue *&q);/顯示舞會(huì)人員信息int Display2(LiQueue *&q);/ 按編號(hào)顯示女士信息QNode * Delete1(LiQueue *&q);/刪除男士信息QNode * Delete2(LiQueue *&q,int choice);/按給定編號(hào)刪除女士信息void Find(LiQueue *&p,LiQueue *&q);/舞會(huì)人員

26、配對(duì)void Function(LiQueue *&p,LiQueue *&q);/配對(duì)后剩余人員的信息int menu_select();/菜單界面函數(shù) 3.2主要功能函數(shù)介紹3.2.1菜單函數(shù)int menu_select() int c; printf("按任意鍵進(jìn)入菜單界面.n");/*提示壓任意鍵繼續(xù)*/ getchar(); /*讀入任意字符*/ system("CLS");printf("*菜單界面*nn"); printf(" 1. 從文件中讀取舞會(huì)人員并將其分類排隊(duì)n");prin

27、tf(" 2. 顯示舞會(huì)所有男士姓名n");printf(" 3. 顯示舞會(huì)所有女士姓名n");printf(" 4. 舞會(huì)人員配對(duì)過程n");printf(" 5. 舞會(huì)人員配對(duì)后結(jié)果n");printf(" 6.退出n");printf("*n"); do printf("n 輸入一個(gè)選項(xiàng)(16):"); /*提示輸入選項(xiàng)*/ scanf("%d",&c); /*輸入選擇項(xiàng)*/ while(c<0|c>6); /

28、*選擇項(xiàng)不在5之間重輸*/printf("n");return c; /*返回選擇項(xiàng),主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/調(diào)用菜單函數(shù)時(shí),顯示屏上會(huì)顯示菜單界面,其中switch語句是供用戶選擇的相應(yīng)選項(xiàng),選擇一個(gè)選項(xiàng)后,程序會(huì)調(diào)用相應(yīng)的功能函數(shù)來執(zhí)行。3.2.2保存舞會(huì)人員信息函數(shù)void Save(struct dancer a)FILE *fp;if(fp=fopen("d:dance.txt","wb")=NULL)printf("eroor opening!n");exit(1);if(fwrite(a,si

29、zeof(struct dancer),22,fp)!=22)printf("error writing!n");exit(1);fclose(fp);此函數(shù)的功能是將舞會(huì)人員信息保存到指定路徑的文件中。3.2.3讀取舞會(huì)人員信息函數(shù)void ReadIn(LiQueue *&p,LiQueue *&q)struct dancer t;FILE *fp;int j=15;char r,temp;if(fp=fopen("d:dance.txt","rb")=NULL)printf("error opening

30、!n");exit(1);printf("是否將文件中的所有人都讀取出來(y或n):");getchar();scanf("%c",&r);if(r='y')while(!feof(fp)&&j)fread(&t,sizeof(struct dancer),1,fp);if(t.gender='M')enQueue(p,t);else if(t.gender='F')enQueue(q,t);j-;elseprintf("nn");while(!

31、feof(fp)&&j)fread(&t,sizeof(struct dancer),1,fp);printf("是否從文件中讀取 %s 的信息(y或n)?",);getchar();scanf("%c",&temp);if(temp='y')if(t.gender='M')enQueue(p,t);else if(t.gender='F')enQueue(q,t);j-;此函數(shù)是用來從指定路徑文件中讀取舞會(huì)人員信息并將讀取出來的男士和女士分別進(jìn)隊(duì)。在調(diào)用此函數(shù)時(shí)

32、程序會(huì)提示用戶是否將指定路徑文件中的人全部讀出來,如果選擇y則全部讀出來,否則舞會(huì)人員的信息會(huì)一個(gè)一個(gè)的提示用戶是否讀出。3.2.4顯示舞會(huì)人員信息函數(shù)int Display1(LiQueue *&q) QNode *k; if(q->front=NULL) printf("沒有人排隊(duì)!nn"); return 0; else k=q->front; printf("%c:t",k->x.gender); while(k!=NULL) printf("%st",k->); k=k->n

33、ext; printf("n"); return 1;此函數(shù)的功能是將進(jìn)隊(duì)的舞會(huì)人員顯示出來,男隊(duì)則在前注明M,女隊(duì)則在前注明F。3.2.5按順序顯示女隊(duì)舞會(huì)成員函數(shù)int Display2(LiQueue *&q) QNode *k; int count=1; if(q->front=NULL) return 0; elsek=q->front; while(k!=NULL) printf("%d:%st",count,k->); k=k->next; count+; printf("n"

34、); return count;此函數(shù)的功能是將女隊(duì)中的每個(gè)舞會(huì)人員按順序排列出來,對(duì)手的女士編號(hào)為1,后面的女士編號(hào)依次遞增。這樣有助于男士在選擇舞伴時(shí)只需點(diǎn)擊該女士編號(hào)即可。3.2.6按給定編號(hào)刪除女士信息函數(shù)QNode * Delete2(LiQueue *&q,int choice)int s;QNode *t=q->front;QNode *r;if(choice=1)q->front=q->front->next;return t;elsefor(s=0;s<choice-1;s+)r=t;t=t->next;r->next=t-&

35、gt;next;if(t->next=NULL)q->rear=r;return t;此函數(shù)是按給定的序號(hào)刪除女士信息,男士在選定好相應(yīng)的舞伴序號(hào)時(shí)可調(diào)用此函數(shù)刪除女隊(duì)中對(duì)應(yīng)該序號(hào)的女士的信息,這樣下一位男士在選擇自己的舞伴時(shí)就不會(huì)重復(fù)。3.2.7舞會(huì)人員配對(duì)函數(shù)void Find(LiQueue *&p,LiQueue *&q)int number=1,lab,y=1;QNode *m,*f;LiQueue *result1,*result2;InitQueue(result1);InitQueue(result2);m=p->front;f=q->f

36、ront;while(m!=NULL&&f!=NULL)dolab=Display2(q)-1;printf("%s請(qǐng)選擇上面自己最喜歡的舞蹈女伴(若不選則輸入0):",m->);scanf("%d",&y);if(y<0|y>lab)printf("n");printf("選擇號(hào)碼有誤,請(qǐng)重選n");while(y<0|y>lab); enQueue(result1,(Delete1(p)->x);if(y=0)enQueue(result2

37、,(Delete2(q,1)->x);elseenQueue(result2,(Delete2(q,y)->x);m=p->front;f=q->front;printf("nn");if(result1->front!=NULL)printf("配對(duì)表如下:n"); while(result1->front!=NULL)deQueue(result1);printf("-");deQueue(result2);printf("n");此函數(shù)的功能是進(jìn)行舞會(huì)人員的配對(duì),排在隊(duì)列前

38、的男士可以優(yōu)先選擇自己最喜歡的一名女士,選擇后該男士出隊(duì),對(duì)應(yīng)編號(hào)的女士也出隊(duì)。若男士不做選擇則女隊(duì)中隊(duì)首的女士自動(dòng)與男士配對(duì),若男士選擇的編號(hào)不符要求,則程序會(huì)提示該男士重新選擇。3.2.8配對(duì)后剩余人員信息函數(shù)void Function(LiQueue *&p,LiQueue *&q)QNode *t;int z=1;if(p->rear=NULL&&q->rear=NULL)printf("舞伴配對(duì)完成n");else if(p->rear!=NULL)t=p->front;while(t->next!=N

39、ULL)z+;t=t->next;printf("有%d名男士在等待,第一個(gè)人的名字是:%sn",z,p->front->);elset=q->front;while(t->next!=NULL)z+;t=t->next;printf("還有%d名女士在等待,第一個(gè)人的名字是:%sn",z,q->front->);此函數(shù)的功能是顯示舞會(huì)人員配對(duì)后剩余人員的個(gè)數(shù),以及第一個(gè)人員的姓名。第四章 設(shè)計(jì)結(jié)果及分析4.1 調(diào)試過程及分析4-1進(jìn)入菜單提示圖4-2菜單界面圖用戶進(jìn)入系統(tǒng)后,按任意

40、鍵即可進(jìn)入菜單界面。4-3輸入好友信息圖選擇“1”后系統(tǒng)會(huì)提示是否將文件中的所有人都讀出來,用戶可根據(jù)選項(xiàng)選擇y或n.以上是選擇y為例。4-4顯示舞會(huì)所有男士姓名圖返回菜單界面后選擇“2”,可以顯示所有舞會(huì)男士姓名。4-5顯示舞會(huì)所有女士姓名圖返回菜單界面后選擇“2”,可以顯示所有舞會(huì)女士姓名。4-6舞會(huì)人員配對(duì)界面圖4-7舞會(huì)人員配對(duì)過程圖返回菜單界面后選擇“4”,進(jìn)行舞會(huì)模擬配對(duì)過程。男士可以根據(jù)自己最喜歡的女士選擇其編號(hào),每次男士選擇時(shí)都會(huì)將被選的女士按編號(hào)排列出來,若男士不做選擇,則輸入“0”,系統(tǒng)會(huì)自動(dòng)幫其選擇隊(duì)首的女士作為其舞伴。4-8配對(duì)后剩余人員信息圖返回菜單界面后選擇“5”,

41、可顯示配對(duì)后剩余人員的總?cè)藬?shù)以及排在隊(duì)首的人的姓名。4-9退出菜單界面圖返回菜單界面后選擇“6”,系統(tǒng)會(huì)自動(dòng)退出菜單界面???結(jié) 近兩周的課程設(shè)計(jì)課學(xué)習(xí),使我受益匪淺。不僅讓我回顧了一下大一所學(xué)的指針,結(jié)構(gòu)體的使用方法,更讓我了解到了一些與文件有關(guān)的操作方法,這使我對(duì)C語言有了更進(jìn)一步的認(rèn)識(shí)。我們不僅要學(xué)一些課本的理論知識(shí),更重要的是要將所學(xué)的知識(shí)加以實(shí)際的應(yīng)用,這樣才能不斷的加深我們對(duì)知識(shí)的熟悉程度,提高我們自身的綜合應(yīng)用能力。首先我覺得在整個(gè)程序設(shè)計(jì)中比較難處理的就是文件的存取操作。如何將信息保存到指定路徑的文件中,如何從指定的文件中讀取信息,這兩步操作對(duì)我們整個(gè)編程來說是舉足輕重的,把握

42、不好的話,對(duì)后面輸入輸出都會(huì)造成很嚴(yán)重的影響?;谝酝幊痰慕?jīng)驗(yàn),我是一步一步來寫程序的,也就是一個(gè)一個(gè)函數(shù)的寫,并且調(diào)試。直到每一個(gè)函數(shù)都沒問題為止。這樣既省時(shí)又省力,錯(cuò)誤也容易查找和排除。剛開始寫文件存取函數(shù)時(shí),我就遇到過很大的麻煩,寫進(jìn)去的信息在相應(yīng)的文件中查找時(shí)發(fā)現(xiàn)全是一些亂碼,于是我又將大一學(xué)的計(jì)算機(jī)程序基礎(chǔ)中有關(guān)文件的那章內(nèi)容好好的復(fù)習(xí)了一遍,復(fù)習(xí)過程中我才深刻的發(fā)現(xiàn)到有關(guān)文件那章的內(nèi)容確實(shí)忘記的差不多了,頓時(shí)深感慚愧?;A(chǔ)課不能忘記,它是我們后續(xù)專業(yè)課的基礎(chǔ),也是我們整個(gè)編程過程的基礎(chǔ)。我尤感對(duì)于知識(shí)的學(xué)習(xí)不能僅僅就是當(dāng)時(shí)學(xué)習(xí)完了之后就一了百了,還要時(shí)常地拿出來復(fù)習(xí)復(fù)習(xí),回顧回顧

43、。所謂溫故而知新,這樣才會(huì)有更大的進(jìn)步。當(dāng)然此次課程設(shè)計(jì)另外一個(gè)重點(diǎn)就是對(duì)隊(duì)列的操作問題,這也是我們大二數(shù)據(jù)結(jié)構(gòu)中一個(gè)基礎(chǔ)也很重要的知識(shí)點(diǎn)。線性表和隊(duì)列是解決其它問題的一種很好的工具,在大二的數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)中,我們就有所接觸,這次課程設(shè)計(jì)真好能幫我們好好的溫習(xí)一下。我覺得對(duì)隊(duì)列操作的有關(guān)函數(shù)中最容易出錯(cuò)的地方就是函數(shù)的參數(shù)。很多地方形參都是指針的引用,這一點(diǎn)是很需要我們思考和把握的地方。形參的錯(cuò)誤會(huì)導(dǎo)致很大甚至不可預(yù)料的錯(cuò)誤。對(duì)指針的操作也是一樣的,我們要時(shí)刻注意指針?biāo)傅牡胤?,一步一步在紙上比劃清楚,防止程序出現(xiàn)崩潰。在做課程設(shè)計(jì)時(shí),遇到的問題遠(yuǎn)遠(yuǎn)不止是文件和指針的問題。例如清屏,用戶輸錯(cuò)信息

44、如何處理等都是要考慮的。例如在系統(tǒng)中用戶每選完一個(gè)選項(xiàng),程序執(zhí)行完后就會(huì)立刻回到菜單主界面,用戶完全看不到執(zhí)行的結(jié)果,這就要求程序有一個(gè)暫停的功能,于是我用兩個(gè)getchar();執(zhí)行語句,這樣就可以了。用戶在看到執(zhí)行后的結(jié)果后就可以根據(jù)提示按任意鍵返回主菜單,這樣程序就顯得更人性化。又如在用戶輸入錯(cuò)誤信息后,我們不能因?yàn)橛脩魶]有輸入正確信息而終止整個(gè)程序,而要考慮到用戶本身,我們可以用一些if語句提示用戶輸入的信息出錯(cuò)了,重新輸入,或返回到主菜單。這樣整個(gè)程序?qū)崿F(xiàn)起來才更科學(xué)更全面,用戶用起來也就更愜意。 回顧整個(gè)課程設(shè)計(jì),我覺得自己收獲最大的地方是實(shí)際動(dòng)手能力的提高。有些函數(shù)代碼自己在草稿

45、紙上寫出來認(rèn)為是對(duì)的,沒有任何錯(cuò)誤,可是實(shí)際在電腦上操作時(shí)發(fā)現(xiàn)遠(yuǎn)遠(yuǎn)不是我想的那么簡單,有時(shí)連一個(gè)非常簡單的函數(shù)都會(huì)編譯出錯(cuò),而且調(diào)試時(shí)出錯(cuò)的地方往往不止一處,這讓我深刻的認(rèn)識(shí)到:自己書寫的認(rèn)為是對(duì)的程序,在電腦上運(yùn)行時(shí)就不一定對(duì)了,一定要親自動(dòng)手上機(jī)調(diào)試,才能知道自己的程序到底是否正確。而且動(dòng)手能力是我們計(jì)算機(jī)專業(yè)的學(xué)生必修好好對(duì)待的一件事,決不能馬虎。理論知識(shí)再強(qiáng),動(dòng)手能力也不一定強(qiáng),我們計(jì)算機(jī)專業(yè)的學(xué)生不同于其他專業(yè)學(xué)計(jì)算機(jī)的學(xué)生之處,除了計(jì)算機(jī)理論要比他們豐富外,動(dòng)手能力也要比他們有優(yōu)勢(shì),這樣才能顯示我們與他們的不同。總之,此次課程設(shè)計(jì)不僅讓我回顧了大一程序基礎(chǔ)課中有關(guān)文件操作的一些知識(shí)

46、,也讓我溫故了大二數(shù)據(jù)結(jié)構(gòu)中線性表和隊(duì)列的有關(guān)內(nèi)容。所謂欲速則不達(dá),適時(shí)的回過頭來溫習(xí)下學(xué)過的知識(shí)對(duì)我們來說也是一件很好的事情。這樣才有助于我們?nèi)〉酶蟮倪M(jìn)步。致 謝 感謝學(xué)院給我們這次課程設(shè)計(jì)的機(jī)會(huì),感謝課程設(shè)計(jì)中蔡瓊老師和莊朋老師給我們提供的一些有價(jià)值指導(dǎo)和幫助,感謝我的同學(xué)在程序編寫與調(diào)試時(shí)給我的一些建議與幫助。感謝同學(xué)與圖書館給我們提供的一些參考書。參考文獻(xiàn)1姬濤,周啟生.計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(上冊(cè))教程.北京:中國傳媒大學(xué)出版社,2010. 2張俊,張彥鐸.c+面向?qū)ο蟪绦蛟O(shè)計(jì).第一版,北京:中國鐵道出版社,2008.3譚浩強(qiáng).c+程序設(shè)計(jì).北京:清華大學(xué)出版社,2011.4李春葆,尹

47、為民.數(shù)據(jù)結(jié)構(gòu)教程(第三版).北京:清華大學(xué)出版社,2008.附錄#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMaxsize 50struct dancerchar gender;char name20;typedef struct qnodestruct dancer x;struct qnode *next;QNode;typedef structQNode *front;QNode *rear;LiQueue;void InitQueue(LiQueue *&q)q=(

48、LiQueue *)malloc(sizeof(LiQueue);q->front=q->rear=NULL;void enQueue(LiQueue *&q,struct dancer k)QNode *s;s=(QNode *)malloc(sizeof(QNode);s->x.gender=k.gender;strcpy(s->,);s->next=NULL;if(q->rear=NULL)q->front=q->rear=s;else q->rear->next=s;q->rear=s;i

49、nt deQueue(LiQueue *&q)QNode *t;if(q->rear=NULL)return 0;t=q->front;if(q->front=q->rear)q->front=q->rear=NULL;elseq->front=q->front->next;printf("%s",t->);free(t);return 1;int menu_select() int c; printf("按任意鍵進(jìn)入菜單界面.n");/*提示壓任意鍵繼續(xù)*/ getchar(); /*讀入任意字符*/ system("CLS");printf("*菜單界面*nn"); printf(" 1. 從文件中讀取舞會(huì)人員并將其分類排隊(duì)n");printf(" 2. 顯示舞會(huì)所有男士姓名n");printf(" 3. 顯示舞會(huì)所有女士姓名n");printf(" 4. 舞會(huì)人員配對(duì)過程n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論