广东工业大学实验报告封面_第1页
广东工业大学实验报告封面_第2页
广东工业大学实验报告封面_第3页
广东工业大学实验报告封面_第4页
广东工业大学实验报告封面_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1广东工业大学实验报告封面第一篇:广东工业大学实验报告封面实验报告课程:数字电子技术实验班级:12电气信息类创新实验班学号:姓名:实验教师:刘冰茹实验时间:20XX.11.20XX动化学院实验2号楼214实验室第二篇:广东工业大学实验报告AutoCAD实验报告课程工程制图实验名称AutoCAD专业班级微电子科学与工程(1)班姓名学号311300722指导老师习小英20XX年12月17日一、实验目的二、实验内容和要求三、实验步骤四、实验心得体会第三篇:广东工业大学数据结构实验报告(12届)广东工业大学数据结构实验报告(1)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:求一个正整数的各位数字之和一、实验目的求一个正整数的各位数字之和。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio20XX三、实验内容#includeintfunc(intnum){ints=0;do{s+=num%10;num/=10;}while(num);return(s);}voidmain(){intn;printf(“输入一个整数:”);scanf(“%d”,&n);printf(“各位数字之和:%dn”,func(n));printf(“n”);}四、实验结果和分析当输入一个整数的时候,得出的是该整数的所有数字的和五、实验心得体会本实验过程中,感觉能用简单的方法实现程序就应该用简单的,一开始我用了多个for循环,感觉没必要,就用了do-while循环,因此保持程序的简洁,精悍是最应该的,过于冗杂的程序不仅臃肿,而且难以分析,分享。广东工业大学数据结构实验报告(2)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:求两个多项式的相加运算一、实验目的熟悉并学会使用多项式的表示方法以及计算方法二、实验软件环境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)//多项式最多项数//定义存放多项式的数组类型//系数//指数//系数//指数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));//创建头结点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之后//若原单链表中有一个或以上的数据结点{}}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;//构造只含一个数据结点的有序表//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;//创建头结点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;//系数之和不为0时创建新结点//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;四、实验结果和分析五、实验心得体会本实验过程中,我进一步了解了单链表的各种操作以及对应的函数的使用方法,以及学会熟练调用函数来实现,比较深刻地体会到了使用单链表的好处和方便。广东工业大学数据结构实验报告(3)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:病人看病模拟程序一、实验目的掌握顺序栈以及循环队列的使用。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio20XX三、实验内容#include#includetypedefstructqnode{intdata;structqnode*next;}QNode;{QNode*front,*rear;}QuType;{QNode*p,*q;p=qu->front;if(p!=NULL){//链队节点类型typedefstruct//链队类型voidDestroyqueue(QuType*&qu)//释放链队//若链队不空q=p->next;while(q!=NULL)//释放队中所有的节点{free(p);p=q;q=q->next;}free(p);}free(qu);//释放链队节点}voidSeeDoctor(){intsel,flag=1,find,no;QuType*qu;QNode*p;qu=(QuType*)malloc(sizeof(QuType));//创建空队qu->front=qu->rear=NULL;while(flag==1)//循环执行{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));//创建节点p->data=no;p->next=NULL;if(qu->rear==NULL)//第一个病人排队qu->front=qu->rear=p;else{qu->rear->next=p;qu->rear=p;//将*p节点入队}请选择:”);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(“>>请排队的病人明天就医!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);}四、实验结果和分析五、实验心得体会本实验过程中,要求考虑的情况较多,在循环队列中使用指针的使用过程中对空的这种情况还是欠缺考虑,所以以后在进行循环队列使用中务必要记得考虑对空的情况。广东工业大学数据结构实验报告(4)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:文本串加密和解密程序一、实验目的掌握顺序栈以及循环队列的使用。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio20XX三、实验内容lgo4-1.cpp#include#defineMaxSize100typedefstruct{chardata[MaxSize];}SqString;voidStrAssign(SqString&s,charcstr[])//s为引用型参数{}voidStrCopy(SqString&s,SqStringt){}boolStrEqual(SqStrings,SqStringt)//最多的字符个数//定义可容纳MaxSize个字符的空间intlength;//标记当前实际串长inti;s.data[i]=cstr[i];for(i=0;cstr[i]!='';i++)s.length=i;//s为引用型参数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;//参数不正确时返回空串for(k=i-1;kstr.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串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)//参数不正确时返回空串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)//参数不正确时返回空串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串加密产生q串//q串解密产生p串printf(“加密串:”);DispStr(q);p=UnEncrypt(q);printf(“n”);}printf(“解密串:”);DispStr(p);四、实验结果和分析五、实验心得体会串加密实际上就是对每个字符进行一定的算法,而这个算法只有你自己知道,其他人不知道。通过该算法,我们可以进行加密与解密工作。新技能get。广东工业大学数据结构实验报告(5)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:求解n皇后问题一、实验目的掌握递归应用二、实验软件环境1.计算机每人一台。2.软件:VisualStudio20XX三、实验内容#include#includeconstintN=20XX/最多皇后个数intq[N];//存放各皇后所在的列号intcount=0;//存放解个数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存放实际皇后个数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的皇后}四、实验结果和分析五、实验心得体会递归应用能够帮我们解决很多需要重复操作的繁琐的算法问题,运用递归我们可以省下不少的时间,能让我们更有效率的进行其他的工作,因此递归算法是十分重要的。广东工业大学数据结构实验报告(6)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:求5X5阶螺旋方阵一、实验目的掌握矩阵的各种算法二、实验软件环境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阶数字方阵如下:n”,n);for(i=0;i}}for(j=0;j四、实验结果和分析五、实验心得体会矩阵的算法在大一的时候已经学过,我们只需要熟练的运用好循环进行输入就好了。广东工业大学数据结构实验报告(7)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:20XX年6月21日实验地点:实二20XX成绩评定:实验题目:构造哈夫曼树一、实验目的掌握二叉树的遍历,构造。以及哈夫曼树的相关知识。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio20XX三、实验内容#include#include#defineN50#defineM2*N-1typedefstruct{chardata[5];//节点值intweight;intparent;intlchild;intrchild;}HTNode;typedefstruct{charcd[N];intstart;}HCode;voidCreateHT(HTNodeht[],intn){inti,k,lnode,rnode;//叶子节点数//树中节点总数//权重//双亲节点//左孩子节点//右孩子节点//存放哈夫曼码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)//所有节点的相关域置初值-1//构造哈夫曼树//lnode和rnode为最小权重的两个节点位置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)//只在尚未构造二叉树的节点中查找{}if(ht[k].weight}elseif(ht[k].weight}hc.start++;hcd[i]=hc;//start指向哈夫曼编码最开始字符if(ht[f].lchild==c)//处理左孩子节点hc.cd[hc.start--]='0';//处理右孩子节点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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论