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

📄 main.cpp

📁 这是一个用于的压缩与解压的源代码
💻 CPP
字号:
#include<iostream>
#include<fstream>
#include<bitset>
#include"head.h"
#include"head2.h"
#include"head3.h"
using namespace std;
void jieyasuo(element hufftree[],node flag[ ],bit bitvec[],int stare);
void bianma(element hufftree[],int m,node flag[ ],bit bitvec[]);
int yasuo(element hufftree[],int m,node flag[ ],bit bitvec[]);
void huffman( element hufftree[ ],abcd letter[ ],int m );
int main()
{
	char ch;
	element hufftree[2000];
	abcd letter[256] ;
	bit bitvec[256];
	node flag[10000];
	int m=0;
	int i=-1,sign=-1,j,stare;
	cout<<"************************************* "<<endl;
	cout<<"      *******欢迎您测试*******"<<endl;
	cout<<"**************************************"<<endl;
	cout<<endl<<endl<<endl;
	char z=NULL,q=NULL,b=NULL;
	while(1)
	{
		while(1)
		{
			cout<<"请把要压缩的文件输入到f1.txt中:"<<endl;
			cout<<endl;
			cout<<"Y已经输入 N没有输入 T 退出程序"<<endl;
			cin>>z;
			if(z=='y'||z=='Y')
				break;
			else if(z=='T'||z=='t')
				exit(0); 
			else
				continue;
		}
		int select(element,int,int);
		ifstream infile("f1.txt",ios::in);
		infile.get(ch);
		letter[m].character=ch;
		letter[m].number=1;
		m++;
		while(infile.get(ch))
		{
			for(i=0;i<m;i++)
			{
				if(ch==letter[i].character)
				{
					letter[i].number++;
					break;
				}
			}	
			if(i==m)
			{
				letter[m].character=ch;
				letter[m].number=1;
				m++;
			}
		}
		abcd temp;
		for(i=0;i<m-1;i++)
			for(j=0;j<m-1;j++)
				if(letter[j].number>letter[j+1].number)
				{
					temp.number=letter[j].number ;
					temp.character=letter[j].character ;
					letter[j].number=letter[j+1].number;
					letter[j].character=letter[j+1].character;
					letter[j+1].number=temp.number;
					letter[j+1].character=temp.character;
				}
				huffman(hufftree, letter,m);
				bianma(hufftree ,m,flag,bitvec);
				stare=yasuo(hufftree,m,flag, bitvec);
                cout<<" 是否解压缩文件"<<endl;
				cout<<"Y 是        N 不   "<<endl;
				cin>>b;
				if(b=='Y'||b=='y')
					jieyasuo(hufftree,flag,bitvec,stare);
				cout<<"是否继续压缩文件?"<<endl;
				cout<<" Y 是        N 不     T 退出程序"<<endl;
				cin>>q;
				if(q=='Y'||q=='y')
					continue;
				else if(q=='T'||q=='t')
					exit(0);
				else 
					break;
	}
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -