順序表鏈表實(shí)驗(yàn)報告總結(jié)_第1頁
順序表鏈表實(shí)驗(yàn)報告總結(jié)_第2頁
順序表鏈表實(shí)驗(yàn)報告總結(jié)_第3頁
順序表鏈表實(shí)驗(yàn)報告總結(jié)_第4頁
順序表鏈表實(shí)驗(yàn)報告總結(jié)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)報告實(shí)驗(yàn)?zāi)康模簩W(xué)生管理系統(tǒng)(順序表)實(shí)驗(yàn)要求: 1.建表 2.求表長 3.插入 4.查找 5.刪除 6.列表 7.退出源程序:#include #include #include #define MaxSize 1000typedefstruct char xh40;char xm40;int cj;DataType; /學(xué)生的結(jié)構(gòu) typedef struct DataType dataMaxSize; /定義表的數(shù)據(jù)類型 int length; /數(shù)據(jù)元素分別放置在data0到datalength-1當(dāng)中 SqList; /表的結(jié)構(gòu) void liebiao(SqList *L) /建

2、立表格 int k,n;char q; printf(請輸入,輸入學(xué)生的個數(shù):n);fflush(stdin); scanf(%d,&n); for(k=0;kdatak.xh);printf(請輸入學(xué)生名字n);scanf(%s,L-datak.xm);printf(請輸入學(xué)生成績n);scanf(%d,&L-datak.cj); L-length=n; void qb(SqList *L) /全部輸出 int k,w;for(k=0;klength;k+)w=k+1;printf(第%d位學(xué)生:,w); printf(%s %s %dn,L-datak.xh,L-datak.xm,L-da

3、tak.cj);int cr(SqList *L,DataType *xs,int i) /插入信息 int j; if(L-length=MaxSize) printf(沒有!); return 0; else if(iL-length) printf(程序溢出,不符合); return 0; else for(j=L-length-1;j=i;j-) strcpy(L-dataj+1.xh,L-dataj.xh); strcpy(L-dataj+1.xm,L-dataj.xm); L-dataj+1.cj=L-dataj.cj; strcpy(L-datai.xh,xs-xh); strc

4、py(L-datai.xm,xs-xm); L-datai.cj=xs-cj; L-length=L-length+1; return 0; int cz(SqList *L) /查找信息 char xh40;char xm40;int cj;int i=0,u; printf( 1、按學(xué)號查詢 n); printf( 1、按姓名查詢 n);printf( 1、按成績查詢 n); printf(請選擇:);fflush(stdin); scanf(%d,&u); if (u=1) printf(請輸入要查找學(xué)生的學(xué)號:); scanf(%s,xh); for(i=0;ilength;i+) i

