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

上传人:jin****ng 文档编号:170985705 上传时间:2022-11-23 格式:DOCX 页数:12 大小:170.82KB
收藏 版权申诉 举报 下载
平衡二叉树学生信息管理系统报告_第1页
第1页 / 共12页
平衡二叉树学生信息管理系统报告_第2页
第2页 / 共12页
平衡二叉树学生信息管理系统报告_第3页
第3页 / 共12页
资源描述:

《平衡二叉树学生信息管理系统报告》由会员分享,可在线阅读,更多相关《平衡二叉树学生信息管理系统报告(12页珍藏版)》请在装配图网上搜索。

1、华井电力*孑课程设计报告(20112012年度第2学期)实验名称:数据结构与算法题目:平衡二叉树学生信息管理系统院系:控计学院班级:信安1102学 号:学生姓名:指导教师:设计周数:仝成 绩:日期:2012年7月5日一、课程设计的目的与要求(一)目的:应用数据结构和算法来设计相应的程序,培养学生问题求解模块的框(二).要求:架设计和详细设计、相关程序实现和调试能力,完成创新能力和实践能力的训练。用高级程序设计语言c编码,用VC+开发平台调试。二设计正文、课程设计题目用二叉平衡树实现学生基本信息管理,功能如下:1,创建;2,插入;3,删除;4,查找;5,显示;6,保存;7,退出;要求:所有信息用

2、文件保存,基本信息包括(姓名,学号,出生年月,班级)(二)、需求分析本演示程序在DOS环境用C语言编写,完成平衡二叉树的生成,插入、删除,查找,修 改,显示,排序,分组以及生成文件保存并读取。D输入的形式和输入值的范围:插入元素时需要输入插入元素的基本信息; 删除元素时输入删除元素的关键字学号;查找操作时需要输入元素的姓名。在所有输入中, 元素的值都是字符型数组。2)输出的形式:在所有操作中都显示操作的结果。其中删除操作后显示删除的元 素的值,查找操作后显示根据关键字查得的学生基本信息。3)程序所能达到的功能:完成单平衡二叉树的创建(通过插入操作)、插入、 删除、查找,显示等操作。4)测试数据

3、:1创建4个学生信息naxu 110119930100 xinan1102 makewei 110219930101 xinan1102 mliude 110319941210 xinanll02 mgeyang 110419941214 xinan1102 f2 插入 1 个学生信息 liujie 110519940705 xinan1102 f3删除1个学生信息输入1103则删除该结点信息4查找学生信息输入geyang则显示该生基本信息(三) 、概要设计1) 数据类型及操作为了实现上述程序功能,需要定义平衡二叉树抽象数据类型:Elemtypenode, *pnode1 基本操作: crea

4、te(pnode &ptree,int n)操作结果:创建一个包含n个结点的平衡二叉树2.基本操作: inser t( pnode &pt ree,Elem type e,i nt &t aller)操作结果:将元素e平衡二叉树中初始条件:二叉树ptree已存在3 基本操作:delete1(pnode &ptree,char x10,int &taller)操作结果:删除树中关键字为char x10的结点初始条件:二叉树ptree已存在4.基本操作: find(pnode pt ree,char * ch)操作结果:查找树中是否存在姓名为char *ch的结点,若有,则输出结点信息初始条件:二

5、叉树ptree已存在5基本操作: change(pnode pt ree,Elem type e)操作结果:查找出该关键字结点的位置并修改结点信息初始条件:二叉树ptree已存在6.基本操作: Pri nt( pnode pt ree,i nt inde nt)操作结果:凹入显示平衡二叉树的结果初始条件:二叉树ptree已存在7基本操作: display(pnode ptree)操作结果:中序遍历显示按学号排序结果初始条件:二叉树ptree已存在8基本操作: male(pnode ptree), fmale(pnode ptree)操作结果:按性别分组显示学生基本信息初始条件:二叉树ptree

6、已存在9.基本操作: save(pnode pt ree,FILE *p)操作结果:保存二叉树中的结点信息到文件中初始条件:二叉树ptree已存在10基本操作: read(pnode &pt ree,FILE *p)操作结果:读取文件中的信息并按照信息建立新的平衡二叉树2) 本程序包含17个函数:1 主函数main()2插入结点函数insert()3插入时调用的左平衡处理leftl ()4插入时调用的右平衡处理rightl ()5 删除结点函数dele te1()6删除时调用的左平衡处理left2 ()7.删除时调用的右平衡处理right2()8删除时调用的用于处理结点左右子树都存在的情况de

7、lete2()9查找函数find()1创建二叉树函数crea te()11修改结点信息函数change()12 中序输出函数display()13 凹入显示函数Prin t()14.输出性别为男的学生信息函数male()15 输出性别为女的学生信息函数fmale()16 存储学生信息到文件的函数save()17 读取文件中的学生信息并生成新的二叉平衡树的函数read()3) 程序调用示意图如下:(四)、详细设计为了实现概要设计中定义的所有的数据类型;对主程序和其他模块写出伪代码算法或者画出流程图;1)结点类型和指针类型typedef struct A char NO10; char name1

