您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 高校社团管理课程设计-二叉树的应用(附全代码)
目录引言..............................................................61需求分析..........................................................61.1任务与分析...................................................61.2测试数据.....................................................72概要设计..........................................................72.1ADT描述.....................................................72.2程序模块结构.................................................82.3各功能模块.................................................83详细设计.........................................................93.1结构体定义...................................................93.2初始化......................................................93.3插入操作....................................................93.4创建........................................................123.5查询........................................................133.6修改........................................................153.7统计........................................................163.8删除........................................................174调试分析.........................................................214.1问题分析和解决..............................................214.2算法的时间复杂度分析........................................214.3经验和体会..................................................215用户使用说明....................................................216测试结果........................................................21结论.............................................................27致谢.............................................................28西华大学高校社团管理数据结构课与算法课程设计任务书学院名称:数学与计算机课程代码:专业:软件工程年级:2010级一、设计题目高校社团管理二、主要内容在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:具体操作:1.画出社团结构的二叉树2.给出数据结构应考考虑树中结点如何表示社团和成员3.实现下列操作(1)初始化存储社团和会员的二叉树;(2)建立以二叉链存储的社团;(3)查询:输入社团名称或社团中团员姓名,在二叉树中进行查找,若找到则显示相应信息;否则显示未找到信息;(4)修改:输入社团名称或社团中团员姓名,修改找到的社团或会员的相关信息;(5)插入:输入新的社团名称,在二叉树中增加一个社团;(6)会员插入:输入新的会员姓名,在指定的社哮中增加一个会员;(7)统计:统计每个社团中的成员数,并显示结果;(8)删除:输入会员,删除相关社团中指定的会员;(9)社团删除:输入社团名称,删除指定的社团。三、具体要求及应提交的材料用C/C++语言编程实现上述内容,并按数学与计算机学院对课程设计说明书规范化要求,写出课程设计说明书,并提交下列材料:西华大学高校社团管理1)课程设计说明书打印稿一份2)课程设计说明书电子稿一份;3)源程序电子文档一份。四、主要技术路线提示社团管理部门、社团和社团成员构成了完整的二叉树,二叉树选用二叉链表作为存储结构。五、进度安排按教学计划规定,数据结构与算法课程设计为2周,其进度及时间大致分配如下:序号设计内容天数1分析问题,给出数学模型,选择数据结构22设计算法,给出算法描述13给出源程序清单24编辑、编译、调试源程序25编写课程设计报告3总计10六、推荐参考资料[1]严蔚敏,吴伟民.数据结构.清华大学出版社出版。[2]严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社.2003年5月。[3]唐策善,李龙澎.数据结构(作C语言描述).高等教育出版社.2001年9月[4]朱战立.数据结构(C++语言描述)(第二版本).高等出版社出版.2004年4月[5]胡学钢.数据结构(C语言版).高等教育出版社.2004年8月指导教师签名日期年月日系主任审核日期年月日西华大学高校社团管理摘要随着计算机的普及,计算机的应用越来越广泛,多用于复杂事物的管理。该说明书主要是对高校社团管理系统进行描述,准确清楚的阐述了本系统的功能。本次课程设计实现了对社团和会员的录入、查询、修改、插入、统计、删除等功能,功能详细全面。关键词:社团;功能;管理;西华大学高校社团管理引言数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。课程设计是实践性教学中的一个重要环节,它是以课程为基础可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。1需求分析1.1任务与分析在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:具体操作:1.画出社团结构的二叉树2.给出数据结构应考考虑树中结点如何表示社团和成员3.实现下列操作(1)初始化存储社团和会员的二叉树;(2)建立以二叉链存储的社团;(3)查询:输入社团名称或社团中团员姓名,在二叉树中进行查找,若找到则显示相应信息;否则显示未找到信息;(4)修改:输入社团名称或社团中团员姓名,修改找到的社团或会员的相关信息;(5)插入:输入新的社团名称,在二叉树中增加一个社团;(6)会员插入:输入新的会员姓名,在指定的社哮中增加一个会员;(7)统计:统计每个社团中的成员数,并显示结果;(8)删除:输入会员,删除相关社团中指定的会员;(9)社团删除:输入社团名称,删除指定的社团。西华大学高校社团管理1.2测试数据图1-1测试数据2概要设计2.1ADT描述ADTLeagueManage{数据对象:D{具有相同特征的数据元素的有限集合;}数据关系:R={H};R如D为空,则R也为空,LeagueManage为空二叉树。否则D不为空,则R={H},H详细描述如下:1.D中存在唯一的称之为跟root的节点,它在关系H下无前驱;2.若D-{root}不为空,则D-{root}={D1,Dr},切D1,Dr互不相交;3.(D1,{H1})和(Dr,{Hr})都是二叉树,分别是跟root的左子树和右子树。基本操作:Face():选择用户要执行的操作;CreatBTree():创建社团,录入会员;Find():查找社团和会员;Alter():修改社团和会员;Insert():插入社团和会员;Statistic(Member*):统计社团中的成员数;fedbcyingyuruanjian11000000a西华大学高校社团管理DeleteNode():删除社团和会员}2.2程序模块结构开始Order创建查询修改插入统计删除退出结束图1-2程序模块结构图2.2.1结构体定义structMember{ElemTypename;inttag;Member*lch;Member*rch;};2.3各功能模块Face():选择用户要执行的操作;CreatBTree():创建社团,录入会员;Find():查找社团和会员;Alter():修改社团和会员;西华大学高校社团管理Insert():插入社团和会员;Statistic(Member*):统计社团中的成员数;DeleteNode():删除社团和会员3详细设计3.1结构体定义structMember{ElemTypename;inttag;Member*lch;Member*rch;};3.2初始化LeagueManage(){root=NULL;}3.3插入操作插入社团:if(order==1){charx;cout请输入新社团的名字:;cinm-name;m-tag=1;m-lch=m-rch=NULL;while(p-lch!=NULL&&p-rch!=NULL)p=p-lch;if(p-lch==NULL)p-lch=m;else西华大学高校社团管理p-rch=m;cout插入社团成功!endl;cout是否为新的社团录入会员(y/n):;cinx;while(x!='y'&&x!='Y'&&x!='n'&&x!='N'){cout输入错误!请重输:;cinx;}if(x=='y'||x=='Y'){Member*p,*s[30];ElemTypename;inttag;inti=2,j;s[1]=m;cout请输入标识符、名字:;cintagname;while(name.compare(0)){p=newMember;p-name=name;p-tag=tag;p-lch=p-rch=NULL;s[i]=p;j=i/2;if((i%2)==0)s[j]-lch=p;elses[j]-rch=p;i++;cout标识符、名字:;西华大学高校社团管理cintagname;}}cout录入成功!endl;system(pause);system(cls);}插入会员:elseif(order==2){cout请输入新会员的名字:;cinm-name;m-tag=0;m-lch=m-rch=NULL;cout请输入新会员所属社团的名字:;cinname;FindLeague(root,name,isfind,p);if(isfind==false)cout没有找到该社团!;else{while(p-lch!=NULL&&p-rch!=NULL)p=p-lch;if(p-lch==NULL)p-lch=m;elsep-rch=m;cout插入会员成功!endl;}system(pause);system(cls);西华大学高校社团管理}3.4创建voidLeagueManage::CreatBTree(){//
本文标题:高校社团管理课程设计-二叉树的应用(附全代码)
链接地址:https://www.777doc.com/doc-5551304 .html