版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE23*******************實(shí)踐教學(xué)*******************蘭州理工大學(xué)軟件職業(yè)技術(shù)學(xué)院2011年春季學(xué)期算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:約瑟夫環(huán)專業(yè)班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:成績(jī):摘要約瑟夫環(huán)問(wèn)題是典型的線性表的應(yīng)用實(shí)例,其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù).而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。經(jīng)過(guò)分析,我們使用MICROSOFT公司的MicrosoftVisualC++6.0開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡(jiǎn)潔操縱數(shù)據(jù)庫(kù)的智能化對(duì)象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對(duì)初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。關(guān)鍵詞:單循環(huán)鏈表;c語(yǔ)言;約瑟夫環(huán);序言數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素之間的邏輯關(guān)系的一門課程,以及數(shù)據(jù)元素及其關(guān)系在計(jì)算機(jī)中的存儲(chǔ)表示和對(duì)這些數(shù)據(jù)所施加的運(yùn)算.該課程設(shè)計(jì)的目的是通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)分析和編程等實(shí)際動(dòng)手能力,系統(tǒng)掌握數(shù)據(jù)結(jié)構(gòu)這門課程的主要內(nèi)容。本次課程設(shè)計(jì)的內(nèi)容是用單循環(huán)鏈表模擬約瑟夫環(huán)問(wèn)題,循環(huán)鏈表是一種首尾相接鏈表,其特點(diǎn)是無(wú)須增加存儲(chǔ)容量,僅對(duì)表的鏈接方式稍作改變,使表處理更加靈活,約瑟夫環(huán)問(wèn)題就是用單循環(huán)鏈表處理的一個(gè)實(shí)際應(yīng)用。通過(guò)這個(gè)設(shè)計(jì)實(shí)例,了解單鏈表和單循環(huán)鏈表的相同與不同之處,進(jìn)一步加深對(duì)鏈表結(jié)構(gòu)類型及鏈表操作的理解.通過(guò)該課程設(shè)計(jì),能運(yùn)用所學(xué)知識(shí),能上機(jī)解決一些實(shí)際問(wèn)題,了解并初步掌握設(shè)計(jì)、實(shí)現(xiàn)較大程序的完整過(guò)程,包括系統(tǒng)分析、編碼設(shè)計(jì)、系統(tǒng)集成、以及調(diào)試分析,熟練掌握數(shù)據(jù)結(jié)構(gòu)的選擇、設(shè)計(jì)、實(shí)現(xiàn)以及操作方法,為進(jìn)一步的應(yīng)用開發(fā)打好基礎(chǔ)。目錄TOC\o”1—3”\h\z\uHYPERLINK\l”_Toc298072296”摘要PAGEREF_Toc298072296\h1HYPERLINK\l”_Toc298072297”序言PAGEREF_Toc298072297\h2HYPERLINK\l”_Toc298072298”目錄PAGEREF_Toc298072298\h3HYPERLINK\l”_Toc298072299”正文PAGEREF_Toc298072299\h4HYPERLINK\l"_Toc298072300"一、問(wèn)題描述PAGEREF_Toc298072300\h4HYPERLINK\l”_Toc298072301"二、邏輯設(shè)計(jì)PAGEREF_Toc298072301\h5HYPERLINK\l”_Toc298072302”三、詳細(xì)設(shè)計(jì)PAGEREF_Toc298072302\h7HYPERLINK\l”_Toc298072303”四、程序代碼PAGEREF_Toc298072303\h13HYPERLINK\l”_Toc298072304"五、程序調(diào)試與測(cè)試PAGEREF_Toc298072304\h13HYPERLINK\l”_Toc298072305”設(shè)計(jì)總結(jié)PAGEREF_Toc298072305\h18HYPERLINK\l”_Toc298072306"參考文獻(xiàn)PAGEREF_Toc298072306\h19HYPERLINK\l”_Toc298072307"致謝PAGEREF_Toc298072307\h20HYPERLINK[2]按要求求解約瑟夫環(huán)\n”); printf(”[0]退出\n");?printf("**************************歡迎使用!****************************\n");}四、程序代碼見(jiàn)附錄源程序.五、程序調(diào)試與測(cè)試1.調(diào)用模塊時(shí),結(jié)點(diǎn)結(jié)構(gòu)的調(diào)用與其他模塊產(chǎn)生沖突,導(dǎo)致每一行都出現(xiàn)兩次錯(cuò)誤,加入子函數(shù)的聲明后錯(cuò)誤消失.2.剛開始時(shí)曾忽略了一些變量參數(shù)的標(biāo)識(shí)”&"和“*”,使調(diào)試程序時(shí)費(fèi)時(shí)不少。今后應(yīng)重視確定參數(shù)的變量和賦值屬性的區(qū)分和標(biāo)識(shí)。3.本次課程設(shè)計(jì)采用數(shù)據(jù)抽象的程序設(shè)計(jì)方法,將程序劃分為三個(gè)層次結(jié)構(gòu):元素節(jié)點(diǎn)、單向循環(huán)鏈表,主控制模塊.思路較為清晰,實(shí)現(xiàn)調(diào)用順利。經(jīng)過(guò)本次實(shí)驗(yàn),使我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程有了進(jìn)一步的了解,每一個(gè)程序經(jīng)過(guò)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)之后,思路即清晰呈現(xiàn),程序也很快就出來(lái)了,最后經(jīng)過(guò)調(diào)試、運(yùn)行又有新的體驗(yàn)。<測(cè)試用例>這是一個(gè)使用循環(huán)鏈表的經(jīng)典問(wèn)題。本程序開始運(yùn)行界面如下:圖7約瑟夫環(huán)開始運(yùn)行界面圖7約瑟夫環(huán)開始運(yùn)行界面選擇1進(jìn)入約瑟夫環(huán)問(wèn)題闡述.圖8約瑟夫環(huán)問(wèn)題闡述圖8約瑟夫環(huán)問(wèn)題闡述①選擇2,輸入下列數(shù)據(jù)測(cè)試:請(qǐng)輸入總?cè)藬?shù)n:7請(qǐng)輸入開始上限數(shù)m:20;請(qǐng)依次輸入每個(gè)人的密碼:3172484出隊(duì)順序:6147235圖9約瑟夫環(huán)測(cè)試1圖9約瑟夫環(huán)測(cè)試1②繼續(xù)選擇2,輸入下列數(shù)據(jù)測(cè)試:請(qǐng)輸入總?cè)藬?shù)n:5請(qǐng)輸入開始上限數(shù)m:30請(qǐng)依次輸入每個(gè)人的密碼:34567出隊(duì)順序:53124圖10約瑟夫環(huán)測(cè)試2圖10約瑟夫環(huán)測(cè)試2③繼續(xù)選擇2,輸入下列數(shù)據(jù)測(cè)試:請(qǐng)輸入總?cè)藬?shù)n:8請(qǐng)輸入開始上限數(shù)m:14請(qǐng)依次輸入每個(gè)人的密碼:345678910出隊(duì)順序:67283514圖11約瑟夫環(huán)測(cè)試3圖11約瑟夫環(huán)測(cè)試3測(cè)試完成,選擇0退出。設(shè)計(jì)總結(jié)我的這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的題目是:《約瑟夫環(huán)》,通過(guò)對(duì)該題目的設(shè)計(jì),我加深了對(duì)數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)結(jié)構(gòu)的理解,進(jìn)一步地理解和掌握了課本中所學(xué)的各種數(shù)據(jù)結(jié)構(gòu),尤其是對(duì)單循環(huán)鏈表上基本運(yùn)算的實(shí)現(xiàn),學(xué)會(huì)了如何把學(xué)到的知識(shí)用于解決實(shí)際問(wèn)題,鍛煉了自己動(dòng)手的能力.通過(guò)這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),我感受最深的就是對(duì)于循環(huán)鏈表的使用,可以說(shuō)對(duì)循環(huán)鏈表有了比以前更進(jìn)一步的認(rèn)識(shí),以前只是一知半解的,如果只給個(gè)題目自己根本不能把程序完整地編寫出來(lái),所以這次課程設(shè)計(jì)最大的收獲就在于對(duì)循環(huán)鏈表有了一定的理解,包括其中的一系列操作,如建立一個(gè)循環(huán)鏈表,刪除鏈表中的一個(gè)結(jié)點(diǎn),增加一個(gè)結(jié)點(diǎn)等。在調(diào)試程序的時(shí)候我也有所體會(huì),雖然約瑟夫環(huán)問(wèn)題不是很難,但調(diào)試的時(shí)候還是會(huì)出現(xiàn)很多錯(cuò)誤,因此我們不能認(rèn)為容易就不認(rèn)真對(duì)待。在以后的學(xué)習(xí)中,要能不斷發(fā)現(xiàn)問(wèn)題,提出問(wèn)題,解決問(wèn)題,從不足之處出發(fā),在不斷學(xué)習(xí)中提高自己.兩周的課程設(shè)計(jì)很短暫,但其間的內(nèi)容是很充實(shí)的,在其中我學(xué)習(xí)到了很多平時(shí)書本中無(wú)法學(xué)到的東西,積累了經(jīng)驗(yàn),鍛煉了自己分析問(wèn)題,解決問(wèn)題的能力,并學(xué)會(huì)了如何將所學(xué)的各課知識(shí)融會(huì),組織起來(lái)進(jìn)行學(xué)習(xí),總而言之這兩周中我學(xué)到很多,受益匪淺。參考文獻(xiàn)1.嚴(yán)蔚敏,吳偉民。《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》.清華大學(xué)出版社.2.嚴(yán)蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版)》。清華大學(xué)出版社。3.《DATASTRUCTUREWITHC++》.WilliamFord,WilliamTopp.清華大學(xué)出版社(影印版).4.譚浩強(qiáng).《c語(yǔ)言程序設(shè)計(jì)》.清華大學(xué)出版社.致謝這次的課程設(shè)計(jì),我們兩人一個(gè)小組去完成我們自己的課程,但是還是得到了來(lái)自很多方面的幫助。在此首先要感謝學(xué)院提供給我這次實(shí)踐的機(jī)會(huì),讓我們有機(jī)會(huì)貼近現(xiàn)實(shí),感受成功的喜悅;其次要感謝實(shí)驗(yàn)機(jī)房的老師提供優(yōu)良的實(shí)驗(yàn)設(shè)備供我們做課設(shè),正是這種良好的課設(shè)環(huán)境讓我們整個(gè)課設(shè)過(guò)程心情都非常愉快.再次要感謝指導(dǎo)老師們的辛勤指導(dǎo),每當(dāng)我們遇到疑難問(wèn)題時(shí),是他們一次次不厭其煩的解釋和悉心的指導(dǎo),我們才能闖過(guò)一個(gè)個(gè)難關(guān),到達(dá)勝利的彼岸,是他們給我們提供了一次寶貴的檢驗(yàn)自己機(jī)會(huì).最后也要感謝同學(xué)們的幫助,有了他們的支持使我遇到任何困難都不是一個(gè)人在戰(zhàn)斗.感謝所有在我課程設(shè)計(jì)過(guò)程中幫助過(guò)我的人!附錄源代碼:#include<stdio。h〉//輸入輸出函數(shù)頭文件#include<stdlib.h>//字符串轉(zhuǎn)短整形函數(shù)的頭文件10140219//typedefstructLNode//定義單循環(huán)鏈表中節(jié)點(diǎn)的結(jié)構(gòu){ intnum;//編號(hào)?intpwd;//password?structLNode*next;//指向下一結(jié)點(diǎn)的指針}LNode;/*構(gòu)造結(jié)點(diǎn)*/LNode*createNode(intm_num,intm_pwd){ LNode*p;?p=(LNode*)malloc(sizeof(LN(yùn)ode));//生成一個(gè)結(jié)點(diǎn) p—〉num=m_num;//把實(shí)參賦給相應(yīng)的數(shù)據(jù)域?p->pwd=m_pwd; p-〉next=NULL;//指針域?yàn)榭?returnp;}/**創(chuàng)建循環(huán)鏈表**/voidcreateList(LNode**ppHead,intn){/*創(chuàng)建單向循環(huán)鏈表ppHead,人數(shù)個(gè)數(shù)為n,并輸入每個(gè)人的密碼值,若建立失敗則生成頭結(jié)點(diǎn),讓cur指向他,若建立成功則插入結(jié)點(diǎn)P,cur指向的數(shù)據(jù)元素為p,后續(xù)為”空"的節(jié)點(diǎn),再把P插入循環(huán)鏈表ppHead中*/ inti,m_pwd;?LN(yùn)ode*p,*cur;//cur:浮標(biāo)指針 for(i=1;i〈=n;i++)?{ printf(”輸入第%d個(gè)人的密碼:",i); scanf(”%d”,&m_pwd);//輸入持有密碼 ?p=creat(yī)eNode(i,m_pwd);//調(diào)用構(gòu)造結(jié)點(diǎn)函數(shù)? if(*ppHead==NULL)//如果頭結(jié)點(diǎn)為空??{???*ppHead=cur=p;//生成頭結(jié)點(diǎn),讓cur指向他?? cur—〉next=*ppHead;//cur的指針域指向自身 }??else//如果不為空,則插入結(jié)點(diǎn) ?{ ?p—〉next=cur—〉next; ?cur—〉next=p;? cur=p;//cur指向新插入結(jié)點(diǎn)???}?} printf(”完成創(chuàng)建?。躰");//提示鏈表創(chuàng)建完成}/*出隊(duì)處理*/voidjose(LN(yùn)ode*ppHead,intm_pwd){/*p指向要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),ppHead指向要?jiǎng)h除的節(jié)點(diǎn),使p=ppHead,ppHead再指向要?jiǎng)h除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn),使p和ppHead鏈接,輸出p指向節(jié)點(diǎn)的編號(hào)和密碼值,釋放ppHead,如此循環(huán),直至把所有節(jié)點(diǎn)都打印和刪除為止!*/?inti,j; LNode*p,*p_del;//定義指針變量 for(i=1;p!=ppHead;i++){ ?for(j=1;j<m_pwd;++j){?? p=ppHead;//p賦值為ppHead,p指向要?jiǎng)h除結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)???ppHead=ppHead—>next;//ppHead指向下一個(gè)元素 ?} p-〉next=ppHead—〉next;//p結(jié)點(diǎn)與頭結(jié)點(diǎn)鏈接? i=ppHead—〉pwd;//i賦值為ppHead—〉pwd j=ppHead—〉num;//j賦值為ppHead-〉num,j為要?jiǎng)h除的密碼值 ?printf(”第%d個(gè)人出列,密碼:%d\n”,j,i);??m_pwd=ppHead—〉pwd;//m_pwd賦值為ppHead-〉pwd ?free(cuò)(ppHead);//釋放頭結(jié)點(diǎn) ?ppHead=p—〉next;//ppHead重新賦值給p-〉next,即釋放前的ppHead—>pwd指針//刪除報(bào)數(shù)結(jié)點(diǎn) } i=ppHead-〉pwd;//i賦值為ppHead-〉pwd?j=ppHead—〉num;//j賦值為ppHead-〉num printf("最后一個(gè)出列是%d號(hào),密碼是:%d\n",j,i); free(ppHead);//釋放頭結(jié)點(diǎn)}voidinstruction(){printf("****************************************************************\n”);printf(”約瑟夫環(huán):\n");printf(”編號(hào)為1,2,3,4…,n的n個(gè)人按順時(shí)針?lè)较驀蝗?,每人持有一個(gè)密\n");printf(”碼(正整數(shù)).一開始任選一個(gè)正整數(shù)作為報(bào)數(shù)的上限值m,從第一個(gè)人開始\n");printf(”按順時(shí)針?lè)较蜃?開始順序報(bào)數(shù),報(bào)到時(shí)停止.報(bào)m的人出列,將他的密碼\n”);printf(”m作為新的m值,從他在順時(shí)針?lè)较蛏系南乱蝗碎_始重新從1報(bào)數(shù),如此下去,\n”);printf(”直到所有人全部出列為止。編程打印出列順序.\n”);printf("******************************************************\n");return0;}voidmenu(){ printf(”**************************約瑟夫環(huán)*****************************\n”); printf(”\n");?printf(”[1]約瑟夫環(huán)問(wèn)題的闡述\n”);?printf(”[2]按要求求解約瑟夫環(huán)\n"); printf(”[0]退出\n");?printf(”**************************?dú)g迎使用!****************************\n”);}/*主函數(shù)模塊*/intmain(){?intn,m,x;?LN(yùn)ode*ppHead=NULL; menu(); for(;;){ printf(”\n請(qǐng)選擇要執(zhí)行的操作:”); scanf("%d”,&x);?system(”cls”);?switch(x){case1:? printf("****************************************************************\n”);printf("約瑟夫環(huán):\n");printf(”編號(hào)為1,2,3,4…,n的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)五年家居護(hù)墊市場(chǎng)需求變化趨勢(shì)與商業(yè)創(chuàng)新機(jī)遇分析研究報(bào)告
- 未來(lái)五年農(nóng)林企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年馬的飼養(yǎng)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年生活服務(wù)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 在“午餐”情境中感知“多少”-“比較”的起始課教學(xué)設(shè)計(jì)
- 混合型塑膠跑道施工方案
- 高一化學(xué)(人教版)學(xué)案必修二第七章單元整體教學(xué)設(shè)計(jì)與階段驗(yàn)收評(píng)價(jià)
- 基于深度學(xué)習(xí)的初中英語(yǔ)八年級(jí)下冊(cè)《友誼:聯(lián)結(jié)與溝通》模塊整體教學(xué)設(shè)計(jì)方案
- 河道護(hù)坡冬季施工方案
- 初中英語(yǔ)九年級(jí)詞匯分類策略深度教學(xué)設(shè)計(jì)與實(shí)施
- 醫(yī)療綜合樓手術(shù)室、放射科、檢驗(yàn)科二次深化設(shè)計(jì)裝飾工程投標(biāo)方案投標(biāo)文件(技術(shù)方案)
- DBJ50-T-078-2016重慶市城市道路工程施工質(zhì)量驗(yàn)收規(guī)范
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)道德與法治試題 (含答案)
- 2025年中國(guó)船舶集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 辦公樓物業(yè)服務(wù)的品質(zhì)提升策略
- 養(yǎng)殖場(chǎng)土地租賃合同
- JBT 8200-2024 煤礦防爆特殊型電源裝置用鉛酸蓄電池(正式版)
- (正式版)SHT 3078-2024 立式圓筒形料倉(cāng)工程設(shè)計(jì)規(guī)范
- 計(jì)算機(jī)就業(yè)能力展示
- 設(shè)備維修團(tuán)隊(duì)的協(xié)作與溝通
- 華為三支柱運(yùn)作之HRBP實(shí)踐分享概要課件
評(píng)論
0/150
提交評(píng)論