計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告鏈表設(shè)計(jì)_第1頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告鏈表設(shè)計(jì)_第2頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告鏈表設(shè)計(jì)_第3頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告鏈表設(shè)計(jì)_第4頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告鏈表設(shè)計(jì)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(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ī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告學(xué)院:城鄉(xiāng)資源與規(guī)劃學(xué)院專業(yè): 09級(jí)資管 班級(jí): 09級(jí)資管 課題: 鏈表設(shè)計(jì) 姓名: 學(xué)號(hào): 指導(dǎo)教師: 報(bào)告成績: 日期:2011年6月25日目 錄一、課程設(shè)計(jì)目的2二、課程設(shè)計(jì)要求2三、設(shè)計(jì)題目分析23.1題目簡介23.2設(shè)計(jì)要求2四、課程設(shè)計(jì)類容24.1總體設(shè)計(jì)24.2詳細(xì)設(shè)計(jì)34.3調(diào)試與測(cè)試4五、設(shè)計(jì)心得與總結(jié)9六、建議9參考書目:9一、課程設(shè)計(jì)目的掌握函數(shù)的運(yùn)用。加深對(duì)結(jié)構(gòu)體類型數(shù)據(jù)、結(jié)構(gòu)體指針類型數(shù)據(jù)的認(rèn)識(shí),熟練鏈表的概念,熟悉鏈表的操作。二、課程設(shè)計(jì)要求建立一個(gè)班級(jí)(10個(gè)學(xué)生)的學(xué)生情況表(采用鏈表),每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名和一

2、門課的成績。要求程序采用如下的結(jié)構(gòu)框圖:主函數(shù)創(chuàng)建函數(shù)輸出函數(shù)菜單函數(shù)三、設(shè)計(jì)題目分析3.1題目簡介 建立一個(gè)包含主函數(shù)、菜單函數(shù)、創(chuàng)建函數(shù)和輸出函數(shù)四個(gè)功能模塊的單鏈表,能輸出10個(gè)學(xué)生的成績,學(xué)號(hào)以及姓名。3.2設(shè)計(jì)要求 設(shè)計(jì)的程序中應(yīng)當(dāng)包含一個(gè)主函數(shù)和一個(gè)菜單函數(shù),而在主函數(shù)中應(yīng)當(dāng)包含一個(gè)輸入函數(shù)和一個(gè)輸出函數(shù),即創(chuàng)建輸入鏈表和輸出鏈表,此外,還可以創(chuàng)建插入、刪除鏈表的節(jié)點(diǎn)等等,設(shè)計(jì)的程序要求按照如下結(jié)構(gòu)框圖: 主函數(shù)創(chuàng)建函數(shù)輸出函數(shù)菜單函數(shù)四、課程設(shè)計(jì)類容4.1總體設(shè)計(jì) 首先要?jiǎng)?chuàng)建一個(gè)主函數(shù),在主函數(shù)中調(diào)用其他設(shè)計(jì)的幾個(gè)子函數(shù)。包括一個(gè)創(chuàng)建學(xué)生信息的結(jié)構(gòu)體;一個(gè)輸入學(xué)生信息的創(chuàng)建鏈表;

