影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)

上傳人:ail****e3 文檔編號(hào):52091796 上傳時(shí)間:2022-02-07 格式:DOC 頁(yè)數(shù):53 大?。?02KB
收藏 版權(quán)申訴 舉報(bào) 下載
項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)_第1頁(yè)
第1頁(yè) / 共53頁(yè)
項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)_第2頁(yè)
第2頁(yè) / 共53頁(yè)
項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)_第3頁(yè)
第3頁(yè) / 共53頁(yè)

下載文檔到電腦,查找使用更方便

18 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)》由會(huì)員分享,可在線閱讀,更多相關(guān)《項(xiàng)目課內(nèi)實(shí)訓(xùn)指導(dǎo)書(shū)(53頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、唐束科技學(xué)院 GUANGDONG UNIVERSITY OF SCIENCE & TECHNOLOGY 項(xiàng)目(課內(nèi)實(shí)訓(xùn))指導(dǎo)書(shū) 系 別: 計(jì)算機(jī)系 專 業(yè): 網(wǎng)絡(luò)工程 課 程: 數(shù)據(jù)結(jié)構(gòu) 制訂人: 理艷榮 審核人: 制訂時(shí)間: 2019年3月 第一部分 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)的目的、要求 一、 實(shí)驗(yàn)?zāi)康? 上機(jī)實(shí)踐是各位對(duì)本門(mén)課程所學(xué)知識(shí)的一種全面、綜合的能力訓(xùn)練,是與課 堂聽(tīng)講、自學(xué)和練習(xí)相輔相成的必不可少的一個(gè)教學(xué)環(huán)節(jié),也是對(duì)課堂教學(xué)與實(shí) 踐教學(xué)效果的一種檢驗(yàn)。通常,實(shí)驗(yàn)題中的問(wèn)題比平時(shí)的習(xí)題復(fù)雜得多, 也更接 近實(shí)際。實(shí)驗(yàn)著眼于原理與應(yīng)用的結(jié)合,使你們學(xué)會(huì)如何把書(shū)上

2、學(xué)到的知識(shí)運(yùn)用 于解決實(shí)際問(wèn)題的過(guò)程中去,培養(yǎng)從事軟件開(kāi)發(fā)設(shè)計(jì)工作所必需的基本技能; 另 一方面,能使書(shū)上的知識(shí)變 活”,起到深化理解和靈活掌握教學(xué)內(nèi)容的目的。平 時(shí)的練習(xí)較偏重于如何編寫(xiě)功能單一的 小”算法,而實(shí)驗(yàn)題是軟件設(shè)計(jì)的綜合訓(xùn) 練,包括問(wèn)題分析(需求分析)、總體結(jié)構(gòu)設(shè)計(jì)和用戶界面設(shè)計(jì)(概要設(shè)計(jì))、程 序設(shè)計(jì)基本技能和技巧等,即一整套軟件工程規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。此 外,還有很重要的一點(diǎn)是:機(jī)器是比任何教師都嚴(yán)厲的主考者。 為了達(dá)到上述目的,第二部分安排了實(shí)驗(yàn)單元內(nèi)容,各單元的訓(xùn)練重點(diǎn)在于 基本的數(shù)據(jù)結(jié)構(gòu),而不強(qiáng)調(diào)面面俱到。各實(shí)驗(yàn)單元與教科書(shū)的各章具有緊密的對(duì) 應(yīng)關(guān)系。 二

3、、 要求: 1?做好每一次上機(jī)前的準(zhǔn)備以提高上機(jī)效率: ① 預(yù)先認(rèn)真閱讀相關(guān)實(shí)驗(yàn)內(nèi)容,做到心中有明確的目的要求和任務(wù),要有 備而來(lái),應(yīng)該自己獨(dú)立的思考和設(shè)計(jì)你的算法和程序, 并爭(zhēng)取在規(guī)定的時(shí)間內(nèi)如 期完成上機(jī)工作任務(wù)。對(duì)于個(gè)別目前基礎(chǔ)較差的同學(xué),實(shí)在是沒(méi)法完成任務(wù)的建 議你先參考其他同學(xué)的算法,勤學(xué)好問(wèn), 最終自己獨(dú)立完成,以增強(qiáng)你的感性認(rèn) 識(shí),強(qiáng)化你的實(shí)踐基礎(chǔ),提高你的實(shí)踐能力。 ② 按照實(shí)驗(yàn)內(nèi)容規(guī)定的習(xí)題題目,事先在實(shí)驗(yàn)預(yù)習(xí)報(bào)告上編寫(xiě)好源程序及 運(yùn)行程序所需的典型數(shù)據(jù),并經(jīng)人工靜態(tài)檢查認(rèn)為無(wú)誤;手編程序應(yīng)書(shū)寫(xiě)整齊, 應(yīng)在每個(gè)題目之間留出一定的空間, 以備記錄上機(jī)調(diào)試情況和運(yùn)行結(jié)果

4、等; 對(duì)程 序中自己有疑問(wèn)的地方,應(yīng)作出記號(hào),以便上機(jī)時(shí)給以注意。 ③ 將想要上機(jī)驗(yàn)證的問(wèn)題草擬提綱;制定一個(gè)簡(jiǎn)捷的程序調(diào)試計(jì)劃。 2. 上機(jī)時(shí)輸入和調(diào)式自己所編寫(xiě)的程序。對(duì) 出錯(cuò)信息”應(yīng)善于自己分析 判斷,并充分利用開(kāi)發(fā)工具提供的錯(cuò)誤信息和調(diào)試手段解決出現(xiàn)的問(wèn)題, 及時(shí)修 改與完善算法、源程序, 隨時(shí)記錄有價(jià)值的內(nèi)容。 解決問(wèn)題是學(xué)習(xí)調(diào)式程序的良 好機(jī)會(huì)。切不可不編程序或抄別人的程序去上機(jī),應(yīng)從養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)。 3. 程序調(diào)試通過(guò)后,應(yīng)運(yùn)行程序并根據(jù)事先準(zhǔn)備的典型數(shù)據(jù)驗(yàn)證結(jié)果,在 運(yùn)行時(shí)要注意在輸入不同數(shù)據(jù)時(shí)所得到的不同結(jié)果。 4. 為便于教師、助教檢查和以后復(fù)習(xí),請(qǐng)不要?jiǎng)h除已

5、通過(guò)的程序,包括有 問(wèn)題待答疑的程序, 應(yīng)保存在自己的工作目錄內(nèi)。 源程序名應(yīng)能反映哪一次實(shí)驗(yàn) 的哪一個(gè)題目,女口 Lab1_1.c表示實(shí)驗(yàn)一的第1題,……,若有未完成調(diào)試的源 程序,可以作存盤(pán)保存處理,待課后繼續(xù)完成。 5、幾乎每個(gè)實(shí)驗(yàn)都有超出《數(shù)據(jù)結(jié)構(gòu)》課程標(biāo)準(zhǔn)的內(nèi)容,是為有能力深入 學(xué)習(xí)或考研的同學(xué)準(zhǔn)備的,教師與學(xué)生可根據(jù)實(shí)際情況做取舍。 三、考核或評(píng)價(jià)標(biāo)準(zhǔn) 實(shí)訓(xùn)成績(jī)將主要根據(jù)學(xué)生對(duì)待實(shí)訓(xùn)的態(tài)度、 對(duì)關(guān)鍵知識(shí)點(diǎn)和編程技巧的掌握 程度、實(shí)訓(xùn)報(bào)告的內(nèi)容、 答辯情況等進(jìn)行綜合評(píng)定。 最后的成績(jī)將分優(yōu)秀、 良好、 中等、及格和不及格五個(gè)等級(jí)。具體評(píng)判標(biāo)準(zhǔn)如下: 優(yōu)秀:實(shí)訓(xùn)認(rèn)真、刻苦,有鉆

6、研精神,不無(wú)故缺席。熟練掌握了本實(shí)訓(xùn)的關(guān) 鍵知識(shí)點(diǎn),具有良好的獨(dú)立思考問(wèn)題和解決問(wèn)題的能力,具備了較好的運(yùn)用 C 語(yǔ)言處理數(shù)據(jù)結(jié)構(gòu)相應(yīng)類(lèi)型能力,編制的程序運(yùn)行正確。實(shí)訓(xùn)記錄內(nèi)容豐富、 齊 全,答辯時(shí)能清晰明了地闡明問(wèn)題,回答問(wèn)題反映敏捷、思路清晰。優(yōu)秀的分?jǐn)?shù) 段為 100分——90 分。 良好:能認(rèn)真對(duì)待實(shí)訓(xùn),不無(wú)故缺席。掌握了本實(shí)訓(xùn)的關(guān)鍵知識(shí)點(diǎn),具備了 較好的運(yùn)用 C 語(yǔ)言處理數(shù)據(jù)結(jié)構(gòu)相應(yīng)類(lèi)型能力,編寫(xiě)的程序運(yùn)行正確。實(shí)訓(xùn)記 錄內(nèi)容齊全,答辯時(shí)能清晰明了地闡明問(wèn)題,能正確回答全部問(wèn)題。良好的分?jǐn)?shù) 段為89分一一80分。 中等:能認(rèn)真對(duì)待實(shí)訓(xùn),不無(wú)故缺席?;菊莆樟吮緦?shí)訓(xùn)的關(guān)鍵知識(shí)點(diǎn),具

7、 備了一定的運(yùn)用C語(yǔ)言處理數(shù)據(jù)結(jié)構(gòu)相應(yīng)類(lèi)型能力,編寫(xiě)的程序運(yùn)行基本正確, 無(wú)致命錯(cuò)誤。實(shí)訓(xùn)記錄內(nèi)容較齊全, 答辯時(shí)能正確回答大部分問(wèn)題。中等的分?jǐn)?shù) 段為79分一一70分。 及格:對(duì)待實(shí)訓(xùn)不夠認(rèn)真,有少量遲到、早退或無(wú)故缺席現(xiàn)象。基本掌握了 本實(shí)訓(xùn)的主要內(nèi)容,具有了用運(yùn)用 C語(yǔ)言處理數(shù)據(jù)結(jié)構(gòu)相應(yīng)類(lèi)型能力,但掌握 不全面、扎實(shí),編寫(xiě)的程序總體結(jié)構(gòu)符合要求,基本能正常運(yùn)行,但還存在少量 錯(cuò)誤。實(shí)訓(xùn)記錄內(nèi)容基本齊全,答辯時(shí)能在教師提示下正確回答大部分問(wèn)題。及 格分?jǐn)?shù)段為69分 60分。 不及格:對(duì)待實(shí)訓(xùn)馬虎、敷衍,經(jīng)常遲到、早退或無(wú)故缺席。不能正確理解 本實(shí)訓(xùn)的主要內(nèi)容,不具備基本的運(yùn)用 C語(yǔ)言處

