![C語言實習報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/82cba177-a626-45d2-b8d4-e53b887879bd/82cba177-a626-45d2-b8d4-e53b887879bd1.gif)
![C語言實習報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/82cba177-a626-45d2-b8d4-e53b887879bd/82cba177-a626-45d2-b8d4-e53b887879bd2.gif)
![C語言實習報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/82cba177-a626-45d2-b8d4-e53b887879bd/82cba177-a626-45d2-b8d4-e53b887879bd3.gif)
![C語言實習報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/82cba177-a626-45d2-b8d4-e53b887879bd/82cba177-a626-45d2-b8d4-e53b887879bd4.gif)
![C語言實習報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/15/82cba177-a626-45d2-b8d4-e53b887879bd/82cba177-a626-45d2-b8d4-e53b887879bd5.gif)
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、題目一線性結構的操作1.用線性表的順序存儲(數(shù)組)保存數(shù)據(jù)算法的N-S圖或流程圖2.用線性表的鏈式存儲(鏈表)保存數(shù)據(jù)插入:H'C1A.C1AHsP刪除: A1LAi AnLinclude <stdio.h> #include <stdlib.h> typedef structint num; / 學號charname10;/ 姓名stude nt;/定義的抽象元素類型Elemtypetyp edef struct Node /*結點類型定義*/stude nt data;struct Node *n ext;Node, *L in kList;/* LinkL
2、ist為結構指針類型*/static int count;/學生人數(shù)/帶頭結點的尾插入法創(chuàng)建鏈表 void insert(LinkList head) LinkList p,q; /p代表的待插元素代入最后一個元素q=head; /q 指向 head結點printf("輸入學生人數(shù):");scanf( "%d",&count);for (int i=0;i<count;i+)printf( "n輸入第(個學生信息:n" ,i+1);p = (LinkList)malloc( sizeof (Node); / 結點 p申請
3、一個空間 printf("輸入學號:");scanf( "%d",&p->data.num);/ 輸入結點 p的數(shù)據(jù) ° 學號printf( "n 輸入姓名:");scanf( "%s",p->);/輸入結點的數(shù)據(jù)域姓名 name為數(shù)組類型數(shù)組名為首地址所有此處不需要地址符號if (i=0)head-> next = p; /i=0 鏈表中沒有元素只有頭節(jié)點把插入到 head之后elseq->next = p; /鏈表中已有結點元素結點采用尾插入法q =
4、p; /每插入一個元素就賦值于q q始終指向最后一個元素p->next = NULL; / 設置 next 域為空void print(LinkList head) LinkList x; /定義一個鏈表結點x = head->next ;/該節(jié)點指向第一個元素printf("學生信息如下n");while (x) /存在結點printf("學號 %d 姓名 %sn" ,x->data.num,x->); / 輸出該 結點的數(shù)據(jù)域學號和姓名x = x->next ;/ 下一個元素printf( "
5、n");/把鏈表中的文件信息放入文件中 寫入語句void savetofile(LinkList head)FILE*fp;Lin kList p;p=head->n ext;if (fp=fopen( "d:st2.txt", "wb+")=NULL)printf("不能打開文件");return ;while (p)fprintf(fp,"%d%srn" ,p->data.num,p->);p=p->n ext;printf( "n 寫入成功 n&q
6、uot;);/功能菜單提示性語句 void menu() printf( "n0.退出1.輸入2.輸出3.寫入n"); void main() int choice;Lin kList I;l = (LinkList)malloc( sizeof (Node); / 頭結點申請空間l->next=NULL; / 頭結點的 next 為空menu();while (1)scanf( "%d",&choice); / 輸入一個整數(shù)switch (choice)case 1:in sert(l);me nu();break;case 2: pri
7、n t(l); menu();break;default : exit(O);題目二排序#i nclude"stdio.h" #i nclude "stdlib.h" #i nclude"time.h" #defi ne TRUE 1 #defi ne FALSE 0 typ edef int KeyT ype;typ edef int OtherT ype;#define MAXSIZE 200 /* 線性表可能達到的最大長度*/typ edef struct KeyT ype key;OtherT ype other_data;R
8、ecordT ype;void In sSort(RecordT ype r, i nt len gth)/*對記錄數(shù)組r做直接插入排序,length為數(shù)組中待排序記錄的數(shù)目*/ int i,j;for (i=2; i<=le ngth; i+)r0=ri; /*將待插入記錄存放到監(jiān)視哨r0中*/尋找插入位置*/j=i-1;while (rO.keyv rj.key ) /* rj+1= rj;j=j-1;rj+1=r0; /*將待插入記錄插入到已排序的序列中*/ /* In sSort */ void BubbleSort(RecordTy pe r, i nt length )/*對
9、記錄數(shù)組r做冒泡排序,length為數(shù)組的長度*/ int n ,i,j;int cha nge;RecordT ype x;n=len gth;cha nge=TRUE;for ( i=1 ; i<= n-1 && cha nge ;+i ) cha nge=FALSE;for ( j=1 ; j<= n-i ; +j) if (rj.key > rj+1.key ) x= rj;rj= rj+1;rj+1= x;cha nge=TRUE; /* Bubblesort */ void SelectSort(RecordT ype r, int len gth
10、)/*對記錄數(shù)組r做簡單選擇排序,length為數(shù)組的長度*/ int n;RecordT ype x;n=len gth;for ( i=1 ; i<= n-1; +i) k=i;for ( j=i+1 ; j<= n ; +j) if (rj.key < rk.key ) k=j;if ( k!=i) x= ri;ri= rk;rk=x; /* SelectSort */void sqra nd(RecordT ype r)/獲取隨機數(shù)據(jù)int i;int len;sran d(time(NULL);/設置隨機數(shù)種子。for(i=1;iv=100;i+) ri.key =
11、 ran d()%101;void out(RecordT ype r) for(i nt i=1;i<=100;i+) prin tf("%5d",ri.key );void menu()printf("n1生成隨機數(shù)2輸出隨機數(shù)3插入排序4冒泡排序5簡單選擇 排序其他退出n");int main() int len,n;RecordTy pe rMAXSIZE;menu();len=100;while(1) sca nf("%d",&n);switch( n)case 1: sqra nd(r);break;case
12、 2: out(r);break;case 3:1 nsSort(r,le n);break;case 4:BubbleSort(r,le n);break;case 5:SelectSort(r,le n);break;default :exit(0);break;menu();return 0;源程序清單宿舍結構體順序存儲結構定義如下:#define MAXSIZE 100typ edefstruct /學生住宿記錄結構體char dormID10;int stude ntID;char n ame10;char sex2;int age;dormitory;typ edefstruct
13、/順序表的存儲結構dormitory dorm MAXSIZE; /線性表占用的數(shù)組空間int last; /最后一個元素在數(shù)組中的位置(下標值),空表置為-1 SeqList;宿舍結構體鏈式存儲結構定義如下:typedef struct dormitory /學生住宿記錄結構體 char dormlD10;int stude ntID;char n ame10;char sex2;int age;dormitory;typedef struct Node /學生住宿記錄結點stude nt data;struct Node *n ext;Node, *Li nkList; /Li nkLis
14、t為結構體指針類型題目一線性結構的操作1.用線性表的順序存儲(數(shù)組)保存數(shù)據(jù)(1)(2)鍵盤輸入你所在宿舍的同學信息到數(shù)組;遍歷輸出所以學生數(shù)據(jù);(3)按姓名查找并輸出指定學生數(shù)據(jù),統(tǒng)計查找的次數(shù);把數(shù)組內容輸出到文件;從文件讀入學生數(shù)據(jù),按學號排序后顯示在屏幕;某同學調入你的宿舍,請增加其信息;并查看增加后的結果;(7)某同學調離你的宿舍,請刪除其信息,并查看刪除后的結果;題目一線性結構的操作2.用線性表的鏈式存儲(鏈表)保存數(shù)據(jù)鍵盤輸入你所在宿舍的同學信息到數(shù)組;遍歷輸出所以學生數(shù)據(jù);按姓名查找并輸出指定學生數(shù)據(jù),統(tǒng)計查找的次數(shù);把數(shù)組內容輸出到文件;(5)(6)從文件讀入學生數(shù)據(jù),按學號
15、排序后顯示在屏幕;某同學調入你的宿舍,請增加其信息;并查看增加后的結果;某同學調離你的宿舍,請刪除其信息,并查看刪除后的結果; 題目二排序(7)實習總結報告這次課程設計的心得體會通過實習我的收獲如下:數(shù)據(jù)結構是計算機很基礎的一門學科,但是學習就是要從基礎學起.本次實訓首先鞏固課本上重要知識點,首先是一些基本操作,掌握線性表在單鏈存儲結構中實現(xiàn)基本運算(查找、插入、刪 除、合并等)的算法,線性表在單向循環(huán)鏈表結構中實現(xiàn)基本運算 (查找、插入、 刪除、合并等)的算法 1鞏固和加深了對數(shù)據(jù)結構的理解,提高綜合運用本課程所學知識的能力。2、培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深
16、入研究,分析問題、解決問題的能力。3、通過實際編譯系統(tǒng)的分析設計、編程調試,掌握應用軟件的分析方法和工程設計方法。4、通過課程設計,培養(yǎng)了我嚴肅認真的工作作風,逐步建立正確的生產觀念、經濟觀念和全 局觀念。從剛開始得覺得很難,到最后把這個做出來,付出了很多,也得到了很 多,以前總以為自己對編程的地方還不行,現(xiàn)在,才發(fā)現(xiàn)只要認真做,沒有什么 不可能。編程時要認真仔細,出現(xiàn)錯誤要及時找出并改正,(其中對英語的要求也體 現(xiàn)出來了,因為它說明錯誤的時候都是英語) 遇到問題要去查相關的資料。反復 的調試程序,最好是多找?guī)讉€同學來對你的程序進行調試并聽其對你的程序的建 議,在他們不知道程序怎么寫的時候完全以一個用戶的身份來用對你的用戶界面 做一些建議,正所謂當局者迷旁觀者清,把各個注意的問題要想到;同時要形成 自己的編寫程序與調試程序的風格, 從每個細節(jié)出發(fā),不放過每個知識點,注意 與理論的聯(lián)系和理論與實踐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年盲頭螺紋嵌件項目可行性研究報告
- 2025年激光掃描測微儀項目可行性研究報告
- 2025至2031年中國打印機輥行業(yè)投資前景及策略咨詢研究報告
- 2025年廢塑料一次擠出成型機項目可行性研究報告
- 2025年分體式活塞項目可行性研究報告
- 2025年亮藍食用色素項目可行性研究報告
- 2025至2030年中國飛行仿真模擬訓練軟件數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年鉆桿護絲項目投資價值分析報告
- 2025至2030年中國酒精泵數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年汽車號牌項目投資價值分析報告
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風能發(fā)電系統(tǒng)風力發(fā)電場監(jiān)控系統(tǒng)通信第71部分:配置描述語言
- 腦梗死的護理查房
- 2025高考數(shù)學專項復習:概率與統(tǒng)計的綜合應用(十八大題型)含答案
- 產后抑郁癥講課課件
- 2024-2030年中國紫蘇市場深度局勢分析及未來5發(fā)展趨勢報告
- 銷售人員課件教學課件
- LED大屏技術方案(適用于簡單的項目)
- 2024智慧城市數(shù)據(jù)采集標準規(guī)范
- Lesson 6 What colour is it(教學設計)-2023-2024學年接力版英語三年級下冊
- 歷年國家二級(Python)機試真題匯編(含答案)
評論
0/150
提交評論