班级:计科112 学号: 00814203 姓名:冯贵阳
PAGE
PAGE 42
数 据 结 构
课
程
设
计
实
验
报
告
目录
1.单位员工通讯录管理系统(线性表的应用)………… ……… …… …….31.1 需求分析和算法设计…………………………….…. …….………. …31.2 调试分析和测试结果…………………………….…. …….………. …4
2.停车场管理(栈和队列的应用) …………………… ……… ……………62.1 需求分析和算法设计… ……………………………… ………………72.2 调试分析和测试结果… ………………………………… ……………8
3.哈夫曼编码/译码系统(树应用)………………………………………103.1 需求分析和算法设计………………………………………… 103.2 调试分析和测试结果………………………………………… 11
4.教学计划编制问题(图的应用) …………………………………………12
4.1 需求分析和算法设计…………………………………………………134.2 调试分析和测试结果…………………………………………………14
药店的药品销售统计系统(排序应用)………………………………14.
5.1 需求分析和算法设计…………………………………………………155.2 调试分析和测试结果…………………………………………………15
6.二叉树的基本操作………………………………………17
6.1 需求分析和概要设计………………………………………176.2 调试分析和测试结果………………………………………19
课程设计总结:……………………………………………………… .21
附录:源代码……………………………………………………………21
1、 单位员工通讯录管理系统(线性表的应用)
1.需求分析:
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
2.算法设计思想
1.首先我们要进行最基本的操作,即建立链表。链表的节点信息保存的有员工编号、员工姓名、办公室电话号码、手机号码、员工邮箱这些信息。而链表的结点信息保存的有员工信息以及其指针域。
2.然后我们可以添加员工信息,对于新的员工信息我们将其添加在链表的表尾,在添加之前我们要进行一项操作,即遍历链表找到其尾指针,然后开辟一个结点并将其加到链尾。
3.我们还可以进行员工信息的查询操作,在进行查询时我们首先要遍历链表,然后在遍历的同时与关键字进行比较从而找到员工信息并输出。
4.员工信息删除操作,此操作首先要找到要删除的员工信息,然后将此节点的前一节点的后续指针直接指向要删除的结点的后续指针,并且释放要删除的结点空间即可。
5.员工信息修改,首先找到要修改的员工,然后输入要修改的员工信息,将输入信息直接覆盖在原有信息上即可。
6.员工信息输出,遍历整个链表并输出。
建立员工信息链表流程图如下:
建立员工信息链表
1. 员工信息查询
1. 员工信息查询
2. 员工信息插入
3. 员工信息修改
4. 员工信息删除
5. 员工信息输出
结束所有操作或者返回重新选择操作1.2.3
结束所有操作或者返回重新选择操作1.2.3.4.5
程序运行结果:
1.员工信息查询,输入待查员工信息编号,若存在,则输出员工信息,否则输出“你所查找的员工编号不存在”
员工信息的修改,输入员工的编号,选择要修改的数据项,按
任意键返回。。。
员工信息的输出
员工信息的删除
5.员工信息的插入
调试分析:
在调试的过程中,遇到了一个挫折,插入员工信息后将员工信息输出时,出现许多“屯”字,仔细分析了一下代码,感觉也没错误。然后我在感觉出错的地方加了几个断点,进行一步步的调试,终于发现了错误,原来是指针的指向没指正确。修改了指针的指向,终于输出了员工信息。
2、停车场管理(栈和队列的应用)
需求分析
设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的