📄 main.cpp
字号:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
#include "Huffman.h"
element huffTree[256];
HuffmanCode Hucode[256];
wElem w[256];//存储读入字符及其权值
char b[512];
int z[1000];
int o[10000];
int n=0;
void main()
{
cout<<"****************************************************"<<endl;
cout<<" 欢迎使用哈夫曼编译码系统!"<<endl;
cout<<"请选择您要完成的功能:"<<endl;
cout<<"(1) 初始化(I)"<<endl;
cout<<"(2) 建立哈夫曼树(B)"<<endl;
cout<<"(3) 编码(E)"<<endl;
cout<<"(4) 译码(D)"<<endl;
cout<<"(5) 印代码文件(P)"<<endl;
cout<<"(6) 印哈夫曼树(T)"<<endl;
cout<<"(7) 退出(Q)"<<endl;
cout<<"****************************************************"<<endl;
A: char choose;
char choose2;
cin>>choose;
switch(choose)
{
case 'I':
Initialize(w,n);
while(w[n].ch)
{
n++;
}
cout<<endl<<"初始化完成!"<<endl;
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
case 'B':
HuffmanBuilding(huffTree,w,n);
R: cout<<"想要打印该哈夫曼树吗?y/n"<<endl;
cin>>choose2;
if(choose2=='y')
goto B;
else if(choose2=='n')
{
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
}
else
{
cout<<"输入错误!请重新输入!"<<endl;
goto R;
}
case 'E':
HuffmanCoding(huffTree,Hucode,w,b,n);
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
case 'D':
Decode(huffTree,w,n);
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
case 'P':
Printcode(b);
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
case 'T':
B: cout<<"打印树:"<<endl;
TreePrinting(huffTree,n);
cout<<"请输入下一步要完成的功能:"<<endl;
goto A;
case 'Q':
break;
default:
cout<<"输入错误!请重新输入!"<<endl;
goto A;
}
delete []huffTree;
delete []Hucode;
delete []w;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -