數(shù)據(jù)結(jié)構(gòu)實驗報告模板(驗證型)_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗報告模板(驗證型)_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗報告模板(驗證型)_第3頁
數(shù)據(jù)結(jié)構(gòu)實驗報告模板(驗證型)_第4頁
數(shù)據(jù)結(jié)構(gòu)實驗報告模板(驗證型)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)期: 2010-2011學(xué)年第一學(xué)期 指導(dǎo)教師: 楊華莉 成績: 實驗一 順序表的基本操作一、 實驗?zāi)康? 掌握使用VC+6.0調(diào)試程序的基本方法;2 掌握線性表的順序存儲結(jié)構(gòu)的類型定義;3 掌握順序表的基本操作的實現(xiàn),如:插入、刪除、遍歷、查找、排序、修改、合并等;4 掌握順序表的應(yīng)用。二、 實驗要求1 認(rèn)真閱讀和掌握本實驗的示例程序。2 上機運行示例程序,打印出程序的運行結(jié)果,并作必要的說明。3 對示例程序,按照對線性表的操作需要,在程序中至少添加2個順序表的相關(guān)操作。如:i. 查找并顯示分?jǐn)?shù)在區(qū)間a,b)的學(xué)生信息;ii. 查找并顯示最高分或最低分學(xué)生信息;iii. 統(tǒng)計不及格或及格人

2、數(shù)及所占比例;iv. 將信息表按學(xué)號、姓名或分?jǐn)?shù)升序或降序排列;v. 按學(xué)號順序進行數(shù)據(jù)元素的插入;vi. 刪除指定學(xué)號或姓名的學(xué)生信息;vii. 修改某個學(xué)生的信息;viii. 其它。4 重新改寫主函數(shù)(要求必需調(diào)用自己添加的操作),打印出文件清單(自己添加的函數(shù)、修改后的主函數(shù)和運行結(jié)果)。5 對修改后的程序,分析每一個算法(函數(shù))的時間復(fù)雜度。6 根據(jù)上述要求撰寫實驗報告,并簡要給出算法設(shè)計小結(jié)和心得。三、 實驗環(huán)境1 臺式計算機每人一臺;2 軟件:Visual C+6.0四、 實驗內(nèi)容和實驗結(jié)果一示例程序運行結(jié)果及說明 二 自己添加的新函數(shù)(至少2個),要求加必要的注釋。SqList

3、Delete_SqList(SqList &L)/刪除學(xué)生信息 Elemtype x;int i=0; int choice=DMenu(); char name25;int num,k;if(!L.length) printf(表為空,無法刪除!); exit(0);switch(choice) case 1: /按姓名刪除 printf(n請輸入要刪除的學(xué)生的姓名n);scanf(%s,&name);k=strcmp(name,L.);/比較姓名 if(k=0) x=L.datai-1; for(int m=L.length-1;m=i-1;-m) L.datai-1=

4、L.datai; -L.length; break; case 2: /按學(xué)號刪除 printf(n請輸入要刪除學(xué)生的學(xué)號n);scanf(%d,&num);if(num=L.datai.num) for(int m=L.length-1;m=i-1;-m) L.datai-1=L.datai; -L.length; break; case 3:break; return L;void TongJi_SqList(SqList L)/統(tǒng)計信息表中學(xué)生的信息 int i; int choice=TMenu();/選擇所要統(tǒng)計的方式的菜單 switch(choice) case 1: for(i=

5、0;iL.length;i+)/統(tǒng)計男生信息 if(L.datai.sex=m) PrintElem(L.datai); break; case 2: for(i=0;iL.length;i+)/統(tǒng)計女生的信息 if(L.datai.sex=f) PrintElem(L.datai); break; case 3: for(i=0;iL.length;i+)/統(tǒng)計不及格的人 if(L.datai.score60) printf(“不及格的為:”); PrintElem(L.datai); break; case 4: for(i=0;i90) printf(“分?jǐn)?shù)在90分以上的為:”); Pr

