编码解码 课程设计.docx
- 文档编号:15877011
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:17
- 大小:69.18KB
编码解码 课程设计.docx
《编码解码 课程设计.docx》由会员分享,可在线阅读,更多相关《编码解码 课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
编码解码课程设计
课程设计
设计课程名称:
C语言课程设计
题目:
编码解码
目录
1、编码解码任务书
2、课程设计正文
(1)任务主要功能概述
(2)任务书基本要求分析和内容描述
(3)系统的功能结构框图
(4)C语言程序代码
(5)系统使用说明书
3、课程设计日志及心得体会
编码解码任务书
一、目的要求
本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成一个简单的数据压缩解压系统,并能最终实现本系统的功能要求。
二、功能要求
【题目描述】
在压缩算法中,有一种算法叫做游程压缩算法,其算法是如果遇到多个连续相同的字节,就先记录该字节的连续的个数,然后再记录该字节。
例如字符串AAABBCCCCCCAAA压缩结果是3A2B6C3A,结果只需要8字节就存贮了原先14字节的内容。
不过这种方法有个缺点,如果单个元素较多的时候,反而会大于原先压缩前的内容。
例如AAABBCDEF结果是3A2B1C1D1E1F,大于原串长。
因此设置一个特殊字节@,如果有连续出现的字符,就用一个@表示下面是压缩数据,然后接着一个连续个数,再是被压缩的字节。
例如第一个例子中,被压缩成@3A@2B@6C@3A第二个例子,被压缩成@3A@2BCDEF。
实现这种算法。
并且考虑如何改良该算法。
Windows提供一个压缩工具compress.exe,可用来压缩大文件,可以通过VC自带的解压缩库lzexpand.dll来解压缩。
你的程序需要实现以下功能:
1.字符串简单编码
2.字符串简单解码
3.字符串改进编码
4.字符串改进解码
5.解压缩由命令行compress生成的压缩文件。
【题目要求】
(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;
(2)在第一,三个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行编码,结果放在目标文件中,同时把结果显示再屏幕上
(3)在第二,四个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行解码,结果放在目标文件中,同时把结果显示再屏幕上
(4)在功能5中,输入压缩文件名和解压以后的文件名,直接解压出结果文件。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
课程设计正文
一、编码解码任务书主要功能概述
编码解码任务书系统主要实现以下功能:
1、字符串简单编码。
2、字符串简单解码。
3、字符串改进编码。
4、字符串改进解码。
5、解压缩由命令行compress生成的压缩文件。
6、退出。
【补充】执行一个功能后,按enter键可以继续选择功能键,执行下一个任务。
在未退出的条件下,系统可以连续多次执行上述的5个功能。
二、任务书基本要求分析和内容描述
【要求分析】
(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;
(2)在第一,三个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行编码,结果放在目标文件中,同时把结果显示再屏幕上
(3)在第二,四个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行解码,结果放在目标文件中,同时把结果显示再屏幕上
(4)在功能5中,输入压缩文件名和解压以后的文件名,直接解压出结果文件。
【程序要求】
(1)程序正确。
能够严格实现任务书中描述的功能;
(2)界面友好。
尽可能使界面友好、直观、易操作;
(3)风格友好。
源程序应有良好的编码风格,使程序容易阅读。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三、系统的功能结构框图
目录
四、C语言程序代码
//头文件//
#include
#include
#pragmacomment(lib,"lz32.lib")
#include
#include
#include
//定义全局变量//
FILE*fp1,*fp2;
charfilename1[50],filename2[50],a[100],b[100];
inti,j,k,t;
//打开源文件并读出字符串//
voidfun1()
{
i=0;
printf("输入源文件名:
");
scanf("%s",filename1);
if((fp1=fopen(filename1,"r"))==NULL)
{
printf("cannotopenthefile");
exit
(1);
}
while(!
feof(fp1))
{
a[i]=fgetc(fp1);
t=i;
i++;
}
fclose(fp1);
}
//打开目标文件//
voidfun2()
{
printf("输入目标文件名:
");
scanf("%s",filename2);
if((fp2=fopen(filename2,"w"))==NULL)
{
printf("cannotopenthefile");
exit
(1);
}
}
//字符串简单编码//
voidjdbm()
{
j=0;k=1;
fun1();
fun2();
printf("简单编码结果为:
");
for(i=0;i { if(a[i+1]! =a[i]||k==9) { b[j]=k+'0'; b[j+1]=a[i]; j=j+2; printf("%d%c",k,a[i]); fprintf(fp2,"%d%c",k,a[i]); k=1; } else k++; } fclose(fp2); printf("\n"); printf("按enter键继续。 "); } //字符串简单解码// voidjdjm() { fun1(); fun2(); printf("简单解码结果为: ");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码解码 课程设计 编码 解码