离散结构上的实习书doc.docVIP

  • 6
  • 0
  • 约7.28千字
  • 约 18页
  • 2017-02-28 发布于重庆
  • 举报
离散结构上机实习书 1:谓词逻辑值判定 实验目的: 熟悉谓词逻辑中逻辑的判定方法。 熟悉编程语言。 实验内容: 要求系统能够接受用户从键盘上输入的P、Q、R的真值,系统自动判定 (P∨Q)∧(┓R)的真值,并打印出来。 实验要求: 系统要能处理T、F、 t、 f的输入,要能处理非法输入,界面要美观,实验要写出实验报告 实验指导: (略) 2:实现约简推理(选做) 实验目的: 熟悉约简推理方法。 体验自动推理的效果,增加学习兴趣。 实验内容: 要求系统能够对固定的子句集实现约简推理,判定对固定的结论推理有效性,既能自动判定。 实验要求: 系统要能系统能够对固定的子句集实现约简推理,界面要美观,实验要写出实验报告 实验指导: 子句的表示数据结构,建议采用数组的形式表示,如 P∨Q∨(┓R)可表示为:S[1]=(P,Q,R) N[1]=(1,1,0),0表示否定运算。 要两两互约,每次产生产生新的结果都要判定是否为所论证的结论,若是则程序退出,命题得证。如遍历整个知识库后,没有新的结论产生,程序退出,命题为假。 3、Huffman 编码的实现 实验目的: 熟悉Huffman 编码方法。 熟悉树图的表示方法。 实验内容: 要求能接受键盘输入的10个字符和每个字符出现的频度,然后根据Huffman编码原则对该十个字符进行编码,输出编码结果。 实验要求: 界面要美观,实验要写出实验报告 实验指导: 核心代码 class Node implements Serializable { byte symbol; //byte int frequency; //frequency 用以记录 symbol 的出现频率 String code; //code 用以记录 symbol 的 Huffman 代码 Node left,right; //左枝节点及右枝节点 Node() //生成一个无意义的节点 { symbol=-1; frequency=0; code=null; left=null; right=null; } Node(byte i) //生成一个欲记录 symbol 的信息的末节点 { symbol=i; frequency=0; code=null; left=null; right=null; } Node(Node left,Node right) //生成一个有左右枝非末节点 { symbol=-1; frequency=left.frequency+right.frequency; code=null; this.left=left; this.right=right; } 4、Huffman 编码与文件压缩和解压(选做) 实验目的: 熟悉Huffman 编码方法。 熟悉文件压缩原理。 熟悉对文件的操作。 实验内容: 根据Huffman 编码原理,实现对任意文件的压缩。 实验内容分两部分: 压缩:接受键盘输入的文件名,打开该文件实现压缩,压缩后的文件名与原文件相同,后缀谓 .huf. 解压: 接受键盘输入的文件名,打开该文件实现解压,解压后的文件由键盘输入. 实验要求: 压缩和解压速度不能太慢,界面要美观,实验要写出实验报告 实验指导: 对原文件按字节读出,计算0-256各数出现的频度,对0-256各数按Huffman编码方法重新编码,形成编码表,同时对原文件按新的编码重新改写,注意字节的拼凑。编码表要附在原文件的后面或前面,以便实现解压缩。 解压缩时,先读出编码表,再根据编码表对压缩文件进行解压。 文件加解密 实验目的: 实现对任意文件的加解密操作 实验内容: 1.利用密码表加密,2.利用异或加密 实验指导: 设计思路: 密码表加密: 读源文件,let fp=fopen (源文件) fq=fopen(目标文件) if 不可读 then stop if 可读 while(!feof(fp)) 读一个字节 //用户可以自己定义密码表,即字典 文件夹下有我自己定义的两个字典 在密码明表中查有没有与之匹配的字节 if yes then 将暗表中相应的字节写入目标文件中 if no 直接把这个字节写入目标文件; fclose fp,fq; 密

文档评论(0)

1亿VIP精品文档

相关文档