九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8

上傳人:小**** 文檔編號(hào):144014476 上傳時(shí)間:2022-08-26 格式:DOC 頁(yè)數(shù):12 大?。?.22MB
收藏 版權(quán)申訴 舉報(bào) 下載
天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8_第1頁(yè)
第1頁(yè) / 共12頁(yè)
天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8_第2頁(yè)
第2頁(yè) / 共12頁(yè)
天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8_第3頁(yè)
第3頁(yè) / 共12頁(yè)

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

10 積分

下載資源

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

資源描述:

《天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8》由會(huì)員分享,可在線閱讀,更多相關(guān)《天津理工大學(xué) c語(yǔ)言上機(jī)報(bào)告8(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、計(jì)算機(jī)與通信工程學(xué)院 天津理工大學(xué) 計(jì)算機(jī)與通信工程學(xué)院 實(shí)驗(yàn)報(bào)告 (試做) 2009 至 2010 學(xué)年 第 一 學(xué)期 課程名稱 高級(jí)程序設(shè)計(jì)語(yǔ)言 I 學(xué)號(hào) 學(xué)生姓名 年級(jí) 專業(yè) 教學(xué)班號(hào) 實(shí)驗(yàn)地點(diǎn) 實(shí)驗(yàn)時(shí)間 20 年 月 日 第 節(jié) 至 第 節(jié) 主講教師 孫世溫 輔導(dǎo)教師 實(shí)驗(yàn)(八) 實(shí)驗(yàn)名稱 結(jié)構(gòu)體和聯(lián)合 軟件環(huán)境 Win XP、Visual

2、 C++ 6.0 硬件環(huán)境 PC 實(shí)驗(yàn)?zāi)康? (1) 掌握結(jié)構(gòu)體類型的定義和使用; (2) 掌握結(jié)構(gòu)體類型變量的概念和使用; (3) 掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作; (4) 掌握共用體的概念和使用; (5) 進(jìn)一步熟悉Visual C++6.0開發(fā)環(huán)境下調(diào)試程序的基本步驟。 實(shí)驗(yàn)內(nèi)容(應(yīng)包括實(shí)驗(yàn)題目、實(shí)驗(yàn)要求、實(shí)驗(yàn)任務(wù)等) (1) 利用順序表實(shí)現(xiàn)“先進(jìn)后出”的堆棧 l 結(jié)構(gòu)體定義: // 結(jié)構(gòu)體 Stack struct Stack{ int * List; // 用來(lái)存儲(chǔ)元素的順序表 int curNumber; // 用來(lái)存儲(chǔ)當(dāng)前元素的總個(gè)數(shù)

3、 }; l 函數(shù)原型: void iniStack(Stack * A); // 初始化堆棧 void clearStack(Stack * A); //清空堆棧 void push(Stack * A, ELEMENT obj); //將元素obj壓入堆棧的棧頂 void pop(Stack * A); //將當(dāng)前棧頂?shù)脑貜棾鰲?。要求:棧不為? ELEMENT get_top(Stack * A); //返回當(dāng)前棧頂?shù)脑刂?。要求:棧不為? int is_empty(Stack * A); //判斷當(dāng)前堆棧是否為空,空返回1,非空返回0 void

4、display(Stack * A); //自頂向下顯示堆棧中的元素 (2) 已知學(xué)生基本信息由學(xué)號(hào)(長(zhǎng)整型)、姓名(字符數(shù)組)、性別(字符型)、年齡(整型)組成。定義如下結(jié)構(gòu)類型: l 結(jié)構(gòu)體定義: // 定義結(jié)構(gòu)體:存儲(chǔ)學(xué)生基本信息 struct STUDENT_NODE { long int id; char name[MAX_LEN]; char sex; int age; // 指針指向下一個(gè)結(jié)點(diǎn),用以形成鏈表 STUDENT_NODE *next; }; //定義結(jié)構(gòu)體:存儲(chǔ)單向鏈表 struct STUDENT_LIN

5、K{ STUDENT_NODE *top; }; l 函數(shù)原型: void iniStudentLink(STUDENT_LINK * L); // 初始化學(xué)生鏈表 void clearStudentLink(STUDENT_LINK * L); //清空學(xué)生鏈表 int isExist(STUDENT_LINK * L, long int id); // 判斷該學(xué)號(hào)的學(xué)生信息是否存在 int Add(STUDENT_LINK * L,long int id,char name[],char sex, int age); //添加一個(gè)新同學(xué)的信息 int Modify(ST

