版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科课程设计(论文)[3]讲的是编码理论中的知识,是我对霍夫曼编码的具体实现方法有了深刻的了解,对我实现具体的算法很大帮助第2章设计简介及设计方案论述2.1霍夫曼编码介绍霍夫曼编码(HuffmanCoding)是一种熵编码编码压缩方式,霍夫曼编码是可变字长编码(VLC)的一种。霍夫曼压缩是个无损的压缩算法,一般用来压缩文本和程序文件。哈夫曼压缩属于可变代码长度算法一族。意思是不同符号(例如,文本文件中的字符)用一个特定长度的位序列替代。因此,在文件中出现频率高的符号,使用短的位序列,而那些很少出现的符号,则用较长的位序列。霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。霍夫曼编码是一种根据字母的使用频率而设计的变长码,能提高信息的传输效率,至今仍有广泛的应用。霍夫曼编码方法的具体过程是:首先把信源的各个输出符号序列按概率递降的顺序排列起来,求其中概率最小的两个序列的概率之和,并把这个概率之和看做是一个符号序列的概率,再与其他序列依概率递降顺序排列(参与求概率之和的这两个序列不再出现在新的排列之中)。然后,对参与概率求和的两个符号序列分别赋予二进制数字0和1。继续这样的操作,直到剩下一个以1为概率的符号序列。最后,按照与编码过程相反的顺序读出各个符号序列所对应的二进制数字组,就可分别得到各该符号序列的码字2.2设计简介先是读取文件,统计文件中不同字符出现的次数,并存入数组中,然后将数组中不同的字符对应的ASCII值存入另外数组中,按照数组个ASCII及相应出现的频率的来建立霍夫曼编码,然后将码表存入压缩文件,再将各字符对应的霍夫曼编码写入压缩文件中,实现文件压缩。详细代码如下:2.3设计方案2.3.1压缩函数首先读取文件,统计字符对应ASCII的出现频率,构造霍夫曼树://压缩voidcompress(){charfilename[255],outputfile[255],buf[512];unsignedcharc;longi,j,m,n,f,lh=0;longmin1,pt1,flength,length1,length2; doublediv;FILE*readfile,*writefile; cout<<"请输入要压缩的文件名:";cin>>filename;readfile=fopen(filename,"rb");if(readfile==NULL) {cout<<"文件打开失败!!,请检查该文件是否存在,或遇到未知文件"<<endl ; return; } cout<<"输入压缩之后的文件名:";cin>>outputfile;writefile=fopen(strcat(outputfile,".hub"),"wb");if(writefile==NULL) { cout<<"文件压缩失败!"<<endl;return; } flength=0;while(!feof(readfile)) { fread(&c,1,1,readfile);header[c].count++;//字符重复出现频率+1flength++;//字符出现原文件长度+1 }lh=flength; flength--;length1=flength;//原文件长度用作求压缩率的分母header[c].count--;for(i=0;i<512;i++) { if(header[i].count!=0)header[i].b=(unsignedchar)i; /*将每个哈夫曼码值及其对应的ASCII码存放在一维数组header[i]中,且编码表中的下标和ASCII码满足顺序存放关系*/elseheader[i].b=0;header[i].parent=-1;header[i].lch=header[i].rch=-1;//对结点进行初始化 }for(i=0;i<256;i++)//根据频率(权值)大小,对结点进行排序,选择较小的结点进树 { for(j=i+1;j<256;j++) { if(header[i].count<header[j].count) { tmp=header[i];header[i]=header[j];header[j]=tmp; } } } for(i=0;i<256;i++) if(header[i].count==0)break;n=i;//外部叶子结点数为n个时,内部结点数为n-1,整个哈夫曼树的需要的结点数为2*n-1.m=2*n-1;for(i=n;i<m;i++)//构建哈夫曼树 { min1=999999999;//预设的最大权值,即结点出现的最大次数for(j=0;j<i;j++) { if(header[j].parent!=-1)continue; //parent!=-1说明该结点已存在哈夫曼树中,跳出循环重新选择新结点*/if(min1>header[j].count) { pt1=j;min1=header[j].count;continue; } } header[i].count=header[pt1].count;header[pt1].parent=i;//依据parent域值(结点层数)确定树中结点之间的关系header[i].lch=pt1;//计算左分支权值大小min1=999999999;for(j=0;j<i;j++) { if(header[j].parent!=-1)continue;if(min1>header[j].count) { pt1=j;min1=header[j].count;continue; } } header[i].count+=header[pt1].count;header[i].rch=pt1;//计算右分支权值大小header[pt1].parent=i; } for(i=0;i<n;i++)//哈夫曼无重复前缀编码 { f=i;header[i].bits[0]=0;//根结点编码0while(header[f].parent!=-1) { j=f;f=header[f].parent;if(header[f].lch==j)//置左分支编码0 { j=strlen(header[i].bits);memmove(header[i].bits+1,header[i].bits,j+1); //依次存储连接“0”“1”编码header[i].bits[0]='0'; } else//置右分支编码1 { j=strlen(header[i].bits);memmove(header[i].bits+1,header[i].bits,j+1);header[i].bits[0]='1'; } } } fseek(readfile,0,SEEK_SET);//从文件开始位置向前移动0字节,即定位到文件开始位置fwrite(&flength,sizeof(int),1,writefile); /*用来将数据写入文件流中,参数flength指向欲写入的数据地址, 总共写入的字符数以参数size*int来决定,返回实际写入的int数目1*/fseek(writefile,8,SEEK_SET);buf[0]=0;//定义缓冲区,它的二进制表示00000000f=0;pt1=8; /*假设原文件第一个字符是"A",8位2进制为01000001,编码后为0110识别编码第一个'0', 那么我们就可以将其左移一位,看起来没什么变化。下一个是'1',应该|1,结果00000001 同理4位都做完,应该是00000110,由于字节中的8位并没有全部用完,我们应该继续读下一个字符, 根据编码表继续拼完剩下的4位,如果字符的编码不足4位,还要继续读一个字符, 如果字符编码超过4位,那么我们将把剩下的位信息拼接到一个新的字节里*/while(!feof(readfile)) { c=fgetc(readfile);f++;for(i=0;i<n;i++) { if(c==header[i].b)break; } strcat(buf,header[i].bits);j=strlen(buf);c=0; while(j>=8)//对哈夫曼编码位操作进行压缩存储 { for(i=0;i<8;i++) { if(buf[i]=='1')c=(c<<1)|1;elsec=c<<1; } fwrite(&c,1,1,writefile);pt1++;//统计压缩后文件的长度strcpy(buf,buf+8);//一个字节一个字节拼接j=strlen(buf); } if(f==flength)break; } if(j>0)//对哈夫曼编码位操作进行压缩存储 { strcat(buf,"00000000");for(i=0;i<8;i++) { if(buf[i]=='1')c=(c<<1)|1;elsec=c<<1; } fwrite(&c,1,1,writefile);pt1++; } fseek(writefile,4,SEEK_SET);fwrite(&pt1,sizeof(long),1,writefile);fseek(writefile,pt1,SEEK_SET);fwrite(&n,sizeof(long),1,writefile);for(i=0;i<n;i++) { fwrite(&(header[i].b),1,1,writefile);c=strlen(header[i].bits);fwrite(&c,1,1,writefile);j=strlen(header[i].bits);if(j%8!=0)//若存储的位数不是8的倍数,则补0 { for(f=j%8;f<8;f++)strcat(header[i].bits,"0"); } while(header[i].bits[0]!=0) { c=0;for(j=0;j<8;j++)//字符的有效存储不超过8位,则对有效位数左移实现两字符编码的连接 { if(header[i].bits[j]=='1')c=(c<<1)|1;//|1不改变原位置上的“0”“1”值elsec=c<<1; } strcpy(header[i].bits,header[i].bits+8);//把字符的编码按原先存储顺序连接fwrite(&c,1,1,writefile); } } cout<<"文件压缩成功!"<<endl; length2=pt1--; div=((double)length1-(double)length2)/(double)length1;//计算文件的压缩率fclose(readfile);fclose(writefile);cout<<"压缩率为:"<<div*100<<"%"<<endl;return;}2.3.2解压缩函数解压时也是先把文件整体读入,通过哈夫曼编码的长短,依次解码,从原来的位存储还原到字节存储voiddecompression(){ charfilename[255],outputfile[255],buf[255],bx[255];unsignedcharc;longi,j,m,n,f,p,l;longflength; doublelh;FILE*readfile,*writefile; cout<<"请输入要解压文件名:"; cin>>filename;readfile=fopen(strcat(filename,".hub"),"rb");if(readfile==NULL) { cout<<"文件打开失败!!,请检查该文件是否存在,或遇到未知文件"<<endl; return;}cout<<"输入解压后的文件名:";cin>>outputfile;writefile=fopen(outputfile,"wb");if(writefile==NULL) { cout<<"文件解压失败!"<<endl;return; } fread(&flength,sizeof(long),1,readfile);//读取原文件长度,对文件进行定位 lh=flength;fread(&f,sizeof(long),1,readfile);fseek(readfile,f,SEEK_SET);fread(&n,sizeof(long),1,readfile);for(i=0;i<n;i++) { fread(&header[i].b,1,1,readfile);fread(&c,1,1,readfile);p=(long)c;//读取原文件字符的权值header[i].count=p;header[i].bits[0]=0;if(p%8>0)m=p/8+1;elsem=p/8;for(j=0;j<m;j++) { fread(&c,1,1,readfile);f=c;itoa(f,buf,2);//将f转换为二进制表示的字符串f=strlen(buf);for(l=8;l>f;l--) { strcat(header[i].bits,"0"); } strcat(header[i].bits,buf); }header[i].bits[p]=0; }for(i=0;i<n;i++)//根据哈夫曼编码的长短,对结点进行排序 { for(j=i+1;j<n;j++) { if(strlen(header[i].bits)>strlen(header[j].bits)) { tmp=header[i];header[i]=header[j];header[j]=tmp; } } }p=strlen(header[n-1].bits);fseek(readfile,8,SEEK_SET);m=0;bx[0]=0;while(1)//通过哈夫曼编码的长短,依次解码,从原来的位存储还原到字节存储 { while(strlen(bx)<(unsignedint)p) { fread(&c,1,1,readfile);f=c;itoa(f,buf,2);f=strlen(buf);for(l=8;l>f;l--)//在单字节内对相应位置补0 { strcat(bx,"0"); } strcat(bx,buf); } for(i=0;i<n;i++) { if(memcmp(header[i].bits,bx,header[i].count)==0)break; } strcpy(bx,bx+header[i].count);/*从压缩文件中的按位存储还原到按字节存储字符, 字符位置不改变*/ c=header[i].b;fwrite(&c,1,1,writefile);m++;//统计解压缩后文件的长度if(m==flength)break;//flength是原文件长度 }fclose(readfile);fclose(writefile);cout<<"文件解压成功!"<<endl;}第3章程序的测试分析及改进3.1测试结果源文件,压缩文件,解压文件,以及实现压缩解压的后台过程如下:图3-11.txt的源文件属性图3-2txt文件压缩后的文件属性图3-3txt解压后的文件属性图3-4后台操作过程由图可知此刻的压缩率为24.8899%图3-5源图片图3-6解压后的图片3.2程序的优缺点及改进方案从测试的结果可以看出,该设计的压缩和解压缩基本能够满足要求,也基本达到了设计目的。当然程序中也有需要改进的地方(1)该设计对于内存较大文件压缩的速率将会变得很慢,这是由于设计过程只是为了达到目的,而忽略了压缩过程中对内存的占用,这点需要改进。(2)程序没有较强的通用性,仅仅只是针对霍夫曼编码而写的,如果需要扩展加上其他的编码方法,程序又得重新来写,不能满足编写大型程序的需要(3)程序的可读性不是很强,我应该在程序中多加一些注释,便于理解的。第4章总结该程序设计,从基本上来说,已经符合了的要求,我通过查阅资料认真思考,完成了本次课程设计。此次课程设计,是将数学问题用计算机语言来描述的一次实例,充分说明了,计算机与数学的不可分割性,两者相辅相成,互相促进。此次程序中,我主要运用数组和循环语句来构造程序结构模型,起到了比较好的效果。在这次编程过程中,我也遇到了一些麻烦,就是在对命题公式进行标准判断的时候,对容错的循环语句是用for,还是用while语句做了哪一个更好的比较的,最终还是选择的for循环,由此可见,程序的编写是需要动脑筋的,要认真分析,用最简便实用的方法,编写合乎规范的程序,才是我们这些学习者的应该准备的。通过本次程序设计,我也认识了自己还有很多不足,需要进一步学习的地方,在接下来的学习中我会花更多时间,来认真加深知识理解与运用。致谢通过此次课程设计,明明白了独立思考的重要性,也体会到了与人交流的重要性。我在完成此次设计中,向一些优秀同学请教,在这里感谢他们对我在编程上的一些细节性的帮助,使我避免了一些细小的错误,通过他们的帮助,我精简了一些程序语句,使程序变得跟简洁,具有很强的可读性。我更应该感谢我们的李老师,是她给予我在很多方面的指导,让我的思路更加明细,条理更加清楚,少走了不少弯路,在这里我要对她说说谢谢,感谢她对我的无私教诲,感谢她对我的帮助总之,我要谢谢所有在这次设计中给我帮助的人,因为他们,我才顺利,更加有效地完成设计任务。参考文献谭浩强C++面向对象程序设计[M].北京:清华大学出版社.2021.谭浩强C程序设计[M].北京:清华大学出版社.2021.田丽华编码理论[M].西安:西安电子科技大学出版社,2021.附录源代码:#include<stdio.h>#include<iostream.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<ctime>structhuofuman{unsignedcharb;//记录字符在数组中的位置longcount;//字符出现频率(权值)longparent,lch,rch;//定义哈夫曼树指针变量charbits[256];//定义存储哈夫曼编码的数组}header[512],tmp;//压缩voidcompress(){charfilename[255],outputfile[255],buf[512];unsignedcharc;longi,j,m,n,f,lh=0;longmin1,pt1,flength,length1,length2; doublediv;FILE*readfile,*writefile; cout<<"请输入要压缩的文件名:";cin>>filename;readfile=fopen(filename,"rb");if(readfile==NULL) {cout<<"文件打开失败!!,请检查该文件是否存在,或遇到未知文件"<<endl ; return; } cout<<"输入压缩之后的文件名:";cin>>outputfile;writefile=fopen(strcat(outputfile,".hub"),"wb");if(writefile==NULL) { cout<<"文件压缩失败!"<<endl;return; } flength=0;while(!feof(readfile)) { fread(&c,1,1,readfile);header[c].count++;//字符重复出现频率+1flength++;//字符出现原文件长度+1 }lh=flength; flength--;length1=flength;//原文件长度用作求压缩率的分母header[c].count--;for(i=0;i<512;i++) { if(header[i].count!=0)header[i].b=(unsignedchar)i; /*将每个哈夫曼码值及其对应的ASCII码存放在一维数组header[i]中,且编码表中的下标和ASCII码满足顺序存放关系*/elseheader[i].b=0;header[i].parent=-1;header[i].lch=header[i].rch=-1;//对结点进行初始化 }for(i=0;i<256;i++)//根据频率(权值)大小,对结点进行排序,选择较小的结点进树 { for(j=i+1;j<256;j++) { if(header[i].count<header[j].count) { tmp=header[i];header[i]=header[j];header[j]=tmp; } } } for(i=0;i<256;i++) if(header[i].count==0)break;n=i;//外部叶子结点数为n个时,内部结点数为n-1,整个哈夫曼树的需要的结点数为2*n-1.m=2*n-1;for(i=n;i<m;i++)//构建哈夫曼树 { min1=999999999;//预设的最大权值,即结点出现的最大次数for(j=0;j<i;j++) { if(header[j].parent!=-1)continue; //parent!=-1说明该结点已存在哈夫曼树中,跳出循环重新选择新结点*/if(min1>header[j].count) { pt1=j;min1=header[j].count;continue; } } header[i].count=header[pt1].count;header[pt1].parent=i;//依据parent域值(结点层数)确定树中结点之间的关系header[i].lch=pt1;//计算左分支权值大小min1=999999999;for(j=0;j<i;j++) { if(header[j].parent!=-1)continue;if(min1>header[j].count) { pt1=j;min1=header[j].count;continue; } } header[i].count+=header[pt1].count;header[i].rch=pt1;//计算右分支权值大小header[pt1].parent=i; } for(i=0;i<n;i++)//哈夫曼无重复前缀编码 { f=i;header[i].bits[0]=0;//根结点编码0while(header[f].parent!=-1) { j=f;f=header[f].parent;if(header[f].lch==j)//置左分支编码0 { j=strlen(header[i].bits);memmove(header[i].bits+1,header[i].bits,j+1); //依次存储连接“0”“1”编码header[i].bits[0]='0'; } else//置右分支编码1 { j=strlen(header[i].bits);memmove(header[i].bits+1,header[i].bits,j+1);header[i].bits[0]='1'; } } } fseek(readfile,0,SEEK_SET);//从文件开始位置向前移动0字节,即定位到文件开始位置fwrite(&flength,sizeof(int),1,writefile); /*用来将数据写入文件流中,参数flength指向欲写入的数据地址, 总共写入的字符数以参数size*int来决定,返回实际写入的int数目1*/fseek(writefile,8,SEEK_SET);buf[0]=0;//定义缓冲区,它的二进制表示00000000f=0;pt1=8; /*假设原文件第一个字符是"A",8位2进制为01000001,编码后为0110识别编码第一个'0', 那么我们就可以将其左移一位,看起来没什么变化。下一个是'1',应该|1,结果00000001 同理4位都做完,应该是00000110,由于字节中的8位并没有全部用完,我们应该继续读下一个字符, 根据编码表继续拼完剩下的4位,如果字符的编码不足4位,还要继续读一个字符, 如果字符编码超过4位,那么我们将把剩下的位信息拼接到一个新的字节里*/while(!feof(readfile)) { c=fgetc(readfile);f++;for(i=0;i<n;i++) { if(c==header[i].b)break; } strcat(buf,header[i].bits);j=strlen(buf);c=0; while(j>=8)//对哈夫曼编码位操作进行压缩存储 { for(i=0;i<8;i++) { if(buf[i]=='1')c=(c<<1)|1;elsec=c<<1; } fwrite(&c,1,1,writefile);pt1++;//统计压缩后文件的长度strcpy(buf,buf+8);//一个字节一个字节拼接j=strlen(buf); } if(f==flength)break; } if(j>0)//对哈夫曼编码位操作进行压缩存储 { strcat(buf,"00000000");for(i=0;i<8;i++) { if(buf[i]=='1')c=(c<<1)|1;elsec=c<<1; } fwrite(&c,1,1,writefile);pt1++; } fseek(writefile,4,SEEK_SET);fwrite(&pt1,sizeof(long),1,writefile);fseek(writefile,pt1,SEEK_SET);fwrite(&n,sizeof(long),1,writefile);for(i=0;i<n;i++) { fwrite(&(header[i].b),1,1,writefile);c=strlen(header[i].bits);fwrite(&c,1,1,writefile);j=strlen(header[i].bits);if(j%8!=0)//若存储的位数不是8的倍数,则补0 { for(f=j%8;f<8;f++)strcat(header[i].bits,"0"); } while(header[i].bits[0]!=0) { c=0;for(j=0;j<8;j++)//字符的有效存储不超过8位,则对有效位数左移实现两字符编码的连接 { if(header[i].bits[j]=='1')c=(c<<1)|1;//|1不改变原位置上的“0”“1”值elsec=c<<1; } strcpy(header[i].bits,header[i].bits+8);//把字符的编码按原先存储顺序连接fwrite(&c,1,1,writefile); } } cout<<"文件压缩成功!"<<endl; length2=pt1--; div=((double)length1-(double)length2)/(double)length1;//计算文件的压缩率fclose(readfile);fclose(writefile);cout<<"压缩率为:"<<div*100<<"%"<<endl;return;}//解压voiddecompression(){ charfilename[255],outputfile[255],buf[255],bx[255];unsignedcharc;longi,j,m,n,f,p,l;longflength; doublelh;FILE*readfile,*writefile; cout<<"请输入要解压文件名:"; cin>>filename;readfile=fopen(strcat(filename,".hub"),"rb");if(readfile==NULL) { cout<<"文件打开失败!!,请检查该文件是否存在,或遇到未知文件"<<endl; return;}cout<<"输入解压后的文件名:";cin>>outputfile;writefile=fopen(outputfile,"wb");if(writefile==NULL) { cout<<"文件解压失败!"<<endl;return; } fread(&flength,sizeof(long),1,readfile);//读取原文件长度,对文件进行定位 lh=flength;fread(&f,sizeof(long),1,readfile);fseek(readfile,f,SEEK_SET);fread(&n,sizeof(long),1,readfile);for(i=0;i<n;i++) { fread(&header[i].b,1,1,readfile);fread(&c,1,1,readfile);p=(long)c;//读取原文件字符的权值header[i].count=p;header[i].bits[0]=0;if(p%8>0)m=p/8+1;elsem=p/8;for(j=0;j<m;j++) { fread(&c,1,1,readfile);f=c;itoa(f,buf,2);//将f转换为二进制表示的字符串f=strlen(buf);for(l=8;l>f;l--) { strcat(header[i].bits,"0"); } strcat(header[i].bits,buf); }header[i].bits[p]=0; }for(i=0;i<n;i++)//根据哈夫曼编码的长短,对结点进行排序 { for(j=i+1;j<n;j++) { if(strlen(header[i].bits)>strlen(header[j].bits)) { tmp=header[i];header[i]=header[j];header[j]=tmp; } } }p=strlen(header[n-1].bits);fseek(readfile,8,SEEK_SET);m=0;bx[0]=0;while(1)//通过哈夫曼编码的长短,依次解码,从原来的位存储还原到字节存储 { while(strlen(bx)<(unsignedint)p) { fread(&c,1,1,readfile);f=c;itoa(f,buf,2);f=strlen(buf);for(l=8;l>f;l--)//在单字节内对相应位置补0 { strcat(bx,"0"); } strcat(bx,buf); } for(i=0;i<n;i++) { if(memcmp(header[i].bits,bx,header[i].count)==0)break; } strcpy(bx,bx+header[i].count);/*从压缩文件中的按位存储还原到按字节存储字符, 字符位置不改变*/ c=header[i].b;fwrite(&c,1,1,writefile);m++;//统计解压缩后文件的长度if(m==flength)break;//flength是原文件长度 }fclose(readfile);fclose(writefile);cout<<"文件解压成功!"<<endl;}/*主函数*/voidmain(){cout<<"霍夫曼解、压文件系统"<<endl<<endl;cout<<"1.对文件进行压缩"<<endl;cout<<"2.对文件进行解压"<<endl;cout<<"0.退出系统"<<endl<<endl; cout<<"注意:压缩输入1,解压输入2,退出选择0"<<endl;while(1){ inta; cout<<"请选择项目:"; cin>>a;while(a!=0&&a!=1&&a!=2) { cout<<"输入错误,请核对后再输入"<<endl;cout<<"请选择项目:";cin>>a; }switch(a){case1:compress();break;case2:decompression();break;case0:exit(0);}}system("pause");//任意键继续system("cls");//清屏}硕士论文是硕士研究生所撰写的学术论文,具有一定的理论深度和更高的学术水平,更加强调作者思想观点的独创性,以及研究成果应具备更强的实用价值和更高的科学价值。硕士论文是硕士研究生所撰写的学术论文。优秀的硕士论文能够反映出作者对所学习专业的理论知识掌握的程度和水平,能够帮助作者构建起良好的完整的知识体系,还能够反映作者独立的科研能力和学术理论的应用水平,对研究的课题的思考和独立见解。较之学士论文,硕士论文应当具有一定的理论深度和更高的学术水平,更加强调作者思想观点的独创性,以及研究成果应具备更强的实用价值和更高的科学价值。因而撰写硕士论文将对作者提出更高的要求——数据资料翔实充分、论证分析详尽缜密、推理演算思路清晰、论文结构规范清晰、专业词汇运用准确。电路与系统学科研究电路与系统的理论、分析、测试、设计和物理实现。它是信息与通信工程和电子科学与技术这两个学科之间的桥梁,又是信号与信息处理、通信、控制、计算机乃至电力、电子等诸方面研究和开发的理论与技术基础。因为电路与系统学科的有力支持,才使得利用现代电子科学技术和最新元器件实现复杂、高性能的各种信息和通信网络与系统成为现实。信息与通讯产业的高速发展以及微电子器件集成规模的迅速增大,使得电子电路与系统走向数字化、集成化、多维化。电路与系统学科理论逐步由经典向现代过渡,同时和信息与通讯工程、计算机科学与技术、生物电子学等学科交叠,相互渗透,形成一系列的边缘、交叉学科,如新的微处理器设计、各种软、硬件数字信号处理系统设计、人工神经网络及其硬件实现等。广告提案广告提案广告提案的准备工作创意、表现提案广告实施计划提案策略提案广告策划大师广告策划的含义、特点及作用广告策划的内容和程序广告策划的基本原则广告调查与分析广告市场调查的内容广告市场调查的步骤广告市场调查问卷的构成设计市场细分与产品定位市场细分产品定位广告战略策划广告预算策划广告创意广告文案创意第一节平面广告创意广播广告创意电视广告创意网络广告创意广告媒体与渠道策划广告推进程序策划广告实施策略广告效果评估广告策划文案写作广告策划书的编制技巧可行性研究报告行业分析报告可行性研究可行性报告项目可行性报告行业调查报告可行性报告格式调查报告报告格式辞职报告述职报告实习报告社会实践报告报告范文申请报告材料加工硕士论文,主要介绍液态金属的成型工艺、金属焊接成型和材料表面处理工程。具体包括:液态金属的工艺性能、砂型铸造、铸造工艺设计、铸造工艺CAD/CAE、电弧的特性、焊丝的熔滴过渡、焊缝成形、埋弧焊、氩弧焊、二氧化碳气体保护焊、等离子弧焊、热喷涂、气相沉积、激光表面工程技术等。是硕士研究生所撰写的学术论文,具有一定的理论深度和更高的学术水平,更加强调作者思想观点的独创性,以及研究成果应具备更强的实用价值和更高的科学价值。试卷分析中学试卷高中试卷高考试卷英语四级试卷成人高考试卷考卷公务员考试小学试卷中考试卷高考试卷高考试卷数学试卷英语试卷语文试卷医学论文,论文下载中心免费论文,毕业论文,各专业论文论文联盟-论文网,论文,论文下载,论文发表,论文网站,毕业论文,论文,毕业论文,论文下载,论文范文-找论文网论文,毕业论文,论文下载,论文范文-找论文网
社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。在餐厅里,别人一眼就能把我人出是一名正在读书的学生,我问他们为什么,他们总说从我的脸上就能看出来,也许没有经历过社会的人都有我这种不知名遭遇吧!我并没有因为我在他们面前没有经验而退后,我相信我也能做的像他们一样好.我的工作是在那做传菜生,每天9点钟-下午2点再从下午的4点-晚上8:30分上班,虽然时间长了点但,热情而年轻的我并没有丝毫的感到过累,我觉得这是一种激励,明白了人生,感悟了生活,接触了社会,了解了未来.在餐厅里虽然我是以传菜为主,但我不时还要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年佛山市顺德区勒流梁季彝纪念学校临聘教师招聘备考题库及答案详解1套
- 2025年西湖大学Vita编辑部招聘工作人员备考题库及完整答案详解1套
- 2025年四川省文化和旅游发展研究中心公开考核招聘工作人员的备考题库及答案详解一套
- 2025年马鞍山市住房公积金管理中心编外聘用人员招聘备考题库含答案详解
- 2025年广州医科大学附属第五医院人才招聘计划备考题库完整答案详解
- 2025年杭州市第九人民医院公开招聘编外工作人员5名备考题库及完整答案详解1套
- 卫星数据处理题库及答案
- 2025年新疆西天山国家级自然保护区管理中心面向社会引进高层次人才备考题库及1套参考答案详解
- 2025年赣州市建兴控股投资集团有限公司招聘备考题库及答案详解参考
- 2025年中国医学科学院医学生物学研究所第二批公开招聘10人备考题库及参考答案详解一套
- 中医推拿知识培训课件
- 河道水管抢修方案(3篇)
- 沃柑种植合同协议书
- 河南省许昌市2024-2025学年八年级上学期数学期末测评卷(含答案与解析)
- 2024-2025学年四川省成都市高一上学期期末教学质量监测英语试题(解析版)
- 人生中的转折点主题班会
- GB/T 44934-2024电力储能用飞轮储能单元技术规范
- 陈景润数学家人物介绍
- 【浙教版】一年级上册《劳动》《水培植物我养护》
- 2024秋期国家开放大学本科《国际经济法》一平台在线形考(形考任务1至4)试题及答案
- 医学伦理学(山东中医药大学)智慧树知到答案2024年山东中医药大学
评论
0/150
提交评论