-
序号:
学号:
11417214
Z
H
O
U
U<
/p>
N
I
V
课
设计课程名称:
R
S
C
H
A
E
I<
/p>
T
Y
N
G
程
设
计
C
语言课程设计
题
目:
编码解码
学
生
姓
名:
刘垲
学
院(系 ):
信息学院
专
业
班
级:
自动化
112
指
导
教
师:
周天彤
专业技术职务:
设计时间:
2012
年
6
月
11
日
< p>?
2012
年
6
月
19
日
目录
1、
编码解码 任务书
2、
课程设计正文
(1)任务主要功能概
述
(2)任务书基本要求分析和内容描述
(3)系统的功能结构
框图
(4)C
语言程序代码
(5)系统使用说明
书
3、
课程设计日志及心得体会
编码解码任务书
一、目的要求
本课程设计任务的目的是要求学生按照分析、设计
、编码、调试
和测试的软件开发过程独立完成一个简单的数据压缩解压系统,
最终实现本系统的功能要求。
二、功能要求
【题目描述】
在压缩算法中,有一种算法叫做游程压缩算法,其算法是如果
遇
到多个连续相同的字节,
就先记录该字节的连续的个数,
然后再记录
该字节。例如字符串
AAABBCCCCCCAAA
压缩结果是
3A2B6C3A,结果只
需要
8< /p>
字节就存贮了原先
14
字节的内容。不过这种方法有个缺点,
如果单个元素较多的时候,反而会大于原先压缩前的内容。例如
AAA
BBCDEF
结果是
3A2B1C1D1E1F,
大于原串长。< /p>
因此设置一个特殊字
节@,如果有连续出现的字符,就用一个@表示下面是
压缩数据,然后
接着一个连续个数,再是被压缩的字节。例如第一个例子中,被压缩
p>
成@3A@2B@6C@3A
第二个例子,被压缩成@3A@2BCDEF。 实现这种算法。
并
且
考
虑
如
何
改
良
该
算
法< /p>
。
Windows
提
供
一
< p>个压
缩
工
具
,可用来
压缩大文件,可以通过
VC
自带的解压缩库
来解压缩。
你的程序需要实现以下功能:
1.
2.
3.
4.
5.
字符串简单编码
字符串简单解码
字符串改进编码<
/p>
字符串改进解码
解压缩由命令行
compress
生成的压缩文件。
【题目要求】
(1)为各项操
作功能设计一个菜单。应用程序运行后,先显示这
个菜单,然后用户通过菜单项选择希望
进行的操作项目;
(2)
在第一,
三个功能中,
用户输入源文件名称和目标文件名称,
你的程序打开源文件,进行编码,结果放在
目标文件中,同时把结果
显示再屏幕上
(3)在第二,四个功能
中,用户输入源文件名称和目标文件名称,
你的程序打开源文件,进行解码,结果放在目
标文件中,同时把结果
显示再屏幕上
(4)在功能
5
中,输入压缩文件名和解压以后的文件名,直接解
压出结果文件。<
/p>
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然
后用户根据需要选择
相应的操作项目。
进入每个操作后,
根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示
信息,包括
输入的数据内容、格式及结束方式等。
课程设计正文
一、编码解码任务书主要功能概述
编码解码任务书系统主要实现
以下功能:
1、
2、
3、
4、
5、
6、
字符串简单编
码。
字符串简单解码。
字符串改进编码。
字符串改进解码。
解压缩由命令行
compress
生 成的压缩文件。
退出。
【补充】执行一个功能后,按
键可以继续选择功能键,执行下
一个任务。
在未退出的条件下,
系统可以连续多次执行上述的
5
个功
能。
二、任务书基本要求分析和内容描述
【要
求分析】
(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个
菜单,然后用户通过菜单项选择希望进行的操作项目;
(2)
在第一,三个功能中,用户输入源文件名称和目标文件名称,
你的程序打开源文件,进
行编码,结果放在目标文件中,同时把结果
显示再屏幕上
(3)
在第二,四个功能中,用户输入源文件名称和目标文件名称,
你的程序打开源文件,进行
解码,结果放在目标文件中,同时把结果
显示再屏幕上
(4)在
功能
5
中,输入压缩文件名和解压以后的文件名,直接解压
出结果文件。
【程序要求】
(1)
程序正确。 能够严格实现任务书中描述的功能;
(2)
界面友好。尽可能使界面友好 、直观、易操作;
(3)
风格友好。源程序应有良好的编码风格,使程序 容易阅读。
【输入/输出要求】
(1)应用程序运行后,先显示
一个菜单,然后用户根据需要选择
相应的操作项目。
进入每个操作后,< /p>
根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰
、明确的提示信息,包括
输入的数据内容、格式及结束方式等。
三、系统的功能结构框图
主函数
mian
目录<
/p>
退出
字
符
串
简
单
编
码
字
符
串
简
单
解
码
p>
字
符
串
改
进
编
码
字
符
串
改
进
解
码
解
压
缩
由
命
令
行
compress
生
成
的
压
< p>缩
文件
jdbm
()
jdjm
()
gjbm()
gjjm ()
jy()
调用
fun1(),fun2()
函数
按
enter
键解束
四、
C
语言程序代码
//
头文件
//
#include
#include
#prag
ma
comment(lib,
#include
#include
#include
//
定义全 局变量
//
FILE*fp1,*fp2;
ch
ar
filename1[50],filename2[50],a[100],b[100] ;
int
i,j,k,t;
//
打开源文件并读出字符串
//
void
fun1() p>
{
i=0;
printf(
输入源文件名:
scanf(
if((fp1=
fopen(filename1,
{
printf(
open
the
file
exit(1);
}
while(!feof(fp1))
{<
/p>
a[i]=fgetc(fp1);
t=i;
i++;
}
fclose(fp1);
}
//
打开目标文件
//
v
oid
fun2()
{
printf(
输入目标文件名:
scanf(
if((
fp2=fopen(filename2,
{
printf(
open
the
file
exit(1)
;
}
}
-
-
-
-
-
-
-
-
-
上一篇:常州大学石油化工学院食品学院2018年上半年
下一篇:大学分校与校区的区别