⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 Huffman编码
💻 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 + -