信息论与编码技术实验指导书

合集下载

信息理论与编码实验指导书

信息理论与编码实验指导书

《信息理论与编码》实验指导书武汉理工大学教材中心2009年7月实验一绘制二进熵函数曲线一、实验目的1.熟悉Matlab 工作环境及工具箱;2.掌握Matlab 绘图函数;3.理解熵函数表达式及其性质。

二、实验内容实验内容与要求内容:用Matlab 软件绘制二进熵函数曲线。

要求:1. 提前预习实验,认真阅读教材及相应的参考书,熟悉实验原理;2. 遵守实验室规定,实验过程中服从实验室管理人员和实验指导老师的管理;3. 独立完成实验,认真做好实验记录;4. 实验结束后,认真填写实验报告。

知识要点1. 信源熵的概念及其性质。

参照教材及参考书。

2. 二进熵公式:注意:虽然理论上定义0 ·log0 = 0 ,但是,在实际运算时,对数函数logx 的变量x 不能取0 值,而应设置一个系统默认的最小值eps 。

三、实验总结1、绘制二进熵函数曲线,观察曲线形状。

2、结合熵函数的性质,分析二进熵函数曲线的特点。

四、思考与提高1、绘制三元熵函数曲线,观察曲线形状。

2、结合熵函数的性质,分析三元熵函数曲线的特点。

p=0.00001:0.00001:0.99999;h=-p.*log2(p)-(1-p).*log(1-p);plot(p,h);title('二进熵函数曲线');ylabel('H(p,1-p)');p=linspace(eps,1-eps,100);q=linspace(eps,1-eps,100);[P,Q]=meshgrid(p,q);P_Q=P+Q;for n=1:100for m=1:100if P_Q(n,m)>=1Q(n,m)=nan;endendendH=-P.*log2(P)-Q.*log2(Q)-(1-P-Q).*log2(1-P-Q);mesh(P,Q,H);title('三维熵函数图像');实验二一般信道容量迭代算法一、实验目的1、熟悉Matlab 工作环境及工具箱;2、掌握一般信道容量迭代算法的原理。

信息论与编码技术》实验教案

信息论与编码技术》实验教案

信息论与编码技术实验教案第一章:信息论基础1.1 信息的概念与度量介绍信息的基本概念,信息源的随机性,信息的不确定性。

讲解信息的度量方法,如香农熵、相对熵等。

1.2 信道模型与容量介绍信道的概念,信道的传输特性,信道的噪声模型。

讲解信道的容量及其计算方法,如单符号信道、多符号信道等。

第二章:信源编码与压缩2.1 信源编码的基本概念介绍信源编码的定义、目的和方法。

讲解信源编码的基本原理,如冗余度、平均冗余度等。

2.2 压缩算法与性能评价介绍无损压缩算法,如霍夫曼编码、算术编码等。

讲解有损压缩算法,如JPEG、MP3等。

分析各种压缩算法的性能评价指标,如压缩比、重建误差等。

第三章:信道编码与错误控制3.1 信道编码的基本概念介绍信道编码的定义、目的和方法。

讲解信道编码的基本原理,如纠错码、检错码等。

3.2 常见信道编码技术介绍常用的信道编码技术,如卷积码、汉明码、奇偶校验等。

分析各种信道编码技术的性能,如误码率、编码效率等。

第四章:数字基带传输4.1 数字基带信号与基带传输介绍数字基带信号的概念,数字基带信号的传输特性。

讲解数字基带信号的传输方法,如无编码调制、编码调制等。

4.2 基带传输系统的性能分析分析基带传输系统的性能指标,如误码率、传输速率等。

讲解基带传输系统的优化方法,如滤波器设计、信号调制等。

第五章:信号检测与接收5.1 信号检测的基本概念介绍信号检测的定义、目的和方法。

讲解信号检测的基本原理,如最大后验概率准则、贝叶斯准则等。

5.2 信号接收与性能分析分析信号接收的方法,如同步接收、异步接收等。

