武汉工程大学计算机科学与工程学院 综合设计报告
致 谢
在我们课程设计完善过程中,我遇到了这样或那样的技术问题,但经过自己的不懈努力及查阅大量的资料,最终都得到了基本满意的答案。同时,其他同学也给了我许多有益的启示,促动和帮助,使我能够顺利的完成课题。
感谢所有给予我帮助的老师,他们辛勤耕作,传道授业,不仅使我们开阔了视野,拓宽了思路,增长了学识,而且为我们今后的工作和学习打下了牢固的基础,也使增强我们对计算机的兴趣。是老师给予我无限的创造力和奋斗力,使我有无限的信心和希望来完成本次的实训内容。
同时也感谢学校给了我们这次难得的实训机会,实训的过程让我们看到了自己理论知识上的不足,已掌握的知识也在这次的实训中有了质的飞跃,知识能够应用了才是真正掌握了,也希望学校多给我们一些这样的机会。
- 12 -
武汉工程大学计算机科学与工程学院 综合设计报告
参考文献
[1] 李晓林,张俊.程序设计基础[M].北京:中国铁道出版社 ,2008 [2] 张俊,张彦铎.C++面向对象程序设计[M].北京:中国铁道出版社 ,2008 [3] 陈慧南.数据结构—使用C++语言描述[M].北京:人民邮电出版社 ,2008
- 13 -
武汉工程大学计算机科学与工程学院 综合设计报告
附录 主要程序代码
(1)main.cpp调用各函数的主函数: #include \#include \#include
void main()
{ HuffmanT T; int i=0; char t; char* filename = \报文.txt\
ifstream ifs(filename); char l; while(ifs.get(l)) { a[i]=l; i++; }
ifs.close(); cout<<\哈夫曼编码/译码 系统\ cout<<\第一层以定义权值编码/译码。\ cout<<\第二层自定义 编码/译码。\ cout<<\退出\ cin>>t; switch(t) { case '1': CreatHT1(T); break; case '2': CreatHT2(T); break; default: cout<<\退出!\ } }
- 14 -
武汉工程大学计算机科学与工程学院 综合设计报告
(2)HfmTree.h存储两层需要的共有函数 #ifndef HFM_AA #define HFM_AA #include
typedef Node HuffmanT[200]; //选取两个最小权值
void SelectMin(HuffmanT T,int t,int &p1,int &p2) { int i,j; for(i=0;i
- 15 -
武汉工程大学计算机科学与工程学院 综合设计报告
p2=j; } }
//进行哈夫曼编码并输出结果 void Output(HuffmanT T,int p) { char* filename=\译码.txt\ ofstream ofs(filename); int i,j,par,temp; for(i=0;i
=0;j--) { if(T[i].code[j]!=2) cout<
- 16 -