8、理數(shù)據(jù)結(jié)構(gòu)相應(yīng)類(lèi)型能力,編 制的程序不能正常運(yùn)行,或是抄襲他人程序, 應(yīng)付答辯。答辯時(shí)即使經(jīng)教師提示 仍不能正確回答大部分問(wèn)題。不及格分?jǐn)?shù)段小于 60分。 第二部分 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)內(nèi)容 預(yù)備實(shí)驗(yàn) C語(yǔ)言的函數(shù)數(shù)組指針結(jié)構(gòu)體知識(shí) 、實(shí)驗(yàn)?zāi)康? 1、 復(fù)習(xí)c語(yǔ)言中函數(shù)、數(shù)組、指針、結(jié)構(gòu)體與共用體等的概念。 2、 熟悉利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的一般方法。 3、 為其它實(shí)驗(yàn)提供答題參考。 環(huán)境中運(yùn)行即可。 4、同學(xué)們可以把本小節(jié)程序直接復(fù)制到 Microsoft Visual C++ 6.0 二、實(shí)驗(yàn)預(yù)習(xí) 說(shuō)明以下C語(yǔ)言

9、中的概念 1、 函數(shù): 略 2、 數(shù)組: 略 3、 指針: 略 4、 結(jié)構(gòu)體 略 5、 共用體 略 、實(shí)驗(yàn)內(nèi)容和要求 (一)、調(diào)試程序:輸出100以內(nèi)所有的素?cái)?shù)(用函數(shù)實(shí)現(xiàn)) #in clude int isprime(i nt n){ /*判斷一個(gè)數(shù)是否為素?cái)?shù) */ int m; for(m=2;m*m<=n; m++) if(n%m==0) return 0; return 1; } int i; prin tf("\n"); for(i=2;i<100;i++) if(isprime(i)==1) pri ntf("%4d",

10、i); prin tf("\n"); return 0; } 運(yùn)行結(jié)果: (二)、調(diào)試程序:對(duì)一維數(shù)組中的元素進(jìn)行逆序排列。 #in clude #defi ne N 10 int mai n(){ int a[N]={0,1,2,3,4,5,6,7,8,9},i,temp; printf("\nthe original Array is:\n "); for(i=0;i

11、1]; a[N-i-1]=temp; } prin tf("\nthe cha nged Array is:\n"); for(i=0;i

12、置上的元素在該行中最大,而在該列中最小, 則該元素即為該二維數(shù)組的一個(gè)鞍點(diǎn)。 要求從鍵盤(pán)上輸入一個(gè)二維數(shù)組, 當(dāng)鞍點(diǎn)存在時(shí), 鞍點(diǎn)找出來(lái)。 #include #define M 3 #define N 4 int main(){ int a[M][N],i,j,k; printf("\n 請(qǐng)輸入二維數(shù)組的數(shù)據(jù): \n"); for(i=0;i

13、][j]); printf("\n"); } for(i=0;ia[i][k]) k=j; for(j=0;j

14、維數(shù)組的元素。 #in clude int mai n(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0];p

15、 Press any key to continue (五卜 調(diào)試程序:設(shè)有一個(gè)教師與學(xué)生通用的表格,教師的數(shù)據(jù)有姓名、年齡、職業(yè)、教 研室四項(xiàng),學(xué)生有姓名、年齡、專業(yè)、班級(jí)四項(xiàng),編程輸入人員的數(shù)據(jù),再以表格輸出。 #in clude #defi ne N 10 struct stude nt{ char name[8]; /* 姓名 */ int age; /*年齡 */ char job; /*職業(yè)或?qū)I(yè),用 s或t表示學(xué)生或教師*/ union { int class; /* 班級(jí) */ char office[10]; /*教研室 */ }

16、depa; }stu[N]; int mai n(){ int i; int n; printf("\n請(qǐng)輸入人員數(shù)(<10人):"); scan f("%d",&n); for(i=0;i

17、lse scan f("%s",stu[i].depa.office); } printf("n ame age job class/office\n"); for(i=0;i

18、; } } 輸入的數(shù)據(jù): Wan g,19,s,99061 Li 36 t computer 運(yùn)行結(jié)果: (六)、設(shè)某班級(jí)有M( 6)名學(xué)生,本學(xué)期共開(kāi)設(shè) N (3)門(mén)課程,要求實(shí)現(xiàn)如下 程序(算法)。 1?輸入學(xué)生的學(xué)號(hào)、姓名和N門(mén)課程的成績(jī)(輸入提示和輸出顯示使用漢字 系統(tǒng)),輸出實(shí)驗(yàn)結(jié)果。 2. 計(jì)算每個(gè)學(xué)生本學(xué)期N門(mén)課程的總分,輸出總分和N門(mén)課程成績(jī)排在前3 名學(xué)生的學(xué)號(hào)、姓名和成績(jī)。 3. 按學(xué)生總分和N門(mén)課程成績(jī)關(guān)鍵字升序用選擇排序排列名次,總分相同者 同名次。 //Seletsort.c #include "stdio.h" #include "str

19、ing.h" #defi ne M 6 #defi ne N 3 void cha ngesort(struct stude nt a[],i nt n ,i nt j); void prin t_score(struct stude nt a[],i nt n ,i nt j); struct stude nt { char n ame[10]; int nu mber; int score[N+1]; /*score[N] 為 總 分,score[0]-score[2]為學(xué)科成績(jī) */ }stu[M]; mai n() { int i,j,k; for (i=

20、0;i

21、",&stu[i].score[2]); for(i=0;i0&&stu[i].score[

22、N]!=stu[i-1].score[N]) { k++; printf("%4d",k); printf(" %4d",stu[i-1].number); printf(" %s",stu[i-1].name); for(j=0;j

23、* 對(duì)離散數(shù)學(xué)成績(jī)進(jìn)行排序 */ print_score(stu,M,1); /*輸出離散數(shù)學(xué)前 3 名同學(xué)成績(jī) */ changesort(stu,M,2); /* 對(duì)大學(xué)英語(yǔ)成績(jī)進(jìn)行排序 */ print_score(stu,M,2); /*輸出大學(xué)英語(yǔ)前 3 名同學(xué)成績(jī) */ void cha ngesort(struct stude nt a[],i nt n ,i nt j) { int flag=1,i,m,k; struct stude nt temp; while(flag) L flag=O; for(i=0;i

24、 k=i; for(m=i+1;ma[k].score[j]) { k=m; temp=a[i]; a[i]=a[k]; a[k]=temp; } } } } void prin t_score(struct stude nt a[],i nt n ,i nt j) { _ int i,k; printf("選擇交換成績(jī) %d排序表",j+1); prin tf("\n"); printf("名次學(xué)號(hào) 姓名分?jǐn)?shù)\n"); k=1; for(i=0;k< N&&i< n;i++) { if(i>0&&a[i].s

25、core[j]!=a[i-1].score[j]) k++; prin tf(" %4d ",k); prin tf("%4d",a[i]. number); printf(" %s",a[i]. name); printf(" %6d",a[i].score[j]); prin tf("\n"); 簡(jiǎn)單選擇排序: 請(qǐng)輸入第 1 名學(xué)生分?jǐn)?shù) 姓 名 史孟晨 編 號(hào) 01 數(shù)據(jù)結(jié)構(gòu) 87 離散數(shù)學(xué) 90 大學(xué)英語(yǔ) 78 請(qǐng)輸入第 2 名學(xué)生分?jǐn)?shù) 姓 名 袁欣 編 號(hào) 02 數(shù)據(jù)結(jié)構(gòu) 78 離散數(shù)學(xué) 80 大學(xué)英語(yǔ) 92 請(qǐng)輸

