版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
大學(xué)數(shù)據(jù)結(jié)構(gòu)實驗報告課程名稱數(shù)據(jù)結(jié)構(gòu)實驗第(三)次實驗實驗名稱順序表的應(yīng)用學(xué)生姓名于歌專業(yè)班級學(xué)號實驗成績指導(dǎo)老師(簽名)日期2018年9月30日一、實驗?zāi)康?.學(xué)會定義線性表的順序存儲類型,實現(xiàn)C程序的基本結(jié)構(gòu),對線性表的一些基本操作和具體的函數(shù)定義。2.掌握順序表的基本操作,實現(xiàn)順序表的插入、刪除、查找以及求并集等運算。3.掌握對多函數(shù)程序的輸入、編輯、調(diào)試和運行過程。二、實驗要求1.預(yù)習(xí)C語言中結(jié)構(gòu)體的定義與基本操作方法。2.對順序表的每個基本操作用單獨的函數(shù)實現(xiàn)。3.編寫完整程序完成下面的實驗內(nèi)容并上機(jī)運行。4.整理并上交實驗報告。三、實驗內(nèi)容:1.定義一個包含學(xué)生信息(學(xué)號,姓名,成績)的順序表,使其具有如下功能:(1)根據(jù)指定學(xué)生個數(shù),逐個輸入學(xué)生信息(2)逐個顯示學(xué)生表中所有學(xué)生的相關(guān)信息(3)根據(jù)姓名進(jìn)行查找,返回此學(xué)生的學(xué)號和成績(4)根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息(學(xué)號,姓名,成績)(5)給定一個學(xué)生信息,插入到表中指定的位置(6)刪除指定位置的學(xué)生記錄(7)統(tǒng)計表中學(xué)生個數(shù)四、實驗設(shè)計1.定義一個包含學(xué)生信息(學(xué)號,姓名,成績)的順序表,使其具有如下功能:(1)根據(jù)指定學(xué)生個數(shù),逐個輸入學(xué)生信息for(count=0;count<n;count++){scanf("%s%s%d",e.no,,&e.score);Input(&L,e);}StatusInput(SqList*L,ElemTypee){if(!(*L).elem)returnERROR;(*L).elem[(*L).length++]=e;returnOK;}(2)逐個顯示學(xué)生表中所有學(xué)生的相關(guān)信息StatusPrint(SqListL){printf("學(xué)號姓名成績\n");intcount;for(count=0;count<L.length;count++)Pri(L.elem[count]);returnOK;}voidPri(ElemTypee){printf("%8s|",e.no);printf("%20s|",);printf("%8d\n",e.score);}(3)根據(jù)姓名進(jìn)行查找,返回此學(xué)生的學(xué)號和成績StatusLocateElem(SqListL,ElemTypee){intcount;for(count=0;count<L.length;count++)if(strcmp(L.elem[count].name,)==0)break;if(count<L.length){printf("學(xué)號姓名成績\n");Pri(L.elem[count]);}elseprintf("%s在順序表中查不到!\n",);returnOK;}(4)根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息(學(xué)號,姓名,成績)StatusLocateNum(SqListL,inti){if(i<1||i>L.length+1)returnOVERFLOW;printf("學(xué)號姓名成績\n");Pri(L.elem[i-1]);returnOK;}(5)給定一個學(xué)生信息,插入到表中指定的位置StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<1||i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemType)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}(6)刪除指定位置的學(xué)生記錄StatusListDelete(SqList*L,inti){intcount;if(i<1||i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).length;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}(7)統(tǒng)計表中學(xué)生個數(shù)printf("表中學(xué)生的個數(shù)為:%d\n",L.length);(8)主函數(shù)intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("請輸入學(xué)生的個數(shù):\n");scanf("%d",&n);printf("請輸入學(xué)號、姓名、成績:\n");for(count=0;count<n;count++){scanf("%s%s%d",e.no,,&e.score);Input(&L,e);}printf("學(xué)生信息生成成功!\n");Pr();scanf("%d",&n);while(n>0&&n<7){switch(n){case1:Print(L);break;case2:printf("請輸入要查找的學(xué)生的姓名:");scanf("%s",);LocateElem(L,e);break;case3:printf("請輸入要查找的學(xué)生的位置:");scanf("%d",&i);LocateNum(L,i);break;case4:printf("輸入插入學(xué)生的位置、學(xué)號、姓名、成績:");scanf("%d%s%s%d",&i,e.no,,&e.score);if(ListInsert(&L,i,e))printf("插入成功!\n");break;case5:printf("請輸入要刪除的學(xué)生的位置:\n");scanf("%d",&i);if(ListDelete(&L,i))printf("刪除成功!\n");break;case6:printf("表中學(xué)生的個數(shù)為:%d\n",L.length);}Pr();scanf("%d",&n);}if(n==7)printf("退出成功!");return0;}五、實驗測試2.定義一個包含學(xué)生信息(學(xué)號,姓名,成績)的順序表,使其具有如下功能運行界面六、總結(jié)附錄1:源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineOK1#defineERROR0#defineOVERFLOW2typedefintStatus;typedefstruct{charno[8];charname[20];intscore;}Student;typedefStudentElemType;typedefstruct{ElemType*elem;intlength;intMaxSize;}SqList;StatusInitList(SqList*L){(*L).elem=(ElemType*)malloc(sizeof(ElemType)*LIST_INIT_SIZE);if(!(*L).elem)exit(OVERFLOW);(*L).length=0;(*L).MaxSize=LIST_INIT_SIZE;returnOK;}StatusInput(SqList*L,ElemTypee){if(!(*L).elem)returnERROR;(*L).elem[(*L).length++]=e;returnOK;}StatusListInsert(SqList*L,inti,ElemTypee){intcount;if(i<1||i>(*L).length+1)returnOVERFLOW;if((*L).length==(*L).MaxSize)(*L).elem=(ElemType*)realloc((*L).elem,sizeof(ElemType)*((*L).MaxSize+LISTINCREMENT));if(!(*L).elem)exit(OVERFLOW);for(count=(*L).length-1;count>=i-1;count--)(*L).elem[count+1]=(*L).elem[count];(*L).elem[i-1]=e;(*L).length++;returnOK;}StatusListDelete(SqList*L,inti){intcount;if(i<1||i>(*L).length+1)returnOVERFLOW;for(count=i;count<(*L).length;count++)(*L).elem[count-1]=(*L).elem[count];(*L).length--;returnOK;}StatusLocateElem(SqListL,ElemTypee){intcount;for(count=0;count<L.length;count++)if(strcmp(L.elem[count].name,)==0)break;if(count<L.length){printf("學(xué)號姓名成績\n");Pri(L.elem[count]);}elseprintf("%s在順序表中查不到!\n",);returnOK;}StatusLocateNum(SqListL,inti){if(i<1||i>L.length+1)returnOVERFLOW;printf("學(xué)號姓名成績\n");Pri(L.elem[i-1]);returnOK;}StatusPrint(SqListL){printf("學(xué)號姓名成績\n");intcount;for(count=0;count<L.length;count++)Pri(L.elem[count]);returnOK;}voidPri(ElemTypee){printf("%8s|",e.no);printf("%20s|",);printf("%8d\n",e.score);}voidPr(){printf("\n1.輸出全部的學(xué)生信息\n");printf("2.通過姓名查找學(xué)號和成績\n");printf("3.通過位置查找學(xué)生的信息\n");printf("4.插入學(xué)生信息\n");printf("5.刪除學(xué)生信息\n");printf("6.統(tǒng)計學(xué)生個數(shù)\n");printf("7.退出\n");printf("請輸入要使用的功能:");}intmain(){SqListL;ElemTypee;inti,count,n,number;InitList(&L);printf("請輸入學(xué)生的個數(shù):\n");scanf("%d",&n);printf("請輸入學(xué)號、姓名、成績:\n");for(count=0;count<n;count++){scanf("%s%s%d",e.no,,&e.score);Input(&L,e);}printf("學(xué)生信息生成成功!\n");Pr();scanf("%d",&n);while(n>0&&n<7){switch(n){case1:Print(L);break;case2:printf("請輸入要查找的學(xué)生
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023七年級英語下冊 Unit 10 I'd like some noodles說課稿 (新版)人教新目標(biāo)版
- 消防控制室管理制度
- 2024-2025學(xué)年初中同步測控優(yōu)化設(shè)計物理八年級上冊配人教版專項訓(xùn)練含答案
- 法國課件湘教版
- 簡訊格式與范文
- 西京學(xué)院《機(jī)械工程測試技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《產(chǎn)品造型材料與工藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《中國近現(xiàn)代政治思想史》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《信息技術(shù)教育應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《統(tǒng)計計算與軟件》2023-2024學(xué)年第一學(xué)期期末試卷
- 十以內(nèi)連加連減混合練習(xí)(1)50題
- 2023年人人急救全套試卷答案
- 企業(yè)網(wǎng)絡(luò)規(guī)劃設(shè)計與實現(xiàn)畢業(yè)論文
- 吊裝作業(yè)安全知識課件
- 《制作簡易顯微鏡》實驗報告單
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗
- 提升服務(wù)品質(zhì)-改善就醫(yī)體驗-持續(xù)開展改善醫(yī)療服務(wù)行動課件整理
- 14文言文二則《學(xué)弈》課件(共14張PPT)
- 骨質(zhì)疏松癥的中西醫(yī)結(jié)合治療課件
- 紡織材料學(xué)名詞解釋識記
- 集團(tuán)安全管理體系構(gòu)成
評論
0/150
提交評論