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

上传人:第*** 文档编号:55663680 上传时间:2018-10-03 格式:PDF 页数:16 大小:285.68KB
返回 下载 相关 举报
常州大学  课程设计  编码解码_第1页
第1页 / 共16页
常州大学  课程设计  编码解码_第2页
第2页 / 共16页
常州大学  课程设计  编码解码_第3页
第3页 / 共16页
常州大学  课程设计  编码解码_第4页
第4页 / 共16页
常州大学  课程设计  编码解码_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《常州大学 课程设计 编码解码》由会员分享,可在线阅读,更多相关《常州大学 课程设计 编码解码(16页珍藏版)》请在金锄头文库上搜索。

1、序号:学号:11417214CHANGZHOUUNIVERSITY课程设计设计课程名称:C 语言课程设计题目:编码解码学 生 姓 名:刘垲学院(系): 信息学院专 业 班 级: 自动化 112指 导教 师: 周天彤 专业技术职务:设计时间: 2012 年 6 月 11 日 2012 年 6 月 19 日目录 1、编码解码任务书2、课程设计正文(1)任务主要功能概述(2)任务书基本要求分析和内容描述(3)系统的功能结构框图(4)C 语言程序代码(5)系统使用说明书3、课程设计日志及心得体会编码解码任务书一、目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完

2、成一个简单的数据压缩解压系统, 并能最终实现本系统的功能要求。二、功能要求【题目描述】在压缩算法中,有一种算法叫做游程压缩算法,其算法是如果遇到多个连续相同的字节,就先记录该字节的连续的个数,然后再记录该字节。例如字符串 AAABBCCCCCCAAA 压缩结果是 3A2B6C3A,结果只需要 8 字节就存贮了原先 14 字节的内容。不过这种方法有个缺点,如果单个元素较多的时候,反而会大于原先压缩前的内容。例如AAABBCDEF 结果是 3A2B1C1D1E1F,大于原串长。因此设置一个特殊字节,如果有连续出现的字符,就用一个表示下面是压缩数据,然后接着一个连续个数,再是被压缩的字节。例如第一个

3、例子中,被压缩成3A2B6C3A 第二个例子,被压缩成3A2BCDEF。实现这种算法。并 且 考 虑 如 何 改 良 该 算 法 。 Windows 提 供 一 个 压 缩 工 具compress.exe,可用来压缩大文件,可以通过 VC 自带的解压缩库lzexpand.dll 来解压缩。你的程序需要实现以下功能:1字符串简单编码2字符串简单解码3字符串改进编码4字符串改进解码5解压缩由命令行 compress 生成的压缩文件。【题目要求】(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2) 在第一,三个功能中,用户输入源文件名称和

4、目标文件名称,你的程序打开源文件,进行编码,结果放在目标文件中,同时把结果显示再屏幕上(3)在第二,四个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行解码,结果放在目标文件中,同时把结果显示再屏幕上(4)在功能 5 中,输入压缩文件名和解压以后的文件名,直接解压出结果文件。【输入/输出要求】(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。 进入每个操作后, 根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。课程设计正文一、编码解码任务书主要功能概述编码解码任务书系统主要实现以下

5、功能:1、字符串简单编码。2、字符串简单解码。3、字符串改进编码。4、字符串改进解码。5、解压缩由命令行 compress 生成的压缩文件。6、退出。【补充】执行一个功能后,按 enter 键可以继续选择功能键,执行下一个任务。在未退出的条件下,系统可以连续多次执行上述的 5 个功能。二、任务书基本要求分析和内容描述【要求分析】(1)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2) 在第一,三个功能中,用户输入源文件名称和目标文件名称,你的程序打开源文件,进行编码,结果放在目标文件中,同时把结果显示再屏幕上(3)在第二,四个功能中,用