26、入第 3 名學(xué)生分?jǐn)?shù) 姓 名 趙宇 編 號(hào) 03 數(shù)據(jù)結(jié)構(gòu) 88 離散數(shù)學(xué) 76 大學(xué)英語(yǔ) 95 請(qǐng)輸入第 4 名學(xué)生分?jǐn)?shù) 姓 名 滕芷 編 號(hào) 04 數(shù)據(jù)結(jié)構(gòu) 79 離散數(shù)學(xué) 84 大學(xué)英語(yǔ) 88 請(qǐng)輸入第 5 名學(xué)生分?jǐn)?shù) 姓 名 張一析 編 號(hào) 05 數(shù)據(jù)結(jié)構(gòu) 78 離散數(shù)學(xué) 68 大學(xué)英語(yǔ) 91 請(qǐng)輸入第 6 名學(xué)生分?jǐn)?shù) 姓 名 白曉彤 編 號(hào) 06 數(shù)據(jù)結(jié)構(gòu) 88 離散數(shù)學(xué) 76 大學(xué)英語(yǔ) 90 學(xué)生總分成績(jī)排序表 名次 學(xué)號(hào) 姓 名 數(shù)據(jù)結(jié)構(gòu) 離散數(shù)學(xué) 大學(xué)英語(yǔ) 總

27、分 1 3 趙宇 88 76 95 259 2 1 史孟晨 87 90 78 255 3 6 白曉彤 88 76 90 254 4 4 滕芷 79 84 88 251 5 2 袁欣 78 80 92 250 6 5 張一析 78 68 91 237 選擇交換 成績(jī) 1 排序表 名次學(xué)號(hào) 姓名 分?jǐn)?shù) 1 3 趙宇 88 1 6 白曉彤 88 2 1 史孟晨 87 3 4 滕芷 79 選擇交換 成績(jī) 2 排序表 名次學(xué) 號(hào) 姓名 分?jǐn)?shù) 1 1 史孟晨

28、90 2 4 滕芷 84 3 2 袁欣 80 選擇交換 成績(jī) 3 排序表 名次學(xué) 號(hào) 姓名 分?jǐn)?shù) 1 3 趙宇 95 2 2 袁欣 92 3 5 張一析 91 Press any key to continue 輸入的數(shù)據(jù)及運(yùn)行結(jié)果截屏:

29、醫(yī)大團(tuán)編B崗大屢編醫(yī)大履編B曷大 ? ? 數(shù) 分 生 睜止 - 6 5」啟衆(zhòng) 4 9 4 8「U長(zhǎng) 5 8 8 1 6 8 6 0 7 9 4 0 7 8 8 n5 0 7 6 9 0 8 7 9 ? ? 數(shù) 分 名E 總構(gòu) 生結(jié) 學(xué)據(jù) 數(shù) J 名次學(xué)號(hào)姓 名 瘧隸囑脾類(lèi)學(xué)英語(yǔ)總分 ■ " Q:\TE IM P\a aj\Debuq\aaarexe" 口 8 6 0 7 9 表 12 3 4 5

