




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——《數(shù)據(jù)結(jié)構(gòu)試驗(yàn)》指導(dǎo)書(試驗(yàn)1)2023試驗(yàn)一順序表的基本操作
一、試驗(yàn)?zāi)康?/p>
1.把握使用VC++6.0調(diào)試程序的基本方法;2.把握線性表的順序存儲(chǔ)結(jié)構(gòu)的類型定義;
3.把握順序表的基本操作的實(shí)現(xiàn),如:插入、刪除、遍歷、查找、排序、修改、合并等;4.把握順序表的應(yīng)用。
二、試驗(yàn)環(huán)境
1.臺(tái)式計(jì)算機(jī)每人一臺(tái);2.軟件:VisualC++6.0
三、本卷須知
在U盤上創(chuàng)立一個(gè)以“學(xué)號(hào)姓名〞命名的文件夾(如:20230001張三),專門用于存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)試驗(yàn)的程序及試驗(yàn)報(bào)告、處理的輸入數(shù)據(jù)。
四、試驗(yàn)內(nèi)容
例如程序:簡(jiǎn)易學(xué)生信息管理系統(tǒng)(SqList.cpp)
本簡(jiǎn)易學(xué)生信息管理系統(tǒng)要求以順序表作為學(xué)生信息的載體,并實(shí)現(xiàn)學(xué)生信息的查詢、添加、刪除、統(tǒng)計(jì)、排序、修改、保存等基本功能。本例如程序已經(jīng)實(shí)現(xiàn)了簡(jiǎn)易學(xué)生信息管理中的查詢、添加和保存等功能,要求學(xué)生對(duì)該系統(tǒng)進(jìn)行完善,繼續(xù)添加相關(guān)函數(shù)以提高其實(shí)用性。
1.文件結(jié)構(gòu)設(shè)計(jì)
a)原始數(shù)據(jù):保存在文件input1.txt中。b)輸出數(shù)據(jù):保存在文件output1.txt中。
2.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
//順序表存儲(chǔ)結(jié)構(gòu)定義
#defineMaxSize50//線性表的最大容量,假設(shè)為50typedefstructStu{longintnum;//學(xué)號(hào)charname[20];//姓名charsex;//性別intage;//年齡
intscore;//分?jǐn)?shù)
}Elemtype;//定義數(shù)據(jù)元素為學(xué)生信息typedefstructSqList{Elemtype*data;
intlength;//線性表長(zhǎng)度}SqList;//順序表數(shù)據(jù)類型為SqList3.程序結(jié)構(gòu)
a)函數(shù)說明
intMenu();//系統(tǒng)主菜單intQMenu();//查詢菜單
voidPrintElem(Elemtypea);//打印輸出數(shù)據(jù)元素a的各數(shù)據(jù)項(xiàng)voidInit_SqList(SqList//構(gòu)造一個(gè)空的順序表LvoidSaveList(SqListL,FILE*out);//保存順序表L的數(shù)據(jù)voidCreat_SqList(SqList//建表
voidTraver_SqList(SqListL);//查詢(遍歷順序表L)SqListInsert_SqList(SqList//添加b)函數(shù)實(shí)現(xiàn)
//基本操作的實(shí)現(xiàn)
intMenu()//系統(tǒng)主菜單{intn;printf(\printf(\學(xué)生信息管理系統(tǒng)******************\\n\\n\printf(\導(dǎo)入數(shù)據(jù)\\n\printf(\查詢(全部信息、男生信息、女生信息)\\n\printf(\添加學(xué)生信息\\n\printf(\刪除學(xué)生信息\\n\printf(\統(tǒng)計(jì)人數(shù)(男生、女生、不及格、優(yōu)秀等)\\n\printf(\排序(升序、降序)\\n\printf(\修改(修改姓名、性別、年齡、分?jǐn)?shù)等屬性值)\\n\printf(\存盤\\n\printf(\退出\\n\\n\printf(\歡迎訪問**********************\\n\printf(\scanf(\return(n);}
intQMenu()//查詢菜單{intn;printf(\歡迎進(jìn)入查詢系統(tǒng)************\\t\\n\printf(\全部信息\printf(\男生信息\
2
《數(shù)據(jù)結(jié)構(gòu)試驗(yàn)》指導(dǎo)書
printf(\女生信息\printf(\退出\\t\printf(\scanf(\return(n);}
voidPrintElem(Elemtypea)
{//打印輸出數(shù)據(jù)元素a的各數(shù)據(jù)項(xiàng),即輸出單個(gè)學(xué)生信息printf(\a.num,,a.sex,a.age,a.score);}
voidInit_SqList(SqListif(!L.data)exit(1);L.length=0;}
voidCreat_SqList(SqListfscanf(in,\讀取數(shù)據(jù)元素個(gè)數(shù),即表長(zhǎng)n//printf(\表長(zhǎng)n=%d\\n\for(i=0;iL.length+1))//檢查插入位置的正確性{printf(\插入位置i不合理!\}//不合理,中止程序運(yùn)行if(L.length>=MaxSize)//順序表是否已滿{printf(\“順序表已滿,不能再插入!〞\exit(1);}//表滿,不能插入printf(\請(qǐng)輸入添加的元素(學(xué)號(hào)姓名性別年齡成績(jī))\\nx=\scanf(\
for(intm=L.length-1;m>=i-1;--m)L.data[m+1]=L.data[m];//數(shù)據(jù)后移
//L.data[m+1]=L.data[m];//數(shù)據(jù)后移L.data[i-1]=x;//新元素插入//L.data[i-1]=x;//新元素插入L.length++;//表長(zhǎng)+1returnL;//插入成功,返回}
voidSaveList(SqListL,FILE*out)
{//將順序表L的數(shù)據(jù)存入文件output1.txtinti;fprintf(out,\保存表長(zhǎng)for(i=0;i
case4:case5:case6:case7:
break;//刪除元素break;//統(tǒng)計(jì)break;//排序break;//修改
case0:SaveList(L,out);fclose(in);fclose(out);exit(-1);break;
//保存數(shù)據(jù),并退出系統(tǒng)
}}
}getchar();
五、試驗(yàn)要求
1.認(rèn)真閱讀和把握本試驗(yàn)的例如程序。
2.上機(jī)運(yùn)行例如程序,打印出程序的運(yùn)行結(jié)果,并作必要的說明。3.對(duì)例如程序,依照對(duì)線性表的操作需要,在程序中至少添加2個(gè)順序表的相關(guān)操作。如:
1)查找并顯示分?jǐn)?shù)在區(qū)間[a,b)的學(xué)生信息;2)查找并顯示最高分或最低分學(xué)生信息;3)統(tǒng)計(jì)不及格或及格人數(shù)及所占比例;
4)將信息表按學(xué)號(hào)、姓名或分?jǐn)?shù)升序或降序排列;5)按學(xué)號(hào)順序進(jìn)行數(shù)據(jù)元素的插入;6)刪除指定學(xué)號(hào)或姓名的學(xué)生信息;7)修改某個(gè)學(xué)生的信息;8)其它。
4.重新改寫主函數(shù)(要求必需調(diào)用自己添加的操作),打印出文件清單(自己添加的函數(shù)、修改后的主函數(shù)和運(yùn)行結(jié)果)。5.對(duì)修改后的程序,分析每一個(gè)算法(函數(shù))的時(shí)間繁雜度。6.根據(jù)上述要求撰寫試驗(yàn)報(bào)告,并簡(jiǎn)要給出算法設(shè)計(jì)小結(jié)和心得。
6
《數(shù)據(jù)結(jié)構(gòu)試驗(yàn)》指導(dǎo)書
//************************************************************************//
附:順序表基本操作的實(shí)現(xiàn)程序?qū)嵗?/p>
本程序?qū)嵗峁┑捻樞虮泶鎯?chǔ)結(jié)構(gòu)定義及基本操作的實(shí)現(xiàn)僅供參考。//SqList2.CPP//本程序定義了順序表存儲(chǔ)結(jié)構(gòu)的另外一種形式//并演示了幾個(gè)基本操作的實(shí)現(xiàn)
//(初始化、清空、求長(zhǎng)度、判空、判滿、遍歷、查找、插入、刪除、有序輸出)
#include#include#include#include
typedefintElemType;//定義ElemType為int類型//線性表順序存儲(chǔ)類型定義structSqList{ElemType*list;//intsize;//線性表長(zhǎng)度
intMaxSize;//線性表的最大容量};
//順序表基本操作說明
voidInitList(SqList//初始化順序表voidClearList(SqList//清空線性表intListSize(SqList//求線性表長(zhǎng)度boolListEmpty(SqList//檢查線性表是否為空boolListFull(SqList
//檢查線性表是否為滿voidTraverList(SqList
//遍歷線性表
intFindList(SqList
//從線性表中查找元素
boolInsertList(SqList//向線性表插入元素boolDeleteList(SqList//從線性表中刪除元素
voidOrderOutputList(SqList//對(duì)線性表進(jìn)行有序輸出
//順序表基本操作的實(shí)現(xiàn)
//初始化順序表
voidInitList(SqListif(!L.list){cout0)//向表頭插入元素{for(inti=L.size-1;i>=0;i--)L.list[i+1]=L.list[i];
L.list[0]=item;
}
else//向表尾插入元素if(mark=i;j--)
L.list[j+1]=L.list[j];
L.list[i]=item;
}L.size++;returntrue;}
//從線性表中刪除表頭、表尾或等于給定值的元素boolDeleteList(SqListif(mark>0)//刪除表頭元素{item=L.list[0];for(inti=1;i=L.size)returnfalse;
9
for(intj=i;j>x;InsertList(a,x,-1);}
//依次向線性表表頭插入2個(gè)整數(shù)元素
10
《數(shù)據(jù)結(jié)構(gòu)試驗(yàn)》指導(dǎo)書
cout>x;InsertList(a,x,1);cin>>x;InsertList(a,x,1);//按不同次序遍歷輸出線性表aTraverList(a);OrderOutputList(a,1);OrderOutputList(a,0);
//把線性表a中的元素依次有序插入到一個(gè)新線性表b中SqListb;InitList(b,ML);for(i=0;i//從線性表a中依次刪除表頭、表尾和等于給定值的元素if(DeleteList(a,x,1))cout>x;
if(DeleteList(a,x,0))cout《數(shù)據(jù)結(jié)構(gòu)試驗(yàn)》指導(dǎo)書
cout>x;InsertList(a,x,1);cin>>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)陶瓷茶洗盆市場(chǎng)調(diào)查研究報(bào)告
- 管道技術(shù)培訓(xùn)
- 人教版生物八年級(jí)上冊(cè)5.1.5《兩棲動(dòng)物和爬行動(dòng)物》教學(xué)設(shè)計(jì)
- 2025年中國(guó)鈕型電池市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)釉下彩市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)過濾、調(diào)壓、潤(rùn)滑器市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)車門玻璃擋水條市場(chǎng)調(diào)查研究報(bào)告
- 消防培訓(xùn)教學(xué)課件
- 汽車采購薪資技巧培訓(xùn)
- 2025日常安全培訓(xùn)考試試題及答案【全優(yōu)】
- 幼兒園游戲活動(dòng)評(píng)價(jià)
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 機(jī)器人發(fā)展史課件完整版
- 《城市市政管網(wǎng)運(yùn)行安全風(fēng)險(xiǎn)評(píng)估規(guī)程》
- 2024年中國(guó)詩詞大會(huì)知識(shí)競(jìng)賽模擬題庫及答案(120題)
- 新車入戶代辦委托書
- 可樂罐罐身主要成分的探究
- 麻醉復(fù)蘇室護(hù)理進(jìn)修匯報(bào)
- 醫(yī)療用毒性藥品培訓(xùn)課件
- 政府與非營(yíng)利組織會(huì)計(jì)(王彥第8版)習(xí)題及答案 第1-23章 政府會(huì)計(jì)的基本概念-政府單位會(huì)計(jì)報(bào)表
- 2024版機(jī)動(dòng)車鑒定評(píng)估師必備考試復(fù)習(xí)題庫(含答案)
評(píng)論
0/150
提交評(píng)論