6、UDENT_LINK * L, long int id,char name[],char sex, int age); // 根據(jù)學(xué)號(hào),修改該同學(xué)的信息 int Delete(STUDENT_LINK * L, long int id); // 根據(jù)學(xué)號(hào),從鏈表中刪除該同學(xué)的信息 int Search(STUDENT_LINK * L,long int id); // 根據(jù)學(xué)號(hào),輸出顯示該同學(xué)信息 void ShowALL(STUDENT_LINK * L); // 從頭到尾,輸出當(dāng)前所有的同學(xué)信息 實(shí)驗(yàn)過(guò)程與實(shí)驗(yàn)結(jié)果(可包括實(shí)驗(yàn)實(shí)施的步驟、算法描述、流程、

7、結(jié)論等) (1) 順序表實(shí)現(xiàn)堆棧 l 運(yùn)行結(jié)果 (2) 學(xué)生信息鏈表 附錄(可包括源程序清單或其它說(shuō)明) (1) 順序堆棧 l 源代碼: #include #include #include #define MAX_LEN 100 // 堆棧元素類型 // 這里采用 typedef 別名機(jī)制,便于修改為別的類型, 如: typedef double ELEMENT; typedef int ELEMENT; // 結(jié)構(gòu)體 Stack struct Stack{ ELEMENT * Li

8、st; // 用來(lái)存儲(chǔ)元素的順序表 int curNumber; // 用來(lái)存儲(chǔ)當(dāng)前元素的總個(gè)數(shù) }; void iniStack(struct Stack * A); // 初始化堆棧 void clearStack(struct Stack * A); //清空堆棧 void push(struct Stack * A, ELEMENT obj); //將元素obj壓入堆棧的棧頂 void pop(struct Stack * A); //將當(dāng)前棧頂?shù)脑貜棾鰲?。要求:棧不為? ELEMENT get_top(struct Stack * A); //返

9、回當(dāng)前棧頂?shù)脑刂?。要求:棧不為? int is_empty(struct Stack * A); //判斷當(dāng)前堆棧是否為空,空返回1,非空返回0 void display(struct Stack * A); //自頂向下顯示堆棧中的元素 void main() { const int max_input=5; //用戶輸入的次數(shù) int loop; ELEMENT user_input; struct Stack * S=(struct Stack*)malloc(sizeof(struct Stack)); //申請(qǐng)一個(gè)堆棧對(duì)象 /