30、 6 9 5 2 0 8 5 4 7 5 5 3 2 2 10 2 5 5 2 2 0 6 97 6 4 0 7 8 8 8 0 1 7 9 9 5 8 2 9 8 9 7 8 8 8 8 7 8 9 8 8 7 7 4 分8 的87 8 9 分8 7 ?表 序名搟辰序看辰 數(shù)91 5 2 分9 9 表 H- 3 2 5 % 交次 3 筆 12 3 1 丿彳扌/ Ji 丿彳 析M 琴 張養(yǎng)孟芷排孟芷廉丟“ 豐勲娜止欣T 1姓趙量滕2 H3姓爹張O 趙史SB譬書(shū)號(hào)'a號(hào) 成 3 £ 1 4 成 14-2 5% % 交次

31、 交次 112 3? 1 2 迤名 四、心得體會(huì) 本學(xué)期開(kāi)設(shè)的《數(shù)據(jù)結(jié)構(gòu)》課程已經(jīng)告一段落,現(xiàn)就學(xué)習(xí)體會(huì)進(jìn)行學(xué)習(xí)總 結(jié)。 這是一門(mén)純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。剛開(kāi)始學(xué)的時(shí) 候確實(shí)有很多地方很不理解,每次上課時(shí)老師都會(huì)給我們出不同的設(shè)計(jì)題目, 對(duì) 于我們一個(gè)初學(xué)者來(lái)說(shuō),無(wú)疑是一個(gè)具大的挑戰(zhàn),撞了幾次壁之后, 我決定靜下 心來(lái),仔細(xì)去寫(xiě)程序。老師會(huì)給我們需要編程的內(nèi)容一些講解, 順著老師的思路, 來(lái)完成自己的設(shè)計(jì),我

32、們可以開(kāi)始運(yùn)行自己的程序。 這門(mén)課結(jié)束之后,我總結(jié)了學(xué)習(xí)中遇到的一些問(wèn)題,最為突出的,書(shū)本上 的知識(shí)與老師的講解都比較容易理解,但是當(dāng)自己采用剛學(xué)的知識(shí)點(diǎn)編寫(xiě)程序時(shí) 卻感到十分棘手,有時(shí)表現(xiàn)在想不到適合題意的算法,有時(shí)表現(xiàn)在算法想出來(lái)后, 只能將書(shū)本上原有的程序段謄寫(xiě)到自己的程序中再加以必要的連接以完成程序 的編寫(xiě) 剛開(kāi)始學(xué)的時(shí)候確實(shí)有很多地方我很不理解,每次上上機(jī)課時(shí)老師都會(huì)給 我們出不同的設(shè)計(jì)題目,對(duì)于我們一個(gè)初學(xué)者來(lái)說(shuō),無(wú)疑是一個(gè)具大的挑戰(zhàn), 撞了幾次壁之后,我決定靜下心來(lái),仔細(xì)去寫(xiě)程序。老師會(huì)給我們需要編程的 內(nèi)容一些講解,順著老師的思路,來(lái)完成自己的設(shè)計(jì),我們可以開(kāi)始運(yùn)行自己

33、的程序,可是好多處的錯(cuò)誤讓人看的可怕,還看不出到底是哪里出現(xiàn)了錯(cuò)誤, 但是程序還是得繼續(xù)下去,我多次請(qǐng)教了老師和同學(xué),逐漸能自己找出錯(cuò)誤, 并加以改正。 TC 里檢查錯(cuò)誤都是用英文來(lái)顯示出來(lái)的,經(jīng)過(guò)了這次課程設(shè)計(jì), 現(xiàn)在已經(jīng)可以了解很多錯(cuò)誤在英文里的提示,這對(duì)我來(lái)說(shuō)是一個(gè)突破性的進(jìn) 步,眼看著一個(gè)個(gè)錯(cuò)誤通過(guò)自己的努力在我眼前消失,覺(jué)得很是開(kāi)心。此次的 程序設(shè)計(jì)能夠成功,是我和我的同學(xué)三個(gè)人共同努力作用的結(jié)果。在這一段努 力學(xué)習(xí)的過(guò)程中,我們的編程設(shè)計(jì)有了明顯的提高。 其實(shí)現(xiàn)在想起來(lái),收獲還真是不少,雖然說(shuō)以前非常不懂這門(mén)語(yǔ)言,在它 上面花費(fèi)了好多心血,覺(jué)得它很難, 是需用花費(fèi)了大量的時(shí)間編寫(xiě)

34、出來(lái)的。 現(xiàn)在 真正的明白了一些代碼的應(yīng)用, 每個(gè)程序都有一些共同點(diǎn),通用的結(jié)構(gòu),相似的 格式。只要努力去學(xué)習(xí),就會(huì)靈活的去應(yīng)用它。 以上便是我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門(mén)課的學(xué)習(xí)總結(jié),我會(huì)抓緊時(shí)間將沒(méi)有吃透 的知識(shí)點(diǎn)補(bǔ)齊 , 克服學(xué)習(xí)中遇到的難關(guān),在打牢基礎(chǔ)的前提下向更深入的層面邁 進(jìn)! 實(shí)驗(yàn)一順序表與鏈表 、實(shí)驗(yàn)?zāi)康? 1、 掌握線性表中元素的前驅(qū)、后續(xù)的概念。 2、 掌握順序表與鏈表的建立、插入元素、刪除表中某元素的算法。 3、 對(duì)線性表相應(yīng)算法的時(shí)間復(fù)雜度進(jìn)行分析。 4、 理解順序表、鏈表數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)(優(yōu)缺點(diǎn)) 。 二、實(shí)驗(yàn)預(yù)習(xí) 說(shuō)明以下概念(到主要參考教材上查找答案) 1、

