自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (7)
  • 收藏
  • 关注

空空如也

网页计算器(超酷).zip

独特。WEB应用,制作一个简单计算器网页。

2019-10-31

哈夫曼编/译码器.zip

[ 问题描述 ] 利用哈夫曼编码进行信息通讯可以大大提高信道利用率, 缩短信息传输时间,降低传输成本。但是, 这要求在发送端通过一个编码系统对待传数据预先编码; 在接收端将传来的数据进行译码( 复原 )。对于双工信道( 即可以双向传输信息的信道 ), 每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编译码系统。 [ 基本要求 ] 一个完整的系统应具有以下功能: (1) I:初始化(Initialization)。从终端读入字符集大小 n,及 n 个字符和 n 个权值,建立哈夫曼树, 并将它存于文件 hfmtree 中。 (2) C:编码(Coding)。利用已建好的哈夫曼树(如不在内存, 则从文件 hfmtree 中读入), 对文件 tobetrans 中的正文进行编码, 然后将结果存入 codefile 中。 (3) D:译码(Decoding)。利用已建好的哈夫曼树将文件 codefile 中的代码进行译码, 结果存入文件 textfile 中。 (4) P:印代码文件(Print)。将文件 codefile 以紧凑格式显示在终端上, 每行 50 个代码。同时将此字符形式的编码文件写入文件 codeprint 中。 (5) T:印哈夫曼树(Tree print)。将已在内存中的哈夫曼树以直观的方式( 树或凹入表行式 )显示在终端上, 同时将此字符形式的哈夫曼树写入文件 treeprint 中。 [ 测试数据 ] (1)利用教科书 6-2 中的数据调试程序。 (2)用下表中给出的字符集和频度的实际统计数据建立哈夫曼树, 并实现以下报 文的编码和译码: "THIS PROGRAM IS MY FAVORITE". 字符 A B C D E F G H I J 频度 186 64 13 22 32 103 21 15 47 57 1 字符 K L M N O P Q R S T U 频度 5 32 20 57 63 15 1 48 51 80 23 字符 V W X Y Z 频度 8 18 1 16 1 [ 实现提示 ] (1) 文件 codefile 的基类型可以设为子界型 bit=0..1。 (2) 用户界面可以设计为"菜单"方式: 显示上述功能符号, 再加上"E",表示结束运行 End, 请用户键入一个选择功能符。此功能执行完毕后再显示此菜单, 直至某次用户选择了 "E"为止。 (3) 在程序的一次执行过程中, 第一次执行 I,D 或 C 命令之后, 哈符曼树已经在内存了, 不必再读入。每次执行中不一定执行 I 命令, 因为文件 hfmtree 可能早己建好。 [ 选作内容 ] (1) 上述 codefile 的基类型实际上占用了存放一个整数的空间, 只起到示意或模拟的作用。现使 codefile 的基类型 package=integer, 把哈夫曼码紧缩到一个整型变量中去, 最大限度地利用码点存储能力, 试改写你的系统。 (2) 修改你的系统, 实现对你的系统的源程序的编码和译码。( 主要是将行尾符编/译码问题 ) (3) 实现各个转换操作的源/目文件, 均由用户在选择此操作时指定。

2019-10-31

教学编制计划.zip

[ 问题描述 ] 大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限, 每学年含两学期, 每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的, 而且课程在开设时间的安排上必须满足先修关系。每门课程有哪些先修课程是确定的, 可以有任意多门, 也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。 [ 基本要求 ] (1) 输入参数包括: 学期总数, 一学期的学分上限, 每门课的课程号( 固定占三位的字母数字串 ), 学分和直接先修课的课程号。 (2) 允许用户指定下列两种编排策略之一: 一是使学生在各学期的学习负担尽量均匀; 二是使课程尽可能地集中前几个学期中。 (3) 若根据给定的条件问题无解, 则报告适当的信息; 否则将教学计划输出到用户指定的文件中。计划的表格格式自行设计。 [ 测试数据 ] 学期总数: 6; 学分上限: 10; 该专业共开设 12 门课, 课程号从 C01 到 C12,学分顺序为 2,3,4,3,2,3,4,4,7,5,2,3。先修关系见教科书图 7.26。 [ 实现提示 ] 可设学期总数不超过 12, 课程总数不超过 100 。如果输入的先修课程号不在该专业开设的课程序列中, 则作为错误处理。应建立内部课程序号与课程号之间的对应关系。 [ 选作内容 ] 产生多种( 例如 5 种) 不同的方案, 并使方案之间的差异尽可能的大。

2019-10-31

简单行编辑.zip

