信息论实验演示和在线测试系统

  • 格式:doc
  • 大小:718.50 KB
  • 文档页数:68

摘要《信息论基础》作为信息与计算科学、通信学科的一门专业课程,广泛应用于各个领域。

《信息论基础》是一门理论性和实践性都较强的学科,因此针对课程特点,开发相关实验演示与测试系统可以提高学生的实际操作能力和对课程的掌握水平。

在深入研究《信息论基础》相关基本理论和C++编程技术基础上,采用MFC+ACCESS+控制台编程设计并实现《信息论基础》实验演示与在线测试系统。

实验演示系统包括离散信息熵的计算、信道容量的计算、Huffman编码、LZW编码、DES 加密算法五个实验。

实验演示系统展示了实验的基本理论与操作,系统采用MFC+控制台编程实现,MFC做界面,具体实验操作采用控制台编程。

测试系统包括章节测试和课程测试,每部分都提供了试题,可以实时进行在线评分,系统采用MFC+ACCESS数据库实现,MFC实现答题和解析界面,题目和答案存储在数据库中,通过自动注册数据库实现界面和数据库的连接。

最后针对信息论课程实践教学要求进行测试,测试结果表明所有功都能流畅运行,满足设计需求。

关键词:信息论基础;实验演示系统;在线测试系统;MFC;控制台编程AbstractThe Information Theory Basis as, communications, information and computation science discipline of a professional course, widely used in various fields. The Information Theory Basis is a theory and practice are strong discipline, so according to the characteristics of curriculum development of related experimental demonstration and testing system can improve the students' practical ability and grasp of the course.In the further study of The Information Theory Basis based on related basic theory and C++ programming technology, using MFC+ACCESS+console programming design and implement The Information Theory Basis for experimental demonstration and online test system. Experimental demonstration system including discrete information entropy calculation, the calculation of channel capacity, Huffman coding ,LZW encoding and the DES encryption algorithm. Experiment demo system shows the basic theory and operation, the system USES MFC+Win32 ConsoleApplication, MFC interface, specific experimental operation in console programming. Test system includes chapters test and course test, each part provides the exam and can be online scoring, real-time system using MFC + ACCESS database implementation, MFC implementation problem solving and analytical interface, questions and answers are stored in database, the realization of automatic registration database through interface and the database connection.Finally based on information theory course practice teaching requirements for testing, test results show that all work can smooth running, meet the design requirements.Keywords: Information theory basis ; The experimental demonstration system ; The online test system ; MFC ; Win32 Console Application目录1 绪论 (1)1.1 编写目的 (1)1.2 技术说明 (1)1.2.1 C++ (1)1.2.2 MFC编程 (2)1.2.3 控制台程序 (2)1.2.4 ACCESS数据库 (3)2 国内外现状 (4)3 理论基础 (6)3.1 信息熵 (6)3.2 信道容量 (7)3.3 Huffman 编码 (9)3.4 LZW编码 (9)3.5 DES编码 (10)4 系统总体设计 (12)4.1 软件支持信息 (12)4.2 系统数据流 (12)4.3 总体结构 (13)4.4 系统数据结构设计 (13)5 详细设计 (15)5.1 开始界面 (15)5.1.1 设计图 (15)5.1.2 核心代码 (16)5.2 实验演示 (17)5.2.1 演示界面 (17)5.2.2 离散信息熵模块 (18)5.2.3 信道容量模块 (22)5.2.4 Huffman编码模块 (26)5.2.5 LZW编码模块 (30)5.2.6 DES加密模块 (33)5.3 测试系统 (36)5.3.1 答题模块 (36)5.3.1 答案解析模块 (42)6 总结 (45)致谢 (46)参考文献 (47)附录A:英文原文 (48)附录B:中文翻译 (58)1 绪论1.1 编写目的信息论作为计算机学科的一门基础课程,广泛的应用于计算的各个领域,如:编码学、密码学与密码分析学、数据传输数据压缩、检测理论、估计理论。

信息论课程的学习对于计算机专业的学生来说至关重要。

本论文,内容是信息论课程中的五个重要实验和课程测试。

实验演示模块实现离散信息熵、信道容量、Huffman编码、LZW编码、DES加密的演示,在学生掌握相关理论的基础之上,加深对实验的理解和运用,测试系统包括章节测试和课程测试,可以让学生清楚的了解自己对课程内容的掌握情况,及时查漏补缺。

1.2 技术说明1.2.1 C++C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式--面向对象编程、泛型编程和过程化编程。

最新正式标准C++于2014年8月18日公布。

其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性[1]。

C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。

C++设计直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。

C++设计无需复杂的程序设计环境。

C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比,可以直接访问物理地址,与汇编语言相比又具有良好的可读性和可移植性。

总得来说,C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。

它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。

另外,由于C语言的广泛使用,因而极大的促进了C++的普及和推广。

C++语言最有意义的方面是支持面向对象的特征。

虽然与C的兼容使得C++具有双重特点,但他在概念上完全与C不同,更具面向对象的特征。

出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。

关于此类话题,Bjarne Stroustrup的《C++语言的设计和演化》(1994)里做了详尽的陈述。

C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。

很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++。

1.2.2 MFC编程MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个C++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。

vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。

MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。

xx是版本,它封装了MFC内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。

但是MFC的封装很浅,所以效率上损失不大[2]。

1.2.3 控制台程序控制台程序是为了兼容DOS程序而设立的,这种程序的执行就好像在一个DOS窗口中执行一样,没有自己的界面。

所谓的控制台应用程序,就是能够运行在MS-DOS环境中的程序。

控制台应用程序通常没有可视化的界面,只是通过字符串来显示或者监控程序。

控制台程序常常被应用在测试、监控等用途,用户往往只关心数据,不在乎界面。

控制台程序是为了兼容DOS程序而设立的,这种程序的执行就好像在一个DOS窗口中执行一样,没有自己的界面。