10、/ 初始化 iniStack(S); for(loop=1;loop<=max_input;loop++) { printf("Input no. %d :",loop); scanf("%d",&user_input); push(S, user_input); } display(S); for(loop=1;loop<=max_input;loop++) { if(! is_empty(S)) { user_input=get_top(S); pop(S); printf("Output no. %

11、d :",loop); printf("%d \n",user_input); } } // 內(nèi)存釋放 clearStack(S); free(S); } ////////////////////////////////////////////////////////////////////// /* 初始化堆棧 */ void iniStack(struct Stack * A) { if(A!=NULL) { A->List=(ELEMENT *)malloc(sizeof(ELEMENT)*MAX_LEN); A->cur

12、Number=0; } } /* 清空堆棧 */ void clearStack(struct Stack * A) { if(A!=NULL) { free(A->List); A->curNumber=0; } } /* 將元素obj壓入以 top 為棧頂?shù)亩褩5臈m? */ void push(struct Stack * A, ELEMENT obj) { if(A->curNumber>MAX_LEN) { printf(" \n 堆棧中的元素總數(shù)超過(guò)最大容量 ! \n"); return; }

13、A->List[A->curNumber]=obj; A->curNumber++; } /* 將當(dāng)前棧頂?shù)脑貜棾鰲!R螅簵2粸榭? */ void pop(struct Stack * A) { if(!is_empty(A)) { A->curNumber--; } } /* 返回當(dāng)前棧頂?shù)脑刂?。要求:棧不為? */ ELEMENT get_top(struct Stack * A) { if(is_empty(A)) { printf("Error: Get top from empty stack. \n");

14、exit(1); //終止程序 } return A->List[A->curNumber-1]; } /* 判斷當(dāng)前堆棧是否為空,空返回1,非空返回0 */ int is_empty(struct Stack * A) { return (A->curNumber==0); } /* 自頂向下顯示堆棧中的元素 */ void display(struct Stack * A) { int i; printf(" Stack 中的元素 自頂向下 為: \n"); for(i=A->curNumber-1;i>=0;i--) {

15、printf("%d \n",A->List[i]); } } (2) 學(xué)生信息鏈表 l 源代碼: void main() { STUDENT_LINK* tjut; tjut=new STUDENT_LINK; iniStudentLink(tjut); Add(tjut,2007002,"Tom",'M',19); Add(tjut,2007007,"Jack",'M',20); Add(tjut,2007004,"Mary",'F',20); ShowALL(tjut); Modify(tjut,2007002,"Tom Smit

16、h",'M',19); Search(tjut,2007002); Delete(tjut,2007004); ShowALL(tjut); clearStudentLink(tjut); delete tjut; } ////////////////////////////////////////////////////////////////////////////////////////// /* 初始化學(xué)生鏈表 */ void iniStudentLink(STUDENT_LINK * L) { L->top=new STUDENT_NODE;

17、 //top結(jié)點(diǎn)是個(gè)內(nèi)容為空的"結(jié)點(diǎn)",注意其作用 L->top->id=0; L->top->next=NULL; } /* 清空學(xué)生鏈表 */ void clearStudentLink(STUDENT_LINK * L) { STUDENT_NODE *ptr; while(L->top != NULL) { ptr=L->top; L->top=L->top->next; delete ptr; } return; } /* 判斷該學(xué)號(hào)的學(xué)生信息是否存在: 存在返回1,不存在返回0 */ int isExist(S

18、TUDENT_LINK * L,long int id) { int exist; STUDENT_NODE *ptr; exist=0; ptr=L->top; while(ptr!=NULL) { if(id==ptr->id) //此學(xué)生信息已存在 { exist=1; break; } ptr=ptr->next; } return exist; } /* 添加一個(gè)新同學(xué)的信息 */ int Add(STUDENT_LINK * L, long int id,char name[],cha

19、r sex, int age) { int error; int exist; STUDENT_NODE *ptr; STUDENT_NODE *node; error=0; exist=isExist(L,id); if(exist==1) { error=1; cout<<"Error!!! 錯(cuò)誤添加:id = "<top; while((ptr->next!=NULL)&&(ptr->next->id

20、 ptr=ptr->next; } node=new STUDENT_NODE; node->id=id; strcpy(node->name,name); node->sex=sex; node->age=age; //新結(jié)點(diǎn)插入到ptr結(jié)點(diǎn)之后 node->next=ptr->next; ptr->next=node; cout<<"添加:id = "<

21、ng int id,char name[],char sex, int age) { int error; int exist; STUDENT_NODE *ptr; error=0; exist=isExist(L,id); if(exist==0) { error=1; cout<<"Error!!! 錯(cuò)誤修改:id = "<top; while((ptr!=NULL)&&(ptr->id!=id)) { ptr

22、=ptr->next; } // 修改ptr中的信息 strcpy(ptr->name,name); ptr->sex=sex; ptr->age=age; cout<<"修改:id = "<

23、ror=0; exist=isExist(L,id); if(exist==0) { error=1; cout<<"Error!!! 錯(cuò)誤刪除:id = "<top; while((ptr->next!=NULL)&&(ptr->next->id!=id)) { ptr=ptr->next; } //結(jié)點(diǎn)ptr->next就是要?jiǎng)h除的結(jié)點(diǎn) node=ptr->next; ptr->next=ptr->next->next;

24、 delete node; cout<<"刪除:id = "<

25、在!!"<top; while((ptr!=NULL)&&(ptr->id!=id)) { ptr=ptr->next; } // 結(jié)點(diǎn)ptr中就是要找的結(jié)點(diǎn)的信息 cout<<"顯示:id = "<id<name<sex<

26、->age<top->next; k=1; while(ptr!=NULL) { // 結(jié)點(diǎn)ptr中就是要找的結(jié)

27、點(diǎn)的信息 cout<<"------第 "<id<name<sex<age<next; k++; } cout<<"************** 共有 "<

展開閱讀全文
溫馨提示:
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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

相關(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),我們立即給予刪除!