平衡二叉树学生信息管理系统报告(2)

2019-01-03 15:57

课程设计报告

read left1 create insert right2 left1 insret right2 change left2 delete1 main right2 delete2 find Print display male fmale save

5

课程设计报告

(四)、详细设计

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

1) 结点类型和指针类型

typedef struct A { char NO[10]; char name[10]; char birt[10]; char clas[10]; char sex[2]; }Elemtype; typedef struct B { Elemtype data; int bf; struct B *lchild; struct B *rchild; }node,*pnode;

2) 主要算法的伪代码

1. 二叉平衡树的遍历

二叉平衡树的显示,查找,结点信息修改,保存等操作均基于二叉平衡树的遍历操作,代码如下 if (ptree) {

display(ptree->lchild); printf( );

display(ptree->rchild); }

2. 二叉平衡树的插入操作代码

int insert(pnode &ptree,Elemtype e,int &taller) {if (ptree==NULL) { ptree=new node; ptree->data=e;

ptree->lchild=ptree->rchild=NULL; ptree->bf=0; taller=1;} else

{if (strcmp(e.NO,ptree->data.NO)==0)

6

课程设计报告

{

taller=0;return 0;}

if(strcmp(e.NO,ptree->data.NO)<0)

{if((insert(ptree->lchild,e,taller))==0) return 0; if(taller==1)

eft1(ptree,taller);} else{

if((insert(ptree->rchild,e,taller))==0) return 0; if(taller==1)

right1(ptree,taller);}} return 1;}

3. 二叉平衡树的删除操作代码

int delete1(pnode &ptree,char x[10],int &taller) {

if(ptree==NULL) return 0;

else if (strcmp(x,ptree->data.NO)<0) {k=delete1(ptree->lchild,x,taller); if(taller==1)

left2(ptree,taller); return k;}

else if (strcmp(x,ptree->data.NO)>0) {k=delete1(ptree->rchild,x,taller); if(taller==1)

right2(ptree,taller); return k;} else

{q=ptree;

if (ptree->rchild==NULL) {ptree=ptree->lchild; delete q;taller=1;}

else if (ptree->lchild==NULL) {ptree=ptree->rchild; delete q;taller=1;} else

{delete2(q,q->lchild,taller); if(taller==1)

left2(q,taller); ptree=q;

}return 1;}}

4. 重新从文件里读出数据并生成新的二叉平衡树的代码

void read(pnode &ptree,FILE *p) {int j;

7

课程设计报告

char c; Elemtype e;

if((p=fopen(\ return ;

while((c=fgetc(p))!=EOF)

{fscanf(p,\insert(ptree,e,j);} fclose(p);}

(五)、 调试分析

save函数以“a”的方式打开文件,利用中序遍历递归向文件写入结点信息,但下次打开文件事会读入之前文件数据,最后保存时回产生重复,会将之前文件已有的信息再次写入文件。解决方法是在调用save函数之前先以“w”方式打开文件向文件中写入“\\n”然后关闭文件,这一操作可以使文件之前的信息被“\\n”覆盖,相当于清空文件,然后就可以正常写入信息到文件。

(六)、使用说明

程序名为a12.exe,运行环境为DOS。程序执行后显示 请选择:

1------------------------载入学生信息 2------------------------重新创建信息

输入1或2选择不同的功能,选择1实现之前创建文件的读取,选择2则需要重新创建学生信息。

输入后继续显示如下

***********平衡二叉树实现学生基本信息管理*********** **************************************************** 1-----------------------------------------------创建 2-----------------------------------------------插入 3-----------------------------------------------删除 4-----------------------------------------------修改 5-----------------------------------------------查找 6-----------------------------------------------显示 7-----------------------------------------------排序 8-----------------------------------------------分组 9-----------------------------------------------保存

8

课程设计报告

0-----------------------------------------------退出 选择1:创建平衡二叉树

选择2:向平衡二叉树中插入新的结点 选择3:删除平衡二叉树中的某个结点 选择4:修改平衡二叉树的结点信息

选择5:输入学生姓名显示该学生的基本信息 选择6:凹入显示平衡二叉树

选择7:中序遍历按学号顺序输出二叉树中的结点信息 选择8:分组输出男生女生的基本信息

选择9:将以上所做改动后二叉树的结点信息存入文件中 选择0:退出结束程序

(七)、测试结果

1) 选择2重新创建学生信息,则得到以下菜单

2) 创建:选择2输入4,创建4个学生信息

9


平衡二叉树学生信息管理系统报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:长城赞演讲稿-中华文明赞演讲稿长城

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: