




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGY數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)一實(shí)驗(yàn)類別基礎(chǔ)篇學(xué)生姓名宋大超學(xué)生學(xué)號(hào)201501149完成日期2016-10-9指導(dǎo)教師袁科實(shí)驗(yàn)成績(jī)?cè)u(píng)閱日期評(píng)閱教師實(shí)驗(yàn)一線性表基本操作的編程實(shí)現(xiàn)【實(shí)驗(yàn)?zāi)康摹烤€性表基本操作的編程實(shí)現(xiàn)要求:線性表基本操作的編程實(shí)現(xiàn)(2學(xué)時(shí),驗(yàn)證型),掌握線性表的建立、遍歷、插入、刪除等基本操作的編程實(shí)現(xiàn),也可以進(jìn)一步編程實(shí)現(xiàn)查找、逆序、排序等操作,存儲(chǔ)結(jié)構(gòu)可以在順序結(jié)構(gòu)或鏈表結(jié)構(gòu)中任選,可以完成部分主要功能,也可以用菜單進(jìn)行管理完成大部分功能。還鼓勵(lì)學(xué)生利用基本操作進(jìn)行一些更實(shí)際的應(yīng)用型程序設(shè)計(jì)。【實(shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù):2H)【實(shí)驗(yàn)內(nèi)容】把線性表的順序存儲(chǔ)和鏈表存儲(chǔ)的數(shù)據(jù)插入、刪除運(yùn)算其中某項(xiàng)進(jìn)行程序?qū)崿F(xiàn)。建議實(shí)現(xiàn)鍵盤輸入數(shù)據(jù)以實(shí)現(xiàn)程序的通用性。為了體現(xiàn)功能的正常性,至少要編制遍歷數(shù)據(jù)的函數(shù)?!咀⒁馐马?xiàng)】1.開發(fā)語言:使用C。2.可以自己增加其他功能。【實(shí)驗(yàn)分析,說明過程】本次實(shí)驗(yàn)主要是檢驗(yàn)單鏈表數(shù)據(jù)的插入與刪除。實(shí)驗(yàn)的第一部分是要求將學(xué)生e的信息插入到第i個(gè)學(xué)生的前面,也就是在兩個(gè)節(jié)點(diǎn)之間建立新的節(jié)點(diǎn)。我們此次實(shí)驗(yàn)有兩個(gè)要求。第一個(gè)是將一個(gè)新的學(xué)生信息插入到原來的學(xué)生信息當(dāng)中去。第二個(gè)要求是要?jiǎng)h除一個(gè)學(xué)生的信息。以下我將通過示意圖和文字的方式說明這次實(shí)驗(yàn)的完成方法。需要說明的是此處的i表示學(xué)生信息的一個(gè)序號(hào)元素。在第i個(gè)學(xué)生信息插入時(shí),就得把第i個(gè)學(xué)生之后的所有節(jié)點(diǎn)依次向后移動(dòng)一個(gè)位置。在將新的節(jié)點(diǎn)X插入到第i的位置。1Stu[1]2Stu[2]3Stu[3]4Stu[4]nStu[n]1Stu[1]2Stu[2]3Stu[3]4Stu[4]5enStu[n]【實(shí)驗(yàn)小結(jié)】重難點(diǎn)對(duì)于我來說由于基礎(chǔ)不夠扎實(shí),所以最難理解應(yīng)該是此次實(shí)驗(yàn)里面關(guān)于length的理解,我覺得此次實(shí)驗(yàn)的關(guān)于數(shù)據(jù)的插入與刪除算法上的理解很容易,也簡(jiǎn)單。主要是關(guān)于其中的length有很多不明白的地方。最開始定義的時(shí)候int型。而這里的length既可以作為一種指針,也可以作為一種長(zhǎng)度,及相當(dāng)于數(shù)組的下標(biāo)。只要理解了length,整個(gè)實(shí)驗(yàn)就好做了。心得與體會(huì)由于基本功不扎實(shí),導(dǎo)致在做實(shí)驗(yàn)的時(shí)候遇到很多的困難,好在在之后的詢問中,也大概理解了之前的問題。通過這次實(shí)驗(yàn),使我對(duì)C語言相關(guān)知識(shí)理解更加透徹明了,特別是對(duì)指針、結(jié)構(gòu)體的理解使我見識(shí)到指針的強(qiáng)大與靈活性。以前在C語言上的欠債我覺得我會(huì)補(bǔ)起來的。收獲我覺得此次最大的收獲就是關(guān)于結(jié)構(gòu)體指針的理解。結(jié)構(gòu)體指針的應(yīng)用太廣泛了,幾乎貫穿整個(gè)數(shù)據(jù)結(jié)構(gòu)的全本書,所以,對(duì)于指針的理解和應(yīng)用非常重要。為此我將不懈努力學(xué)好C語言這門課?!緦?shí)驗(yàn)代碼】#include<stdio.h>#include<stdlib.h>#include<conio.h>#defineMAXSIZE100//根據(jù)需要自己設(shè)定一個(gè)班級(jí)能夠容納的最大學(xué)生數(shù)typedefstructstu{ intnum; //學(xué)生學(xué)號(hào)charname[10];//學(xué)生姓名floatscore; //學(xué)生成績(jī)}STUDENT; //存放單個(gè)學(xué)生信息的結(jié)構(gòu)體類型typedefstructlist{ STUDENTstu[MAXSIZE];//存放學(xué)生的數(shù)組定義,靜態(tài)分配空間 intlength; //記錄班級(jí)實(shí)際學(xué)生個(gè)數(shù)}LIST; //存放班級(jí)學(xué)生信息的順序表類型voidlistcreate(LIST*Li,intm) //初始化班級(jí)的學(xué)生信息 //m為該班級(jí)的初始人數(shù){inti;Li->length=0; for(i=1;i<=m;i++) //輸入m個(gè)學(xué)生的所有信息 { printf("請(qǐng)輸入第%d個(gè)學(xué)生的信息:\n",i); printf("學(xué)號(hào):"); scanf("%d",&Li->stu[i].num); //輸入第i個(gè)學(xué)生的學(xué)號(hào) printf("姓名:"); scanf("%s",Li->stu[i].name); //輸入第i個(gè)學(xué)生的姓名 printf("成績(jī):"); scanf("%f",&Li->stu[i].score); //輸入第i個(gè)學(xué)生的成績(jī) Li->length++; //學(xué)生人數(shù)加1 }}intlistinsert(LIST*Li,inti) //將學(xué)生插入到班級(jí)Li的第i個(gè)位置。 //插入一個(gè)學(xué)生信息{ intj; STUDENTe; if(Li->length>=MAXSIZE-1) //測(cè)試存儲(chǔ)空間是否被占滿 { printf("無更多的存儲(chǔ)空間!\n"); return0; } if(i<=0||i>=Li->length+2) //插入位置檢驗(yàn),如果錯(cuò)誤就返回0退出程序。 { printf("插入位置有誤!\n"); return0; } else { printf("請(qǐng)輸入插入的學(xué)生信息:\n"); printf("學(xué)號(hào):"); scanf("%d",&e.num); printf("姓名:"); scanf("%s",); printf("成績(jī):"); scanf("%f",&e.score); for(j=Li->length;j>=i;j--) Li->stu[j+1]=Li->stu[j]; //利用for循環(huán)將第i個(gè)及其后面的元素依次往后移動(dòng) Li->stu[i]=e; //移開位置后將學(xué)生e放入到i位置 Li->length++; //完成插入后,學(xué)生實(shí)際人數(shù)加1 return1;}}intlistdel(LIST*Li,inti) //刪除一個(gè)學(xué)生信息 //刪除第i個(gè)學(xué)生的信息{ if(i<=0||i>Li->length)//刪除位置檢驗(yàn),如果錯(cuò)誤就返回0退出程序。 return0; else { for(;i<Li->length;i++)//利用for循環(huán)將準(zhǔn)備刪除的第i個(gè)及其后面的元素依次往前移動(dòng) Li->stu[i]=Li->stu[i+1]; Li->length--;//刪除第i個(gè)學(xué)生后,學(xué)生人數(shù)減1 return1;}}voidlistdisplay(LISTL){//顯示所有學(xué)生信息 inti; //printf("班級(jí)學(xué)生信息如下:\n"); printf("學(xué)號(hào)姓名成績(jī)\n"); for(i=1;i<=L.length;i++) printf("%10d%10s%10.2f\n",L.stu[i].num,L.stu[i].name,L.stu[i].score);}voidshowmenu(){//顯示菜單 printf("歡迎使用成績(jī)管理小軟件\n"); printf("\t1、創(chuàng)建學(xué)生信息\n"); printf("\t2、插入學(xué)生信息\n"); printf("\t3、刪除學(xué)生信息\n"); printf("\t4、顯示學(xué)生信息\n"); printf("\t5、退出程序\n"); }voidmain(){ intno,stu_count,pos; LISTstu_info; while(1) { showmenu(); printf("請(qǐng)輸入你的選擇:"); scanf("%d",&no); switch(no) { case1: printf("班級(jí)信息初始化,按任意鍵繼續(xù)……\n"); getch(); printf("請(qǐng)輸入班級(jí)學(xué)生原始人數(shù):"); scanf("%d",&stu_count); listcreate(&stu_info,stu_count); system("cls"); showmenu(); listdisplay(stu_info); printf("班級(jí)信息初始化已經(jīng)完成,按任意鍵繼續(xù)……\n"); getch(); system("cls"); break; case2:printf("插入前班級(jí)信息:\n"); listdisplay(stu_info); printf("請(qǐng)輸入插入位置:"); scanf("%d",&pos); listinsert(&stu_info,pos); printf("插入后班級(jí)信息:\n"); listdisplay(stu_info); printf("插入已經(jīng)完成,按任意鍵繼續(xù)……\n"); getch(); system("cls"); break; case3:printf("刪除前班級(jí)信息:\n"); listdisplay(stu_info); printf("請(qǐng)輸入刪除位置:"); scanf("%d",&pos); listdel(&stu_info,pos); printf("刪除后班級(jí)信息:\n"); listdispla
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31 581-2012礦渣粉單位產(chǎn)品能源消耗限額
- 橡膠制品行業(yè)的品牌形象與企業(yè)文化考核試卷
- 美容儀器在皮膚治療技術(shù)的研究動(dòng)態(tài)與市場(chǎng)應(yīng)用考核試卷
- 2024年皮手套及皮革制衣著附件資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 昆明市西山區(qū)2025年八年級(jí)《語文》上學(xué)期期末試題與參考答案
- 2024年吡嗪酮項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年中國筆記本內(nèi)存行業(yè)市場(chǎng)現(xiàn)狀及未來發(fā)展前景預(yù)測(cè)分析報(bào)告
- 演員演出保障補(bǔ)充合同
- 智能社區(qū)安防監(jiān)控系統(tǒng)租賃與智能家居系統(tǒng)集成合同
- 母嬰護(hù)理服務(wù)質(zhì)量提升與客戶滿意度調(diào)查協(xié)議
- TIMAAMM 003-2023 蒙醫(yī)病證診斷療效標(biāo)準(zhǔn)
- 24項(xiàng)壓力感知量表(PSS)
- 星辰大海合唱簡(jiǎn)譜
- 人教版六年級(jí)上冊(cè)數(shù)學(xué)第五、六單元測(cè)試題(含答案)
- 《養(yǎng)老機(jī)構(gòu)重大事故隱患判定標(biāo)準(zhǔn)》主要內(nèi)容解讀
- 米字格A4打印版
- 陜西省西安市蓮湖區(qū)2023-2024學(xué)年六年級(jí)下學(xué)期期末英語試題
- 企業(yè)錄用通知書offer模板
- 人際溝通與禮儀智慧樹知到課后章節(jié)答案2023年下河北工業(yè)職業(yè)技術(shù)學(xué)院
- 臨床藥理學(xué)(完整課件)
- 田徑運(yùn)動(dòng)會(huì)競(jìng)賽團(tuán)體總分記錄表
評(píng)論
0/150
提交評(píng)論