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

📄 复件 huffman.cpp

📁 Huffman编结码程序
💻 CPP
字号:
/*
 * Copyright(c)2006,华中科技大学电信系雨点工作室
 * All rights reserved.
 *
 * 文件名称: Huffman.cpp
 * 摘    要: 主程序
 *
 * 当前版本: 0.1
 * 作    者: 万吉
 * 完成日期: 2006年11月20日
 *
 * 修改日期: 2006年11月21日
 * 修改内容: Help函数内容
 *
 */
#include "StdAfx.h"

bool MainMenu();
	void Help();
	bool HufCoding();
	bool HufDecoding();


//主函数
int main()
{
	// 输出欢迎界面
	printf("\n");
	printf("%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n",
		3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);
	printf("\n\n\n");
	printf(" %c %c %c %c %c %c %c %c ", 16,16,16,16,16,16,16,16);
	printf("欢 迎 来 到 哈 夫 曼 编/译 码 系 统 !");

	printf("%c %c %c %c %c %c %c %c\n", 17,17,17,17,17,17,17,17);
	printf("\n");
	printf("                       %c   \n",15);
	printf("                      %c %c  \n",15,15);
	printf("                     %c   %c \n",15,15);
	printf("                    %c     %c            %c    \n",15,15,15);
	printf("                    %c     %c            %c    \n",15,15,15);
	printf("                     %c   %c            %c %c   \n",15,15,15,15);
	printf("                      %c%c%c            %c   %c               雨点工作室 \n",15,15,15,15,15,15);
	printf("                                    %c     %c \n",15,15);
	printf("                                   %c       %c                制作\n",15,15);
	printf("                                   %c       %c\n",15,15);
	printf("                                    %c     %c \n",15,15);
	printf("                                     %c%c%c%c%c  \n",15,15,15,15,15);

	printf("\n\n                     %c %c 请按任意键进入主菜单 %c %c\n",16,16,17,17);
	printf("\n\n");
	printf("%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c\n",
		3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);
	getch();

	while(!MainMenu());
	return 0;
}

/*
 * 函数功能: 提供主菜单
 * 函数参数: 无
 * 返 回 值: bool
				返回true正常退出
				返回false重复菜单
 */
bool MainMenu()
{
	// 输出菜单
	system("cls");
	cout << "\n/*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*/\n";
	cout << "\n1. 对文件进行哈夫曼编码\n";
	cout << "\n2. 对文件进行哈夫曼译码\n";
	cout << "\n3. 快速入门\n";
	cout << "\n4. 退出\n";
	cout << "\n/*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*/\n" << endl;
	// 接收用户输入
	int choice=0;	// 用户选择操作
	char str[32];	// 用作缓冲, 防止非法输入
	cout << "\n请选择您要进行的操作: ";
    gets(str);	
	choice = atoi(str);
	
	// 执行用户选择操作
	switch(choice)
	{
	case 1:				// 文件编码
		HufCoding();	
		break; 
	case 2:				// 文件译码
		HufDecoding();	
		break; 
	case 3:				// 快速入门
		Help();			
		break;
	case 4:				// 退出
		return true;	
	default:			// 输入错误,重试
		cout << "\n输入错误,请重试!" << endl;
		cout << "\n按任意键继续......\n" << endl;
		getch();				
	} 
	return false;
}

/*
 * 函数功能: 帮助菜单
 * 函数参数: 无
 * 返 回 值: void
 */
void Help()
{
	system("cls");
	
	cout << "\n/**********************************快速入门**********************************/\n" << endl;

	cout << "1. 选\"1\" 进入 \"对文件进行哈夫曼编码\", 程序将提示输入文件名\n   合法的文件名应包括完整路径" << endl;
	cout << "   示例: D:\\\\Huffman\\\\test.txt\n   即为对D盘Huffman目录下test.txt文件编码." << endl;
	cout << "   程序会自动显示哈夫曼编码表, 并对文件进行编码\n" << endl;
	
	cout << "2. 选\"2\" 进入 \"对文件进行哈夫曼译码\", 要求输入文件名\n   合法的文件名同上, 后缀为 .huf" << endl;
	cout << "   示例: D:\\\\Huffman\\\\test.huf\n   即为对D盘Huffman目录下test.huf文件解码." << endl;
		
	cout << "\n/**********************************快速入门**********************************/" << endl;
	
	cout << "\n按任意键返回主菜单......\n" << endl;
	getch();		
}

⌨️ 快捷键说明

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