




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
班級:姓名:學號:實驗一線性表的根本操作一、實驗目的1、掌握線性表的定義;2、掌握線性表的根本操作,如建立、查找、插入和刪除等。二、實驗內容定義一個包含學生信息〔學號,姓名,成績〕的順序表和鏈表〔二選一〕,使其具有如下功能:(1)依據指定學生個數,逐個輸入學生信息;(2)逐個顯示學生表中全部學生的相關信息;(3)依據姓名進行查找,返回此學生的學號和成績;(4)依據指定的位置可返回相應的學生信息〔學號,姓名,成績〕;(5)給定一個學生信息,插入到表中指定的位置;(6)刪除指定位置的學生記錄;(7)統計表中學生個數。三、實驗環境VisualC++四、程序分析與實驗結果#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;//定義函數返回值類型typedefstruct{charnum[10];//學號charname[20];//姓名doublegrade;//成績}student;typedefstudentElemType;typedefstructLNode{ElemTypedata;//數據域structLNode*next;//指針域}LNode,*LinkList;StatusInitList(LinkList&L)//構造空鏈表L{L=(structLNode*)malloc(sizeof(structLNode));L->next=NULL;returnOK;}StatusGetElem(LinkListL,inti,ElemType&e)//訪問鏈表,找到i位置的數據域,返回給e{LinkListp;p=L->next;intj=1;while(p&&j<i){p=p->next;++j;}if(!p||j>i)returnERROR;e=p->data;returnOK;}StatusSearch(LNodeL,charstr[],LinkList&p)//依據名字查找{p=L.next;while(p){if(strcmp(p->,str)==0)returnOK;p=p->next;}returnERROR;}StatusListInsert(LinkListL,inti,ElemTypee)//在i個位置插入某個學生的信息{LinkListp,s;p=L;intj=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1)returnERROR;s=(structLNode*)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;returnOK;}StatusListDelete(LinkListp,inti)//刪除i位置的學生信息{intj=0;while((p->next)&&(j<i-1)){p=p->next;++j;}if(!(p->next)||(j>i-1))returnERROR;LinkListq;q=p->next;p->next=q->next;deleteq;returnOK;}voidInput(ElemType*e){printf("姓名:");scanf("%s",e->name);printf("學號:");scanf("%s",e->num);printf("成績:");scanf("%lf",&e->grade);printf("輸入完成\n\n");}voidOutput(ElemType*e){printf("姓名:%-20s\n學號:%-10s\n成績:%-10.2lf\n\n",e->name,e->num,e->grade);}intmain(){LNodeL;LinkListp;ElemTypea,b,c,d;printf("\n********************************\n\n");puts("1.構造鏈表");puts("2.錄入學生信息");puts("3.顯示學生信息");puts("4.輸入姓名,查找該學生");puts("5.顯示某位置該學生信息");puts("6.在指定位置插入學生信息");puts("7.在指定位置刪除學生信息");puts("8.統計學生個數");puts("0.退出");printf("\n********************************\n\n");intx,choose=-1;while(choose!=0){puts("請選擇:");scanf("%d",&choose);switch(choose){case1:if(InitList(p))printf("成功建立鏈表\n\n");elseprintf("鏈表建立失敗\n\n");break;case2:printf("請輸入要錄入學生信息的人數:");scanf("%d",&x);for(inti=1;i<=x;i++){printf("第%d個學生:\n",i);Input(&a);ListInsert(&L,i,a);}break;case3:for(inti=1;i<=x;i++){GetElem(&L,i,b);Output(&b);}break;case4:chars[20];printf("請輸入要查找的學生姓名:");scanf("%s",s);if(Search(L,s,p))Output(&(p->data));elseputs("對不起,查無此人");puts("");break;case5:printf("請輸入要查詢的位置:");intid1;scanf("%d",&id1);GetElem(&L,id1,c);Output(&c);break;case6:printf("請輸入要插入的位置:");intid2;scanf("%d",&id2);printf("請輸入學生信息:\n");Input(&d);if(ListInsert(&L,id2,d)){x++;puts("插入成功");puts("");}else{puts("插入失敗");puts("");}break;case7:printf("請輸入要刪除的位置:");intid3;scanf("%d",&id3);if(ListDelete(&L,id3)){x--;puts("刪除成功");puts("");}else{puts("刪除失敗");puts("");}break;case8:printf("已錄入的學生個數為:%d\n\n",x);break;}}printf("\n\n多謝您的使用,請按任意鍵退出\n\n\n");system("pause");return0;}用戶界面:(1)依據指定學生個數,逐個輸入學生信息:(2)逐個顯示學生表中全部學生的相關信息:(3)依據姓名進行查找,返回此學生的學號和成績:(4)依據指定的位置可返回相應的學生信息〔學號,姓名,成績〕:(5)給定一個學生信息,插入到表中指定的位置:(6)刪除指定位置的學生記錄:(7)統計表中學生個數:五、實驗總結數據結構是一門專業技術根底課。它要求學會分析研究計算機加工的數據結構的特性,以便為應用涉及的數據選擇適當的邏輯結構,存儲結構及相應的算法,并初步掌握算法的時間分析和空間分析技術。不僅要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理價值鏈分析題目及答案
- 理解項目管理質量標準的考試試題及答案
- 2025年會計報表編制技巧試題及答案
- 理財師的自我提升方法試題及答案
- 鶴壁玻璃平開門施工方案
- 2024年項目管理師專用試題及答案
- 探討證券從業資格證考試的知識要求試題及答案
- 理解特許金融分析師考試的語言技巧試題及答案
- 2024年項目管理專業人士考試知識圖譜試題及答案
- 綠化內井蓋施工方案設計
- 電梯結構及原理圖解
- 英語口譯基礎教程UnitIntroduction課件
- 不孕癥診療流程課件
- 初中生物人教七年級上冊生物體的結構層次第一節 細胞通過分裂產生新細胞 導學案
- 甘肅省煙花爆竹經營許可實施標準細則
- 【精品課件】藥用高分子材料學
- 要素式起訴狀(離婚糾紛)
- 急性腎盂腎炎護理查房
- DB22T 5118-2022 建筑工程資料管理標準
- 登臨詩鑒賞(課堂PPT)
- 蒸壓加氣混凝土砌塊薄層砌筑
評論
0/150
提交評論