6、intElem(L.datai); break; case 5: break; void PaiXu_SqList(SqList L)/排序 int i,j,k; int choice=PMenu();/選擇菜單 switch(choice) case 1: /按序號升序排列 for(i=0;iL.length;i+) for(j=0;jL.dataj+1.num) k=L.dataj.num; L.dataj.num=L.dataj+1.num; /冒泡法排序 L.dataj+1.num=k; for(j=0;jL.length;j+)/輸出排序結(jié)果 PrintElem(L.dataj);

7、break;case 2: /按分?jǐn)?shù)降序排列 for(i=0;iL.length;i+) for(j=0;jL.length-i;j+) if(L.dataj.scoreL.dataj+1.score) k=L.dataj.score; L.dataj.score=L.dataj+1.score; L.dataj+1.score=k; for(j=0;jL.length;j+)/輸出結(jié)果 PrintElem(L.dataj); break;case 3: /按分?jǐn)?shù)升序排列 for(i=0;iL.length;i+) for(j=0;jL.dataj.score) k=L.dataj.score

8、; L.dataj.score=L.dataj+1.score; L.dataj+1.score=k; for(j=0;jL.length;j+)/輸出排序結(jié)果 PrintElem(L.dataj); break; case 4: break; 三 改寫后的主函數(shù)(要求必需調(diào)用自己添加的操作)void main()/通過文件input1.txt輸入數(shù)據(jù),結(jié)果輸出到文件output1.txt/打開輸入輸出文件FILE *in,*out; if(in=fopen(input1.txt,r)=NULL) printf(cannot open infilen); exit(0); if(out=fop

9、en(output1.txt,w)=NULL) printf(cannot open infilen); exit(0); int choice;SqList L;Init_SqList(L);/系統(tǒng)文件初始化,構(gòu)造空表Lwhile(1)choice=Menu();switch(choice)case 1:Creat_SqList(L,in);/導(dǎo)入數(shù)據(jù),根據(jù)文件input.txt讀入的數(shù)據(jù)建立順序表Lbreak;case 2:Traver_SqList(L);/查詢,輸出順序表break;case 3:Insert_SqList(L);/ 在順序表L中插入一個新元素break;case 4:

10、Delete_SqList(L); break;/刪除元素case 5:TongJi_SqList(L); break;/統(tǒng)計case 6:PaiXu_SqList(L); break;/排序case 7:Cheng_SqList(L); break;/修改case 0: SaveList(L,out);fclose(in);fclose(out);exit(-1);break;/保存數(shù)據(jù),并退出系統(tǒng)getchar();四改寫后程序的運行結(jié)果。 五簡要給出所選示例程序中算法的時間復(fù)雜度分析結(jié)果。void PrintElem(Elemtype a);/打印輸出數(shù)據(jù)元素a的各數(shù)據(jù)項 此函數(shù)的voi

11、d Init_SqList(SqList &L);/構(gòu)造一個空的順序表Lvoid SaveList(SqList L,FILE *out);/保存順序表L的數(shù)據(jù)/建表,從文件讀取數(shù)據(jù),以尾插法建立順序表Lvoid Creat_SqList(SqList &L,FILE *in);/查詢,遍歷順序表L(輸出L中的數(shù)據(jù)序列)void Traver_SqList(SqList L);void TongJi_SqList(SqList L);void PaiXu_SqList(SqList L);void Cheng_SqList(SqList L);/添加,在順序表L中插入一個新元素SqList Insert_SqList (SqList &L);SqList Delete_SqList(SqList &L);六簡要給出算法設(shè)計小結(jié)和心得。平時我們學(xué)C語言視乎都是為了考試或者做一些比較常規(guī)的題目,而這次實訓(xùn)卻給我們的將所學(xué)知識運用于解決實際問題的機會,讓人更有激情,這就是編寫軟件的在雛形,也讓我們感受到了編寫軟件程序的樂趣。但是不僅僅是如此,更為重要的是在運用所學(xué)知識的過程中,記住這些知識,并能夠廣泛的運用!這一次編寫大作業(yè)的程序又讓我感

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論