5、f(strcmp(L-datai.xh,xh)=0) return i; if (u=2) printf(請輸入要查找學(xué)生的姓名:); scanf(%s,xm); for(i=0;ilength;i+) if(strcmp(L-datai.xm,xm)=0) return i; if (u=3) printf(請輸入要查找學(xué)生的成績:); scanf(%s,cj); for(i=0;ilength;i+) if(L-datai.cj,&cj) return i; return -1;/*如果沒找到,返回-1 int cz2(SqList *L) /刪除查找的函數(shù) char xh40;char

6、xm40;int i=0,h; printf( 1、按 學(xué) 號 刪除 n); printf( 2、按 姓 名 刪除 n); printf(請選擇:);fflush(stdin); scanf(%d,&h); if (h=1) printf(請輸入要刪除學(xué)生的學(xué)號:); scanf(%s,xh); for(i=0;ilength;i+) if(strcmp(L-datai.xh,xh)=0) /判斷輸入和已知學(xué)號一樣不return i; else if (h=2) printf(請輸入要刪除學(xué)生的姓名:); scanf(%s,xm); for(i=0;ilength;i+) if(strcmp(

7、L-datai.xm,xm)=0) /判斷輸入姓名和已知姓名一樣不 return i; return -1; void sc(SqList *L) /刪除函數(shù) int i,j; printf(請先選擇您要刪除的學(xué)生信息的方式:n);scanf(%d,&j); i=cz2(L); if(i=-1) printf(沒有查到要刪除的學(xué)生信息); return; for(j=i;jlength;j+) / 要刪除學(xué)生以后的學(xué)生整體上調(diào)一位 L-dataj.cj=L-dataj+1.cj; /就是后一個覆蓋了前一個 strcpy(L-dataj.xh,L-dataj+1.xh); strcpy(L-da

8、taj.xm,L-dataj+1.xm); L-length-; printf(該學(xué)生信息已被刪除!n); int bc(SqList *L)return (L-length);int main() /主體大函數(shù) int i,k; SqList *L; /定義順序表的指針 DataType *xs; L=(SqList *)malloc(sizeof(SqList)*MaxSize); char q; ee: rewind(stdin); printf( 學(xué)生管理系統(tǒng) n); /函數(shù)的各個結(jié)構(gòu) printf( n); printf( n); printf( n); printf( 建立表格請輸

9、入1 n); printf( 求表長 請輸入2 n); printf( 插入 請輸入3 n); printf( 查找 請輸入4 n); printf( 刪除請輸入5 n); printf( 列表請輸入6 n); printf( 退出請按0 n); printf( 請輸入); scanf(%c,&q);if(q=1)rewind(stdin);liebiao(L);goto ee;if(q=2)rewind(stdin);bc(L);printf(共%d個學(xué)生n,L-length);goto ee;if(q=3)rewind(stdin); printf( 插 入 n);printf(tt 請

10、輸 入 要 添 加 的 學(xué) 生 信 息: n);xs=(DataType *)malloc(sizeof(DataType); printf(請輸入學(xué)生學(xué)號n);scanf(%s,xs-xh);printf(請輸入學(xué)生名字n);scanf(%s,xs-xm);printf(請輸入學(xué)生成績n);scanf(%d,&xs-cj);printf(請輸入要插入的位置:n);rewind(stdin); scanf(%d,&i); cr(L,xs,i); goto ee;if(q=4)rewind(stdin);printf( 查 找 n);printf( 查 詢 學(xué) 生 信 息 n); i=cz(L)

11、; if(i!=-1) printf(%s %s %dn,L-datai.xh,L-datai.xm,L-datai.cj); else printf(信息不存); goto ee;if(q=5)rewind(stdin);printf( 刪 除 n);printf( 刪 除 學(xué) 生 信 息 n); sc(L);goto ee; if(q=6) rewind(stdin);printf( 列表 n);qb(L);goto ee; if(q=0) printf(謝謝使用n); if(!(q=1|q=2|q=3|q=4|q=5|q=5|q=0) goto ee; system (pause); r

12、eturn 0; 輸入1-6主程序: 建表 n=1 求表長 n=2 插入 n=3 查找 n=4 刪除 n=5 列表 n=6退出輸入學(xué)生個數(shù)n, 變量k建表: k=0; k=n-1; 是 否 輸入學(xué)號,姓名,成績 k=k+1 結(jié)束輸入查找學(xué)號n,變量k查找: k=0 n=k 是 否 k=k+1 輸出輸入插入位置n表長L變量k插入:輸入錯誤 ndataj+1.xh,L-dataj.xh); strcpy(L-dataj+1.xm,L-dataj.xm); L-dataj+1.cj=L-dataj.cj 結(jié)束輸入刪除的位置n變量k表長L刪除:輸入錯誤 ndataj.xh,L-dataj-1.xh);

13、 strcpy(L-dataj.xm,L-dataj-1.xm); L-dataj.cj=L-dataj-1.cj 結(jié)束 輸入表長L變量k列表: k=L 是 否輸出學(xué)號,姓名,成績 k=k+1 結(jié)束實(shí)驗(yàn)?zāi)康模簩W(xué)生管理系統(tǒng)(鏈表)實(shí)驗(yàn)要求:1.建表2.刪除3.列表4.退出源程序:#include#include#includestruct xuesheng char xh7; char xm40; int cj; struct xuesheng *next; ;struct xuesheng *cha_ru(struct xuesheng *x) struct xuesheng *p,*q; i

14、nt c; do if(x=0) x=(struct xuesheng *)malloc(sizeof(struct xuesheng); printf(input xh:); scanf(%s,(*x).xh); printf(input xm:); scanf(%s,(*x).xm); printf(input cj:); scanf(%d,&(*x).cj); (*x).next=0; else p=x; while(*p).next!=0)p=(*p).next; q=(struct xuesheng *)malloc(sizeof(struct xuesheng); printf(i

15、nput xh:); scanf(%s,(*q).xh); printf(input xm:); scanf(%s,(*q).xm); printf(input cj:); scanf(%d,&(*q).cj); (*p).next=q; (*q).next=0; printf(ni hai ji xu me? 1/2:); scanf(%d,&c); while(c=1); return(x); int link_len(struct xuesheng *x) struct xuesheng *p; int l=0; p=x; if(p!=0)do l=l+1; p=p-next; whil

16、e(p!=0); return(l); struct xuesheng *shan_chu(struct xuesheng *x) struct xuesheng *p,*q,*t; int k,l,i; p=x; q=x; l=link_len(x); printf(input shan chu jie dian xu hao :); scanf(%d,&k); if(kl)printf(error data!n); if(k=1) x=p-next; t=p; free(t); if(k1&k=l) for(i=1;inext; t=p-next; for(i=1;inext; p-nex

17、t=q; free(t); printf(vvvvvvv shan chu wan bi ! vvvvvvvn); return(x); void lie_biao(struct xuesheng *x) struct xuesheng *p; int l; p=x; if(p=0) printf(gai biao wei kong!n); else do printf(%20s% 20s%7dn,(*p).xh,(*p).xm,(*p).cj); p=(*p).next; while(p!=0); l=link_len(x); printf( l=%dn,l); main() struct

18、xuesheng *s_head; int n; s_head=0; do printf(1:cha run); printf(2:cha zhaon); printf(3:shan chun); printf(4:lie biaon); printf(5:tui chun); printf(input 1-5:); scanf(%d,&n); switch(n) case 1: s_head=cha_ru(s_head);break; /* case 2: cha_zhao(s_head);break;*/ case 3: s_head=shan_chu(s_head);break; case 4: lie_biao(s_head);break; while(n=1|n=3|n=4); printf(n); return 0; 框圖: 輸入n(1-4)主函數(shù):1.建表 n=1 輸入錯誤4.退出3.列表 n=3 n=22.刪除 是 否 是 否 是 否 否 p.next=q q.next=0 p=p.next p-=0輸入學(xué)號,姓名,成績建表: 結(jié)束 是否繼續(xù) 否 是 是 否定義表長L,k,i刪除: 此表為空 k0 否k=1 是 是 否輸入錯誤x=p-next;t=p;free(t); L=k 否 i=1; i=k-2; 是 是 否 inext; t=p-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論