没有合适的资源?快使用搜索试试~ 我知道了~
简单学生信息管理系统和哈夫曼编/译码器 简单学生信息管理系统和哈夫曼编/译码器
资源推荐
资源详情
资源评论
课程设计报告
( 数据结构程序设计 )
设计题目 简单学生信息管理系统和哈夫曼编 / 译码器
年级专业 2006
级计算机科学与技术
学生姓名
指导老师
2008 年 6 月
目 录
一、任务书············································3
二、课程设计目的和要求································5
2.1、课程设计目的····································5
第 1 页
2.2、课程设计要求····································5
三、课程设计报告主体内容······························6
3.1、简单学生信息管理系统····························6
3.1.1、程序分析···································6
3.1.2、概要设计···································6
3.1.3、详细设计··································8
3.1.4、程序注释·································20
3.1.5、调试分析··································23
3.2.、哈夫曼编/译码器·······························27
3.2.1、程序分析··································27
3.2.2、概要设计··································28
3.2.3、详细设计和注释···························29
3.2.4、调试分析··································36
四、课程设计总结·····································39
一、程序任务书
选做的题目:简单学生信息管理系统
【问题描述】
设计一个简单学生信息管理系统
【基本要求】
(1) 学生基本信息包括:学号、姓名、性别、出生日期、家庭住址、
第 2 页
宿舍号、宿舍电话等。
(2) 学生信息以文件方式保存。
(3) 具有建立、打开文件,增加、删除、修改、查询、打印、浏览功
能。
建立:建立学生管理文件(刚建立的文件是打开的)。
打开:打开学生管理文件。
增加:新增一名学生,并按学号顺序插入到学生管理文件中。
删除:从学生管理文件中删除指定(按姓名)学生的信息。
修改:修改指定(按姓名)学生的信息。
查询:查询符合条件(单条件与多条件)的学生。
浏览:全屏幕显示学生管理库中的信息。
打印:以简单表格形式打印(分页打印)学生管理库中的信息。
【实现提示】
学生对象不很多,文件中的信息一次读入内存,所有操作不必经过内外
存交换。
必选的题目:哈夫曼编/译码器
[问题描述]
利用哈夫曼编码进行数据通信可以大大提高信道利用率,统筹数据传输时间,
降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;
在接收端将传来的数据进行译码(还原)。对于双工信道(即可以双向传输信
息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一
个哈夫曼的编/译码系统。
[基本要求]
一个完整的编/译码系统应具有以下功能:
(1) 建立哈夫曼编码树(CREATE)。从键盘输入字符集中的所有字符及其
对应的频率值,建立哈夫曼编码树。
(2) 输出编码表(TABLE)。利用已建好的哈夫曼树,列出字符集中的所有
字符及其对应的哈夫曼编码。
(3) 编码(CODING)。利用建好哈夫曼树,对从键盘输入的正文串进行编
码,并在屏幕上显示结果。
(4) 译码(DECODING)。利用已建好的哈夫曼树,对从键盘输入的 0,1
代码串进行译码,并在屏幕上显示结果。
[测试数据]
(1) 利用下中给出的字母/频率数据调试程序。
字母 C D E F K L U Z
频率 32 42 120 24 7 42 37 2
(2) 用下表中给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以
下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”
第 3 页
字母 频率 字母 频率
A 77 O 67
B 17 P 20
C 32 Q 5
D 42 R 59
E 120 S 67
F 24 T 85
G 17 U 37
H 50 V 12
I 76 W 22
J 4 X 4
K 7 Y 22
L 42 Z 2
M 24 (空格) 186
N 67
[实现提示]
(1) 用户界面设计为菜单方式。程序运行后,显示如下功能菜单:
1、 建立哈夫曼编码树
2、 输入编码表
3、 编码
4、 译码
5、 退出
用户每键入一个选择数字,程序就执行相应的功能并再次显示菜单,直至某次
用户选择了“0 退出”为止。
(2) 在建立哈夫曼编码树是,需要使用一个优先队列,以便反复从队列中删
除最小值。优先队列可以是无序的线性表,也可以是有序的线性表,还可以用
基于完全二叉树的堆实现。
[选做内容]
(1) 上述哈夫曼码的每一个 0 或 1 实际上占用了存放了一个整数的空间,只
起到示意或模拟的作用。试设法把每一个字符的哈夫曼编码压缩到一个整型变
量中去,尽可能地压缩代码存储空间。请改写你的系统。
(2) 扩展你的系统以支持文件的压缩和解压缩,为此必须增加两个功能:
(A)文件压缩;(B)文件解压缩。
(3) 实现第(2)项需解决哈夫曼树的顺序存储问题。文件压缩的步骤是:
(A) 扫描待压缩文件以获得文件中各个字符的实际使用频率;
(B)在编码文件的开头存储哈夫曼树,以便解码函数使用。
第 4 页
二、课程设计目的和要求
一、课程设计目的
《数据结构》是一门实践性较强的软件课程,为了学好这门课程,必须在
掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实
际相结合,使同学们能够根据数据对象的特征,学好数据组织的方法,能把现
实世界中的实际问题在计算机内部表示出来,培养基本的,良好的程序设计技
能。
通过课程设计培养学生以下四个方面的业务能力:
1、综合运用所学专业基本理论,提高查阅文献、论文和资料的能力,其中包
括提高阅读外文资料的能力。
2、提高学生进行方案论证,分析比较和设计、计算的能力。
3、提高学生调试计算机程序,开发计算机软件系统的能力。
4、提高学生进行技术总结和撰写论文的能力。
二、课程设计要求
通过课程设计,要求在数据结构分析逻辑特性和物理表示,数据结构的选择与
应用,算法的设计及实
现等方面中加深对课程基本内容的理解。同时,在程序设计方法上机操作等基
本技能和科学作风方面受到比较系统和严格的训练。
学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课程设计的
要求。有问题及时主动通过各种方式与教师联系沟通。
学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,
并在课程设计过程中不断检测自己的计划完成情况,及时的向教师汇报。课程
设计按照教学要求需要二周时间完成,二周中每天(按每周 5 天)至少要上 3-
4 小时的机来调试 C(C++)语言设计的程序,总计上机调试程序不少于 45
小时。
三、课程设计报告主体内容
第 5 页
剩余37页未读,继续阅读
资源评论
老王码农
- 粉丝: 5
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NC65 UAP65 流程开发 – 业务流 – 推单 详细笔记
- 两种计算CDF累加分布函数的Matlab程序,可以选择使用 .rar
- Windows操作系统介绍.zip
- 汉森的广义t分布的matlab程序(金融)cdf.zip
- Three.js介绍.zip0002
- 人工智能BBSO算法,MATLAB实现,很基本的人工智能算法,里面有很多源程序
- 高端大气科技互联网项目融资商业计划书产品公司品牌介绍PPT模板.pptx
- Sora AI文字生成视频实操教程、由给定的图片生成视频的教程说明书,祝你一臂之力 轻松上手Sora
- 网络安全说明:网络安全方面的资料,+适合网络安全的初学者
- 【移动应用开发】HarmonyOS应用服务开发,移动购物应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功