報(bào)告是指向上級(jí)機(jī)關(guān)匯報(bào)本單位、本部門、本地區(qū)工作情況、做法、經(jīng)驗(yàn)以及問題的報(bào)告,那么我們該如何寫一篇較為完美的報(bào)告呢?這里我整理了一些優(yōu)秀的報(bào)告范文,希望對大家有所幫助,下面我們就來了解一下吧。
實(shí)驗(yàn)三隊(duì)列實(shí)驗(yàn)報(bào)告篇一
實(shí)驗(yàn)三 隊(duì)列實(shí)驗(yàn) 實(shí)驗(yàn)題目:
建立含有若干個(gè)元素的循環(huán)隊(duì)列和鏈隊(duì)列,并分別實(shí)現(xiàn)循環(huán)隊(duì)列和鏈隊(duì)列的入隊(duì)和出對操作。
(1 1)先實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)和出隊(duì)操作 1 1。問題分析 本程序要求實(shí)現(xiàn)建立含有若干個(gè)元素的循環(huán)隊(duì)列,并實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)和出隊(duì)操作.完成該實(shí)驗(yàn)需要以下 4 個(gè)子任務(wù):
\o\ac(○ ,1)定義一個(gè)循環(huán)隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義隊(duì)列的基本算法。
○2 定義一個(gè) display()函數(shù)實(shí)現(xiàn)隊(duì)列元素的輸出看入隊(duì)是否成功 錯(cuò)誤!通過隊(duì)列的基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作 錯(cuò)誤!在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計(jì)如下:
1 2 3 4 5 6 2 2。
概要設(shè)計(jì) 為了實(shí)現(xiàn)上述程序功能,需要:
錯(cuò)誤!聲明一個(gè)循環(huán)隊(duì)列 錯(cuò)誤!定義出隊(duì)列的基本算法,錯(cuò)誤!通過鍵盤輸入 5 個(gè)整數(shù),入隊(duì),出隊(duì) 錯(cuò)誤!在主函數(shù)中先往隊(duì)列里輸入 5 個(gè)元素,然后入隊(duì),輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用 display()函數(shù)看是否出隊(duì)。
1)本程序包含7個(gè)函數(shù):
1 主函數(shù)main()2.置空隊(duì):initqueue()3.判對空:
queueempty()4.判隊(duì)滿:queuefull()5。入隊(duì):add()6。出隊(duì):delete()7。display()各函數(shù)關(guān)系如下:
in itqueu e(()
euq q? ueu u e empty()m a in(()qu e uefull()da? add())m m ai ned? de lete()dis s p lay()3 3、詳細(xì)設(shè)計(jì) 實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼.(1)循環(huán)隊(duì)列 #define maxlen 10 typedef struct{ ? ?;]nelxam[ atad tni? ? ? ;tnorf tni? ;raer tni?}seqqueue;(2)隊(duì)列基本算法 seqqueue *initqueue(seqqueue *q)//建立一個(gè)空循環(huán)隊(duì)列 { q=(seqqueue *)malloc(sizeof(seqqueue));;0=tnorf>-q?;0=raer>-q?;q nruter?} int queuefull(seqqueue *q){ //判斷隊(duì)列是否為滿 if(q-〉front==(q->rear+1)%maxlen)? ;1 nruter? else return 0; } int queueempty(seqqueue *q){ ? //判斷隊(duì)列是否為空)tnorf>—q==raer>—q(fi?
return 1;else return 0; } void add(seqqueue *q,int x)//入隊(duì) { {))q(llufeueuq?。ǎ鎖? ? ;nelxam%)1+raer>-q(=raer>-q? q—〉data[q-〉rear]=x; } ;)”lluf eueuq"(ftnirp esle?} void delete(seqqueue *q){ //出隊(duì)))q(ytpmee(cuò)ueuq!(fi? ;nelxam%)1+tnorf>—q(=tnorf>—q? else printf("queue empty"); }(3)用display()函數(shù)輸出循環(huán)隊(duì)列元素 void display(seqqueue *q)// ? 素元的q列隊(duì)環(huán)循出輸?{ ;i tni?)raer>-q=!tnorf>-q(fi? ? ? //循環(huán)隊(duì)列非空,輸出隊(duì)列元素 { ? printf("輸出循環(huán)隊(duì)列元素:"); ?;tnorf〉-q=i? od? {;nelxam%)1+i(=i? ?;)]i[atad>—q,"d%"(ftnirp? }while(i!=q->rear); } else printf(”隊(duì)列為空!");}(4)在主函數(shù)中先往隊(duì)列里輸入 5 個(gè)元素,輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用 display()t main(){ ;q* eueuqqes? ;y,i tni? q=initqueue(q);// ? ? 列隊(duì)環(huán)循空立建?
printf("請輸入5個(gè)元素”); for(i=0;i<5;i++)// ? ? 素元個(gè)5隊(duì)入? {;)y&,"d%”(fnacs? ;)y,q(dda? } display(q); ? ? // ? ? 素元列隊(duì)環(huán)循出輸?)++i;5
6 6、測試結(jié)果 7 7、附錄 #include
;tnorf tni? int rear; }seqqueue;seqqueue *initqueue(seqqueue *q)//建立一個(gè)空循環(huán)隊(duì)列 { q=(seqqueue *)malloc(sizeof(seqqueue)); ;0=tnorf>-q? q->rear=0; return q;} int queuefull(seqqueue *q){ //判斷隊(duì)列是否為滿)nelxam%)1+raer>-q(==tnorf>-q(fi? return 1; else return 0;} int queuee(cuò)mpty(seqqueue *q){// ? ? 空為否是列隊(duì)斷判?)tnorf>-q==raer>-q(fi?;1 nruter? else return 0;} void add(seqqueue *q,int x)//入隊(duì) { {))q(llufeueuq?。╢i? q-〉rear=(q—>rear+1)%maxlen; ? ;x=]raer>-q[at(yī)ad〉-q? }else printf("queue full");} void delete(seqqueue *q){ //出隊(duì)))q(ytpmeeueuq?。ǎ妫? ?;nelxam%)1+tnorf>-q(=tnorf>-q? else printf(”queue empty");} void display(seqqueue *q)? //輸出循環(huán)隊(duì)列 q 的元素 { int i;?)raer〉-q=?。鬾orf〉—q(fi? ? // 素元列隊(duì)出輸,空非列隊(duì)環(huán)循? { ;)”:素元列隊(duì)環(huán)循出輸”(ftnirp?
;tnorf>—q=i? do { ? ? i=(i+1)%maxlen;? ? printf("%d”,q->data[i]); } ;)raer〉-q=!i(elihw? } esle? ;)"!空為列隊(duì)"(ftnirp?} int main(){;q* eueuqqes? int i,y;q=initqueue(q);// ? ? ? ? 列隊(duì)環(huán)循空立建? ;)”素元個(gè) 5 入輸請”(ftnirp? ?)++i;5
(2 2)實(shí)現(xiàn)鏈隊(duì)列的入隊(duì)和出隊(duì)操作 1 1 .問題分析 本程序要求實(shí)現(xiàn)建立含有若干個(gè)元素的鏈隊(duì)列,并實(shí)現(xiàn)鏈隊(duì)列入隊(duì)和出隊(duì)操作。
完成該實(shí)驗(yàn)需要以下 4 個(gè)子任務(wù):
\o\ac(○ ,1)定義一個(gè)鏈隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義鏈 隊(duì)列的基本算法。
○2 定義一個(gè) display()函數(shù)實(shí)現(xiàn)隊(duì)列元素的輸出看入隊(duì)是否成功 錯(cuò)誤!通過隊(duì)列的基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作 錯(cuò)誤!在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計(jì)如下:
1 2 3 4 5 6 2 2。概要設(shè)計(jì) 為了實(shí)現(xiàn)上述程序功能,需要:○,1 聲明一個(gè)鏈隊(duì)列 錯(cuò)誤!定義出鏈隊(duì)列的基本算法,○,3 通過鍵盤輸入5個(gè)整數(shù),入隊(duì),出隊(duì) ○,4 在主函數(shù)中先往隊(duì)列里輸入 5 個(gè)元素,然后入隊(duì),輸出,看入隊(duì)是否成功,然后出隊(duì),再調(diào)用display()函數(shù)看是否出隊(duì)。
2)本程序包含6個(gè)函數(shù): 1 主函數(shù) main()2.置空隊(duì):initqueue()3.判對空: queueempty()4.入隊(duì):add()5.出隊(duì):delete()6.display()各函數(shù)關(guān)系如下: uqtes? setqu e ue()
euq q? ueu u e empty()m ain())a dd()eteled? delete()display()4 4、詳細(xì)設(shè)計(jì) 實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼。
(1 1)鏈隊(duì)列 #define maxlen 10 typedef struct node{ int data;struct node *next; }linklist;typedef struct{ linklist *front,*rear; }linkqueue;linkqueue *q;(2)隊(duì)列基本算法 linkqueue *setqueue()//建立一個(gè)空鏈隊(duì)列 { ;))eueuqknil(foezis(collam)* eueuqknil(=q? q->front=(linklist *)malloc(sizeof(linklist));q->front->next=null;q—〉rear=q—>front;;q nruter?} int queueempty(linkqueue *q){// ? 空為否是列隊(duì)斷判? if(q-〉rear==q—>front)return 1; ;0 nruter esle?}
linkqueue *add(linkqueue *q,int x)//入隊(duì) { linklist *p;p=(linklist *)malloc(sizeof(linklist)); p—>data=x;p-〉next=null;;p=txen>-raer〉—q? q—>rear=p; return q; } linkqueue *delete(linkqueue *q){ // 隊(duì)出? ;p* tsilknil? if(!queueempty(q)){ ? ;txen〉-tnorf>-q=p? q—>front—〉next=p-〉next;? if(p->next=null)q->rear=q—〉front; ;q nruter;)p(eerf? } ? else printf(”queue empty"); }(3 3)用di spla y())函數(shù)輸出鏈隊(duì)列元素 void display(linkqueue *q)//輸出鏈隊(duì)列的元素 { ;p* tsilknil? p=q->front-〉next; if(p!=null){ ;)"素元隊(duì)鏈出輸”(ftnirp? ?)llun=!p(elihw? { ? ? printf(”%2d”,p—〉data); ? ? p=p—>next; } ? };)"空為隊(duì)鏈n"(ftnirp esle?} }(4)入 在主函數(shù)中先往隊(duì)列里輸入 5 5 個(gè)元素,輸出,看入隊(duì)是否成功, , 然后出隊(duì),再調(diào)用 d d is play()函數(shù)看是否出隊(duì)。
int main(){;0=y(tǒng),i tni? setqueue();? ? //建立空鏈隊(duì)列
display(q); ? ;)”素元個(gè)5入輸請n"(ftnirp? for(i=0;i〈5;i++)? ? //入隊(duì)5個(gè)元素 {;)y&,"d%”(fnacs?;)y,q(dda? } display(q); ? ?)++i;5〈i;0=i(rof? // ? 隊(duì)出素元個(gè)5把? { ?;)q(eteled? ? ? ? }? ? ;)q(yalpsid? // ? 功成隊(duì)出否是看?;0 nruter?} 4、調(diào)試分析 編譯無錯(cuò)誤 5 5、用戶使用說明 程序名為class12exe,在 debug文件夾里面.運(yùn)行環(huán)境 visual c++ 6.0。
6 6、測試結(jié)果 7 7、附錄 #include <stdio.h> #include
;p* tsilknil? p=q->front-〉next; if(p!=null){ ? ;)"素元隊(duì)鏈出輸"(ftnirp? while(p!=null){ ?;)atad>-p,"d2%”(ftnirp? ? ? ;txen〉—p=p? } } ? else printf("n 鏈隊(duì)為空"); } int main(){ int i,y=0;setqueue();? // ? ? ? 列隊(duì)鏈立建?)q(yalpsid? ? ;? ? ;)”素元個(gè) 5 入輸請 n\”(ftnirp? for(i=0;i<5;i++)? // ? 素元個(gè) 5 隊(duì)入? { ?;)y&,”d%”(fnacs? add(q,y);} display(q); ? ? ? ? //)++i;5〈i;0=i(rof? ? ? 隊(duì)出素元個(gè) 5 把? { ? delete(q);} ? ? ;)q(yalpsid? ? // 功成隊(duì)出否是看? return 0;}
實(shí)驗(yàn)題目 2 2 :
寫出下列程序段的輸出結(jié)果,并通過程序運(yùn)行來驗(yàn)證 1.問題分析 完成該實(shí)驗(yàn)需要以下 4 個(gè)子任務(wù): 錯(cuò)誤!定義一個(gè)循環(huán)隊(duì)列的存儲(chǔ)結(jié)構(gòu),定義隊(duì)列的基本算法.○2 定義一個(gè) print()函數(shù)實(shí)現(xiàn)程序 錯(cuò)誤!通過隊(duì)列的基本算法實(shí)現(xiàn)隊(duì)列的出隊(duì)操作 \o\ac(○,4)在主函數(shù)中完成操作 測試數(shù)據(jù)設(shè)計(jì)如下: 2.概要設(shè)計(jì) 為了實(shí)現(xiàn)上述程序功能,需要:
錯(cuò)誤!聲明一個(gè)循環(huán)隊(duì)列 錯(cuò)誤!定義出隊(duì)列的基本算法, 錯(cuò)誤!在主函數(shù)調(diào)用print()函數(shù)看是否出隊(duì)。
3)本程序包含8個(gè)函數(shù):
1主函數(shù) main()2。置空隊(duì):initqueue()3。判對空:
queueempty()4。判隊(duì)滿:queuefull()5.入隊(duì):add()6。出隊(duì):delete()lay()8. gethead()各函數(shù)關(guān)系如下:
gethead()i? in n itq ue ue())qu u eu u eemp ty()m m ai n()? uq q? u eueful l(()add())m ma a in ndel e te()prin n t())
5 5、詳細(xì)設(shè)計(jì) 實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對每個(gè)操作給出了算法和代碼,主程序和模塊都需要代碼.(1)循環(huán)隊(duì)列 #define maxlen 10 typedef struct{ ?;]nelxam[ at(yī)ad rahc? ? ;tnorf tni? ? ? ;raer tni?}seqqueue;(2)隊(duì)列基本算法 seqqueue *initqueue(seqqueue *q)//建立一個(gè)空循環(huán)隊(duì)列 {;))eueuqqes(foezis(collam)* eueuqqes(=q? q—>front=0;;0=raer>—q? ;q nruter?} int queuefull(seqqueue *q){ //判斷隊(duì)列是否為滿)nelxam%)1+raer〉-q(==tnorf〉-q(fi? ;1 nruter?;0 nruter esle?} int queueempty(seqqueue *q){// ? ? 空為否是列隊(duì)斷判? if(q-〉rear==q->front)?;1 nruter? else return 0; } char gethead(seqqueue *q){ //取棧頂元素 if(!queueempty(q))? ;]nelxam%)1+tnorf>—q([at(yī)ad〉—q nruter? else printf("queue empty”); }
void add(seqqueue *q,char x)//入隊(duì) { if(!queuefull(q)){ ? ;nelxam%)1+raer〉—q(=raer>-q?;x=]raer〉-q[atad>-q? }else printf("queue full");} void delete(seqqueue *q){ //出隊(duì)))q(ytpmeeueuq!(fi? ? q-〉front=(q-〉front+1)%maxlen;else printf(”queue empty"); }(3)用print()函數(shù)驗(yàn)證程序 void print(seqqueue *q)? ?{ ;t,y,x rahc? ;"c"=y;"e’=x? add(q,’h");;)"r’,q(dda? ;)y,q(dda? x=gethead(q); ;)q(eteled?;)x,q(dda? x=gethead(q);delete(q); add(q,’a’); {)0==)q(ytpmeeueuq(elihw?;)q(daehteg=y? ;)q(eteled?;)y,"c%"(ftnirp? } ? ;)x,"c%”(ftnirp? }(4)在主函數(shù)中調(diào)用 print()函數(shù)驗(yàn)證程序 int main(){ seqqueue *q; ;)q(eueuqtini=q? print(q);;0 nruter?
} 4 4、調(diào)試分析 編譯無錯(cuò)誤 5 5、用戶使用說明 程序名為 class2.exe,在 debug文件夾里面。運(yùn)行環(huán)境 visual c++ 6。0。
6、測試結(jié)果 7 7、附錄 #i nc c lu u d e < st t d io。
h> # inclu d e 〈 stdlib。
h> #d e fine maxlen 10 0 typed e f s truct{ cha r d d a ta [maxl e n];i? i nt fr o nt ; tni i? nt r r ear r ; } seqqueue ; seqq u eue *i i n itqueue(seq q qu eue *q)// 建立一個(gè)空循環(huán)隊(duì)列 { es(=q? q=(se qq ueu e *)ma a llo c(si ze e of f(s eq q q ueue));〉-q? q-〉f f ron t= 0; q q—>rear=0;r r eturn q q ; } } i i n t q u euefull(seqqueue *q q){/ / /判斷隊(duì)列是否為滿
i? i f(q -> > fro o nt t = =(q-〉 rear +1 1)%m ax le e n)nruter? return 1; el se return 0; } } int queu e em pt t y(seq q ueue * q){ / ? // 判斷隊(duì)列是否為空 fi? if(q—>re a r== q—> fron t)return 1 ; esle? else r et ur r n 0 0 ; } } ch h a r ge thead(seqqu eu u e *q){/ / /取棧頂元素(fi i? f(!queueempty(q))? er r? et t u rn q - >d a ta [(q q-->f ro o n t+1)% % max len ]; le e? l se printf("qu e ue em m pt y"); } } vo i d ad d d(se q qu e ue *q q,c har x)/ / /入隊(duì) { if(!queuef u ll(q)){ 〉--q q? 〉 rea r=(q—>r ea r+ 1))% maxl en n ; q? q--〉da ta[q -> rear]=x;}e e l se p ri i ntf f(" qu eue e full");} void de le e t e(seqqu eue *q){// 出隊(duì) fi i? f((!queu e em p ty(q))tnorf〉--q q? 〉front =(q-->f r on t+ + 1)%m m ax len;e? e ls e printf(”que u e em pt y ”);;} void pr int(s e qqueue * q)? { hc c? ha a r x,y y,t;=x? x= 'e';y=" c" " ; add(q q,' h’);;ad d((q,"r");;add(q, y);x=gethe ad(q); del e te(q);;add(q, , x)); eg=x? x=ge th h e ad(q); ed? de le t e(q); da? ad d(q,' a");;hw w? h ile(qu eue e e mp ty(q)==0){
y? y =ge t head(q q);;d elete(q q);;rp p? r intf(" %c",y); } ? } p p ri i n tf(”%c”, x); } } int ma i n(){ { es s? e qque u e *q; ni=q? q=in itqu u e ue(q);irp? pri nt t(q);re e tu u r n 0;}
學(xué)生實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)三,循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)5,遞歸及隊(duì)列《數(shù)字測量學(xué)》實(shí)驗(yàn)三到實(shí)驗(yàn)五實(shí)驗(yàn)報(bào)告參考實(shí)驗(yàn)三,系統(tǒng)根軌跡分析實(shí)驗(yàn)報(bào)告過濾實(shí)驗(yàn)(實(shí)驗(yàn)報(bào)告)