课程设计的心得体会
姓名:李洋 学号:0804012035 班级:计本二班
这次试验我做的是英文文章的压缩和解压缩,要求使用哈弗曼编码实现这次过程。首先统计英文文章中各字符出现的频率,并把其作为建立哈弗曼树的叶子节点建树,然后读取每个叶子节点的哈弗曼编码。在把这些编码按顺序存放在一个文件中,然后没8位强制转化为整形数字,再把整数强制转化为字符存储,即作为压缩后的文件存放。解压过程,即是首先读取压缩后的文本文件,把字符转化为整数,在用二进制数表示,最后存放起来,而后在用header【i】.bits与刚存放的二进制字符串进行比较,如果相等,则将header【i】.b写入解压后文件。解压时,就是读取压缩后的文本文件,每读取一个字符时,将其强制转化为整数,然后在将这个整数转化为二进制数,之后在将其和原先的字符编码进行比较,如果相等,则删除之前相等的那部分二进制编码,然后继续读取压缩后的文档,继续以这种方法处理,直到把压缩文档全部处理完毕,即解压成功,之前已经生成一个新文本文档,一边解压,一边存放字符。
一开始做程序时,在解压过程遇到了问题,不知道如何使用哈弗曼编码进行压缩,如果只是将二进制代码存放的话,根本起不到压缩作用,最后使用了一个转化,但是在解压缩过程中又遇到了问题,后来发现按原路返回即可实现解压。
本次试验结束,我首先对于文件操作有了一定的了解,另外对于数据结构与算法中的哈弗曼这一节内容有了较为清晰的了解了。
做了这次课程设计着实感觉到了不少困难,对于数据结构这一门课,有了不少心得。
第一、熟记各种数据结构类型,定义、特点、基本运算(分开点一点也没多少东西,难度不大,但是基本)。
第二、文本文档的读取,这个程序中很大一部分都是用了文件,所以熟悉这部分着实重要。
第三,多做习题,看题型,针对题型来有选择演练,在课程设计中游刃有余。
数据结构看上去很复杂,但你静下心来把书扫上几遍,分解各个知识点,这一下来,学数据结构的思路就会很清晰了。
而这两周也确实学到了不少东西,我的程序主要的是关于文件的读取以及哈弗曼树的建立,并且对于一篇文章使用哈弗曼编码进行压缩和解压缩的方法可以说比较清晰明了了。课程设计对我们来说是一个非常难得机会,这可以说是一次实战,可以提高自己独立解决问题的能力,另外也知道如何去设计程序解决一个实际问题,合理利用这次机会,可以得到很大的提高。
第二篇:数据结构与算法课程设计 心得体会 学习体会 (19)
课程设计心得体会
学号:0804012028 姓名:陈发银 班级:08计本(2)班 数据结构的课程设计,今天终于算是完工了,从来都没独自解决这么大的一个程序了,虽然里面不是很完备,但是总体还是一个比较能体现数据结构知识点能力的程序了,当然只是相对于我这个初学者来说。看着自己的成果,真的很高兴,很有成就感。
在这次课程设计中,我学到了很多东西,广义表在书中所占了比例不多,具体操作书上也没有详细的介绍,所以在编程序的时候给我带来了很大的难度,正是由于这个难度,使我认识到,不能完全的依赖书本上提供的信息,要有自己的分析、推广能力,虽然书上广义表介绍的不多,可是以前学的顺序表、线性表等的都可以拿来作为参考,通过以前的那些程序的实现,来对广义表进行操作。 当然了,现在说起来是感觉比较轻松,可是在实际编程的时候,确实是困难重重。 通过这次课程设计,我深深的感觉到实践的重要性,以前在课堂上听课,感觉什么都懂,学的知识都好简单,可是在实践的时候却是无从下手,不过还好有以前c++课程设计的经历做铺垫,在稳定下心情后,慢慢的就开始着手搞程序了,通过上网、去图书馆查资料,就这样一点一点地把程序的各个功能都实现了。
通过这次课程设计后,我认为以后要更加注重知识的应用性,不能只停留在课本上,这样学出来的都是死的知识,不能活学活用,以后所学的每个知识点,我都要争取独立的上机完成,一方面可以巩固学过的知识,另一方面又加强了动手操作能力,相信这种能力在以后的工作学习中都是非常重要的。
对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!
希望像数据结构课程设计这样的实践型课程学校能多多的开展,能增强我们的动手操作能力、独立解决问题的能力。
20xx年6月