常州大学 课程设计 编码解码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序号:

学号:11417214

C

H

A

N

G Z H O

U U N I V E R

S

I

T

Y

课程设计设计课程名称:C语言课程设计

题目:编码解码

学生姓名:刘垲

学院(系):信息学院专业班级:自动化112指导教师:周天彤专业技术职务:

设计时间:2012年6月11日 2012年6月19日

目录

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)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

三、系统的功能结构框图

主函数mian

字符串简单编码字符串

简单解

解压缩由命令行

compress生成的压缩

文件

字符串

改进解

字符串

改进编

调用fun1(),fun2()函数

按enter键解束

jdbm()jdjm()gjbm()gjjm()jy()

目录退出

四、C语言程序代码

//头文件//

#include

#include

#pragma comment(lib,"lz32.lib")

#include

#include

#include

//定义全局变量//

FILE*fp1,*fp2;

char filename1[50],filename2[50],a[100],b[100]; int i,j,k,t;

//打开源文件并读出字符串//

void fun1()

{

i=0;

printf("输入源文件名:");

scanf("%s",filename1);

if((fp1=fopen(filename1,"r"))==NULL)

{

printf("cannot open the file");

exit(1);

}

while(!feof(fp1))

{

a[i]=fgetc(fp1);

t=i;

i++;

}

fclose(fp1);

}

//打开目标文件//

void fun2()

{

printf("输入目标文件名:");

scanf("%s",filename2);

if((fp2=fopen(filename2,"w"))==NULL)

{

printf("cannot open the file");

exit(1);

}

}

相关文档
最新文档