下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)8、9 查找、排序算法的應(yīng)用 姓名 張鑫明 學(xué)號 A208 班級 B14512一、實(shí)驗(yàn)?zāi)康?掌握查找的不同方法,并能用高級語言實(shí)現(xiàn)查找算法。 2熟練掌握順序表和有序表的順序查找和二分查找方法。3掌握排序的不同方法,并能用高級語言實(shí)現(xiàn)排序算法。4熟練掌握順序表的選擇排序、冒泡排序和直接插入排序算法的實(shí)現(xiàn)。二、實(shí)驗(yàn)內(nèi)容1在文件中存儲如下學(xué)生信息: 學(xué)號姓名 數(shù)據(jù)結(jié)構(gòu) 程序設(shè)計1王立76 882 張秋88 773劉麗79 654 王通86 855趙陽71 906李艷68 707錢娜89 958孫勝60 762創(chuàng)建順序查找表,讀取文件中的信息。3使用順序查找方法按姓名查找
2、學(xué)生。如果查找成功,則顯示該生的相關(guān)信息;如果查找不成功,則給出相應(yīng)的提示信息。4使用二分查找方法,查找學(xué)生學(xué)號信息。如果查找成功,則顯示該生的相關(guān)信息;如果查找不成功,則給出相應(yīng)的提示信息。5使用直接插入排序方法,對學(xué)生信息中的姓名進(jìn)行排序。輸出排序前和排序后的學(xué)生信息表,驗(yàn)證排序結(jié)果。6使用直接選擇排序方法,對學(xué)生信息中的數(shù)據(jù)結(jié)構(gòu)成績進(jìn)行排序。輸出排序前和排序后的學(xué)生信息表,驗(yàn)證排序結(jié)果。7使用冒泡排序方法,對學(xué)生信息中的程序設(shè)計成績進(jìn)行排序。輸出排序前和排序后的學(xué)生信息表,驗(yàn)證排序結(jié)果。8編寫一個菜單,來實(shí)現(xiàn)各項(xiàng)功能的選擇。*學(xué)生成績管理系統(tǒng)* 1信息初始化 2順序查找 * 3二分查找
3、4直接插入排序 * 5冒泡排序 6直接選擇排序 * 0退出 *9利用工程完成本次實(shí)驗(yàn)任務(wù),各個功能分別放到一個函數(shù)中。三、實(shí)驗(yàn)結(jié)果專心-專注-專業(yè)Main()#include "sdaf.h"int main(int argc,char *argv)stu a8 =1,"王立",76,88,2,"張秋",88,77,3,"劉麗",79,65,4,"王通",86,85,5,"趙陽",71,90,6,"李艷",68,70,7,"錢娜",89
4、,95,8,"孫勝",60,76; FILE *pf=NULL;pf=fopen("D:/test.txt", "w" );/假設(shè)test.txt文件為空 if(!pf)printf("打開文件失敗,程序退出!");exit(1); for(int i=0;i<8;i+)fprintf(pf,"%d %s %d %dn",ai.num,,ai.s1,ai.s2);if(pf)/關(guān)閉文件 fclose( pf);pf=NULL;printf("數(shù)據(jù)已寫入test.tx
5、t文件!n"); stu b8;pf = fopen("D:/test.txt","r"); / 打開文件,按讀的方式打開for(int j=0;j<8;j+)fscanf(pf,"%d %s %d %d", &bj.num,&,&bj.s1,&bj.s2); / 循環(huán)讀if(b7.num=8)cout<<"讀取成功"<<endl;cout<<"*學(xué)生成績管理系統(tǒng)*"<<endl;cou
6、t<<"* 1信息初始化 2順序查找 *"<<endl;cout<<"* 3二分查找 4直接插入排序 *"<<endl;cout<<"* 5冒泡排序 6直接選擇排序 *"<<endl;cout<<"* 0退出 *"<<endl;cout<<"*"<<endl;int cc;while(cc!=0)cout<<"請輸入您要選擇的數(shù)字"<<
7、;endl;cin>>cc;while(cc>6|cc<0)cout<<"輸入錯誤 請重新輸入"<<endl;cin>>cc;switch(cc)case 1: cout<<"初始化成功"<<endl;break; case 2: cout<<"請輸入查找的姓名"<<endl;char aa5;cin>>aa;S_search(b,aa);break; case 3: cout<<"請輸入要查找
8、的數(shù)字"<<endl; int bb; cin>>bb;binary_search(b,bb);break; case 4: cout<<"按姓名排序"<<endl;straisort(b);break; case 5: cout<<"按程序設(shè)計分?jǐn)?shù)排序"<<endl; bubblesort(b);break; case 6: cout<<"按數(shù)據(jù)結(jié)構(gòu)分?jǐn)?shù)排序"<<endl;selectsort(b);break; case 0:
9、 break; system("pause");return 0;.cpp#include "sdaf.h"int S_search(stu c,char Name)/順序查找for(int i=0;i<8;i+)if(stricmp( Name, )=0)cout<<ci.num<<" "<<<<" "<<ci.s1<<" "<<ci.s2<<endl;retur
10、n 0;if(i=8)cout<<"查無此人"<<endl;return 0;int binary_search(stu c, int Num)/二分 int low = 0; int high = 8 - 1; while(low <= high) int middle = (low + high)/2; if(cmiddle.num = Num) cout<<cmiddle.num<<" "<<<<" "<<cmidd
11、le.s1<<" "<<cmiddle.s2<<endl;return 0; /在左半邊 else if(cmiddle.num > Num) high = middle - 1; /在右半邊 else low = middle + 1; cout<<"no find"<<endl; return -1;int straisort(stu r)/直接插入排序stu a;int i,j; for(i=1;i<8;i+)if(stricmp(, )<
12、0)a=ri;for(j=i-1;stricmp(, )<0;j-)if(j=-1) break;rj+1=rj;rj+1=a;/插入到正確位置for(int k=0;k<8;k+)/輸出排序的結(jié)果 cout<<rk.num<<" "<<<<" "<<rk.s1<<" "<<rk.s2<<endl; return 0;void selectsort(stu L)/直接選擇排序int k;s
13、tu temp;for(int i=0;i<=7;i+)k=i;for(int j=i+1;j<8;j+)if(Lj.s1<Lk.s1)k=j;if(k!=i)temp=Li ;Li =Lk ;Lk =temp;for(int k1=0;k1<8;k1+)/輸出排序的結(jié)果 cout<<Lk1.num<<" "<<L<<" "<<Lk1.s1<<" "<<Lk1.s2<<endl; void bubble
14、sort(stu L)/冒泡排序int i,j,flag=1;stu w;for(i=0;i<=7&&(flag);i+)flag=0;for(j=7 ;j>=i+1;j-)if(Lj.s2 <Lj-1.s2 )w=Lj;Lj=Lj-1;Lj-1=w;flag=1;for(int k1=0;k1<8;k1+)/輸出排序的結(jié)果cout<<Lk1.num<<" "<<L<<" "<<Lk1.s1<<" "<<Lk1.s2<<endl; .h#include<iostream>using namespace std;#include<stdio.h>typedef struct studen
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 承包銷售區(qū)域合同范本
- 規(guī)范化營業(yè)所管理制度
- 港口防雷制度規(guī)范
- 快遞收發(fā)件制度不規(guī)范
- 規(guī)范公墓財務(wù)管理制度
- 樣本制作規(guī)范管理制度
- 建筑板房回收合同范本
- 投資理財項(xiàng)目合同范本
- 規(guī)范動物疫情報告制度
- 班級班長點(diǎn)名制度規(guī)范
- YS/T 3045-2022埋管滴淋堆浸提金技術(shù)規(guī)范
- 項(xiàng)目進(jìn)度跟進(jìn)及完成情況匯報總結(jié)報告
- 2024-2025學(xué)年冀教版九年級數(shù)學(xué)上冊期末綜合試卷(含答案)
- 《智能網(wǎng)聯(lián)汽車車控操作系統(tǒng)功能安全技術(shù)要求》
- 峨眉山城市介紹旅游宣傳課件
- 浙江省溫州市樂清市2023-2024學(xué)年五年級上學(xué)期期末語文試題
- 土壤改良合同模板
- 2024年中國成人心肌炎臨床診斷與治療指南解讀課件
- 2024年新疆文旅旅游投資集團(tuán)招聘筆試沖刺題(帶答案解析)
- JT-T-915-2014機(jī)動車駕駛員安全駕駛技能培訓(xùn)要求
- (高清版)WST 442-2024 臨床實(shí)驗(yàn)室生物安全指南
評論
0/150
提交評論