35、 線性表: 2、 順序表: 3、 鏈表: 、實(shí)驗(yàn)內(nèi)容和要求 1、閱讀下面程序,在橫線處填寫(xiě)函數(shù)的基本功能。并運(yùn)行程序,寫(xiě)出結(jié)果。 #in clude #in clude #defi ne ERROR 0 #defi ne OK 1 #defi ne INIT_SIZE 5 /* #defi ne INCREM 5 /* typedef int ElemType; /* typedef struct Sqlist{ ElemType *slist; /* int len gth; /* int listsize; /* }Sqli

36、st; 初始分配的順序表長(zhǎng)度*/ 溢出時(shí),順序表長(zhǎng)度的增量 */ 定義表元素的類(lèi)型*/ 存儲(chǔ)空間的基地址*/ 順序表的當(dāng)前長(zhǎng)度*/ 當(dāng)前分配的存儲(chǔ)空間*/ int InitList_sq(Sqlist *L); /* */ int CreateList_sq(Sqlist *L,int n); /* */ int ListInsert_sq(Sqlist *L,int i,ElemType e);/* */ int Prin tList_sq(Sqlist *L); /* 輸出順序表的元素*/ int ListDelete_sq(Sqlist *L,int i

37、); /* int ListLocate(Sqlist *L,ElemType e); /* 刪除第i個(gè)元素*/ 查找值為e的元素*/ int In itList_sq(Sqlist *L){ L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType)); if(!L->slist) return

