二叉平衡树实现学生信息管理系统.docx

上传人:b****8 文档编号:10521943 上传时间:2023-02-17 格式:DOCX 页数:23 大小:316.75KB
下载 相关 举报
二叉平衡树实现学生信息管理系统.docx_第1页
第1页 / 共23页
二叉平衡树实现学生信息管理系统.docx_第2页
第2页 / 共23页
二叉平衡树实现学生信息管理系统.docx_第3页
第3页 / 共23页
二叉平衡树实现学生信息管理系统.docx_第4页
第4页 / 共23页
二叉平衡树实现学生信息管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

二叉平衡树实现学生信息管理系统.docx

《二叉平衡树实现学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《二叉平衡树实现学生信息管理系统.docx(23页珍藏版)》请在冰豆网上搜索。

二叉平衡树实现学生信息管理系统.docx

二叉平衡树实现学生信息管理系统

 

课程设计报告

(2011—2012年度第2学期)

 

实验名称:

数据结构与算法

题目:

二叉平衡树学生信息管理系统

院系:

控制与计算机工程学院

班级:

信安1101

学号:

1111290110

学生姓名:

黄世晨

指导教师:

焦润海

设计周数:

1周

成绩:

日期:

2012年6月28日

一、课程设计的目的与要求

1.目的:

应用数据结构和算法来设计相应的程序,培养学生问题求解模块的框架设计和详细设计、相关程序实现和调试能力,完成创新能力和实践能力的训练。

2.要求:

用高级程序设计语言C编码,用开发平台调试。

二、设计正文

(一)课程设计题目

(二)需求分析

(三)概要设计

(四)详细设计

(五)调试分析

(六)使用说明

三、课程设计总结或结论

1.完成的工作

2.未完成的工作

3.所需做的改进

四、参考文献

[1]作者1,作者2.书名.出版单位,版本.出版日期

附录(设计流程图、程序、测试数据等)

 

一、课程设计题目

编制一个用二叉平衡树实现学生信息管理系统的程序,所有信息用文件保存。

二、需求分析

 本演示程序在环境下用C语言编写,利用二叉平衡树完成学生信息管理系统信息的输入,显示所有的学生信息,查询指定学生信息,删除学生信息,并将所有信息以文档形式保存。

 1、输入的形式和输入值的范围:

创建时首先按照要求依次输入相应信息;

插入结点时需要输入插入的信息;

删除结点时输入删除结点的关键字;

查找时输入查找结点的关键字;

在所有输入中,结点信息学号、姓名、专业、班级、生日为字符串,年龄为整型。

 2、输出的形式:

查找操作会输出查找成功时的信息,若不成功怎输出无此信息;

显示操作会按递归遍历显示平衡树上的所有结点信息;

 3、程序所能达到的功能:

完成二叉平衡树学生信息管理系统的创建(从键盘中输入并保存到文件中)、插入、删除、查找、显示、保存操作

 4、测试数据:

A.创建操作中依次输入1

01黄世晨信安1101191993

y

02许彬信安1101201992

y

03邓志光信安1101201992

n

构建二叉平衡树

输入4

浏览信息

B.查找操作中依次输入5

01

C.删除操作中依次输入3

03

D.插入操作中依次输入2

04曹廷祥信安1101211991

输入4

浏览信息

E.凹入显示操作输入7

F.保存操作输入6

G.退出操作输入0

三、概要设计

1、为了实现上述程序功能,需要定义二叉平衡树的抽象数据类型:

 {

数据对象D:

D是具有相同特性的数据元素的集合。

数据关系R:

若D为空集,则称为空树;

否则:

(1)在D中存在唯一的称为根的数据元素,

(2)当n>1时,其余结点可分为m(m>0)个互

不相交的有限集T1,T2,…,,其中每一

棵子集本身又是一棵符合本定义的树,

称为根的子树。

基本操作:

      ()

 操作结果:

创建学生信息管理系统二叉平衡树并输入初始信息.

     ()

操作结果:

将信息插入至二叉平衡树中,并调节二叉树平衡

(*)

初始条件:

二叉平衡树T已存在

操作结果:

查询学生信息

       (*)

初始条件:

二叉平衡树T已存在

操作结果:

删除学生信息,并调节二叉树平衡

(T)

初始条件:

二叉平衡树T已存在

操作结果:

显示学生信息

      ()

操作结果:

在屏幕上显示操作菜单

2、本程序包含16个函数:

1 主函数()

2 删除结点并调平函数(*);

3 删除辅助函数(&);

4 调平函数(&);

5 调平函数(&);

6 调平函数(&);

7 调平函数(&);

8 查找函数(*&);

9 插入信息并调平函数();

10 在右子树上删除后的调平函数(&);

11 在左子树上删除后的调平函数(&);

12 菜单函数();

13 保存函数(*);

14 凹入显示二叉平衡树函数();

15 创建函数(&);

16 显示函数();  

3、函数间的调用关系如下:

四、详细设计

 为了实现概要设计中定义的所有的数据类型;对主程序和其他模块写出伪代码算法或者画出流程图;

1、结点类型和指针类型

结构体定义

学生

{

[10];

[20];

[10];

[20];

[20];

;

};

结点

{

;

*,*;

;

},*;

2)、主要算法的伪代码或者流程图