3、一個(gè)輸出學(xué)生信息的輸出鏈表;一個(gè)菜單函數(shù)。他們都是通過主函數(shù)的調(diào)用實(shí)現(xiàn)的。4.2詳細(xì)設(shè)計(jì) (1)創(chuàng)建結(jié)構(gòu)體 struct student算法:它包括學(xué)生的姓名;學(xué)生的成績;學(xué)生的學(xué)號(hào)。關(guān)鍵是要把這個(gè)類型定義好,如char name80;float score;long num.(2)用struct student *creat()創(chuàng)建鏈表算法:先定義一個(gè)指向鏈表頭的指針型的函數(shù)struct student*creat(),然后head=null,創(chuàng)建第一個(gè)結(jié)點(diǎn)p=q=(struct student *)malloc(sizeof(struct student),然后用while語句將該結(jié)點(diǎn)加入

4、鏈表,然后head=p,作為表頭,再然后p=(struct student *)malloc(sizeof(len)開辟下一個(gè)結(jié)點(diǎn),以此類推創(chuàng)建一個(gè)鏈表。(3)用struct student *print()來輸出鏈表算法:輸出函數(shù)的算法比較簡單,p首先指向第一個(gè)結(jié)點(diǎn),輸完第一個(gè)結(jié)點(diǎn)之后,將p原來所指向的next賦給p,即p=p-next,而p-next就成為了下一個(gè)結(jié)點(diǎn)的起始地址,依次順序輸出鏈表的信息。(4)menu函數(shù)是一個(gè)菜單函數(shù),它會(huì)在switch語句中被調(diào)用。算法:首先輸出一個(gè)菜單:*menu*1.creat list 2.print list 3.exit然后是做一個(gè)do-whi

5、le的循環(huán),輸入數(shù)值c后,再判斷c是否滿足(c3),滿足的話就繼續(xù)做循環(huán),不滿足結(jié)束,然后返回c的值,被調(diào)用到主函數(shù)里。輸出開始輸入一個(gè)1-3的 數(shù)c3return cn結(jié)束y 輸入c(5)在主函數(shù)里會(huì)調(diào)用其他三個(gè)子函數(shù)。算法:先是定義了一個(gè)switch語句,然后在這個(gè)開關(guān)語句里又調(diào)用了菜單函數(shù)menu,在這個(gè)switch語句里,當(dāng)條件符合case 1時(shí),調(diào)用creat函數(shù);當(dāng)條件符合case 2時(shí),調(diào)用print函數(shù);當(dāng)條件符合case 3時(shí),則退出(exit)。 4.3調(diào)試與測(cè)試首先創(chuàng)建 struct student 結(jié)構(gòu)體: char name80; long int num; int

6、score; struct student *next;接著創(chuàng)建struct student *creat()函數(shù):struct student *creat() struct student *head,*p1,*p2; n=0; head=null; p1=p2=(struct student *)malloc(len); printf(enter date); scanf(%ld%d%s,&p1-num,&p1-score,p1-name); while(p1-num!=0) n+; if(n=1) head=p1; head-next=null; else p2-next=p1; p2

7、=p1; p1=(struct student *)malloc(sizeof(len); printf(enter date); scanf(%ld%d%s,&p1-num,&p1-score,&p1-name); p2-next=null; return(head);緊接著創(chuàng)建struct student *print()函數(shù):void print(struct student *head) struct student *p1; p1=head; if(head!=null) do printf(%ld,%s,%dn,p1-num,p1-name,p1-score); p1=p1-nex

8、t; while(p1!=null); else printf(this is a null list);接著創(chuàng)建菜單函數(shù):int menu() int c; printf(nn%16s, ); printf(*menu*n); printf(tt1.creat listn); printf(tt2.print listn); printf(tt3.exitn); do printf(ntenter select(1-3):); scanf(%d,&c); while(c3); return c; 再寫出主函數(shù)是要調(diào)用上面三個(gè)函數(shù):void main() while(1) switch(men

9、u() case 1:head=creat(); break;case 2:print(head); printf(ntcontinue!); getch(); break; case 3:exit(0); 運(yùn)行的結(jié)果是:*menu*1.creat list 2.print list3.exitenter select(1-3):furenhuanenter data01,86, zoufuenter data02,99, wangxuanenter data03,89, xiekuienter data04,88,yangyunguangenter data05,92, yushuaimin

10、genter data06,79, limengfeienter data07,69,liangleienter data08,87, fenghaiboenter data09,97, heshunleenter data10,58, zhaoguoguoenter data0*menu*1.creat list2.print list3.exitenter select(1-3): *menu*1.creat list2.print list3.exitenter select(1-3):201,86,zoufu02,99,wangxuan03,89,xiekui04,88,yangyunguang05,92,yushuaiming06,79,limengfei07,69,lianglei08,87,fenghaibo09,97,heshunle10,58,zhaoguoguocontinue!*menu*1.creat list2.print list3.exitenter select(1-3):3返回主界面:五、設(shè)計(jì)心得與總結(jié)此鏈表設(shè)計(jì)過程中要掌握函數(shù)的運(yùn)用,加深對(duì)結(jié)構(gòu)體類型數(shù)據(jù),結(jié)構(gòu)體指針類型數(shù)據(jù)的認(rèn)識(shí),熟練鏈表的概念,熟悉鏈表的操作。六、建議通過此次程序設(shè)計(jì),我初步掌握了鏈表設(shè)計(jì)的基

溫馨提示

  • 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)論