38、ERROR; L->length=0; L->listsize=INIT_SIZE; return OK; }/*InitList*/ int CreateList_sq(Sqlist *L,int n){ ElemType e; int i; for(i=0;i

39、sq(Sqlist *L){ int i; for(i=1;i<=L->length;i++) printf("%5d",L->slist[i-1]); return OK; }/*PrintList*/ int ListInsert_sq(Sqlist *L,int i,ElemType e){ int k; if(i<1||i>L->length+1) return ERROR; if(L->length>=L->listsize){ L->slist=(ElemType*)realloc(L->slist, (INIT_SIZE+INCREM)*sizeof(ElemTy

40、pe)); if(!L->slist) return ERROR; L->listsize+=INCREM; } for(k=L->length-1;k>=i-1;k--){ L->slist[k+1]= L->slist[k]; } L->slist[i-1]=e; L->length++; return OK; }/*ListInsert*/ /* 在順序表中刪除第 i 個(gè)元素 */ int ListDelete_sq(Sqlist *L,int i){ } /* 在順序表中查找指定值元素,返回其序號(hào) */ int ListLocate(Sqlist *L,Elem

41、Type e){ } int main(){ Sqlist sl; int n,m,k; printf("please input n:"); /* 輸入順序表的元素個(gè)數(shù) */ scanf("%d",&n); if(n>0){ printf("\n1-Create Sqlist:\n"); InitList_sq(&sl); CreateList_sq(&sl,n); printf("\n2-Print Sqlist:\n"); PrintList_sq(&sl); printf("\nplease input insert location and data:(loc

42、ation,data)\n"); scanf("%d,%d",&m,&k); ListInsert_sq(&sl,m,k); printf("\n3-Print Sqlist:\n"); PrintList_sq(&sl); printf("\n"); } else printf("ERROR"); return 0; } 運(yùn)行結(jié)果(運(yùn)行結(jié)果截屏粘貼到這里) 算法分析(參照教材上的“算法分析”部分填寫(xiě)本部分內(nèi)容, 2、為第 1 題補(bǔ)充刪除和查找功能函數(shù),并在主函數(shù)中補(bǔ)充代碼驗(yàn)證算法的正確性。 刪除算法代碼: 運(yùn)行結(jié)果 算法分析 查找算法代碼: 運(yùn)行結(jié)果 算法分析

43、 3、閱讀下面程序,在橫線處填寫(xiě)函數(shù)的基本功能。并運(yùn)行程序,寫(xiě)出結(jié)果。 #in clude #in clude #defi ne ERROR 0 #defi ne OK 1 定義表元素的類(lèi)型*/ 線性表的單鏈表存儲(chǔ)*/ typedef int ElemType; /* typedef struct LNode{ /* ElemType data; struct LNode *n ext; }LNode,*Li nkList; LinkList CreateList(int n); /* void PrintList(LinkList L)

44、; /* int GetElem(LinkList L,int i,ElemType *e); /* */ 輸出帶頭結(jié)點(diǎn)單鏈表的所有元素 */ */ LinkList CreateList(int n){ LNode *p,*q,*head; int i; head=(L in kList)malloc(sizeof(LNode)); p=head; for(i=0;i< n; i++){ q=(L in kList)malloc(sizeof(LNode)); data %i:",i+1); scan f("%d",& q->data); /* q-> next=N

45、ULL; /* p_>n ext=q; /* p=q; } retur n head; }/*CreateList*/ head-> next=NULL; prin tf("i nput 輸入元素值*/ 結(jié)點(diǎn)指針域置空*/ 新結(jié)點(diǎn)連在表末尾*/ void Prin tList(L in kList L){ LNode *p; p=L->next; /*p 指向單鏈表的第 1個(gè)元素*/ while(p!=NULL){ prin tf("%5d",p->data); p=p->n ext; } }/*Pri ntList*/ int GetElem(Lin

46、kList L,int i,ElemType *e){ LNode *p;int j=1; p=L->n ext; while(p&&jnext;j++; } if(!p||j>i) return ERROR; *e=p->data; return OK; }/*GetElem*/ int main(){ int n,i;ElemType e; LinkList L=NULL; /* 定義指向單鏈表的指針 */ printf("please input n:"); /* 輸入單鏈表的元素個(gè)數(shù) */ scanf("%d",&n); if(n>0){

47、 printf("\n1-Create LinkList:\n"); L=CreateList(n); printf("\n2-Print LinkList:\n"); PrintList(L); printf("\n3-GetElem from LinkList:\n"); printf("input i="); scanf("%d",&i); if(GetElem(L,i,&e)) printf("No%i is %d",i,e); else printf("not exists"); }else printf("ERROR"); return 0; } 運(yùn)行

48、結(jié)果 算法分析 4、為第 3 題補(bǔ)充插入功能函數(shù)和刪除功能函數(shù)。 并在主函數(shù)中補(bǔ)充代碼驗(yàn)證算法的正確性。 插入算法代碼: 運(yùn)行結(jié)果 算法分析 刪除算法代碼: 運(yùn)行結(jié)果 算法分析 以下為選做實(shí)驗(yàn): 5、循環(huán)鏈表的應(yīng)用(約瑟夫回環(huán)問(wèn)題) n 個(gè)數(shù)據(jù)元素構(gòu)成一個(gè)環(huán),從環(huán)中任意位置開(kāi)始計(jì)數(shù),計(jì)到 m 將該元素從表中取出,重復(fù)上 述過(guò)程,直至表中只剩下一個(gè)元素。 提示:用一個(gè)無(wú)頭結(jié)點(diǎn)的循環(huán)單鏈表來(lái)實(shí)現(xiàn)

49、n 個(gè)元素的存儲(chǔ)。 算法代碼 6、設(shè)一帶頭結(jié)點(diǎn)的單鏈表,設(shè)計(jì)算法將表中值相同的元素僅保留一個(gè)結(jié)點(diǎn)。 提示:指針p從鏈表的第一個(gè)元素開(kāi)始,利用指針 q從指針p位置開(kāi)始向后搜索整個(gè)鏈表, 刪除與之值相同的元素;指針 p繼續(xù)指向下一個(gè)元素,開(kāi)始下一輪的刪除,直至 p== null 為至,既完成了對(duì)整個(gè)鏈表元素的刪除相同值。 算法代碼 四、實(shí)驗(yàn)小結(jié) 實(shí)驗(yàn)二棧和隊(duì)列 一、實(shí)驗(yàn)?zāi)康? 1、 掌握棧的結(jié)構(gòu)特性及其入棧,出棧操作; 2、 掌握隊(duì)列的結(jié)構(gòu)特性及其入隊(duì)、出隊(duì)的操作,掌握循環(huán)隊(duì)列的特點(diǎn)及其操作。 二、實(shí)驗(yàn)預(yù)習(xí) 說(shuō)明以下概念 1、 順序棧: 2、 鏈棧: 3、 循環(huán)隊(duì)列:

50、 4、 鏈隊(duì) 、實(shí)驗(yàn)內(nèi)容和要求 ,運(yùn) 1、閱讀下面程序,將函數(shù) Push和函數(shù)Pop補(bǔ)充完整。要求輸入元素序列 行結(jié)果如下所示。 #in clude #in clude #defi ne ERROR 0 #defi ne OK 1 #defi ne STACK_INT_SIZE 10 /* #defi ne STACKINCREMENT 5 /* typedef int ElemType; /* typedef struct{ ElemType *base; ElemType *top; 存儲(chǔ)空間初始分配量*/ 存儲(chǔ)空間

51、分配增量*/ 定義元素的類(lèi)型*/ int stacksize; /* }SqStack; 當(dāng)前已分配的存儲(chǔ)空間 */ int InitStack(SqStack *S); /* int push(SqStack *S,ElemType e); /* int Pop(SqStack *S,ElemType *e); /* int CreateStack(SqStack *S); /* void PrintStack(SqStack *S); /* 構(gòu)造空棧 */ 入棧 */ 出棧 */ 創(chuàng)建棧 */ 出棧并輸出棧中元素 */ int InitStack(SqSta

52、ck *S){ S->base=(ElemType *)malloc(STACK_INT_SIZE *sizeof(ElemType)); if(!S->base) return ERROR; S->top=S->base; S->stacksize=STACK_INT_SIZE; return OK; }/*InitStack*/ int Push(SqStack *S,ElemType e){ }/*Push*/ int Pop(SqStack *S,ElemType *e){ }/*Pop*/ int CreateStack(SqStack *S){ int e; i

53、f(InitStack(S)) printf("Init Success!\n"); else{ printf("Init Fail!\n"); return ERROR; } printf("input data:(Terminated by inputing a character)\n"); while(scanf("%d",&e)) Push(S,e); return OK; }/*CreateStack*/ void PrintStack(SqStack *S){ ElemType e; while(Pop(S,&e)) printf("%3d",e); }/*Po

54、p_and_Print*/ int mai n(){ SqStack ss; prin tf("\n1-createStack\n"); CreateStack(&ss); prin tf("\n 2-Pop&Print\n"); Prin tStack(&ss); return 0; } 算法分析:輸入元素序列 1 2 3 4 5 ,為什么輸出序列為 5 4 3 2 1 ?體現(xiàn)了棧的什么 特性? 2、在第1題的程序中,編寫(xiě)一個(gè)十進(jìn)制轉(zhuǎn)換為二進(jìn)制的數(shù)制轉(zhuǎn)換算法函數(shù)(要求利用棧來(lái) 實(shí)現(xiàn)),并驗(yàn)證其正確性。 實(shí)現(xiàn)代碼 驗(yàn)證 3、閱讀并運(yùn)行程序,并分析程序功能。 #in

55、 clude #in clude #in clude #defi ne M 20 #defi ne elemtype char typedef struct { elemtype stack[M]; int top; } stack no de; void in it(stack node *st); void push(stack node *st,elemtype x); void pop(stack node *st); void in it(stack node *st) { st->top=0;

56、 } void push(stack node *st,elemtype x) { if(st->top==M) prin tf("the stack is overflow!' n"); else { st_>top=st_>top+1; st->stack[st->top]=x; } } void pop(stack node *st) { if(st->top>0) st->top--; else printf( Stack is Empty!' n ”; } int mai n() { char s[M]; int i; stack node *s

57、p; prin tf("create a empty stack!' n"); sp=malloc(sizeof(stack no de)); ini t(sp); prin tf("i nput a expressi on:\n ”); gets(s); for(i=0;itop==0) prin tf("'('match')'!\n"); else printf("'('not match')'!\n");

58、 return 0; } 輸入:2+((c-d)*6-(f-7)*a)/6 運(yùn)行結(jié)果: 輸入:a-((c-d)*6-(s/3-x)/2 運(yùn)行結(jié)果: 程序的基本功能: 以下為選做實(shí)驗(yàn): 4、設(shè)計(jì)算法,將一個(gè)表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,并按照后綴表達(dá)式進(jìn)行計(jì)算,得出表達(dá)式 得結(jié)果。 實(shí)現(xiàn)代碼 5、假設(shè)以帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列, 并且只設(shè)一個(gè)指針指向隊(duì)尾結(jié)點(diǎn) (不設(shè)隊(duì)頭指針) 試編寫(xiě)相應(yīng)的置空隊(duì)列、入隊(duì)列、出隊(duì)列的算法。 實(shí)現(xiàn)代碼: 四、實(shí)驗(yàn)小結(jié) 實(shí)驗(yàn)三 串的模式匹配 一、實(shí)驗(yàn)?zāi)康? 1 、了解串的基本概念 2 、掌握串的模式匹配算法的實(shí)現(xiàn) 二、實(shí)驗(yàn)預(yù)習(xí) 說(shuō)明以下

59、概念 1、模式匹配: 2、BF算法: 三、實(shí)驗(yàn)內(nèi)容和要求 1 、閱讀并運(yùn)行下面程序,根據(jù)輸入寫(xiě)出運(yùn)行結(jié)果。 #include #include #define MAXSIZE 100 typedef struct{ char data[MAXSIZE]; int length; }SqString; 串的比較 */ int strCompare(SqString *s1,SqString *s2); /* void show_strCompare(); void strSub(SqString *s,int start,int

60、sublen,SqString *sub); /* 求子串 */ void show_subString(); int strCompare(SqString *s1,SqString *s2){ int i; for(i=0;ilength&&ilength;i++) if(s1->data[i]!=s2->data[i]) return s1->data[i]-s2->data[i]; return s1->length-s2->length; } void show_strCompare(){ SqString s1,s2; int k; pri

61、ntf("\n***show Compare***\n"); printf("input string s1:"); gets(s1.data); s1.length=strlen(s1.data); printf("input string s2:"); gets(s2.data); s2.length=strlen(s2.data); if((k=strCompare(&s1,&s2))==0) printf("s1=s2\n"); else if(k<0) printf("s1s2\n"); printf("\n***sh

62、ow over***\n"); } void strSub(SqString *s,int start,int sublen,SqString *sub){ int i; if(start<1||start>s->length||sublen>s->length-start+1){ sub->length=0; } for(i=0;idata[i]=s->data[start+i-1]; sub->length=sublen; } void show_subString(){ SqString s,sub; int start,suble

63、n,i; printf("\n***show subString***\n"); printf("input string s:"); gets(s.data); s.length=strlen(s.data); printf("input start:"); scanf("%d",&start); printf("input sublen:"); scanf("%d",&sublen); strSub(&s,start,sublen,&sub); if(sub.length==0) printf("ERROR!\n"); else{ printf("subString is :")

64、; for(i=0;i

65、are();break; case 2:show_subString();break; default:n=0;break; } }while(n); return 0; } BF 算法。 運(yùn)行程序 輸入: 1 student students 2 Computer Data Stuctures 10 4 運(yùn)行結(jié)果: 2 、實(shí)現(xiàn)串的模式匹配算法。補(bǔ)充下面程序,實(shí)現(xiàn)串的 #include #include #define MAXSIZE 100 typedef struct{ char data[MAXSIZE]; int length

66、; }SqString; int index_bf(SqString *s,SqString *t,int start); void getNext(SqString *t,int next[]); int index_kmp(SqString *s,SqString *t,int start,int next[]); void show_index(); int index_bf(SqString *s,SqString *t,int start){ 補(bǔ)充代碼 } void getNext(SqString *t,int next[]){ int i=0,j=-1; next[0]=-1; while(ilength){ if((j==-1)||(t->data[i]==t->data[j])){ i++;j++;next[i]=j; }else j=next[j]; } } void show_index(){ SqString s,t; int k,next[MAXSIZE]={0},i; printf("\n***show i

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!