讲解信号接收性能的评价指标,如信噪比、误码率等。

第六章:卷积编码与Viterbi算法6.1 卷积编码的基本原理介绍卷积编码的定义、结构及其多项式。

讲解卷积编码的编码过程,包括初始状态、状态转移和输出计算。

6.2 Viterbi算法及其应用介绍Viterbi算法的原理,算法的基本步骤和性能。

讲解Viterbi算法在卷积编码解码中的应用,包括路径度量和状态估计。

信息论与编码实验指导书

信息论与编码实验指导书

信息理论与编码实验教学指导书(试用教材)电子信息工程系2019年4月实验1.1 汉明码的编译码实验板实验一、实验目的1. 学习汉明码编译码的基本概念; 2. 掌握汉明码的编译码方法; 3. 验证汉明码的纠错能力。

二、实验仪器1. RZ9681实验平台 2. 实验模块: ● 主控模块● 信道编码与频带调制模块-A4 ● 频带解调与信道译码模块-A5 3. 100M 双通道示波器 4. 信号连接线 5. PC 机(二次开发)三、实验原理3.1汉明编译码介绍汉明码(Hamming Code )是一个可以有多个校验位,具有检测并纠正一位错误代码的纠错码,所以它也仅用于信道特性比较好的环境中,如以太局域网中,因为如果信道特性不好的情况下,出现的错误通常不是一位。

汉明码的检错、纠错基本思想是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就变成1)来将其纠正。

3.2汉明编译码原理汉明码编码采用()4,7汉明码,信息位数4=k ,监督位数3=-=k n r ,可以纠一位错码,生成矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1101000101010001100101110001G ,编码情况见表 1。

表 1()4,7 Hamming 编码表汉明码译码计算校正子[]321,,S S S S =,其中24561a a a a S ⊕⊕⊕= 13562a a a a S ⊕⊕⊕= 03463a a a a S ⊕⊕⊕=校正子S 的值决定了接收码元中是否有错码,并且指出错码的位置,见表2。

表2 错码位置示意3.3 举例说明信息位10013456=a a a a ,根据表 1()4,7 Hamming 编码表,编码为1001100,如果在信道传输的过程中产生一位误码,编码接收时变为1101100,我们计算校正子:124561=⊕⊕⊕=a a a a S 113562=⊕⊕⊕=a a a a S 003463=⊕⊕⊕=a a a a S校正子110=S ,查找表2 错码位置示意,5a 产生误码,则译码输出信息位1001。

信息论与编码实验指导书

信息论与编码实验指导书

《信息论与编码》实验指导书邹东尧等编计算机与通信工程学院信息与通信工程系2010年10月绪论随着信息产业的飞速发展,对从事信息、通信、电子工程类等专业的人员的要求也越来越高,而《信息论与编码》是这类专业的专业必修课,这门课主要介绍了有关信息论的基本原理以及信源编码、信道编码的内容。

通过理论与实践的结合,才能更好的领会知识的真谛。

《信息论与编码》结合实验的实践,让学生更能深刻的理解和掌握这门课的基本概念、基本理论,并培养学生的动手实践能力。

本实验指导书正是配合教学计划的实验教学而编写,主要是基于matlab 仿真软件对信源编解码和信道容量进行仿真。

本书共有三个实验:绘制信源熵函数曲线、哈夫曼编解码和离散信道容量,为实验大纲要求的必做实验。

本书主要由邹东尧编写,主要参考了李祖贺等编写的《信息论与编码》实验指导书,并得到了李祖贺等老师的大力支持,特此对他们表示衷心的感谢!由于时间仓促,错误难免,恳请读者谅解和指正!郑州轻工业学院计算机与通信工程学院信息与通信工程系2010年10月目录实验一绘制信源熵函数曲线 (4)实验二哈夫曼编解码 (7)实验三离散信道容量 (11)1实验一绘制信源熵函数曲线一、实验目的1.掌握离散信源熵的原理和计算方法。

