下周的课程设计,我选择的这个题目,具体的实现应该不是问题,一个下午就搞定了,但是程序只是实现了基本的编码与译码的功能,
文件的压缩还是没有做好,我想这应该是在位操作那块的问题。。。
如果单从编码与译码的角度说,马上就可以验收了,但是感觉还是不够完善,期待在写入后者其他的方面有些与众不同的地方。
在调试程序的时候犯下的错误汇总:
1:文件在之前打开后没有关闭,再次打开会失败的,比较隐蔽的问题,所以,在进行文件操作的时候,应该养成当文件操作完毕后立即
关闭的习惯
2:圣诞的早上,终于把文件压缩的功能实现了,原理其实就是将所有的编码串用 bit 来存,这样就能节省一些空间了,
我用的方法和网上的比太一样,我先是把编码通过字符串合并到一起,组成一个字符串,这个字符串就代表了文件中的内容,
然后将他们转换成 bit ,8位作为一组,写入压缩文件,这样同样能够达到压缩的目的。。。
3:12月28号:本以为程序已经完成,可是在上机的时候和同学交流的时候发现,自己程序的健壮性是不错的,但是,在设计之初,有些问题没有下好,造成了一些使用上的不便,主要的问题在于,我没有将编码器与译码器的数据有效的隔离,导致了两者的有些莲藕性,
对于面向对象的程序设计思想,领悟的还是不够好,不过,这个问题很小,回到寝室,我马上的搞定了。。。
4: 12月28号 :将界面写好后,重新调试程序时,发现了一个问题,那就是在编码结束后,译码会产生错误,经过调试发现,程序
在建立二叉树树,一个结构的指针由于在编码建树的过程中的运动,导致在译码的时候,不能正确的指向开始的位置发现这样的问题,
基本上,我就能猜到应该是数据的问题了,只需要重新定位指针的位置就可以解决了,当然也可以通过写一个函数来处理所有的数据,
看起来像是构造函数的事情了。。。
这么看,我还是挺强大的。。。O(∩_∩)O哈哈~。。。
现在将编码器与译码器分开使用同样不会有问题,基本上对所有的测试数据都能通过的。。。
只是在于压缩上,不是非常完美,今天下午遇到的问题是:我本以为,我可以不需要重建二叉树,就能达到译码,但是在读取文件的时候,老是不能将之前写入的编码序列读出来,可能是写入的问题,之前采取的方法,不通过重建二叉树同样能实现,但是,这是因为他们二者有数据
上的共享造成的,经过我的测试,只要重新初始化存储编码的结构,在译码时就不能读出之前写入的编码,也就不能完成译码了。。。
针对上边的情况,我还是采取了比较常规的做法,重建二叉树,完成了译码功能。。。
今天的验收,一切都是那么的顺利,几乎没有什么提问,一直是我牵着老师的鼻子走,感觉就是这样的,如果这个东西完全是你自己做的,
你一定会从中得到收获,并且会遇到问题,如果你能把问题独立解决它们,那么你根本不会在乎老师问你什么,那些技术细节,你一定会知道的。。。
更何况老师其实也不是每个都很负责。。。
就在昨天,补交linux 实验的时候,问了那老师一个问题,现在想想,那老师真的不咋地。。。
上那课几乎就是浪费时间,都不知道他上课在讲什么东西。。
居然连过滤驱动都没听说过,真是让人很失望,而且摆出一副恶心的样子,让人讨厌。。。
我想:这更坚定了我的选择。。
完。。。。