廣東工業(yè)大學實驗報告封面_第1頁
廣東工業(yè)大學實驗報告封面_第2頁
廣東工業(yè)大學實驗報告封面_第3頁
廣東工業(yè)大學實驗報告封面_第4頁
廣東工業(yè)大學實驗報告封面_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE1廣東工業(yè)大學實驗報告封面第一篇:廣東工業(yè)大學實驗報告封面實驗報告課程:數(shù)字電子技術實驗班級:12電氣信息類創(chuàng)新實驗班學號:姓名:實驗教師:劉冰茹實驗時間:20XX.11.20XX動化學院實驗2號樓214實驗室第二篇:廣東工業(yè)大學實驗報告AutoCAD實驗報告課程工程制圖實驗名稱AutoCAD專業(yè)班級微電子科學與工程(1)班姓名學號311300722指導老師習小英20XX年12月17日一、實驗目的二、實驗內容和要求三、實驗步驟四、實驗心得體會第三篇:廣東工業(yè)大學數(shù)據(jù)結構實驗報告(12屆)廣東工業(yè)大學數(shù)據(jù)結構實驗報告(1)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:求一個正整數(shù)的各位數(shù)字之和一、實驗目的求一個正整數(shù)的各位數(shù)字之和。二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#includeintfunc(intnum){ints=0;do{s+=num%10;num/=10;}while(num);return(s);}voidmain(){intn;printf(“輸入一個整數(shù):”);scanf(“%d”,&n);printf(“各位數(shù)字之和:%dn”,func(n));printf(“n”);}四、實驗結果和分析當輸入一個整數(shù)的時候,得出的是該整數(shù)的所有數(shù)字的和五、實驗心得體會本實驗過程中,感覺能用簡單的方法實現(xiàn)程序就應該用簡單的,一開始我用了多個for循環(huán),感覺沒必要,就用了do-while循環(huán),因此保持程序的簡潔,精悍是最應該的,過于冗雜的程序不僅臃腫,而且難以分析,分享。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(2)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:求兩個多項式的相加運算一、實驗目的熟悉并學會使用多項式的表示方法以及計算方法二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#include#include#defineMAX20XXypedefstruct{doublecoef;intexp;}PolyArray[MAX];typedefstructpnode//定義單鏈表結點類型{doublecoef;intexp;}PolyNode;voidDispPoly(PolyNode*L)//輸出多項式{boolfirst=true;PolyNode*p=L->next;while(p!=NULL)//多項式最多項數(shù)//定義存放多項式的數(shù)組類型//系數(shù)//指數(shù)//系數(shù)//指數(shù)structpnode*next;//first為true表示是第一項{}printf(“n”);}voidDestroyList(PolyNode*&L)//銷毀單鏈表{PolyNode*p=L,*q=p->next;while(q!=NULL){}free(p);}voidCreateListR(PolyNode*&L,PolyArraya,intn)//尾插法建表{PolyNode*s,*r;inti;L=(PolyNode*)malloc(sizeof(PolyNode));//創(chuàng)建頭結點L->next=NULL;r=L;{}r->next=NULL;}voidSort(PolyNode*&head){PolyNode*p=head->next,*q,*r;if(p!=NULL)if(first)first=false;printf(“+”);printf(“%g”,p->coef);printf(“%gx”,p->coef);printf(“%gx^%d”,p->coef,p->exp);elseif(p->coef>0)if(p->exp==0)elseif(p->exp==1)elsep=p->next;free(p);p=q;q=p->next;//r始終指向終端結點,開始時指向頭結點for(i=0;icoef=a[i].coef;s->exp=a[i].exp;r->next=s;r=s;//終端結點next域置為NULL//按exp域遞減排序//將*s插入*r之后//若原單鏈表中有一個或以上的數(shù)據(jù)結點{}}voidAdd(PolyNode*ha,PolyNode*hb,PolyNode*&hc)//求兩有序集合的并{PolyNode*pa=ha->next,*pb=hb->next,*s,*tc;doublec;hc=(PolyNode*)malloc(sizeof(PolyNode));tc=hc;while(pa!=NULL&&pb!=NULL){r=p->next;p=r;//r保存*p結點后繼結點的指針p->next=NULL;while(p!=NULL){}r=p->next;q=head;//構造只含一個數(shù)據(jù)結點的有序表//r保存*p結點后繼結點的指針while(q->next!=NULL&&q->next->exp>p->exp)q=q->next;//在有序表中找插入*p的前驅結點*qp->next=q->next;//將*p插入到*q之后q->next=p;p=r;//創(chuàng)建頭結點if(pa->exp>pb->exp){}elseif(pa->expexp){}else{c=pa->coef+pb->coef;if(c!=0){s=(PolyNode*)malloc(sizeof(PolyNode));//復制結點s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;//系數(shù)之和不為0時創(chuàng)建新結點//pa->exp=pb->exps=(PolyNode*)malloc(sizeof(PolyNode));//復制結點s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;s=(PolyNode*)malloc(sizeof(PolyNode));//復制結點s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}}}pa=pa->next;pb=pb->next;if(pb!=NULL)pa=pb;//復制余下的結點while(pa!=NULL){}tc->next=NULL;}voidmain(){PolyNode*ha,*hb,*hc;PolyArraya={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArrayb={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf(“原多項式A:”);DispPoly(ha);printf(“原多項式B:”);DispPoly(hb);Sort(ha);Sort(hb);printf(“有序多項式A:”);DispPoly(ha);printf(“有序多項式B:”);DispPoly(hb);Add(ha,hb,hc);printf(“多項式相加:”);DispPoly(hc);DestroyList(ha);DestroyList(hb);DestroyList(hc);}s=(PolyNode*)malloc(sizeof(PolyNode));//復制結點s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;四、實驗結果和分析五、實驗心得體會本實驗過程中,我進一步了解了單鏈表的各種操作以及對應的函數(shù)的使用方法,以及學會熟練調用函數(shù)來實現(xiàn),比較深刻地體會到了使用單鏈表的好處和方便。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(3)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:病人看病模擬程序一、實驗目的掌握順序棧以及循環(huán)隊列的使用。二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#include#includetypedefstructqnode{intdata;structqnode*next;}QNode;{QNode*front,*rear;}QuType;{QNode*p,*q;p=qu->front;if(p!=NULL){//鏈隊節(jié)點類型typedefstruct//鏈隊類型voidDestroyqueue(QuType*&qu)//釋放鏈隊//若鏈隊不空q=p->next;while(q!=NULL)//釋放隊中所有的節(jié)點{free(p);p=q;q=q->next;}free(p);}free(qu);//釋放鏈隊節(jié)點}voidSeeDoctor(){intsel,flag=1,find,no;QuType*qu;QNode*p;qu=(QuType*)malloc(sizeof(QuType));//創(chuàng)建空隊qu->front=qu->rear=NULL;while(flag==1)//循環(huán)執(zhí)行{printf(“1:排隊2:就診3:查看排隊4.不再排隊,余下依次就診5:下班scanf(”%d“,&sel);switch(sel){case1:printf(”>>輸入病歷號:“);do{scanf(”%d“,&no);find=0;p=qu->front;while(p!=NULL&&!find){if(p->data==no)find=1;elsep=p->next;}if(find)printf(”>>輸入的病歷號重復,重新輸入:“);}while(find==1);p=(QNode*)malloc(sizeof(QNode));//創(chuàng)建節(jié)點p->data=no;p->next=NULL;if(qu->rear==NULL)//第一個病人排隊qu->front=qu->rear=p;else{qu->rear->next=p;qu->rear=p;//將*p節(jié)點入隊}請選擇:”);break;//隊空//隊不空{p=qu->front;printf(“>>病人%d就診n”,p->data);if(qu->rear==p)//只有一個病人排隊的情況qu->front=qu->rear=NULL;printf(“>>沒有排隊的病人!n”);case2:if(qu->front==NULL)elseelsequ->front=p->next;free(p);break;//隊空//隊不空printf(“>>沒有排列的病人!n”);}case3:if(qu->front==NULL)else{}break;p=qu->front;printf(“>>排隊病人:”);while(p!=NULL){}printf(“n”);printf(“%d”,p->data);p=p->next;case4:if(qu->front==NULL)//隊空//隊不空printf(“>>沒有排列的病人!n”);else{}Destroyqueue(qu);flag=0;break;//隊不空printf(“>>請排隊的病人明天就醫(yī)!n”);//釋放鏈隊//退出p=qu->front;printf(“>>病人按以下順序就診:”);while(p!=NULL){}printf(“n”);printf(“%d”,p->data);p=p->next;case5:if(qu->front!=NULL)}voidmain(){SeeDoctor();}}flag=0;break;//退出//釋放鏈隊Destroyqueue(qu);}四、實驗結果和分析五、實驗心得體會本實驗過程中,要求考慮的情況較多,在循環(huán)隊列中使用指針的使用過程中對空的這種情況還是欠缺考慮,所以以后在進行循環(huán)隊列使用中務必要記得考慮對空的情況。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(4)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:文本串加密和解密程序一、實驗目的掌握順序棧以及循環(huán)隊列的使用。二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容lgo4-1.cpp#include#defineMaxSize100typedefstruct{chardata[MaxSize];}SqString;voidStrAssign(SqString&s,charcstr[])//s為引用型參數(shù){}voidStrCopy(SqString&s,SqStringt){}boolStrEqual(SqStrings,SqStringt)//最多的字符個數(shù)//定義可容納MaxSize個字符的空間intlength;//標記當前實際串長inti;s.data[i]=cstr[i];for(i=0;cstr[i]!='';i++)s.length=i;//s為引用型參數(shù)inti;s.data[i]=t.data[i];for(i=0;i{boolsame=true;//長度不相等時返回0inti;if(s.length!=t.length)}intStrLength(SqStrings){returns.length;}SqStringConcat(SqStrings,SqStringt){SqStringstr;inti;str.length=s.length+t.length;for(i=0;i}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//參數(shù)不正確時返回空串for(k=i-1;kstr.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//參數(shù)不正確時返回空串returnstr;//將s1.data[0..i-2]復制到str//將s2.data[0..s2.length-1]復制到strstr.data[j]=s1.data[j];for(j=0;jfor(j=0;jsame=false;for(i=0;iif(s.data[i]!=t.data[i])//有一個對應字符不相同時返回0{}same=false;break;elsereturnsame;str.data[i]=s.data[i];str.data[s.length+i]=t.data[i];for(i=0;i//將s.data[i..i+j]復制到strstr.data[k-i+1]=s.data[k];str.data[i+j-1]=s2.data[j];//將s1.data[i-1..s1.length-1]復制到strstr.data[s2.length+j]=s1.data[j];for(j=i-1;js.length||i+j>s.length+1)//參數(shù)不正確時返回空串returnstr;//將s.data[0..i-2]復制到strstr.data[k]=s.data[k];str.data[k-j]=s.data[k];for(k=0;kfor(k=i+j-1;ks.length||i+j-1>s.length)//參數(shù)不正確時返回空串returnstr;//將s.data[0..i-2]復制到str//將t.data[0..t.length-1]復制到strstr.data[k]=s.data[k];str.data[i+k-1]=t.data[k];str.data[t.length+k-j]=s.data[k];for(k=0;k}}inti;for(i=0;i0)//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];//串長intlength;}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;{inti=0,j;SqStringq;while(i}q.length=p.length;returnq;}SqStringUnEncrypt(SqStringq){inti=0,j;SqStringp;while(i}p.length=q.length;returnp;}voidmain(){SqStringp,q;intok=1;//全局串SqStringEnCrypt(SqStringp)for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)elsei++;//在A串中未找到p.data[i]字母//在A串中找到p.data[i]字母q.data[i]=p.data[i];q.data[i]=B.data[j];for(j=0;q.data[i]!=B.data[j];j++);if(j>=q.length)elsei++;//在B串中未找到q.data[i]字母p.data[i]=q.data[i];//在B串中找到q.data[i]字母p.data[i]=A.data[j];StrAssign(A,“abcdefghijklmnopqrstuvwxyz”);//建立A串StrAssign(B,“ngzqtcobmuhelkpdawxfyivrsj”);//建立B串charstr[MaxSize];printf(“n”);printf(“輸入原文串:”);gets(str);//獲取用戶輸入的原文串StrAssign(p,str);//建立p串printf(“加密解密如下:n”);printf(“原文串:”);DispStr(p);q=EnCrypt(p);//p串加密產(chǎn)生q串//q串解密產(chǎn)生p串printf(“加密串:”);DispStr(q);p=UnEncrypt(q);printf(“n”);}printf(“解密串:”);DispStr(p);四、實驗結果和分析五、實驗心得體會串加密實際上就是對每個字符進行一定的算法,而這個算法只有你自己知道,其他人不知道。通過該算法,我們可以進行加密與解密工作。新技能get。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(5)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:求解n皇后問題一、實驗目的掌握遞歸應用二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#include#includeconstintN=20XX/最多皇后個數(shù)intq[N];//存放各皇后所在的列號intcount=0;//存放解個數(shù)voidprint(intn)//輸出一個解{count++;inti;printf(“第%d個解:”,count);for(i=1;i<=n;i++)}intplace(intk,intj){inti=1;while(i//i=1~k-1是已放置了皇后的行}return0;i++;return1;}voidqueen(intk,intn){intj;if(k>n)}voidmain(){intn;scanf(“%d”,&n);if(n>20XX{}printf(“%d皇后問題求解如下:n”,n);queen(1,n);printf(“n”);printf(“n值太大,不能求解n”);else//n存放實際皇后個數(shù)printf(“皇后問題(n<20XX=”);print(n);for(j=1;j<=n;j++)if(place(k,j)){q[k]=j;queen(k+1,n);}//所有皇后放置結束//在第k行上窮舉每一個位置//在第k行上找到一個合適位置(k,j)else//放置1-k的皇后}四、實驗結果和分析五、實驗心得體會遞歸應用能夠幫我們解決很多需要重復操作的繁瑣的算法問題,運用遞歸我們可以省下不少的時間,能讓我們更有效率的進行其他的工作,因此遞歸算法是十分重要的。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(6)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:求5X5階螺旋方陣一、實驗目的掌握矩陣的各種算法二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#include#defineMaxLen10voidfun(inta[MaxLen][MaxLen],intn){inti,j,k=0,m;if(n%2==0)//m=én/2ù{m=n/2;m=n/2+1;elsefor(i=0;i}for(j=i+1;j}}}for(j=n-i-2;j>=i;j--){}for(j=n-i-2;j>=i+1;j--){}k++;a[j][i]=k;k++;a[n-i-1][j]=k;voidmain(){intn,i,j;inta[MaxLen][MaxLen];printf(“輸入n(n<10):”);scanf(“%d”,&n);fun(a,n);printf(“%d階數(shù)字方陣如下:n”,n);for(i=0;i}}for(j=0;j四、實驗結果和分析五、實驗心得體會矩陣的算法在大一的時候已經(jīng)學過,我們只需要熟練的運用好循環(huán)進行輸入就好了。廣東工業(yè)大學數(shù)據(jù)結構實驗報告(7)學院:自動化專業(yè):12級物聯(lián)網(wǎng)3班姓名:xxx學號:xxx老師:張小波實驗日期:20XX年6月21日實驗地點:實二20XX成績評定:實驗題目:構造哈夫曼樹一、實驗目的掌握二叉樹的遍歷,構造。以及哈夫曼樹的相關知識。二、實驗軟件環(huán)境1.計算機每人一臺。2.軟件:VisualStudio20XX三、實驗內容#include#include#defineN50#defineM2*N-1typedefstruct{chardata[5];//節(jié)點值intweight;intparent;intlchild;intrchild;}HTNode;typedefstruct{charcd[N];intstart;}HCode;voidCreateHT(HTNodeht[],intn){inti,k,lnode,rnode;//葉子節(jié)點數(shù)//樹中節(jié)點總數(shù)//權重//雙親節(jié)點//左孩子節(jié)點//右孩子節(jié)點//存放哈夫曼碼intmin1,min2;for(i=0;i<2*n-1;i++){}}voidCreateHCode(HTNodeht[],HCodehcd[],intn){inti,f,c;HCodehc;for(i=0;i{}}voidDispHCode(HTNodeht[],HCodehcd[],intn)//所有節(jié)點的相關域置初值-1//構造哈夫曼樹//lnode和rnode為最小權重的兩個節(jié)點位置ht[i].parent=ht[i].lchild=ht[i].rchild=-1;for(i=n;i<2*n-1;i++)min1=min2=32767;lnode=rnode=-1;for(k=0;k<=i-1;k++)if(ht[k].parent==-1)//只在尚未構造二叉樹的節(jié)點中查找{}if(ht[k].weight}elseif(ht[k].weight}hc.start++;hcd[i]=hc;//start指向哈夫曼編碼最開始字符if(ht[f].lchild==c)//處理左孩子節(jié)點hc.cd[hc.start--]='0';//處理右孩子節(jié)點hc.cd[hc.start--]='1';elsec=f;f=ht[f].parent;{inti,k;intsum=0,m=0,j;printf(“輸出哈夫曼編碼:n”);//輸出哈夫曼編碼for(i=0;i}printf(“平均長度=%gn”,1.0*sum/m);}voidmain(){intn=15,i;char*str[]={“The”,“of”,“a”,“to”,“and”,“in”,“that”,“he”,“is”,“at”,“on”,“for”,“His”,“are”,“be”};intfnum[]={1192,677,541,518,462,450,242,195,190,181,174,157,138,124,123};HTNodeht[M];HCodehcd[N];for(i=0;i}CreateHT(ht,n);CreateHCode(ht,hcd,n);DispHCode(ht,hcd,n);}strcpy(ht[i].data,str[i]);ht[i].weight=fnum[i];j=0;printf(“%s:t”,ht[i].data);for(k=hcd[i].start;k<=n;k++){}m+=ht[i].weight

溫馨提示

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

評論

0/150

提交評論