2.熟悉matlab软件的基本操作,练习应用matlab软件进行信源熵函数曲线的绘制。

3.理解信源熵的物理意义,并能从信源熵函数曲线图上进行解释其物理意义。

二、实验原理1.离散信源相关的基本概念、原理和计算公式产生离散信息的信源称为离散信源。

离散信源只能产生有限种符号。

假定X是一个离散随机变量,即它的取值范围R={x1,x2,x3,…}是有限或可数的。

设第i个变量x i发生的概率为p i=P{X=x i}。

则:定义一个随机事件的自信息量I(x i)为其对应的随机变量x i出现概率对数的负值。

即:I(x i)= -log2p(x i)定义随机事件X的平均不确定度H(X)为离散随机变量x i出现概率的数学期望,即:∑∑-==i ii ii ixpxpxIxpXH)(log)()()()(单位为比特/符号或比特/符号序列。

信息论与编码实验指导书

信息论与编码实验指导书

《信息论与编码》实验指导书前言当前,信息论与编码已经成为电子信息类专业高年级学生必修的专业基础课。

尽管各个院校开设课程名称有所不同,但都是以香农信息论为核心内容的。

这是一门理论性和系统性很强的课程。

涉及多个学科,需要广泛数学知识。

为了能透彻掌握信息论基本概念和分析方法,做实验进行实践练习是不可缺少的环节。

通过综合性、验证性实验,可以加深对理论和概念的理解,增强分析和解决实际问题的能力。

为此,河北工业大学信息学院编写了《信息论与编码实验指导书》,由于可供参考的实验指导书有限,本书的不妥和错误之处,恳请读者予以批评指正。

马杰2008年2月目录实验一信息熵与图像熵计算--------------------------------------- 1实验二 Huffman 编码实验------------------------------------------ 6实验三算术编码实验------------------------------------------------ 11 实验四 CRC校验编码实验------------------------------------------17实验一信息熵与图像熵计算(2学时)一、实验目的1.复习MATLAB的基本命令,熟悉MATLAB下的基本函数。

2.复习信息熵基本定义, 能够自学图像熵定义和基本概念。

二、实验内容1.能够写出MATLAB源代码,求信源的信息熵。

2.根据图像熵基本知识,综合设计出MATLAB程序,求出给定图像的图像熵。

三、实验仪器、设备1.计算机-系统最低配置 256M内存、P4 CPU。

2.Matlab仿真软件- 7.0 / 7.1 / 2006a 等版本Matlab软件。

四、实验原理1. MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。

2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。

自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。

息论与编码》上机实验指导书

息论与编码》上机实验指导书

北京信息科技大学《信息论与编码》实验指导书李红莲编光电信息与通信工程学院二〇一〇年八月目录实验一信息熵、信道容量的计算............................ . (3)一、实验目的 (3)二、实验内容 (3)三、实验原理............................................................. (3)四、实验方法与实验步骤 (3)五、思考题 (3)六、实验报告要求 (3)实验二霍夫曼编码、率失真函数的计算 (4)一、实验目的 (4)二、实验内容 (4)三、实验原理............................................................. (4)四、实验方法与实验步骤 (4)五、思考题 (4)六、实验报告要求 (4)实验一:信息熵、信道容量的计算实验项目:信息熵、信道容量的计算实验项目性质:验证性实验课程:《信息论与编码》计划学时:4学时一、实验目的掌握使用计算机计算信息熵、信道容量的方法。

二、实验内容利用matlab语言编程实现信息熵、信道容量的计算。

三、实验原理1.参照教材(焦瑞莉等编著《信息论基础教程》)第14页式(2-16)理解信息熵的定义2.参照教材(焦瑞莉等编著《信息论基础教程》)第68页式(3-15)理解信道容量的定义四、实验方法与实验步骤(一)参照教材第215页信源熵程序建立文件entropy.m(二)建立文件exercise2_3_1.m通过调用entropy.m计算教材第59页练习2.3(1)(参考答案:0.8113比特)(三)参照教材第215页离散无记忆信道容量的迭代计算程序建立文件channelcap.m(四)建立文件exercise3_2_b.m通过调用channelcap.m计算教材第92页练习3.2(b)(参考答案:0.0817比特)五、思考题使用计算机编程进行信道容量的迭代计算是否肯定收敛,即是否一定能得出近似正确结果?六、实验报告要求(1)简述实验目的、实验原理和实验任务;(2)列出源程序代码;(3)给出计算结果(4)收获与体会。

信息论与编码技术》实验教案

信息论与编码技术》实验教案

信息论与编码技术实验教案第一章:信息论基础1.1 实验目的1. 了解信息的基本概念及其度量方法;2. 掌握信息的熵、冗余度和信道容量等基本概念。

1.2 实验原理1. 信息的基本概念:信息、消息、信源等;2. 信息的度量:平均信息量、熵、冗余度等;3. 信道容量和编码定理。

1.3 实验设备与材料1. 计算机及投影仪;2. 相关实验软件。

1.4 实验步骤1. 讲解信息的基本概念及其度量方法;2. 分析实际例子,演示信息的熵、冗余度和信道容量的计算过程;3. 让学生通过实验软件进行相关计算和分析。

1.5 思考与讨论1. 信息量与消息长度的关系;2. 信道容量在实际通信系统中的应用。

第二章:数字基带编码2.1 实验目的1. 掌握数字基带编码的基本原理;2. 学会使用相关软件进行数字基带编码的仿真。

2.2 实验原理1. 数字基带编码的定义和分类;2. 常用数字基带编码方法:NRZ、RZ、曼彻斯特编码等;3. 数字基带编码的性能评估:误码率、带宽利用率等。

2.3 实验设备与材料1. 计算机及投影仪;2. 相关实验软件。

2.4 实验步骤1. 讲解数字基带编码的基本原理和方法;2. 演示常用数字基带编码的仿真效果;3. 让学生通过实验软件进行数字基带编码的仿真实验。

2.5 思考与讨论1. 数字基带编码的优缺点;2. 如何在实际通信系统中选择合适的基带编码方法。

第三章:信道编码与误码控制3.1 实验目的1. 了解信道编码的基本原理;2. 掌握常见的信道编码方法;3. 学会使用相关软件进行信道编码的仿真。

3.2 实验原理1. 信道编码的定义和作用;2. 常用信道编码方法:卷积编码、汉明编码、里德-所罗门编码等;3. 误码控制原理:检错、纠错等。

3.3 实验设备与材料1. 计算机及投影仪;2. 相关实验软件。

3.4 实验步骤1. 讲解信道编码的基本原理和方法;2. 演示常用信道编码的仿真效果;3. 让学生通过实验软件进行信道编码的仿真实验。

信息与编码理论实验指导书

信息与编码理论实验指导书

实验一 信道容量的迭代算法一、 实验目的1、掌握信道容量的概念。

2、了解迭代法计算信道容量的流程。

3、熟悉Matlab 程序的设计和调试方法。

二、 实验要求1、学习Matlab 软件编程和调试方法;2、输入:任意一个信道转移概率矩阵。

包括信源符号个数、信宿符号个数、信道转移概率,在程序运行时从键盘输入;3、输出:输入的信道矩阵、信道容量C 。

三、 算法描述1. 初始化信源分布),,,,,(21)0(r i p p p p p ⋅⋅⋅⋅⋅⋅= (一般初始化为均匀分布),置迭代计数器0=k ,设信道容量相对误差门限为,0,>δδ可设-∞=)0(C ; 2. r i p pp p i k i ij k i ij k ji ,,2,1)()()(⋅⋅⋅==∑ϕ;s j ,,1⋅⋅⋅= 3. r i p p p i j k ji ij j k ji ij k i ,,1ln exp ln exp )()()1(⋅⋅⋅=⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=∑∑∑+ϕϕ 4. ⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎥⎦⎤⎢⎣⎡=∑∑+i j k ji ij k p C )()1(ln exp ln ϕ 5. 如果,)1()()1(δ≤-++k k k C C C 转向76. 置迭代序号k k →+1,转向27. 输出)1(+k i p 和)1(+k C 的结果8. 停止四、 实验报告内容1、画出信道容量迭代算法流程图;2、给出实验结果的截图(输入信道矩阵和信道容量计算结果);3、对各种情况的实验结果进行分析和检验。

附:实验用Matlab 源程序。

(如果使用了非给定源程序)实验报告提交:电子文档(邮箱:yangxiaoping2004@ )实验过程:结果出来时,请实验老师检查并做记录(1个结果即可)。

实验二 唯一可译码判决准则一、 实验目的1、了解唯一可译码的概念。

2、掌握唯一可译码判决准则。

3、掌握Matlab 程序调试方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

huf(cha,m,i);
实验五 循环码编码 一 实验目的:掌握通过计算机实现系统循环码编码 二实验要求: 对于给定的消息序列,按照循环码编码的方法进行 计算机实现. 三实验原理 循环码的编码步骤: •循环码的系统码构造的步骤为: 1)消息多项式乘x n-k 2) x n-km(x)/g(x)=q(x) +r(x)/g(x) 其中:q(x)是商,r(x)是余数 3)C(x)= x n-km(x)+r(x) 四实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图,
实验二 香农编码
一 实验目的、掌握通过计算机实现香农编码 二实验要求 对于给定的信源的概率分布,按照香农编码的方法 进行计算机实现. 三、实验原理 给定某个信源符号的概率分布,通过以下的步骤进 行香农编码 1、 信源符号按概率从大到小排列 2、 对信源符号求累加和,表达式: Pi=Pi-1+p(xi) 3、 求自信息量,确定码字长度。自信息量I(xi)=log(p(xi));码字长度取大于等于自信息量的 最小整数。 4、 将累加和用二进制表示,并取小数点后码字的长度的
四实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。 六 参考程序
哈夫曼编码: 根据二叉树思想,将二叉树的程序改编
#include<iostream> #include<string> using namespace std; typedef struct { int weight; int flag; int parent; int lchild; int rchild; }hnodetype; typedef struct { int bit[10]; int start; char leaf; }hcodetype; void huf(char cha[],int m[],int n) { int i,j,m1,m2,x1,x2,c,p; hnodetype *huffnode=new hnodetype[2*n-1]; hcodetype *huffcode=new hcodetype[n],cd; for(i=0;i<2*n-1;i++) { //初始化哈夫曼树 huffnode[i].weight=0; huffnode[i].parent=0; huffnode[i].flag=0; huffnode[i].lchild=-1; huffnode[i].rchild=-1; } for(i=0;i<n;i++) { //哈夫曼结点赋初值 huffnode[i].weight=m[i]; huffcode[i].leaf=cha[i]; } for(i=0;i<n-1;i++)
实验一:信息量及信道容量的计算
1、 实验目的:通过该实验,掌握通过计算机实验信息量 和信道容量的计算方法 2、 实验要求:对一个离散的无记忆信源,给定信源的输 入概率分布,给定一个信道特性,计算各种信息量和 熵,并计算信道容量。 3、 实验原理:
◼设输入X∈{x1,x2,…,xi,…,xn}
输出Y∈{y1,y2,…,yj,…,ym} ,信道的一般数学模
A 将概率按从大到小的顺序排列 B 按编码进制数将概率分组,使每组概率和尽可能接近或相 等。 C 给每组分配一位码元 D 将每一分组再按同样原则划分,重复b和c,直到概率不再可 分为止
四 实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。
码。
四、实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。
实验三 费诺编码 一 实验目的:掌握通过计算机实现费诺编码 二实验要求: 对于给定的信源的概率分布,按照费诺编码的方法进 行计算机实现. 三实验原理 费诺编码的步骤:
实验四 哈夫曼编码
一 实验目的:掌握通过计算机实现哈夫曼编码 二实验要求: 对于给定的信源的概率分布,按照哈夫曼编码的方法 进行计算机实现. 三实验原理 哈夫曼编码的步骤:
(1). 把信源符号按概率大小顺序排列, 并设法按逆次序分配码 字的长度。 (2). 在分配码字长度时,首先将出现概率 最小的两个符号的 概率相加合成一个概率 (3). 把这个合成概率看成是一个新组合符号地概率,重复上述 做法直到最后只剩下两个符号概率为止。 (4). 完成以上概率顺序排列后,再反过来逐步向前进行编 码,每一次有二个分支各赋予一个二进制码,可以对概率大的 赋为零,概率小的赋为1。
和 累加和 X1 X1 X1 X2 X1+X2 2*X1+X2 X3 X1+X2+X3 3*X1+2*X2+X3 X4 X1+X2+X3X3+X4
ψ X1+X2+X3+X4+ψ 5*X1+4*X2+3*X3+2*X4+ψ 四实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。
2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。
实验六 模p信道编码实验 一 实验目的:掌握通过计算机实现模p信道编码 二实验要求: 对于给定的消息序列,按照模p信道编码的方法进行 计算机实现. 三实验原理 在实际生活中,有时侯“1”和“I”很相似。 p=37(符号的个数) 数字“0”-“9”和字母“A”-“Z”和空格 共37种符号。 “0” 0 “1” 1 ¨ “A” 10 “B” 11 设有某消息的符号序列为X=X1X2X3X4, 用下表的方式来求它们的和及累加和,然后加上 适当的监督元,使累加和是模37的倍数。 消息符号
型如下图:
在给定信源概率分布条件下, 各种熵的求解方法如下: 1) 信源熵 2) 条件熵
3) 联合熵
4) 交互熵 5) 信道容量 ◼一般离散信道容量对计算步骤总结如下:
4、 实验设备:计算机 c++ 五、实验报告要求 1、 画出程序设计的流程图, 2、 写出程序代码, 3、 写出在调试过程中出现的问题 , 4、 对实验的结果进行分析。
{
//对结点进行编码
m1=m2=10000000; x1=x2=0; for(j=0;j<n+i;j++) { if(huffnode[j].weight<=m1&&huffnode[j].flag==0) { m2=m1; x2=x1; m1=huffnode[j].weight; x1=j; } else if(huffnode[j].weight<=m2&&huffnode[j].flag==0) { m2=huffnode[j].weight; x2=j; } } huffnode[x1].parent=n+i; huffnode[x2].parent=n+i; huffnode[x1].flag=1; huffnode[x2].flag=1; huffnode[n+i].weight=huffnode[x1].weight+huffnode[x2].weight; huffnode[n+i].lchild=x1; huffnode[n+i].rchild=x2; } for(i=0;i<n;i++) { //生成哈夫曼树 cd.start=n-1; c=i; p=huffnode[c].parent; while(p!=0) { if(huffnode[p].lchild==c)
cd.bit[cd.start]=0; else cd.bit[cd.start]=1; cd.start--; c=p; p=huffnode[c].parent; } cout<<huffcode[i].leaf<<":"; for(j=cd.start+1;j<n;j++) { huffcode[i].bit[j]=cd.bit[j]; cout<<cd.bit[j]; } cout<<endl; huffcode[i].start=cd.start; } delete[] huffcode; delete[] huffnode; } void main() { int i=0; int m[10]={30,23,10,10,9,8,7,3}; char cha[10]="abcdefgh"; float f; cout<<"该字符串为:\t"; for (i=0;i<strlen(cha);i++) { cout<<cha[i]<<"\t"; } cout<<"字符加权为:\t"; for (i=0;i<strlen(cha);i++) { f=(float)m[i]/100; cout<<f<<"\t"; } cout<<"各字符的哈夫曼码为:"<<endl; i=strlen(cha);
相关文档
最新文档