




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.PAGE.課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)名稱:數(shù)據(jù)結(jié)構(gòu)系:三系學(xué)生姓名:班級:學(xué)號:成績:指導(dǎo)教師:開課時(shí)間:2011-2012學(xué)年1學(xué)期一.設(shè)計(jì)題目考生報(bào)名管理系統(tǒng)二.主要內(nèi)容考生報(bào)名管理系統(tǒng)的設(shè)計(jì)主要是實(shí)現(xiàn)對考生報(bào)考相應(yīng)類別考試的管理和相關(guān)操作。基本功能如下:〔1考試報(bào)考息錄入、添加功能:包括考生的考號、姓名、性別、年齡、籍貫、考試類別等信息?!?報(bào)考信息查詢:可以按考生的考號查詢某個(gè)考生的報(bào)考信息?!?報(bào)考信息排序:按考生的考號排序或按考試類別排序?!?考生報(bào)考信息的修改或刪除:按考生考號修改或刪除某個(gè)考生的相關(guān)信息?!?統(tǒng)計(jì)功能:分別統(tǒng)計(jì)系統(tǒng)中共有多少人報(bào)名、每個(gè)考生的報(bào)考種類的數(shù)量、每種考試類別的考生數(shù)量等。三.課題設(shè)計(jì)的基本思想,原理和算法描述主函數(shù)〔intmain主函數(shù)〔intmain顯示菜單函數(shù)〔Display<L>顯示菜單函數(shù)〔Display<L>定義指針〔LinkList*L初始化線性表函數(shù)〔InitList<L>原理和算法描述:本課題是采用單鏈表編寫程序,用函數(shù)實(shí)現(xiàn)其整個(gè)功能,整個(gè)程序分為三個(gè)模塊:1.編寫頭文件和成員;2.編寫外部函數(shù);3.編寫主函數(shù)。1.編寫頭文件和成員.1.1頭文件:#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>1.2成員:考號<num>、姓名<name>、性別<sex>、年齡<age>、籍貫<address>、考試類別<type>等信息。2.編寫外部函數(shù).2.1輸入函數(shù)〔CreateListR//采用尾差法創(chuàng)建鏈表a.定義intn//該鏈表的總?cè)藬?shù)定義LinkList*s//做作為插入的新結(jié)點(diǎn)定義LinkList*r//始終指向尾結(jié)點(diǎn)b.使用for循環(huán)將新結(jié)點(diǎn)逐次插入鏈表之后〔條件是inti<nc.將尾結(jié)點(diǎn)指向null2.2輸出函數(shù)〔DispLista.定義LinkList*p//指向第一個(gè)元素結(jié)點(diǎn)b.用while循環(huán)逐次輸出鏈表元素〔條件是p!=null2.3查找函數(shù)〔LocateElema.定義ElemTypee//作為查找考號的對象b.定義LinkList*p//指向第一個(gè)元素結(jié)點(diǎn)c.用while循環(huán)查找要查找的結(jié)點(diǎn)〔條件是p!=NULL&&p->data.num!=e.num>d.找到該結(jié)點(diǎn)就輸出該結(jié)點(diǎn)指向的元素,否則結(jié)束2.4刪除函數(shù)〔ListDeletea.定義ElemTypee//作為刪除考號的對象b.定義LinkList*p//指向頭結(jié)點(diǎn)c.定義LinkList*q//作為存儲(chǔ)刪除結(jié)點(diǎn)的變量d.用while循環(huán)查找該結(jié)點(diǎn),并且用free<q>清空該結(jié)點(diǎn)<條件是e.num!=p->next->data.num&&p!=NULL>e.調(diào)用輸出函數(shù),輸出刪除后的結(jié)果2.5修改函數(shù)〔createa.定義ElemTypei//作為修改考號的對象b.定義LinkList*p//指向頭結(jié)點(diǎn)c.用while循環(huán)查找該結(jié)點(diǎn)<條件是i.num!=p->data.num&&p!=NULL>d.重新輸入該結(jié)點(diǎn)指向的所有元素e.并且調(diào)用輸出函數(shù)顯示修改后的所有信息2.6排序函數(shù)〔sort//采用直接插入排序a.定義LinkList*p//指向未排序的第一個(gè)結(jié)點(diǎn)b.定義LinkList*q//指向頭結(jié)點(diǎn)c.用while循環(huán)尋找p指向的元素比排好序中的元素大,則將其插入其后d.調(diào)用輸出函數(shù),顯示排好序的信息。2.7統(tǒng)計(jì)函數(shù)〔sumLista.定義LinkList*p//指向頭結(jié)點(diǎn)b.定義多個(gè)變量//統(tǒng)計(jì)報(bào)考各科的人數(shù)c.用while循環(huán)和if語句統(tǒng)計(jì)人數(shù)2.8插入函數(shù)<Insterlist>a.定義變量intn//作為插入的人數(shù)b.定義變量LinkList*s//作為新插入結(jié)點(diǎn)變量c.定義變量LinkList*r//指向尾指針d.定義變量LinkList*p//作為循環(huán)條件變量e.用while循環(huán)找到尾結(jié)點(diǎn),插入新元素2.9顯示菜單并且選擇函數(shù)〔Displaya.定義變量a//作為選擇變量b.用switch語句,編寫選擇項(xiàng)目2.10初始化線性表函數(shù)〔InitList清除線性表函數(shù)〔DestroyList菜單函數(shù)〔display3.編寫主函數(shù)a.定義LinkList*Lb.調(diào)用初始化線性表函數(shù)c.調(diào)用顯示菜單函數(shù)四、運(yùn)行示例及結(jié)果分析運(yùn)行結(jié)果如上圖,此圖已給出整個(gè)程序的菜單功能選項(xiàng),請選擇你所需要的操作的項(xiàng)目序號:排序功能:用直接插入排序,按考號進(jìn)行遞增排序查找功能:請輸入考號進(jìn)行查找,如果找到就輸出此考生信息刪除功能:首先尋找要?jiǎng)h除的考生的考號,再刪除該結(jié)點(diǎn)4.輸出功能:使用循環(huán)直接輸出結(jié)點(diǎn)所指向的元素5.輸入功能:采用尾插法,逐次將新結(jié)點(diǎn)插入單鏈表之后6.釋放空間:用循環(huán)語句,再用free函數(shù)清理空間7.統(tǒng)計(jì)功能:用循環(huán)和條件語句,統(tǒng)計(jì)報(bào)考各科的人數(shù)8.修改功能:先找到修改的考生考號,再重新輸入該生信息9.插入功能:先找到尾結(jié)點(diǎn),再輸入新元素接在鏈表之后10.結(jié)束功能根據(jù)你選擇的操作的提示,按步驟執(zhí)行.例如、選擇5輸入信息:選擇4輸出信息:選擇7統(tǒng)計(jì)信息:選擇2查找信息:選擇1遞增排序:選擇8修改信息:選擇6釋放空間:選擇9結(jié)束程序:五、調(diào)試和運(yùn)行程序過程中產(chǎn)生的問題及采取的措施問題和措施:1.在用尾插法創(chuàng)建鏈表時(shí),尾結(jié)點(diǎn)沒有指向NULL2.在統(tǒng)計(jì)功能時(shí),結(jié)點(diǎn)指向錯(cuò)誤,導(dǎo)致累計(jì)人數(shù)少3.字符數(shù)組之間不能直接互值,不能用數(shù)學(xué)符號比較大小,應(yīng)該用循環(huán)逐個(gè)字符互值,用strcmp函數(shù)比較大小4.在結(jié)束函數(shù)中,要用exit函數(shù),必須定義頭文件#include<stdlib.h>5.在直接插入排序中,插入結(jié)點(diǎn)時(shí),結(jié)點(diǎn)指向指錯(cuò)六、總結(jié)和展望一周半的課程設(shè)計(jì)結(jié)束了,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會(huì)了合作,學(xué)會(huì)了運(yùn)籌帷幄,學(xué)會(huì)了寬容,學(xué)會(huì)了理解,也學(xué)會(huì)了做人與處世。課程設(shè)計(jì)是我們專業(yè)課程知識綜合應(yīng)用的實(shí)踐訓(xùn)練,著是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程."千里之行始于足下",通過這次課程設(shè)計(jì),我深深體會(huì)到這句千古名言的真正含義.我今天認(rèn)真的進(jìn)行課程設(shè)計(jì),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ).通過這次數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),本人在多方面都有所提高。通過這次設(shè)計(jì),綜合運(yùn)用本專業(yè)所學(xué)課程的理論和生產(chǎn)實(shí)際知識進(jìn)行一次編寫考生信息設(shè)計(jì)工作的實(shí)際訓(xùn)練從而培養(yǎng)和提高學(xué)生獨(dú)立工作能力,鞏固與擴(kuò)充了數(shù)據(jù)各課程所學(xué)的內(nèi)容,掌握數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的方法和步驟,掌握數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的基本的方法,懂得了怎樣分析題目,怎樣確定程序方案,了解數(shù)據(jù)結(jié)構(gòu)的基本思想,提高了計(jì)算能力,編程能力,熟悉了規(guī)范和標(biāo)準(zhǔn),同時(shí)各科相關(guān)的課程都有了全面的復(fù)習(xí),獨(dú)立思考的能力也有了提高。在這次設(shè)計(jì)過程中,體現(xiàn)出自己單獨(dú)設(shè)計(jì)的能力以及綜合運(yùn)用知識的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。在此感謝我們的劉老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開老師的細(xì)心指導(dǎo)。而您開朗的個(gè)性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。同時(shí)感謝對我?guī)椭^的同學(xué)們,謝謝你們對我的幫助和支持,讓我感受到同學(xué)的友誼。由于本人的設(shè)計(jì)能力有限,在設(shè)計(jì)過程中難免出現(xiàn)錯(cuò)誤,懇請老師們多多指教,我十分樂意接受你們的批評與指正,本人將萬分感謝。七、參考資料[1]李春葆等著.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例精編.清華大學(xué)出版社,2009[2]李春葆等主編.數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)和課程設(shè)計(jì)教程.清華大學(xué)出版社,2009代碼如下:#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>typedefstructstudent{intnum;charsex[10];charname[10];intage;charaddress[10];inttype;}ElemType;typedefstructLNode { ElemTypedata;structLNode*next;}LinkList;ElemTypee;voidInitList<LinkList*&L>{ L=<LinkList*>malloc<sizeof<LinkList>>; L->next=NULL;}voidDestroyList<LinkList*&L>{ LinkList*p=L,*q=p->next;while<q!=NULL> { free<p>; p=q; q=p->next; } free<p>; printf<"此鏈表為空,請重新選擇,創(chuàng)建鏈表\n\n\n">;}voidCreateListR<LinkList*&L>{intn;printf<"請輸入要增加的人數(shù)n=">;scanf<"%d",&n>; LinkList*s,*r;inti;L=<LinkList*>malloc<sizeof<LinkList>>; r=L; printf<"輸入考號<不能相同>姓名性別籍貫?zāi)挲g考試類別<1.英語.電腦.數(shù)學(xué).語文.其它>\n">;for<i=0;i<n;i++>{s=<LinkList*>malloc<sizeof<LinkList>>;scanf<"%d%s%s%s%d%d",&s->data.num,&s->,&s->data.sex,&s->data.address,&s->data.age,&s->data.type>;r->next=s;r=s;}r->next=NULL; }voidDispList<LinkList*L>{ LinkList*p=L->next;while<p!=NULL> {printf<"考號<不能相同>姓名性別籍貫?zāi)挲g考試類別<1.英語.電腦.數(shù)學(xué).語文.其它>\n">; printf<"%d%s%s%s%d%d\n",p->data.num,p->,p->data.sex,p->data.address,p->data.age,p->data.type>; p=p->next; } printf<"\n">;}intLocateElem<LinkList*L>{printf<"請輸入要查找的考號i=">;scanf<"%d",&e.num>; LinkList*p=L->next;while<p!=NULL&&p->data.num!=e.num> { p=p->next; }if<p==NULL>return<0>;else {printf<"考號:">; printf<"%d\n",p->data.num>; printf<"性別:">; printf<"%s\n",p->data.sex>; printf<"姓名:">; printf<"%s\n",p->>; printf<"籍貫:">; printf<"%s\n",p->data.address>; printf<"年齡:">; printf<"%d\n",p->data.age>; printf<"考試類別<1.英語.電腦.數(shù)學(xué).語文.其它>:">; printf<"%d\n",p->data.type>;return1;}}intListDelete<LinkList*&L>{printf<"請輸入要?jiǎng)h除的考號i=">; scanf<"%d",&e.num>; LinkList*p=L,*q;while<e.num!=p->next->data.num&&p!=NULL> { p=p->next; }if<p==NULL> return0;else { q=p->next; if<q==NULL>return0; p->next=q->next; free<q>; printf<"輸出刪除以后的全部信息:\n\n">; DispList<L>;return1; }}intcreate<LinkList*&L>{printf<"請輸入要修改人的考號i=">; scanf<"%d",&e.num>; LinkList*p=L;while<e.num!=p->data.num&&p!=NULL> { p=p->next; }if <p==NULL>return0;else { printf<"請輸入考號\n">;scanf<"%d",&e.num>;if<p->data.num==e.num> { printf<"允許修改,請輸入:姓名性別籍貫?zāi)挲g考試類別<1.英語.電腦.數(shù)學(xué).語文.其它>\n">; scanf<"%s%s%s%d%d",&p->,&p->data.sex,&p->data.address,&p->data.age,&p->data.type>; printf<"輸出修改以后的全部信息:\n\n">; DispList<L>;return<1>; }else { printf<"考號不同,不能修改,重新執(zhí)行修改信息\n">;return<1>; } }}voidsort<LinkList*&L>{LinkList*p=L->next,*q,*r;if<p!=NULL>{r=p->next;p->next=NULL;p=r;while<p!=NULL>{r=p->next;q=L;while<q->next!=NULL&&q->next->data.num<p->data.num> q=q->next; p->next=q->next; q->next=p; p=r;}}DispList<L>;}voidsumList<LinkList*&L>{LinkList*p=L;intn=0,m=0,h=0,i=0,j=0,k=0;while<p->next!=NULL>{n++;if<p->next->data.type==1> m++;if<p->next->data.type==2> i++;if<p->next->data.type==3> h++;if<p->next->data.type==4> j++;if<p->next->data.type==5> k++;p=p->next;}printf<"報(bào)考的總?cè)藬?shù)是n=">;printf<"%d\n",n>;printf<"報(bào)考英語的人數(shù)是e=">;printf<"%d\n",m>;printf<"報(bào)考數(shù)學(xué)的人數(shù)是m=">;printf<"%d\n",h>;printf<"報(bào)考電腦的人數(shù)是c=">;printf<"%d\n",i>;printf<"報(bào)考語文的人數(shù)是k=">;printf<"%d\n",j>;printf<"報(bào)考其它的人數(shù)是q=">;printf<"%d\n",k>;}voidInsterlist<LinkList*L>{intn;printf<"請輸入要插入的人數(shù)n=">;scanf<"%d",&n>; LinkList*s,*r,*p=L;inti;//r=s; printf<"輸入考號<不能相同>姓名性別籍貫?zāi)挲g考試類別<1.英語.電腦.數(shù)學(xué).語文.其它>\n">;while<p->next!=NULL> p=p->next;for<i=0;i<n;i++>{s=<LinkList*>malloc<sizeof<LinkList>>;scanf<"%d%s%s%s%d%d",&s->data.num,&s->
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSM 0052-2024“領(lǐng)跑者”評價(jià)技術(shù)要求 普通型立式帶鋸床
- T-ZSA 227-2024 低慢小無人駕駛航空器車載式預(yù)警處置系統(tǒng)
- 2025年度村級林業(yè)資源監(jiān)測村級護(hù)林員職責(zé)合同
- 2025年度美甲服務(wù)連鎖品牌合作協(xié)議
- 二零二五年度汽車維修保養(yǎng)抵押借款合同
- 2025年度美發(fā)店員工勞動(dòng)合同及員工福利政策
- 二零二五年度個(gè)人心理咨詢服務(wù)合同
- 2025年度消防車輛抵押借款合同范本
- 二零二五年度直播平臺(tái)用戶行為數(shù)據(jù)分析合同
- 2025年度石材石材加工定制采購協(xié)議
- DL5714-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工技術(shù)規(guī)范
- 選擇性必修二《Unit 3 Food and Culture》單元課件及小結(jié)
- 2024年湖南省岳陽市中考數(shù)學(xué)一模試卷
- DZ∕T 0080-2010 煤炭地球物理測井規(guī)范(正式版)
- 否定副詞“不”和“沒有”比較研究
- 售樓部銷售禮儀培訓(xùn)內(nèi)容
- (高清版)DZT 0347-2020 礦山閉坑地質(zhì)報(bào)告編寫規(guī)范
- 2024年不停電電源UPS相關(guān)項(xiàng)目營銷計(jì)劃書
- 重汽重卡培訓(xùn)課件
- 干式變壓器培訓(xùn)課件
- 公司SWOT分析表模板
評論
0/150
提交評論