



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗報告實驗?zāi)康模?學生管理系統(tǒng)(順序表)實驗要求:1.建表2.求表長3.插入4.查找5.刪除6.列表7.退出源程序:#include #include #include#define MaxSize 1000typedefstructchar xh40;char xm40;int cj;DataType;/學生的結(jié)構(gòu)typedef struct DataType dataMaxSize; /定義表的數(shù)據(jù)類型int length; /數(shù)據(jù)元素分別放置在data0 到 datalength-1當中 SqList;/表的結(jié)構(gòu)void liebiao(SqList *L)/建立表格int k,n;c
2、har q;printf(請輸入 , 輸入學生的個數(shù): n);fflush(stdin);scanf(%d,&n);for(k=0;kdatak.xh);printf(請輸入學生名字 n);scanf(%s,L-datak.xm);printf(請輸入學生成績 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位學生: ,w);printf(%s%s%dn,L-datak.xh,L-datak.xm,L-datak.cj);int cr(Sq
3、List *L,DataType *xs,int i)/插入信息int j;if(L-length=MaxSize)printf(沒有 !);return 0;else if(iL-length)printf(程序溢出,不符合 );return 0;elsefor(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);strcpy(L-datai.xm,xs-xm);L-datai.c
4、j=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、按學號查詢n);printf(1、按姓名查詢n);printf(1、按成績查詢n);printf(請選擇: );fflush(stdin);scanf(%d,&u);if (u=1)printf(請輸入要查找學生的學號:);scanf(%s,xh);for(i=0;ilength;i+)if(strcmp(L-datai.xh,xh)=0)return i;if (u=2)printf(
5、請輸入要查找學生的姓名:);scanf(%s,xm);for(i=0;ilength;i+)if(strcmp(L-datai.xm,xm)=0)return i;if (u=3)printf(請輸入要查找學生的成績:);scanf(%s,cj);for(i=0;ilength;i+)if(L-datai.cj,&cj)return i;return -1;/*如果沒找到,返回 -1int cz2(SqList *L) /刪除查找的函數(shù)char xh40;char xm40;int i=0,h;printf(1、按學號刪除n);printf(2、按姓名刪除n);printf(請選擇: );ff
6、lush(stdin);scanf(%d,&h);if (h=1)printf(請輸入要刪除學生的學號:);scanf(%s,xh);for(i=0;ilength;i+)if(strcmp(L-datai.xh,xh)=0)/判斷輸入和已知學號一樣不return i;else if (h=2)printf(請輸入要刪除學生的姓名:);scanf(%s,xm);for(i=0;ilength;i+)if(strcmp(L-datai.xm,xm)=0)/判斷輸入姓名和已知姓名一樣不return i;return -1;void sc(SqList *L)/刪除函數(shù)int i,j;printf(
7、請先選擇您要刪除的學生信息的方式:n);scanf(%d,&j);i=cz2(L);if(i=-1)printf(沒有查到要刪除的學生信息);return;for(j=i;jlength;j+)/要刪除學生以后的學生整體上調(diào)一位L-dataj.cj=L-dataj+1.cj;/就是后一個覆蓋了前一個strcpy(L-dataj.xh,L-dataj+1.xh);strcpy(L-dataj.xm,L-dataj+1.xm);L-length-;printf(該學生信息已被刪除!n);int bc(SqList *L)return (L-length);int main()/主體大函數(shù)int i
8、,k;SqList *L;/DataType *xs;定義順序表的指針L=(SqList *)malloc(sizeof(SqList)*MaxSize);char q;ee:rewind(stdin);printf(學生管理系統(tǒng)n);/函數(shù)的各個結(jié)構(gòu)printf(n);printf(n);printf(n);printf(建立表格請輸入 1n);printf(求表長請輸入 2n);printf(插入請輸入 3n);printf(查找請輸入 4n);printf(刪除請輸入 5n);printf(列表請輸入 6n);printf(退出請按 0n);printf(請輸入 );scanf(%c,&
9、q);if(q=1)rewind(stdin);liebiao(L);goto ee;if(q=2)rewind(stdin);bc(L);printf(共%d個學生 n,L-length);goto ee;if(q=3)rewind(stdin);printf(printf(tt插入n);請 輸 入 要 添 加 的 學 生 信 息: n);xs=(DataType *)malloc(sizeof(DataType);printf(請輸入學生學號 n);scanf(%s,xs-xh);printf(請輸入學生名字 n);scanf(%s,xs-xm);printf(請輸入學生成績 n);sca
10、nf(%d,&xs-cj);printf(請輸入要插入的位置:n);rewind(stdin);scanf(%d,&i);cr(L,xs,i);goto ee;if(q=4)rewind(stdin);printf(printf(查找查詢學生信息n);n);i=cz(L);if(i!=-1)printf(%s%s%dn,L-datai.xh,L-datai.xm,L-datai.cj);elseprintf(信息不存 );goto ee;if(q=5)rewind(stdin);printf(printf(刪除刪除學生信息n);n);sc(L);goto ee;if(q=6)rewind(st
11、din);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);return 0;主程序:建表求表長插入查找刪除列表輸入 1-6n=1n=2n=3n=4n=5n=6退出建表:輸入學生個數(shù)n,變量 kk=0;k=n-1;是否輸入學號,姓名,成績k=k+1結(jié)束查找:輸入查找學號n,變量 kk=0n=k是否k=k+1輸出插入:輸入插入位置n 表長 L 變量 kndataj+1.xh,L-dataj.xh);strcpy(L-dataj+1.xm,
12、L-dataj.xm);L-dataj+1.cj=L-dataj.cj結(jié)束刪除:輸入刪除的位置n 變量 k 表長 L輸入錯誤ndataj.xh,L-dataj-1.xh);strcpy(L-dataj.xm,L-dataj-1.xm);L-dataj.cj=L-dataj-1.cj結(jié)束列表:輸入表長L 變量 kk=L是否輸出學號,姓名,成績k=k+1結(jié)束實驗?zāi)康模?學生管理系統(tǒng)( 鏈表 )實驗要求: 1. 建表2. 刪除3. 列表4. 退出源程序:#include#include#includestruct xueshengchar xh7;char xm40;int cj;struct xu
13、esheng *next;struct xuesheng *cha_ru(struct xuesheng *x)struct xuesheng *p,*q;int c;doif(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
14、=(*p).next;q=(struct xuesheng *)malloc(sizeof(struct xuesheng);printf(input 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)stru
15、ct xuesheng *p;int l=0;p=x;if(p!=0)dol=l+1;p=p-next;while(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
16、(i=1;inext;t=p-next;for(i=1;inext;p-next=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 doprintf(%20s% 20s%7dn,(*p).xh,(*p).xm,(*p).cj);p=(*p).next;while(p!=0);l=link_len(x);printf
17、(l=%dn,l);main()struct xuesheng *s_head;int n;s_head=0;doprintf(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);b
18、reak;case 4: lie_biao(s_head);break;while(n=1|n=3|n=4);printf(n);return 0;框圖:主函數(shù):1.建表2.刪除3.列表輸入 n( 1-4)n=1是否是n=2否是否n=3輸入錯誤否4.退出建表:輸入學號,姓名,成績p-=0否是p=p.nextp.next=qq.next=0是是否繼續(xù)否結(jié)束刪除:定義表長L, k, i否k0是k=1是x=p-next;t=p;free(t);是i=1 ;inext;t=p-next;i=i+1;結(jié)束此表為空否L=k否inext;p-next=q;i=i+1;否輸入錯誤否free(t);總結(jié):順序表存儲位置是相鄰連續(xù)的,可以隨即訪問的一種數(shù)據(jù)結(jié)構(gòu),一個順序表在使用前必須指定起長度,一旦分配內(nèi)存,則在使用中不可以動態(tài)的更改。他的優(yōu)點是訪問數(shù)據(jù)是比較方便,可以隨即的訪問表中的任何一個數(shù)據(jù) , 缺點是定義的長度不可更改造成存儲空間的浪費。鏈表是通過指針來描述元素關(guān)系的一種數(shù)據(jù)結(jié)構(gòu),他可以是物理地址不連續(xù)的物理空間。不能隨即訪問鏈表元素,必須從表頭開始,一步一步搜索元素。它的優(yōu)點是:對于數(shù)組,可以動態(tài)的改變數(shù)據(jù)的長度,分配物理空間。建議:在使用中如果一個數(shù)組在使用中,查詢比較多,而插入,刪除數(shù)據(jù)比較少,數(shù)組的長度不變時,選順序表比較合理。如果插入,刪除,長度不定的數(shù)組,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 獨立庫房出庫管理制度
- 率土之濱處罰管理制度
- 環(huán)保局培訓費管理制度
- 環(huán)保生產(chǎn)人員管理制度
- 環(huán)保設(shè)備使用管理制度
- 環(huán)衛(wèi)倉庫安全管理制度
- 環(huán)衛(wèi)應(yīng)急人員管理制度
- 環(huán)衛(wèi)轉(zhuǎn)運設(shè)備管理制度
- 2025年鄭州煤炭工業(yè)集團有限責任公司校園招聘筆試備考題庫附答案詳解
- 2024-2025學年高中物理第六章傳感器鞏固練習一新人教版選修3-2
- 首都經(jīng)濟貿(mào)易大學管理信息系統(tǒng)期末考試試卷
- 有機化學(下)(華東理工大學)智慧樹知到答案2024年華東理工大學
- DLT 572-2021 電力變壓器運行規(guī)程
- 新疆維吾爾自治區(qū)石河子市五年級數(shù)學期末高分通關(guān)試卷詳細答案和解析
- DL∕T 1430-2015 變電設(shè)備在線監(jiān)測系統(tǒng)技術(shù)導則
- 光伏項目系統(tǒng)調(diào)試方案
- AQ/T 1089-2020 煤礦加固煤巖體用高分子材料(正式版)
- 2024年廣東省初中學業(yè)水平考試生物押題卷
- MOOC 人格與人生-蘇州城市學院 中國大學慕課答案
- 經(jīng)濟學思維方式智慧樹知到期末考試答案2024年
- 口腔科醫(yī)師職責
評論
0/150
提交評論