




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、武漢工程大學(xué) 計算機(jī)科學(xué)與工程學(xué)院綜合設(shè)計報告設(shè)計名稱: 應(yīng)用軟件綜合設(shè)計 設(shè)計題目: 舞伴配對 學(xué)生學(xué)號: 1105080207 專業(yè)班級: 2011級計算機(jī)工程2班 學(xué)生姓名: 胡文博 學(xué)生成績: 指導(dǎo)教師(職稱): 莊朋(講師) 課題工作時間: 13年9月9日 至 13年9 月20日 說明:1、報告中的第一、二、三項由指導(dǎo)教師在綜合設(shè)計開始前填寫并發(fā)給每個學(xué)生;四、五兩項(中英文摘要)由學(xué)生在完成綜合設(shè)計后填寫。2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計情況給出各項分值及總評成績。3、指導(dǎo)教師評語一欄由指導(dǎo)教師就學(xué)生在整個設(shè)計期間的平時表現(xiàn)、設(shè)計完成情況、報告的質(zhì)量及答辯情況,給出客觀、全面的
2、評價。4、所有學(xué)生必須參加綜合設(shè)計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。5、報告正文字?jǐn)?shù)一般應(yīng)不少于5000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計的情況另行規(guī)定。6、平時表現(xiàn)成績低于6分的學(xué)生,其綜合設(shè)計成績按不及格處理。7、此表格式為武漢工程大學(xué)計算機(jī)科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計),各教研室可根據(jù)本門綜合設(shè)計的特點及內(nèi)容做適當(dāng)?shù)恼{(diào)整,并上報學(xué)院批準(zhǔn)。成績評定表學(xué)生姓名: 胡文博 學(xué)號: 1105080207 班級: 2011計算機(jī)工程2班 類別合計分值各項分值評分標(biāo)準(zhǔn)實際得分合計得分備注平時表現(xiàn)1010按時參加綜合設(shè)計,無
3、曠課、遲到、早退、違反實驗室紀(jì)律等情況。完成情況3020按設(shè)計任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計內(nèi)容,符合要求。10能對其設(shè)計內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問題進(jìn)行正確的回答。報告質(zhì)量3510報告文字通順,內(nèi)容翔實,論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強(qiáng),具有說服力。5符號統(tǒng)一;圖表完備、符合規(guī)范要求。5能對整個設(shè)計過程進(jìn)行全面的總結(jié),得出有價值的結(jié)論或結(jié)果。5參考文獻(xiàn)數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時間內(nèi)能就所設(shè)
4、計的內(nèi)容進(jìn)行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題??傇u成績: 分 補充說明: 指導(dǎo)教師: 莊 朋 (簽字)日 期: 2013 年 9 月 20 日答辯記錄表學(xué)生姓名: 胡文博 學(xué)號: 1105080207 班級: 2011計算機(jī)工程2班 答辯地點: 計算機(jī)工程專業(yè)機(jī)房 答辯內(nèi)容記錄:答辯成績合計分值各項分值評分標(biāo)準(zhǔn)實際得分合計得分備注2510在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進(jìn)行闡述,言簡意明,重點突出,論點正確,條理清晰。15在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。答辯小組成員(簽字): 2013 年 9 月 20 日
5、指導(dǎo)教師評語指導(dǎo)教師: 莊 朋 (簽字)日 期: 2013 年 9 月 20 日一、綜合設(shè)計目的、條件、任務(wù)和內(nèi)容要求:算法與數(shù)據(jù)結(jié)構(gòu)在計算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,在整個計算機(jī)課程體系中處于承上啟下的核心地位,它一方面擴(kuò)展和深化在離散數(shù)學(xué)、程序設(shè)計語言等課程學(xué)到的基本技術(shù)和方法,一方面為進(jìn)一步學(xué)習(xí)其它專業(yè)課奠定堅實的理論與實踐基礎(chǔ)。課程的主要任務(wù)是學(xué)習(xí)數(shù)據(jù)的邏輯結(jié)構(gòu),存儲結(jié)構(gòu)以及相關(guān)的算法設(shè)計。應(yīng)用軟件綜合設(shè)計是計算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實踐課程,是學(xué)習(xí)完數(shù)據(jù)結(jié)構(gòu)課程后的課程設(shè)計,本課程的目的是使學(xué)生學(xué)會分析待加工處理數(shù)據(jù)的特性,以便選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)以及進(jìn)行相應(yīng)的算法設(shè)計
6、。在教給學(xué)生數(shù)據(jù)結(jié)構(gòu)選擇和算法設(shè)計的同時,培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問題和解決問題的能力。 掌握線性表(隊列)的基本操作及其實現(xiàn),能夠利用它來解決實際生活中的問題,并對文件流的操作做一定了解。內(nèi)容:分兩個層次層次一:設(shè)計一個模擬配對系統(tǒng),逐步演示參加舞會的男士和女士各自排隊進(jìn)入舞廳。舞會開始時,從兩隊中按順序組成舞伴開始跳舞。如果男士和女士人數(shù)不等,則多出的人只能等到下一舞曲才能開始。1程序從文本“dance.txt”讀入男士和女士的信息,文件格式如下: 性別 姓名 其中,性別是一個字符“F”或“M”。當(dāng)文件中記錄讀完后,兩個隊列都已形成。2若有人在等待,程
7、序給出有多少人等待,并打印出等待隊列中第一個人的名字。層次二:排在隊列前面的男士可以在女士隊列中選擇自己最喜歡的女伴來配對跳舞。 指導(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)試和測試,書寫報告第3周 (9.20): 答辯、檢查、驗收、遞交設(shè)計報告三、應(yīng)收集資料及主要參考文獻(xiàn):應(yīng)收集的資料:面向?qū)ο蟪绦蛟O(shè)計思想和方法C/C+語言參考手冊數(shù)據(jù)結(jié)構(gòu)、軟件工程方面參考書籍主要參考文獻(xiàn):1姬濤,周
8、啟生.計算機(jī)程序設(shè)計基礎(chǔ)(上冊)教程.北京:中國傳媒大學(xué)出版社,2010. 2張俊,張彥鐸.c+面向?qū)ο蟪绦蛟O(shè)計.第一版,北京:中國鐵道出版社,2008.3譚浩強(qiáng).c+程序設(shè)計.北京:清華大學(xué)出版社,20114李春葆,尹為民.數(shù)據(jù)結(jié)構(gòu)教程(第三版).北京:清華大學(xué)出版社,2008.四、綜合設(shè)計(課程設(shè)計)摘要(中文): 舞伴配對系統(tǒng)模擬的是一個小型的配對系統(tǒng),此程序?qū)崿F(xiàn)的功能包括五項主要內(nèi)容,即從文件中讀取舞會人員信息并將其按男女分類進(jìn)隊,顯示舞會所有男士姓名,顯示舞會所有女士姓名,進(jìn)行舞會人員配對,顯示配對后剩余人員的信息。每個舞會人員信息又包括2項內(nèi)容,即性別和姓名。本程序的主要目的是利用
9、平時編寫程序以及調(diào)試程序的能力,結(jié)合教學(xué)環(huán)節(jié),運用數(shù)據(jù)結(jié)構(gòu)知識解決實際問題的能力,為后續(xù)計算機(jī)專業(yè)課程的學(xué)習(xí)打下堅實的基礎(chǔ)。本程序是用c語言寫的,是基于過程設(shè)計的方法設(shè)計的,運行時會有提示,進(jìn)入主菜單界面后,用戶可以根據(jù)提示選擇任意一個選項,程序會根據(jù)用戶的選項執(zhí)行相應(yīng)的操作,當(dāng)用戶輸入的信息錯誤時,程序會提示用戶錯誤信息,進(jìn)而讓用戶在使用本系統(tǒng)時感到很人性化。關(guān)鍵詞:舞伴配對;c語言;菜單五、綜合設(shè)計(課程設(shè)計)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ī)科學(xué)與工程學(xué)院 綜合設(shè)計報告目 錄摘 要 IIAbstract . II第一章 課題背景. 11.1 設(shè)計的背景.11.2 設(shè)計的目的. 11.
14、3 設(shè)計的意義. 11.4 解決的主要問題. 11.2 技術(shù)要求. 1第二章設(shè)計簡介及設(shè)計方案論述 . 22.1 程序主要流程圖.2 2.2 主要設(shè)計思路.3第三章詳細(xì)設(shè)計.43.1 所有定義的功能函數(shù).4 3.2 主要功能函數(shù)介紹.43.2.1 菜單函數(shù).43.2.2 保存舞會人員信息函數(shù).53.2.3 讀取舞會人員信息函數(shù).53.2.4 顯示舞會人員信息函數(shù).63.2.5 按順序顯示女隊舞會成員函數(shù).73.2.6 按給定編號刪除女士信息函數(shù).73.2.7 舞會人員配對函數(shù).83.2.8 配對后剩余人員信息函數(shù).9 第四章設(shè)計結(jié)果及分析.104.1 調(diào)試過程及分析.10 總 結(jié) .14 致
15、謝 .16 參考文獻(xiàn) .17 附錄 主要程序代碼 .18 摘 要舞伴配對系統(tǒng)模擬的是一個小型的配對系統(tǒng),此程序?qū)崿F(xiàn)的功能包括五項主要內(nèi)容,即從文件中讀取舞會人員信息并將其按男女分類進(jìn)隊,顯示舞會所有男士姓名,顯示舞會所有女士姓名,進(jìn)行舞會人員配對,顯示配對后剩余人員的信息。每個舞會人員信息又包括2項內(nèi)容,即性別和姓名。本程序的主要目的是利用平時編寫程序以及調(diào)試程序的能力,結(jié)合教學(xué)環(huán)節(jié),運用數(shù)據(jù)結(jié)構(gòu)知識解決實際問題的能力,為后續(xù)計算機(jī)專業(yè)課程的學(xué)習(xí)打下堅實的基礎(chǔ)。本程序是用c語言寫的,是基于過程設(shè)計的方法設(shè)計的,運行時會有提示,進(jìn)入主菜單界面后,用戶可以根據(jù)提示選擇任意一個選項,程序會根據(jù)用戶的
16、選項執(zhí)行相應(yīng)的操作,當(dāng)用戶輸入的信息錯誤時,程序會提示用戶錯誤信息,進(jìn)而讓用戶在使用本系統(tǒng)時感到很人性化。關(guān)鍵詞:舞伴配對;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è)計的背景 當(dāng)今社會高速發(fā)展,參加舞會已成為人們放松心情,陶冶情操,調(diào)節(jié)生活的一種重要工具和途徑。參加舞會的人可能對各種舞會的流程都很了解,然而對那些還沒有參加過舞會的人來說,適當(dāng)?shù)牧私庖幌聲?wù)的流程是很有必要的。利用計算機(jī)編程來模擬舞會配對就是一個很好的獲取舞會流程的途徑和方法。用戶可以根據(jù)提示來一步步的熟悉舞會流程。1.2設(shè)計的目的 通過本課程的設(shè)計,學(xué)生可以利用c語言及編程技術(shù)進(jìn)行一系列的操作,掌握線性表(
21、隊列)的基本操作及其實現(xiàn),能夠利用它來解決實際生活中的問題,并對文件流的操作做一定了解。提升運用數(shù)據(jù)結(jié)構(gòu)知識解決實際問題的能力,為后續(xù)計算機(jī)專業(yè)課程的學(xué)習(xí)打下堅實的基礎(chǔ)。1.3設(shè)計的意義舞會配對模擬系統(tǒng)的設(shè)計是對學(xué)生所學(xué)知識的一種很好的綜合應(yīng)用,有助于幫學(xué)生進(jìn)一步熟悉和掌握專業(yè)課程的內(nèi)容。用戶在使用本系統(tǒng)時也能很好的熟悉和了解一般舞會的進(jìn)展流程,讓沒參加過舞會的人員也能從其他途徑獲取舞會流程的有關(guān)信息。1.4解決的主要問題(1)將所有舞會人員的信息存到指定的文件中(2)從文件中讀取舞會人員信息并將其按男女分類進(jìn)隊(3)顯示舞會所有男士姓名(4)顯示舞會所有女士姓名(5)進(jìn)行舞會人員配對(6)顯
22、示配對后剩余人員的信息1.5技術(shù)要求熟練掌握c語言的用法及編程技術(shù),會進(jìn)行程序的調(diào)試應(yīng)用。能進(jìn)行常規(guī)錯誤的自我修正。擁有運用數(shù)據(jù)結(jié)構(gòu)知識解決實際問題的基本能力,特別是對線性表(隊列)的基本操作及其實現(xiàn)有很好的了解應(yīng)用,能夠利用它來解決實際生活中的問題,并對文件流的操作有一定了解。 第二章 設(shè)計簡介及設(shè)計方案論述2.1 程序主要流程圖: 菜單界面菜單界面 用戶選擇其中一項執(zhí)行完后返回到主菜單(沒有選退出)退出菜單界面顯示配對后剩余人員信息進(jìn)行舞會人員配對顯示舞會所有女士姓名顯示舞會所有男士姓名讀取舞會人員信息并分類進(jìn)隊 2-1-1 主要流程圖2.2主要設(shè)計思路 程序從main函數(shù)開始執(zhí)行,將參加
23、舞會的人員信息存到結(jié)構(gòu)體數(shù)組中讓后通過Save函數(shù)將舞會人員信息保存到指定文件中以便用戶讀取。初始化兩個隊列,分別將文件中讀取的男士和女士進(jìn)行進(jìn)隊操作。用戶進(jìn)入根據(jù)提示進(jìn)入系統(tǒng)菜單界面后,會有6個選項可供選擇,用戶根據(jù)自己的需要選擇一個選項后程序就會調(diào)用相應(yīng)的函數(shù),實現(xiàn)相應(yīng)的功能。直到用戶選擇退出菜單后,程序運行就會終止。因此只需設(shè)計好一個菜單界面以及相應(yīng)的功能的函數(shù)即可。用一個無限for循環(huán)加switch選擇語句,case后面的6個相應(yīng)的功能函數(shù)與菜單界面中的序號一一對應(yīng),用戶根據(jù)自己的需要,選擇一個選項后,switch語句就會調(diào)用相應(yīng)的功能函數(shù),執(zhí)行相應(yīng)的操作。每次執(zhí)行完后,用戶按任意鍵即
24、可再次進(jìn)入菜單界面,再次選擇自己所要執(zhí)行的選項。當(dāng)然,為了使界面更簡潔明了,每次執(zhí)行完相應(yīng)的功能函數(shù),用戶按任意鍵重新進(jìn)入菜單界面時,都會清屏,即執(zhí)行system("CLS");語句。這樣用戶使用時界面就不會顯得那么不美觀。 2-2-1 主函數(shù)截圖第三章 詳細(xì)設(shè)計3.1所有定義的功能函數(shù)void InitQueue(LiQueue *&q);/初始化隊列void enQueue(LiQueue *&q,struct dancer k);/進(jìn)隊int deQueue(LiQueue *&q);/出隊void Save(struct dancer a);
25、/將舞會人員信息保存到指定文件中void ReadIn(LiQueue *&p,LiQueue *&q);/從指定文件中讀取舞會人員信息int Display1(LiQueue *&q);/顯示舞會人員信息int Display2(LiQueue *&q);/ 按編號顯示女士信息QNode * Delete1(LiQueue *&q);/刪除男士信息QNode * Delete2(LiQueue *&q,int choice);/按給定編號刪除女士信息void Find(LiQueue *&p,LiQueue *&q);/舞會人員
26、配對void Function(LiQueue *&p,LiQueue *&q);/配對后剩余人員的信息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. 從文件中讀取舞會人員并將其分類排隊n");prin
27、tf(" 2. 顯示舞會所有男士姓名n");printf(" 3. 顯示舞會所有女士姓名n");printf(" 4. 舞會人員配對過程n");printf(" 5. 舞會人員配對后結(jié)果n");printf(" 6.退出n");printf("*n"); do printf("n 輸入一個選項(16):"); /*提示輸入選項*/ scanf("%d",&c); /*輸入選擇項*/ while(c<0|c>6); /
28、*選擇項不在5之間重輸*/printf("n");return c; /*返回選擇項,主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/調(diào)用菜單函數(shù)時,顯示屏上會顯示菜單界面,其中switch語句是供用戶選擇的相應(yīng)選項,選擇一個選項后,程序會調(diào)用相應(yīng)的功能函數(shù)來執(zhí)行。3.2.2保存舞會人員信息函數(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ù)的功能是將舞會人員信息保存到指定路徑的文件中。3.2.3讀取舞會人員信息函數(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ù)是用來從指定路徑文件中讀取舞會人員信息并將讀取出來的男士和女士分別進(jìn)隊。在調(diào)用此函數(shù)時
32、程序會提示用戶是否將指定路徑文件中的人全部讀出來,如果選擇y則全部讀出來,否則舞會人員的信息會一個一個的提示用戶是否讀出。3.2.4顯示舞會人員信息函數(shù)int Display1(LiQueue *&q) QNode *k; if(q->front=NULL) printf("沒有人排隊!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)隊的舞會人員顯示出來,男隊則在前注明M,女隊則在前注明F。3.2.5按順序顯示女隊舞會成員函數(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ù)的功能是將女隊中的每個舞會人員按順序排列出來,對手的女士編號為1,后面的女士編號依次遞增。這樣有助于男士在選擇舞伴時只需點擊該女士編號即可。3.2.6按給定編號刪除女士信息函數(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ù)是按給定的序號刪除女士信息,男士在選定好相應(yīng)的舞伴序號時可調(diào)用此函數(shù)刪除女隊中對應(yīng)該序號的女士的信息,這樣下一位男士在選擇自己的舞伴時就不會重復(fù)。3.2.7舞會人員配對函數(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請選擇上面自己最喜歡的舞蹈女伴(若不選則輸入0):",m->);scanf("%d",&y);if(y<0|y>lab)printf("n");printf("選擇號碼有誤,請重選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("配對表如下:n"); while(result1->front!=NULL)deQueue(result1);printf("-");deQueue(result2);printf("n");此函數(shù)的功能是進(jìn)行舞會人員的配對,排在隊列前
38、的男士可以優(yōu)先選擇自己最喜歡的一名女士,選擇后該男士出隊,對應(yīng)編號的女士也出隊。若男士不做選擇則女隊中隊首的女士自動與男士配對,若男士選擇的編號不符要求,則程序會提示該男士重新選擇。3.2.8配對后剩余人員信息函數(shù)void Function(LiQueue *&p,LiQueue *&q)QNode *t;int z=1;if(p->rear=NULL&&q->rear=NULL)printf("舞伴配對完成n");else if(p->rear!=NULL)t=p->front;while(t->next!=N
39、ULL)z+;t=t->next;printf("有%d名男士在等待,第一個人的名字是:%sn",z,p->front->);elset=q->front;while(t->next!=NULL)z+;t=t->next;printf("還有%d名女士在等待,第一個人的名字是:%sn",z,q->front->);此函數(shù)的功能是顯示舞會人員配對后剩余人員的個數(shù),以及第一個人員的姓名。第四章 設(shè)計結(jié)果及分析4.1 調(diào)試過程及分析4-1進(jìn)入菜單提示圖4-2菜單界面圖用戶進(jìn)入系統(tǒng)后,按任意
40、鍵即可進(jìn)入菜單界面。4-3輸入好友信息圖選擇“1”后系統(tǒng)會提示是否將文件中的所有人都讀出來,用戶可根據(jù)選項選擇y或n.以上是選擇y為例。4-4顯示舞會所有男士姓名圖返回菜單界面后選擇“2”,可以顯示所有舞會男士姓名。4-5顯示舞會所有女士姓名圖返回菜單界面后選擇“2”,可以顯示所有舞會女士姓名。4-6舞會人員配對界面圖4-7舞會人員配對過程圖返回菜單界面后選擇“4”,進(jìn)行舞會模擬配對過程。男士可以根據(jù)自己最喜歡的女士選擇其編號,每次男士選擇時都會將被選的女士按編號排列出來,若男士不做選擇,則輸入“0”,系統(tǒng)會自動幫其選擇隊首的女士作為其舞伴。4-8配對后剩余人員信息圖返回菜單界面后選擇“5”,
41、可顯示配對后剩余人員的總?cè)藬?shù)以及排在隊首的人的姓名。4-9退出菜單界面圖返回菜單界面后選擇“6”,系統(tǒng)會自動退出菜單界面???結(jié) 近兩周的課程設(shè)計課學(xué)習(xí),使我受益匪淺。不僅讓我回顧了一下大一所學(xué)的指針,結(jié)構(gòu)體的使用方法,更讓我了解到了一些與文件有關(guān)的操作方法,這使我對C語言有了更進(jìn)一步的認(rèn)識。我們不僅要學(xué)一些課本的理論知識,更重要的是要將所學(xué)的知識加以實際的應(yīng)用,這樣才能不斷的加深我們對知識的熟悉程度,提高我們自身的綜合應(yīng)用能力。首先我覺得在整個程序設(shè)計中比較難處理的就是文件的存取操作。如何將信息保存到指定路徑的文件中,如何從指定的文件中讀取信息,這兩步操作對我們整個編程來說是舉足輕重的,把握
42、不好的話,對后面輸入輸出都會造成很嚴(yán)重的影響?;谝酝幊痰慕?jīng)驗,我是一步一步來寫程序的,也就是一個一個函數(shù)的寫,并且調(diào)試。直到每一個函數(shù)都沒問題為止。這樣既省時又省力,錯誤也容易查找和排除。剛開始寫文件存取函數(shù)時,我就遇到過很大的麻煩,寫進(jìn)去的信息在相應(yīng)的文件中查找時發(fā)現(xiàn)全是一些亂碼,于是我又將大一學(xué)的計算機(jī)程序基礎(chǔ)中有關(guān)文件的那章內(nèi)容好好的復(fù)習(xí)了一遍,復(fù)習(xí)過程中我才深刻的發(fā)現(xiàn)到有關(guān)文件那章的內(nèi)容確實忘記的差不多了,頓時深感慚愧?;A(chǔ)課不能忘記,它是我們后續(xù)專業(yè)課的基礎(chǔ),也是我們整個編程過程的基礎(chǔ)。我尤感對于知識的學(xué)習(xí)不能僅僅就是當(dāng)時學(xué)習(xí)完了之后就一了百了,還要時常地拿出來復(fù)習(xí)復(fù)習(xí),回顧回顧
43、。所謂溫故而知新,這樣才會有更大的進(jìn)步。當(dāng)然此次課程設(shè)計另外一個重點就是對隊列的操作問題,這也是我們大二數(shù)據(jù)結(jié)構(gòu)中一個基礎(chǔ)也很重要的知識點。線性表和隊列是解決其它問題的一種很好的工具,在大二的數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)中,我們就有所接觸,這次課程設(shè)計真好能幫我們好好的溫習(xí)一下。我覺得對隊列操作的有關(guān)函數(shù)中最容易出錯的地方就是函數(shù)的參數(shù)。很多地方形參都是指針的引用,這一點是很需要我們思考和把握的地方。形參的錯誤會導(dǎo)致很大甚至不可預(yù)料的錯誤。對指針的操作也是一樣的,我們要時刻注意指針?biāo)傅牡胤?,一步一步在紙上比劃清楚,防止程序出現(xiàn)崩潰。在做課程設(shè)計時,遇到的問題遠(yuǎn)遠(yuǎn)不止是文件和指針的問題。例如清屏,用戶輸錯信息
44、如何處理等都是要考慮的。例如在系統(tǒng)中用戶每選完一個選項,程序執(zhí)行完后就會立刻回到菜單主界面,用戶完全看不到執(zhí)行的結(jié)果,這就要求程序有一個暫停的功能,于是我用兩個getchar();執(zhí)行語句,這樣就可以了。用戶在看到執(zhí)行后的結(jié)果后就可以根據(jù)提示按任意鍵返回主菜單,這樣程序就顯得更人性化。又如在用戶輸入錯誤信息后,我們不能因為用戶沒有輸入正確信息而終止整個程序,而要考慮到用戶本身,我們可以用一些if語句提示用戶輸入的信息出錯了,重新輸入,或返回到主菜單。這樣整個程序?qū)崿F(xiàn)起來才更科學(xué)更全面,用戶用起來也就更愜意。 回顧整個課程設(shè)計,我覺得自己收獲最大的地方是實際動手能力的提高。有些函數(shù)代碼自己在草稿
45、紙上寫出來認(rèn)為是對的,沒有任何錯誤,可是實際在電腦上操作時發(fā)現(xiàn)遠(yuǎn)遠(yuǎn)不是我想的那么簡單,有時連一個非常簡單的函數(shù)都會編譯出錯,而且調(diào)試時出錯的地方往往不止一處,這讓我深刻的認(rèn)識到:自己書寫的認(rèn)為是對的程序,在電腦上運行時就不一定對了,一定要親自動手上機(jī)調(diào)試,才能知道自己的程序到底是否正確。而且動手能力是我們計算機(jī)專業(yè)的學(xué)生必修好好對待的一件事,決不能馬虎。理論知識再強(qiáng),動手能力也不一定強(qiáng),我們計算機(jī)專業(yè)的學(xué)生不同于其他專業(yè)學(xué)計算機(jī)的學(xué)生之處,除了計算機(jī)理論要比他們豐富外,動手能力也要比他們有優(yōu)勢,這樣才能顯示我們與他們的不同??傊?,此次課程設(shè)計不僅讓我回顧了大一程序基礎(chǔ)課中有關(guān)文件操作的一些知識
46、,也讓我溫故了大二數(shù)據(jù)結(jié)構(gòu)中線性表和隊列的有關(guān)內(nèi)容。所謂欲速則不達(dá),適時的回過頭來溫習(xí)下學(xué)過的知識對我們來說也是一件很好的事情。這樣才有助于我們?nèi)〉酶蟮倪M(jìn)步。致 謝 感謝學(xué)院給我們這次課程設(shè)計的機(jī)會,感謝課程設(shè)計中蔡瓊老師和莊朋老師給我們提供的一些有價值指導(dǎo)和幫助,感謝我的同學(xué)在程序編寫與調(diào)試時給我的一些建議與幫助。感謝同學(xué)與圖書館給我們提供的一些參考書。參考文獻(xiàn)1姬濤,周啟生.計算機(jī)程序設(shè)計基礎(chǔ)(上冊)教程.北京:中國傳媒大學(xué)出版社,2010. 2張俊,張彥鐸.c+面向?qū)ο蟪绦蛟O(shè)計.第一版,北京:中國鐵道出版社,2008.3譚浩強(qiáng).c+程序設(shè)計.北京:清華大學(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. 從文件中讀取舞會人員并將其分類排隊n");printf(" 2. 顯示舞會所有男士姓名n");printf(" 3. 顯示舞會所有女士姓名n");printf(" 4. 舞會人員配對過程n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2194-2025氧化鋅避雷器測試儀校準(zhǔn)規(guī)范
- LY/T 3350-2023展平竹砧板
- 2025至2030年中國半胱胺酒石酸鹽數(shù)據(jù)監(jiān)測研究報告
- 2025年軍隊文職人員招聘之軍隊文職管理學(xué)與服務(wù)通關(guān)題庫(附帶答案)
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識強(qiáng)化訓(xùn)練試卷A卷附答案
- 模擬卷浙江寧波2025屆高三一模語文試題及答案
- (一模)哈三中2025屆高三第一次模擬考試 語文試題(含答案)
- 公司管理理念宣傳手冊(講座內(nèi)容)
- 中學(xué)生讀書勵志征文
- 化工圖標(biāo)知識培訓(xùn)課件
- 《金融反欺詐與大數(shù)據(jù)風(fēng)控研究報告(2023)》
- 梨狀窩囊腫的護(hù)理查房
- GB/T 15558.1-2023燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第1部分:總則
- 公路工程安全風(fēng)險辨識與防控手冊
- 實驗室安全檢查表
- 初中政治答題卡模板A4
- 供應(yīng)商滿意度調(diào)查表
- 無圍標(biāo)、串標(biāo)行為承諾書
- 第三次全國國土調(diào)查土地分類
- 發(fā)展?jié)h語初級綜合1電子版
- 某鐵路注漿處理工藝性試驗方案
評論
0/150
提交評論