版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國制造業(yè)數(shù)字化轉(zhuǎn)型現(xiàn)狀
- 2024年滬科版一年級語文上冊階段測試試卷
- 2024年北師大版二年級語文下冊階段測試試卷
- 提振消費的主要策略:促進線上線下消費融合
- 2024權(quán)轉(zhuǎn)讓簡單合同范本
- 2024某局新材料研發(fā)合作合同
- 浙攝版小學(xué)信息技術(shù)五年級上第5課《數(shù)據(jù)的獲取》說課稿
- 2025遼寧省建筑安全員C證考試題庫
- 創(chuàng)新教師教育培訓(xùn)方式與手段的策略
- 產(chǎn)教融合的現(xiàn)狀與問題分析
- 《地方導(dǎo)游基礎(chǔ)知識》3.4 安徽 地方導(dǎo)游基礎(chǔ)知識-題庫及答案
- 生命教育項目式學(xué)習(xí):內(nèi)涵、價值與實踐路徑
- 四川省成都市青白江區(qū)2024-2025學(xué)年六年級數(shù)學(xué)第一學(xué)期期末教學(xué)質(zhì)量檢測試題含解析
- 診所的醫(yī)療廢物處置協(xié)議
- 高職建筑設(shè)計專業(yè)《建筑構(gòu)造與識圖》說課課件
- 《國珍產(chǎn)品介紹》
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術(shù)規(guī)范
- 《高速鐵路客運乘務(wù)實務(wù)(活頁式)》全套教學(xué)課件
- JCT872-2000建筑裝飾用微晶玻璃
- 2024(部編版)道德與法治九年級上冊 第二單元 民主與法治 單元測試(學(xué)生版+解析版)
- 醫(yī)療護理員基礎(chǔ)理論知識考試試題題庫及答案
評論
0/150
提交評論