保存

(*)

{

()

0;

{

(,"\\\\\\t">>>>>>);

(>);

(>);

}

}

插入

()

{

()

{

;

>;

>>;

>0;

1;

}如果是空的话就生成新节点并且返回1

{

(>);

(0)

{

("该学号学生已经存在,不能插入");

();

0;

}

(<0)往右子树方向上插入

{

(>)这里传过去的是根的右子树

(1)

(>)

{

1:

>0;

0;

直接插入并改变平衡因子,并且改变标识变量

0:

>1;

直接插入并改变平衡因子即可

-1:

(>>1)

{

(T)1,注意分清楚这里面的根结点

>>>0左旋之后并进行平衡因子的更改

}

(>>1)

{

(>>>0)

{

>>>0;

}7,注意分清这里面的根结点

(>>>1)

{

>0;

>>1;

>>>0;

}3,注意分清这里面的根结点

(>>>1)

{

>1;

>>0;

>>>0;

}2,注意分清这里面的根结点

(T);

}这里要分情况讨论是因为旋转过后平衡因子的改变是不一样的

0;

;

}

;

}

(>0)往左子树方向上插入

{

(>);

(1)

(>)

{

0:

>1;

1;

;

-1:

>0;

0;

;

1:

(>>1)

{

(T);

>>>0;

}4,注意分清这里面的根结点

(>>1)

{

(>>>1)

{

>0;

>>1;

>>>0;

}5,注意分清这里面的根结点

(>>>1)

{

>1;

>>0;

>>>0;

}6,注意分清这里面的根结点

(>>>0)

{

>>>0;

}8,注意分清这里面的根结点

(T);

}

0;

;

}

;

}

}

}

查找

(*)为已经存在的树,x为要查找的数据,为将要返回的指针

{

()

0;

((>)0)

{

;

1用返回值来区别是否找到

}

((>)<0)由于根节点上的数据“小于”x的数据,因此到根节点的右子树上寻找

{

;

(>)应该记得也就是T了

}

{

;

(>);

}

}

删除

(*)

{

()

{

("没有该学生");

();

0;

}

(>);

(>0)往左子树方向上删除

{

(>);

(1)

(T);

}

(<0)往右子树方向上删除

{

(>);

(1)

(T);

}

{

(>)

{

;

>;

p;

1;

}

(>)

{

;

>;

p;

1;

}

{

(>);

(1)

(T);

}

;

}

0;

}

显示

(T)

{

()

0;

{

(>);

("学号:

\t姓名:

\t专业:

\t班级:

\t生日:

\t年龄:

\n">>>>>>);

(>);

}

}

创建

()

{

{

("输入学生\n学号姓名专业班级年龄生日:

");

("");

();

();

("是否继续():

");

();

}('Y''y');

}

()

{

();

{

(0<)

("");

("学号:

\t姓名:

\t专业:

\t班级:

\t生日:

\t年龄:

\n">>>>>>);

(>1);

(>1);

}

}

五、调试分析

   1、原程序在结束创建时需输入五次#才能结束,后调整为“”判断是否继续。

六、使用说明 

 程序名为二叉平衡树_学生信息管理系统,运行环境为。

程序执行后显示

 

||

|欢迎使用学生信息管理系统|

||

温馨提示:

为保证您的操作得到保存,请按正常顺序退出系统

+学生信息管理系统+

+[1]建立数据存储+

+[2]插入学生信息+

+[3]删除学生信息+

+[4]浏览学生信息+

+[5]查询学生信息+

+[6]保存学生信息+

+[7]查二叉平衡树+

+[0]安全退出系统+

+*·*·*·*·*·*·*·*·*·*·*·+

请输入您的选择:

在后输入数字选择执行不同的功能。

要求首先输入足够多的插入元素,才可以进行其他的操作。

  

选择0:

退出程序  

选择1:

创建系统并输入初始信息

选择2:

插入新信息

选择3:

删除指定学生信息

选择4:

浏览全部学生信息

选择5:

查询指定学生信息

选择6:

保存全部学生信息

选择7:

查看二叉平衡树(凹入显示)

七、测试结果

A.创建操作中依次输入1

01黄世晨信安1101191993

y

02许彬信安1101201992

y

03邓志光信安1101201992

n

构建二叉平衡树

输入4

浏览信息

结果:

完成输入三人的信息

B.查找操作中依次输入5

01

结果:

成功查找01号学生信息

C.删除操作中依次输入3

03

输入4

浏览信息

结果:

成功删除03号学生信息

D.插入操作中依次输入2

04曹廷祥信安1101211991

输入4

浏览信息

结果:

成功插入04号学生信息

E.凹入显示操作输入7

结果:

显示二叉平衡树

F.保存操作输入6

结果:

成功保存

G.退出操作输入0

结果:

安全退出程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1