8、0;char birt10; char clas10;char sex2; 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 inser t( pnode &pt

9、 ree,Elem type e,i nt &t aller)if (ptree二二NULL) ptree二new node;ptree-data二e;ptree-lchild=ptreerchild二NULL;ptree-bf=0;taller=1;elseif (st rcmp(e.NO,p treeda ta.N0)=0)taller=O;return 0;if(s trcmp(e.NO,p tree-da ta.N0)lchild,e ,t aller)=0) return 0;if(t aller=1) eftl(pt ree ,t aller);else if(inser t(pt

10、 ree-rchild,e ,t aller)=0) return 0;if(t aller=1) righ tl(pt ree ,t aller); return 1;3二叉平衡树的删除操作代码int dele tel(pnode &pt ree,char x10 ,int &t aller) if(ptree二二NULL)return 0;else if (st rcmp(x,p tree-da ta.NO)lchild,x ,t aller); if(t aller=1)lef t2(p tree ,t aller);return k;else if (st rcmp(x,p tree-

11、da ta.NO)0)k二dele tel(p tree-rchild,x ,t aller);if(t aller=1)righ t2(p tree ,t aller);return k;elseq=ptree;if (ptree-rchild二二NULL)ptree=ptree-lchild;delete q;taller=1;else if (ptree-lchild二二NULL)ptree=ptree-rchild;delete q;taller=1;elsedele te2(q,q-lchild ,t aller);if(t aller=1)lef t2(q,t aller);ptr

12、ee=q;return 1;4重新从文件里读出数据并生成新的二叉平衡树的代码void read(pnode &pt ree,FILE *p) int j;char c;Elemtype e;if(p二fopen(s tudent.txt ,r)二二NULL)return ;whil e(c=fge tc(p)!=EOF)fscanf(p,%s%s%s%s%s,e.name,e.NO,e.bir t,e.clas,e.sex);inser t(pt ree,e,j);fclose(p);(五) 、调试分析save函数以“a”的方式打开文件,利用中序遍历递归向文件写入结点信息,但下次 打开文件事会

13、读入之前文件数据,最后保存时回产生重复,会将之前文件已有的信息再次写 入文件。解决方法是在调用save函数之前先以“w”方式打开文件向文件中写入“n”然后 关闭文件,这一操作可以使文件之前的信息被“ n”覆盖,相当于清空文件,然后就可以正 常写入信息到文件。(六) 、使用说明程序名为a12.exe,运行环境为DOS。程序执行后显示请选择:1 载入学生信息2 重新创建信息 输入1或2选择不同的功能,选择1实现之前创建文件的读取,选择2则需要重新创建学生 信息。输入后继续显示如下*平衡二叉树实现学生基本信息管理*1 创建2 插入3 删除4 修改5 查找6 显示7 排序8 分组9 保存退出选择1:创

14、建平衡二叉树选择2:向平衡二叉树中插入新的结点选择3:删除平衡二叉树中的某个结点选择4:修改平衡二叉树的结点信息选择5:输入学生姓名显示该学生的基本信息选择6:凹入显示平衡二叉树选择7:中序遍历按学号顺序输出二叉树中的结点信息选择8:分组输出男生女生的基本信息选择9:将以上所做改动后二叉树的结点信息存入文件中 选择0:退出结束程序(七)、测试结果1)选择2重新创建学生信息,则得到以下菜单I- C:UsersAdrm inistratorDes Ictopl交件h玄口Debu gal. I 1=1平衛二灭树实现学生基本信息管理十37R&I输入操作选项馆一一9rrr2)创建:选择2输入4,创建4个

15、学生信息.1 C:User5XAd m in Strato rDeE Irto p 文件Debu gal2.exe输入要创建的学生数嘉入学生信息滩名,学号,生日,班级,性别naxu110119930100xinanll02makeuei 110219930101xinanll02mLinde 110319941210 xinanll02 m缶 Li回4丄994丄214xinanllPQ3)删除:选择3输入liujie 110519940705 xinanll02 f则插入一个新的结点到平衡二叉树中4)查找:选择4输入geyang则显示其基本信息W C:UsereAdm i nistrato r

16、Des lttopjZftix& Debu ga. .J.三_输入要查找的学生姓名cfeyancf姓名 学号 生日班级 性别眇艸网 110419941214 xininii02 F5) 显示:选择6凹入显示二叉树的节点信息7)分组:选择8则按性别分组显示C: .UsersAd minist rsto rDes Icto p 交件hcD e bu gal2.e)ce凹入显示已akeifei110219930101xinanll02 mj j!n axu110119930100xlna.nll92 n1 1!greyansr110419941214 xinnll02 F!iliuj ie11051

17、9940795xinanli02 F-L-pir卜6)排序: 选择7则按照学号排序输出结点信息按学号排序结果如下;姓名学号生日班级性别nnaxit110119930100x in an1182makeuei110219930101x in an1102m110419941214x in an1102Fliuj ie110519940705x in an1102fPI卜C :.User5Adm i nistrst o rDes Irto p 文件、hysDebu ga.8)修改:选择4输入maxu 110119930105 xinanllO m则将该学号的信息修改9)保存: 选择9则将之前改动后二叉树的结点信息保存到文件中三、课程设计总结或结论通过课程设计,用平衡二叉树实现了学生基本信息管理,实现的基本功能主要包括平衡 二叉树的创建,插入新的结点,删除结点,根据结点关键字查询结点信息,修改结点信息, 平衡二叉树的凹入显示,中序遍历按学号顺序显示信息,按性别男女分组显示,保存结点信 息到文件中以及从文件中重新读取信息并创建新的平衡二叉树等功能LU参考文献c语言程序设计 郑玲 中国电力出版社数据结构教程李春葆清华大学出版社

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!