




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 線性表的實(shí)驗(yàn)實(shí)驗(yàn)課程名: C語(yǔ)言程序設(shè)計(jì)專(zhuān)業(yè)班級(jí): 學(xué)號(hào): 姓名 實(shí)驗(yàn)時(shí)間: 實(shí)驗(yàn)地點(diǎn): 指導(dǎo)教師: 一、實(shí)驗(yàn)?zāi)康募耙?、掌握用Visual C+6.0調(diào)試順序表的基本方法。2、掌握順序表的基本操作,插入、刪除、查找、以及有序順序表的合并等算法的實(shí)現(xiàn)。3、掌握用Visual C+6.0上機(jī)調(diào)試單鏈表的基本方法。4、掌握單鏈表的插入、刪除、查找、求表長(zhǎng)以及有序單鏈表的合并算法的實(shí)現(xiàn)。5、進(jìn)一步掌握循環(huán)單鏈表的插入、刪除、查找算法的實(shí)現(xiàn)。二、實(shí)驗(yàn)內(nèi)容、任務(wù)一:用順序表實(shí)現(xiàn)通訊錄管理(2) 構(gòu)建如表1所示的順序表并輸出檢驗(yàn),實(shí)現(xiàn)表1。(3) 增加插入記錄的功能并輸出檢驗(yàn),實(shí)現(xiàn)表2。(4)
2、增加按學(xué)號(hào)查找的功能并運(yùn)行驗(yàn)證。(5) 增加刪除記錄的功能并運(yùn)行驗(yàn)證。表1學(xué)號(hào)姓名性別手機(jī)號(hào)碼QQ號(hào)2013001張珊女1380000191934578表22013002李思女1391012197887965322013003陳琪女1378945001237891232013004王強(qiáng)男1363456785665437832013005趙括男1353440897656792013006劉剛男1338654321198315注意:用結(jié)構(gòu)化程序設(shè)計(jì)的方法實(shí)現(xiàn)即(其中的)把單一功能設(shè)計(jì)成一個(gè)獨(dú)立的函數(shù)。如構(gòu)建順序表設(shè)計(jì)成一個(gè)函數(shù),同樣插入、查找、刪除、輸出也設(shè)計(jì)成獨(dú)立的函數(shù)。解答:(1)源代碼:#i
3、nclude<stdio.h>#include<string.h>#include<stdlib.h>#define MaxSize 10typedef structchar xuehao14;/學(xué)號(hào)char name20; /姓名int sex; /性別char tel14; /聯(lián)系電話char qq12; /QQ號(hào)ElemType;typedef structElemType *list;int length;int size;SeqList;void InitSeqList( SeqList *L)char flag;int i,n;ElemType
4、*p;L->list=( ElemType * )malloc(MaxSize*sizeof( ElemType );L->length=0 ;L->size=MaxSize ; printf("是否輸入初始數(shù)據(jù)?(Y/N)");scanf("%c",&flag);if(flag='N'|flag='n') return;printf("請(qǐng)輸入初始化數(shù)據(jù)的個(gè)數(shù):");scanf("%d",&n);if(n>L->size) printf(
5、"數(shù)據(jù)太多,不足以存儲(chǔ)!");return;p=L->list;L->length=n;for(i=0;i<n;i+)printf("請(qǐng)輸入第%d個(gè)數(shù)據(jù)(學(xué)號(hào) 姓名 性別(0或1) 聯(lián)系電話 QQ號(hào)):n",i+1);scanf("%s%s%d%s%s",p->xuehao,p->name , &p->sex , p->tel ,p->qq ); p+;return;void PrintSeqList(SeqList *L)int i;printf("學(xué)號(hào) 姓名 性別
6、聯(lián)系電話 QQ號(hào)n");for( i=0 ; i<L->length ; i+ )printf("%st%st",L->listi.xuehao,L-> ); if(L->listi.sex) printf("男"); else printf("女"); printf("t%st%6sn", L->listi.tel ,L->listi.qq ); /*int main()SeqList L;InitSeqList( &L );Prin
7、tSeqList( &L );return 0;*/ int InsertSeqList(SeqList *L,int i,ElemType *e)ElemType *q,*p;if(L->length+1>L->size ) printf("表滿,失??!");return 0;if(i<1|i>L->length+1) printf("插入位置錯(cuò)誤,失?。?quot;);return 0;q=&(L->listi-1);for(p=&(L->listL->length-1);p>
8、=q;p-)*(p+1)=*p ;*(p+1)=*e;L->length+;return 1;/*int main()ElemType e;SeqList L;InitSeqList(&L);PrintSeqList(&L);printf("請(qǐng)輸入要插入的數(shù)據(jù)(學(xué)號(hào) 姓名 性別(0或1) 聯(lián)系電話 QQ號(hào)):n");scanf("%s%s%d%s%s",e.xuehao, , &e.sex , e.tel ,e.qq );printf("學(xué)號(hào) 姓名 性別 聯(lián)系電話 QQ號(hào)n");printf(
9、"%st%st",e.xuehao, ); if(e.sex) printf("男"); else printf("女"); printf("t%st%6sn", e.tel ,e.qq ); InsertSeqList(&L,2,&e);PrintSeqList(&L);return 0;*/ int LocateList(SeqList *L,char *x) int i=0; while(i<L->length &&strcmp(L->li
10、sti.xuehao ,x ) +i; if(i<L->length ) printf("n學(xué)號(hào) 姓名 性別 聯(lián)系電話 QQ號(hào)n"); printf("%st%st",L->listi.xuehao,L->); if(L->listi.sex) printf(" 男 "); else printf(" 女 "); printf("%st%6sn",L->listi.tel,L->listi.qq); return i+1; retur
11、n 0; /*int main()SeqList L;InitSeqList(&L);PrintSeqList(&L);printf("輸出查詢結(jié)果:n");LocateList(&L,"02");return 0;*/int DeleteList(SeqList *L,int i) int j; ElemType *q,*p; if(L->length =0) printf("表空,刪除失??!n");return 0; if(i<1|i>L->length) printf("
12、刪除位置錯(cuò),失?。");return 0; p=&(L->listi-1); for(q=&(L->listL->length-1);q<=p;p-) *(p-1)=*p; L->length -; return 1;int main()int i;SeqList L;InitSeqList(&L);PrintSeqList(&L);printf("請(qǐng)輸入刪除位數(shù):");scanf("%d",&i); DeleteList(&L,i);PrintSeqList(&a
13、mp;L);return 0;(2)運(yùn)行結(jié)果:2. 插入功能3. 查詢功能4. 刪除功能(3) 運(yùn)行結(jié)果分析: 本次作業(yè)利用C語(yǔ)言實(shí)現(xiàn)順序表初始化、插入、刪除、查找、的基本操作。任務(wù)二:用鏈表實(shí)現(xiàn)通訊錄管理1、 構(gòu)建通訊錄的鏈表并輸出檢驗(yàn),實(shí)現(xiàn)表1。2、增加插入記錄的功能并輸出檢驗(yàn),實(shí)現(xiàn)表2。3、增加按學(xué)號(hào)查找的功能并運(yùn)行驗(yàn)證。4、增加刪除記錄的功能并運(yùn)行驗(yàn)證。解答:(1)源代碼:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct char xuehao14;/學(xué)號(hào) char
14、 name20; /姓名 int sex; /性別 char tel14; /聯(lián)系電話 char qq12; /QQ號(hào)DataType;typedef struct LNode DataType data; struct LNode *next;LNode,*LinkList;LinkList CreatList()/頭插法建立鏈表 LinkList head; head = (LinkList)malloc(sizeof(LNode); LinkList p , s ; s = head ; char flag='y' head->next =NULL; while(f
15、lag='Y')|(flag='y') p=(LinkList)malloc(sizeof(LNode); if(!p) exit(-1); printf("請(qǐng)輸入數(shù)據(jù)(學(xué)號(hào) 姓名 性別(0或1) 聯(lián)系電話 QQ號(hào)):n"); scanf("%s%s%d%s%s",p->data.xuehao,p->,&p->data.sex,p->data.tel,p->data.qq); p->next = s->next ; s->next = p ; s =
16、 p ; getchar(); printf("繼續(xù)輸入嗎?(y/n):"); scanf("%c",&flag);printf("n"); return head; void PrintList(LinkList head) LNode *p; p=head->next; printf("學(xué)號(hào) 姓名 性別 聯(lián)系電話 QQ號(hào)n"); printf("-n"); while(p!=NULL) printf("%-14s%-14s",p->data.xueha
17、o,p->); if(p->data.sex) printf("男 "); else printf("女 "); printf("%-14s%-10sn",p->data .tel,p->data.qq); printf("-n"); p=p->next ; /*int main() LinkList head; head=CreatList();PrintList(head);return 0;*/void InsertLinkList(LinkList head)
18、/考慮實(shí)際情形,在教材的基礎(chǔ)作了一個(gè)變化,將插入位置和插入的數(shù)據(jù)信息改為輸入,不作為形參傳入信息。 LinkList p,s; int i; int j; p=head->next; j=1; printf("請(qǐng)輸入要插入結(jié)點(diǎn)位置:"); scanf("%d",&i); while(p&&j<i-1) p=p->next ; j+; if(!p|j<i-1) printf("錯(cuò)誤!n");return; s=(LinkList)malloc(sizeof(LNode); printf(&
19、quot;請(qǐng)輸入要插入的數(shù)據(jù):n"); printf("學(xué)號(hào) 姓名 性別(0或1) 聯(lián)系電話 QQ號(hào)n"); scanf("%s%s%d%s%s",s->data.xuehao,s->,&s->data.sex,s->data.tel,s->data.qq); s->next =p->next ; p->next =s; return;void GetElemList(LinkList head,DataType *e)/讀取位置改為在函數(shù)內(nèi)輸入 LinkList p;
20、int i,j=1; printf("請(qǐng)輸入要讀取第幾個(gè)元素:"); scanf("%d",&i); p=head->next; while(p&&j<i) p=p->next ;j+; if(!p|j>i) printf("沒(méi)有找到!n");return; printf("學(xué)號(hào) 姓名 性別(0或1) 聯(lián)系電話 QQ號(hào)n"); printf("%-14s%-14s",p->data.xuehao,p->); if(p-
21、>data.sex) printf(" 男 "); else printf(" 女 "); printf("%-14s%-10sn",p->data .tel,p->data.qq); e=&(p->data);int DeleteElemLinkList(LinkList head,DataType *e) LinkList p,q; int i; int j; p=head; j=1; printf("請(qǐng)輸入要?jiǎng)h除結(jié)點(diǎn)位置:"); scanf("%d",&am
22、p;i); while(p&&(j<i) p=p->next ; j+; if(!p|j<i) printf("錯(cuò)誤!n");return 0; q=p->next ;e=&q->data ;p->next =q->next ; free(q); return 1; int main() LinkList head; DataType e; int choice; do printf(" 通訊錄管理系統(tǒng)n"); printf("=n"); printf(" 0:退出n"); printf(" 1:建立通訊
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育賽事安全目標(biāo)及保障措施
- 網(wǎng)絡(luò)安全防護(hù)措施及改進(jìn)策略
- 五年級(jí)英語(yǔ)復(fù)習(xí)計(jì)劃的實(shí)施建議
- 樹(shù)脂瓦安裝前準(zhǔn)備工作技術(shù)措施
- 小學(xué)三年級(jí)班主任工作計(jì)劃的多元評(píng)價(jià)體系
- 商場(chǎng)促銷(xiāo)標(biāo)牌制作與安裝技術(shù)措施
- 2025年文化產(chǎn)業(yè)項(xiàng)目管理不足及整改措施
- 心理健康教育與心理危機(jī)干預(yù)措施整合
- 鋼結(jié)構(gòu)練習(xí)測(cè)試卷
- 推拿練習(xí)卷附答案
- 小王子(中英文對(duì)照版)
- GB/T 44748.1-2024篩分試驗(yàn)第1部分:使用金屬絲編織網(wǎng)和金屬穿孔板試驗(yàn)篩的方法
- 精益管理啟動(dòng)大會(huì)總經(jīng)理發(fā)言稿
- 大量輸血護(hù)理措施
- 墻上高空作業(yè)施工方案
- 孩子在校被撞骨折調(diào)解協(xié)議書(shū)范文
- 第七章-生物醫(yī)學(xué)工程的倫理問(wèn)題
- 卜算子-送鮑浩然之浙東課件
- 中國(guó)非物質(zhì)文化遺產(chǎn)作文400字故宮
- 服務(wù)合同的保密協(xié)議
- 禽類(lèi)屠宰過(guò)程衛(wèi)生控制與安全保障
評(píng)論
0/150
提交評(píng)論