[ 问题描述 ] 文本编缉程序是计算机文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编缉的文本文件可能很大,,全部读入编缉程序的数据空间( 内存 )的作法既不经济, 也不总能实现。一种解决方法是逐段地编缉。任何时刻只把待编缉文件的一段放在内存, 称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过 320 字符, 很少超过 80 字符。 [ 基本要求 ] 实现以下 4 条基本编缉命令: (1) 行插入。格式:i. 将插入活区中第行之后。 (2) 行删除。格式:d[ ] 删除活区中第行(到第)。两种格式的例子是: "d10" 和 "d10 14"。 (3) 活区切换。格式:n 将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。 (4) 活区显示。格式:p 逐页地(每页 20 行)显示活区内容, 每显示一页内容之后请用户决定是否继续显示以后各页( 如果存在 ), 印出的每一行要前置以行号和一个空格符, 行号固定占四位,增量为一.各条命令中的行号均需在活区中各行行号范围之内, 只有插入命令的行号可以等于活区第一行行号减一, 表示插入当前屏幕中第一行之前,否则命令参数非法。 [ 测试数据 ] 此略。 [ 实现提示 ] (1) 设活区的大小用行数 activemaxlen(可设为 100) 来描述。考虑到文本文行长通常为正态分布, 且峰值在 60 到 70 之间, 320×activemaxlen 大小的字符数组实现存储将造成极大浪费。可以以标准行块为单位为各行分配存储, 每个标准行块可含 81 个字符。这些行块可以组成一个数组, 也可以利用动态链表连接起来。一行文字可能占多个行块。行尾可用一个特殊的 ASCII 字符[如(012) ]标识。此外, 还应该记住活区起始行号。行插入将引起随后各行行号的顺序下推。 (2) 初始化过程包括: 请用户提供输入文件名(空串表示无输入文件)和输出文件名,两者不能相同。然后尽可能多地从输入文件中读入各行, 但不超过activemaxlen-x.x 的值可以自定, 例如 20。 (3) 在执行行插入命令的过程中 ,每接收到一行时都要检查活区大小是否已达activemaxlen, 应将插入点之前的活区部分中第一行输出到输出文件中; 若插入点为第一行之前, 则只得将新插入的这一行输出。 (4) 若输入文件尚未读完, 活区切换命令可将原活区中最后几行留在活区顶部,以保持阅读连续性; 否则, 它意味着结束编缉或开始编缉另一个文件。 (5) 可令前三条命令执行后自动调用活区显式。 [选作内容] (1) 对于命令格式非法等一切错误作严格检查和适当处理。 (2) 加入更复杂的编缉操作, 如对某行进行串替换; 在活区内进行模式匹配等,格式可以为:S@@和 m。

2019-10-31

魔王语言.zip

[ 问题描述 ] 有一个魔王总是使用自己的一种非常精炼而抽象的语言讲话,没有人能听 懂。但他的语言是可以逐步解释成人能懂的语言的,因为他的语言是由以下两 种形式的规则由人的语言逐步抽象上去的: (1) α→β1…βm (2) (θδ1…δn) →θδnθδn-1…θδ1θ 在这两种形式中,从左到右均表示解释;从右到左均表示抽象。试写一个魔 王语言的解释系统,把他的话解释成人能听得懂的话。 [ 基本要求 ] 用下述两条具体规则和上述规则形式(2)实现。 设大写字母表示魔王语言解 释的词汇, 小写字母表示人的语言的词汇;希腊字母表示可以用大写或小写字母 代换的变量。 魔王语言可含人的词汇。 (1).Β→ tΑdΑ (2).Α→ sae [ 测试数据 ] B(einxgz)B 解释成 tsaedsaeezegexeneietsaedsae 若将小写字母与汉字建立下表所示的对应关系, 则魔王说的话是: " 天上一个 《数据结构》题集 14 鹅地上一个鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一个鹅地上一个鹅。" t d s a e z g x n i 天 地 上 一个 鹅 追 赶 下 蛋 恨 [ 实现提示 ] 将魔王的语言自右至左进栈,总是处理栈顶。若是开括号,则逐一出栈, 将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入 栈。其他情形较简单,请读者思考应如何处理。应首先实现栈和队列的基本运 算。 [ 选作内容 ] (1).由于问题的特殊性, 可以实现栈和队列的顺序存储空间共享。 (2).在程序开始运行时读入一组第一种形式的规则, 而不是把规则定死在程序 中。 (第二种形式的规则只能定死在程序中)

2019-10-31

长整数运算.zip

[ 问题描述 ] 设计程序实现两个任意长整数的求和运算。 [ 基本要求 ] 《数据结构》题集 利用双向循环链表实现长整数的存储, 每个结点含一个整型变量. 任何整型变量的范围是 -(215-1)~(215-1)。输入和输出形式: 按中国对于长整数的表示习惯, 每四位一组,组间用逗号隔开。 [ 测试数据 ] (1) 0;0;应输出"0"。 (2) -2345,6789;-7654,3211; 应输出"-1,0000,0000"。 (3) -9999,9999; 1,0000,0000,0000; 应输出"9999,0000,0001"。 (4) 1,0001,0001; -1,0001,0001; 应输出"0"。 (5) 1,0001,0001; -1,0001,0000; 应输出"1"。 [ 实现提示 ] (1) 每个结点可以存放的最大整数为 215-1 = 32767 才能保证两数相加不会溢出。但若这样存,即相当于按 32768 进制数存,在十进制数与 32768 进制数间的转换十分不方便,故可以在每个结点中仅存十进制数的 4 位,即不超过 9999的非负整数, 整个链表被视为万进制。 (2)可以利用头结点数据域的符号代表长整数的符号。 用其绝对值表示元素结点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。 [ 选作内容 ] 修改上述程序,使它在整型量范围是-(2n-1)~(2n-1) 的计算机上都能有效地运行。其中 n 是由程序读入的参量。输入数据的分组方法可另行规定。

2019-10-31

约瑟夫环.zip

[ 问题描述 ] 约瑟夫问题的一种描述是:编号为 1,2,...,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值 m,从第一个人开始。按顺时针方向自 1 开始顺序报数,报到 m 时停止报数。报 m 的人出列,将他的密码作为新的 m 值, 从他在顺时针方向上的下一个人开始重新从 1 报数,如此下去,直至所有人全部出列为止。试设计程序求出出列顺序。 [ 基本要求 ] 利用单向循环链表存储结构模拟此过程, 按照出列的顺序印出个人的编号。 [ 测试数据 ] m 的初值为 20; 密码: 3,1,7,2,4,8,4。 (正确的结果应为 6,1,4,7,2,3,5) [ 实现提示 ] 程序运行后首先要求用户指定初始报数上限值, 然后读取各人的密码。 [ 选作内容 ] 向上述程序中添加在顺序结构上实现的部分

2019-10-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除