6、户输入源文件名称和目标文件名称,你的程序打开源文件,进行解码,结果放在目标文件中,同时把结果显示再屏幕上(4)在功能 5 中,输入压缩文件名和解压以后的文件名,直接解压出结果文件。【程序要求】(1) 程序正确。能够严格实现任务书中描述的功能;(2) 界面友好。尽可能使界面友好、直观、易操作;(3) 风格友好。源程序应有良好的编码风格,使程序容易阅读。【输入/输出要求】(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。 进入每个操作后, 根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。三、系统的功能

7、结构框图主函数 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 filename150,filename25

8、0,a100,b100; 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) ai=fgetc(fp1); t=i; i+; fclose(fp1); /打开目标文件/ void fun2() printf(“输入目标文件名:“); scanf(“%s“,filename2); if(fp2=fo

9、pen(filename2,“w“)=NULL) printf(“cannot open the file“); exit(1); /字符串简单编码/ void jdbm() j=0;k=1; fun1(); fun2(); printf(“简单编码结果为:“); for(i=0;i“); while(p=getchar() switch(p) case 1: printf(“*字符串简单编码 *n“);jdbm();getchar();getchar();goto loop; case 2: printf(“*字符串简单解码 *n“);jdjm();getchar();getchar();g

10、oto loop; case 3: printf(“*字符串改进编码 *n“);gjbm();getchar();getchar();goto loop; case 4: printf(“*字符串改进解码 *n“);gjjm();getchar();getchar();goto loop; case 5: printf(“*解压缩由命令行 compress 生 成的压缩文件*n“);jy();getchar();getchar();goto loop; case 6: printf(“*退出 *n“);exit(1); goto loop; 五、系统使用说明书 (1) “编码解码”任务书明书有

11、一个菜单。应用程序运行后,会显示这个菜单,然后用户通过菜单项的相应键选择希望进行的操作项目。(2) 在第一,三个功能中,用户选择功能键 1 或功能键 3 后,按提示输入源文件名称和目标文件名称, 程序将打开源文件, 进行编码,结果放在目标文件中,同时把结果显示再屏幕上。(3)在第二,四个功能中,用户选择功能键 2 或功能键 4 后,按提示输入源文件名称和目标文件名称, 程序将打开源文件, 进行解码,结果放在目标文件中,同时把结果显示再屏幕上。(4)在功能 5 中,用户选择功能键 5 后,输入压缩文件名和解压以后的文件名,直接解压出结果文件。(5)一个功能任务执行后,按 enter 键可以继续选

12、择,多次执行各项功能。通过菜单项选择功能键 6 则直接退出。课程设计报告正文14/16六、设计日志及心得体会第一天阅读题目,和同学交流了,自己理解,确定思路,编写了菜单。第二天分块编写了字符串简单编码和简单解码。第三天分块编写了字符串改进编码和改进解码。第四天查询 compress 原理编码的资料,结合网络课堂的帮助,完成了 jy 函数编写。第五天将输入源文件和目标文件的函数独立出来。第六天对程序进行了部分修改。完成了课程设计说明书 。经过艰苦奋斗,课程设计终于完成了。回想其中的过程,既有快乐又有烦恼。刚开始上课时,还在迷茫这门课程,想着C 语言程序设计到底事学什么的,有什么用。不过,这些感受

13、都是在对这门课程不了解的情况下产生的。 后来慢慢的接触多了, 听老师讲的多了, 了解多了,渐渐的产生了兴趣。尤其是学到上机操作程序时,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过一个学期的学习,我掌握了基本知识。下学期的时候,才知道 C 语言还有课程设计。当时有点心怯,感觉课程设计是很高深的东西,而我们学的东西很少,很零散,不知该怎么综合到一起。刚看到课程设计题目时, “编码解码”任务书,感觉应该是很难完成的题目。经过认真的阅读和理解题目,逐渐有了大概的思路。和同一组的同学相互交流各自对题目的理解后,对任务书的编写思路更清晰了。 把大题目分为一个个小的功能, 小

14、函数编写后,感觉就简单多了。我把整个程序的思路理清后,就开始着手认真的分课程设计报告正文15/16块的写程序,一个函数一个函数的编写。有自己总是调试解决不了的错误就查询资料,确定疑惑的知识点是否出错,或是和同组的同学交流。经过七八天的努力, 课程设计终于完成了。现在想来, “编码解码”任务书组要是对文件的操作,其中还含有循环结构的运用。解压 compress 压缩的文件是一个难点,而老师也给出了一些例子作为参考。 从老师给出的例子中我也得到了不少启发, 然后结合对题目的理解参照网络课堂帮助, 经过努力也完成了。课程设计结束了,但是这段时间里,我又学到了更多 C 知识,如:对文件的操作等, 同时我也被提醒以后办事的时候要认真, 仔细,考虑周全。 ,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。课程设计报告正文16/16

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号