📄 main.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 + -