




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)期: 2010-2011學(xué)年第一學(xué)期 指導(dǎo)教師: 楊華莉 成績(jī): 實(shí)驗(yàn)一 順序表的基本操作一、 實(shí)驗(yàn)?zāi)康? 掌握使用VC+6.0調(diào)試程序的基本方法;2 掌握線性表的順序存儲(chǔ)結(jié)構(gòu)的類(lèi)型定義;3 掌握順序表的基本操作的實(shí)現(xiàn),如:插入、刪除、遍歷、查找、排序、修改、合并等;4 掌握順序表的應(yīng)用。二、 實(shí)驗(yàn)要求1 認(rèn)真閱讀和掌握本實(shí)驗(yàn)的示例程序。2 上機(jī)運(yùn)行示例程序,打印出程序的運(yùn)行結(jié)果,并作必要的說(shuō)明。3 對(duì)示例程序,按照對(duì)線性表的操作需要,在程序中至少添加2個(gè)順序表的相關(guān)操作。如:i. 查找并顯示分?jǐn)?shù)在區(qū)間a,b)的學(xué)生信息;ii. 查找并顯示最高分或最低分學(xué)生信息;iii. 統(tǒng)計(jì)不及格或及格人
2、數(shù)及所占比例;iv. 將信息表按學(xué)號(hào)、姓名或分?jǐn)?shù)升序或降序排列;v. 按學(xué)號(hào)順序進(jìn)行數(shù)據(jù)元素的插入;vi. 刪除指定學(xué)號(hào)或姓名的學(xué)生信息;vii. 修改某個(gè)學(xué)生的信息;viii. 其它。4 重新改寫(xiě)主函數(shù)(要求必需調(diào)用自己添加的操作),打印出文件清單(自己添加的函數(shù)、修改后的主函數(shù)和運(yùn)行結(jié)果)。5 對(duì)修改后的程序,分析每一個(gè)算法(函數(shù))的時(shí)間復(fù)雜度。6 根據(jù)上述要求撰寫(xiě)實(shí)驗(yàn)報(bào)告,并簡(jiǎn)要給出算法設(shè)計(jì)小結(jié)和心得。三、 實(shí)驗(yàn)環(huán)境1 臺(tái)式計(jì)算機(jī)每人一臺(tái);2 軟件:Visual C+6.0四、 實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)結(jié)果一示例程序運(yùn)行結(jié)果及說(shuō)明 二 自己添加的新函數(shù)(至少2個(gè)),要求加必要的注釋。SqList
3、Delete_SqList(SqList &L)/刪除學(xué)生信息 Elemtype x;int i=0; int choice=DMenu(); char name25;int num,k;if(!L.length) printf(表為空,無(wú)法刪除!); exit(0);switch(choice) case 1: /按姓名刪除 printf(n請(qǐng)輸入要?jiǎng)h除的學(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é)號(hào)刪除 printf(n請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)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)計(jì)信息表中學(xué)生的信息 int i; int choice=TMenu();/選擇所要統(tǒng)計(jì)的方式的菜單 switch(choice) case 1: for(i=
5、0;iL.length;i+)/統(tǒng)計(jì)男生信息 if(L.datai.sex=m) PrintElem(L.datai); break; case 2: for(i=0;iL.length;i+)/統(tǒng)計(jì)女生的信息 if(L.datai.sex=f) PrintElem(L.datai); break; case 3: for(i=0;iL.length;i+)/統(tǒng)計(jì)不及格的人 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: /按序號(hào)升序排列 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; 三 改寫(xiě)后的主函數(shù)(要求必需調(diào)用自己添加的操作)void main()/通過(guò)文件input1.txt輸入數(shù)據(jù),結(jié)果輸出到文件output1.txt/打開(kāi)輸入輸出文件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);/查詢(xún),輸出順序表break;case 3:Insert_SqList(L);/ 在順序表L中插入一個(gè)新元素break;case 4:
10、Delete_SqList(L); break;/刪除元素case 5:TongJi_SqList(L); break;/統(tǒng)計(jì)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();四改寫(xiě)后程序的運(yùn)行結(jié)果。 五簡(jiǎn)要給出所選示例程序中算法的時(shí)間復(fù)雜度分析結(jié)果。void PrintElem(Elemtype a);/打印輸出數(shù)據(jù)元素a的各數(shù)據(jù)項(xiàng) 此函數(shù)的voi
11、d Init_SqList(SqList &L);/構(gòu)造一個(gè)空的順序表Lvoid SaveList(SqList L,FILE *out);/保存順序表L的數(shù)據(jù)/建表,從文件讀取數(shù)據(jù),以尾插法建立順序表Lvoid Creat_SqList(SqList &L,FILE *in);/查詢(xún),遍歷順序表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中插入一個(gè)新元素SqList Insert_SqList (SqList &L);SqList Delete_SqList(SqList &L);六簡(jiǎn)要給出算法設(shè)計(jì)小結(jié)和心得。平時(shí)我們學(xué)C語(yǔ)言視乎都是為了考試或者做一些比較常規(guī)的題目,而這次實(shí)訓(xùn)卻給我們的將所學(xué)知識(shí)運(yùn)用于解決實(shí)際問(wèn)題的機(jī)會(huì),讓人更有激情,這就是編寫(xiě)軟件的在雛形,也讓我們感受到了編寫(xiě)軟件程序的樂(lè)趣。但是不僅僅是如此,更為重要的是在運(yùn)用所學(xué)知識(shí)的過(guò)程中,記住這些知識(shí),并能夠廣泛的運(yùn)用!這一次編寫(xiě)大作業(yè)的程序又讓我感
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豫北方言處所介詞研究
- 發(fā)熱查因病例討論
- 科學(xué)做好入學(xué)準(zhǔn)備活動(dòng)銜接教育
- 小班健康勇敢告訴老師
- 頜下腺護(hù)理課件
- 牙體牙髓科護(hù)理
- 股骨骨折患者護(hù)理查房
- 領(lǐng)克品牌介紹
- 2025年四川省德陽(yáng)市中考招生考試數(shù)學(xué)真題試卷(真題+答案)
- 預(yù)防毒品班會(huì)課件
- 生活垃圾焚燒發(fā)電廠自動(dòng)監(jiān)測(cè)設(shè)備運(yùn)行維護(hù)技術(shù)規(guī)范
- 血管加壓藥物在急診休克中的應(yīng)用專(zhuān)家共識(shí)2021解讀課件
- 《個(gè)人信息保護(hù)法》知識(shí)考試題庫(kù)150題(含答案)
- 高一化學(xué)達(dá)標(biāo)訓(xùn)練:第一單元化石燃料與有機(jī)化合物
- 反食品浪費(fèi)法培訓(xùn)
- 2025版國(guó)家開(kāi)放大學(xué)法學(xué)本科《知識(shí)產(chǎn)權(quán)法》期末紙質(zhì)考試總題庫(kù)
- 2025年行政執(zhí)法人員執(zhí)法證考試必考多選題庫(kù)及答案(共300題)
- 嗜鉻細(xì)胞瘤危象的救治策略
- 《工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
- 2024年度瀝青水穩(wěn)混合料銷(xiāo)售代理合同
- 《汽車(chē)尾氣治理技術(shù)》課件
評(píng)論
0/150
提交評(píng)論