当前位置:文档之家› 数据结构实训指导_家谱树

数据结构实训指导_家谱树

数据结构实训指导_家谱树
数据结构实训指导_家谱树

计Y104班数据结构实训指导

广西工学院计算机工程系阳树洪

2011年12月

1 实训目的

本次实训的总体目的在于通过系统的编程训练,培养学生编写一个具有一定难度的小型系统的能力,培养学生从编写单个程序,实现单个程序功能到进行系统开发,整体调试的能力。从知识点的角度来说,目的在于通过本实训项目,让学生对二叉树这一重要数据结构的运用更加熟练。

2 实训题目:树状家谱管理系统。

本次实训的题目是树状家谱管理系统。要求利用数据结构的知识,通过将树转换为二叉树的概念,采用孩子兄弟二叉树的方式实现家谱管理系统。不容许采用数据库实现家谱管理。每个树结点表示一个家族成员,成员基本信息可包含,姓名、出生日期、死亡日期、性别、出生地、家庭住址、职业、职位、辈分、简历、父亲姓名、其他。具体属性自行确定。

要求实现的总体基本功能包括:

家谱信息的录入,修改,删除;

家谱树的层次化显示;

家谱树保存到文件;

从文件中读取数据重建家谱树;

按各种关键字进行查询;

某一成员的所有祖先(直系祖先)的查询;

某一成员的所有直系亲属的查询

确定两个成员的关系;

统计成员人数;

家谱成员的年龄,身高;

选做功能包括:

在打开家谱的当天,提醒当天有哪些人过生日;

对已经去世的成员以寿命为关键字进行排序(寿命精确到天,采用快速排序算法);

对简历的内容进行用KMP算法进行字符搜索;

编写基于MFC的图形界面。(没有MFC基础的同学不做);

其它自由发挥的功能,如果有意义有难度可以提高最后成绩。

3 成绩评定办法

总成绩由最终答辩成绩,平时抽检成绩,实训报告成绩3部分组成,比例为:4:3:3。

3.1最终版本程序的考核标准:

1、没有完成基本功能,编程风格较差,例如:如采用全局变量,采用goto 语句,缺少必要的注释语句,程序结构混乱等。成绩评定为D(不及格)。

2、完成基本功能,系统框架设计基本合理,人机接口友好,但存在不多于3个bug,编程风格较好,成绩评定为C(及格)。

3、完成基本功能,系统框架设计合理,人机接口友好,并实现至少2项选做功能,编程风格良好,测试用例丰富,测试结果完整。成绩评定为B(良好)。

4、完成基本功能,系统框架设计合理,人机接口友好,实现至少3项选做功能,并能在老师给出的选做功能的基础上,提出自己其它有意义的功能并实现。编程风格良好,测试用例丰富,测试结果完整。成绩评定为A(良好)。

3.2实训报告的考核标准:

1、没有按规定的格式编写实训报告,内容敷衍了事,测试用例记载不详细,成绩评定为D(不及格)。

2、按规定的格式编写实训报告,内容能充分描述作者所做系统,所用图表和算法几乎与教师所给指导材料雷同,测试用例记载详细,成绩评定为C(及格)。

3、按规定的格式编写实训报告,内容能充分描述作者所做系统,根据所提文档能方便的进行系统重现,文理较通顺,图表基本完备,所用图表和算法与教师所给指导材料不尽雷同,测试用例记载详细,并能基本覆盖所有程序的所有可能出错情况。成绩评定为B(良好)。

4、按规定的格式编写实训报告,内容能充分描述作者所做系统,根据所提交文档能方便的进行系统重现,文理通顺,图表完备,所用图表和算法与教师所给指导材料不尽雷同,测试用例记载详细,并能覆盖所有程序的所有可能出错情况。程序调试过程,作者实训体会编写真实深刻,对以后做这一实训题目的同学具有一定借鉴意义。成绩评定为A(良好)。

3.3 平时抽检成绩的评价标准:

1、总体上来说,不能按时完成各阶段任务基本功能,需要延迟提交的最高成绩降低一个档次,也就是说最高成绩只能为B。

2、能按时完成基本功能,没有BUG;或者能完成该任务阶段的所有选做功能,但存在不多于3个BUG,成绩评定为A。

3、能按时完成基本功能,但存在不多于2个BUG;或者能完成该任务阶段的一半以上选做功能,但存在不多于3个BUG,成绩评定为B。

3、能按时完成基本功能,但存在不多于3个BUG;或者能完成该任务阶段的任一选做功能,但存在不多于4个BUG,成绩评定为C。

4、分阶段任务基本功能没有实现,且延时4学时后仍不能完成,成绩评定为D 。

4 系统功能模块结构

这里给出的功能模块结构示意图只供参考,个人可以根据自己的想法另行设计,只要能实现给定的功能即可。

系统界面

新建家谱家谱保存到文件从文件重建家谱

层次化显示家谱

家谱节点的增删改查家谱总体信息查询家谱总体信息统计

家谱信息存储文件(二进制)

家谱信息查询统计结果显示文本文件

图1 系统总体结构示意图

5 数据结构 5.1 总体数据结构

1、家谱树采用孩子兄弟二叉树表来实现,如图2 所示的家谱采用图3所示的孩子兄弟二叉树来存储。

李甲天

李一河李一福李二铁

李一山

李二金李二银李三国李三家李三建

图2 树状形式的家谱示意图

图2中同一父亲的亲兄弟已经按年龄从大到小排序,即最左边的孩子是父节点的第一个孩子。将其转化为孩子兄弟二叉树的方法是:对某一个节点,令其左子树指针指向该节点的第一个孩子,右子树指针指向该节点的下一个兄弟。按这种方法,图2所示的家谱树可用如图3所示的孩子兄弟二叉树来实现:

李甲天

李一河

李一福

李二铁李一山

李二金

李二银

李三国

李三家

李三建

图3 孩子兄弟二叉树表示的家谱树

2、节点数据结构:

建议将节点信息中个人信息作为一个结构体。日期信息作为一个包含年、月、日三个成员的结构体。

节点包括三个成员域:

节点个人信息(结构体);

第一个孩子指针;

下一个兄弟指针;

其中节点个人信息结构体可包括:姓名、出生日期、死亡日期、性别、出生地、家庭住址、职业、职位、辈分、简历、父亲姓名、其他等。

为方便操作,可在节点中加入指向父亲的指针。

6 分阶段任务分解及其关键算法提示

6.1阶段任务一(6学时)

6.1.1基本功能

1、确定整个程序的功能模块。实现程序的主界面,要对主界面的功能选择输入进行容错处理。

2、实现单个结点信息的录入。

3、对录入日期信息进行合法性检验。 6.1.2选做功能

1、采用改变字体颜色的方式突出显示主界面的功能项。

2、计算从出生日期到死亡日期的实际天数 6.1.3关键算法提示

日期信息进行合法性检验包括两方面,首先是年份,月份,日期必须在一定的数字范围内,特别注意闰年的问题。其次是出生日期必须在死亡日期之前。

参考流程图:

输输输输输输

输输输输输输输输

输输输输

输输输输输输

输输输输输输输输输输输输输输输输输输输输

输输输输输输

Y

N

Y

输输输输输输输输0输0输0输

N

N

Y

图4 日期信息的合法性检验流程图

6.2阶段任务二(10学时) 6.2.1基本功能

1、若家谱树为空,则新建家谱树。实现成员节点的添加。基本功能中可以强制要求所有成员不同名,即不考虑同名情况(符合小家族的实际情况)。

2、添加成员节点时,可以选择将新添加的节点作为整个家谱的上一代祖先,或者将新添加的节点作为某个现有成员的孩子。

3、作为某个现有成员的孩子,根据给出的父节点的姓名将该结点添加到相应位置,注意,针对某一父节点,添加第一个孩子和其它孩子的区别。

4、要求在孩子兄弟二叉树中按各个孩子的年龄进行排序。 6.2.2选做功能

1、如果容许存在同名,如何实现。

2、父子之间的出生年月应该符合常理,比如儿子应该至少比父亲小多少岁(自行设定)。同时,父亲如果已经死亡,则其死亡日期最多只能在儿子出生之前的多少个月(自行设定,不考虑过继或领养的情况)。同时,同一父节点的孩子之间,亲兄弟的出生日期应该至少有多少个月的差距(只考虑一夫一妻制)。 6.2.3关键算法提示

成员节点添加时,先判断新节点是作为整个家族的上一代祖先还是某个成员的孩子,若作为整个家族的祖先,则调用添加祖先模块,若作为某个成员的孩子,则调用添加孩子模块;在添加孩子模块中,先判断父节点是否有第一个孩子,若无,则将新节点作为父亲的第一个孩子,否则调用添加兄弟模块;添加兄弟时应按年龄寻找插入位置。

参考流程图:

输入成员信息

父节点的是否

有第一个孩子

添加兄弟模块

完成

N

Y

将新输入的节点作为父节点的第一个孩子

图5 添加成员孩子模块流程图

输输输输输输输输输输输输输输输

输输

Y

N

输输输输输输输输输输输输输输输输输输,输输输输输输输输

输输输输输输输输输

pre 输输输输输输输输输next 输输输输pre 输输输

next 输输输输输输输输输

输输输输输next 输

输输输输输输输输输输输输next 输pre 输输输输输输输输输输输输输

pre 输输输输next;next 输输输输next 输输输

Y

N

输输输输输输输输输输输输

图6 添加兄弟模块流程图

6.3阶段任务三(8学时)

6.3.1基本功能

1、将家谱树保存到二进制文件。注意,不能保存空白节点。

2、从文件读入家谱信息,重建孩子兄弟二叉树形式的家谱。

6.3.2选作功能

从文件中读出所有节点信息到一个数组中,然后按一年中生日的先后进行快速排序。

6.3.3关键算法提示

采用先序遍历二叉树的方式将节点信息保存到文件。保存信息时,可以只保存节点个人信息(结构体);而无需保存指针域。

从文件读取信息重建二叉时,先将节点信息读入到缓冲区,通过读入结构体中父亲姓名找到父节点,然后用与节点添加类似的方式将读入的节点添加到二叉树上。

6.4阶段任务四(8学时)

6.4.1基本功能

1、按姓名查询家谱成员并显示该成员的各项信息。

2、给出某一成员的姓名,删除该成员和该成员的所有子孙。

3、成员信息的修改。信息修改时要给出选择界面让用户选择需要修改的信息项。基本功能中可以限定不容许修改父亲姓名和本人姓名。对日期信息进行修改时要进行检验。

4、实现层次递进的方式显示整个家谱,显示结果应该体现家谱树的结构。

6.4.2选作功能

1、容许重新指定父亲。

2、容许修改本人姓名。如果节点中都保存有父亲姓名,则本人的所有孩子应同步修改。

6.4.3关键算法提示

1、采用先序遍历二叉树的方式查询节点信息。

2、采用后序遍历的方式删除节点。

3、成员信息的层次化显示应该充分利用辈分信息。如图2所示的家谱显示结果可以如图7所示(容许其它显示方式,能体现家谱树的结构即可)

图7 家谱信息层次化显示示意图

6.5阶段任务五(8学时)

6.5.1基本功能

1、按各种关键字进行查询,要求给出关键字选择界面,并显示符合查询条件的节点信息。

2、信息统计基本要求包括:平均身高,平均寿命,男女成员各多少,平均家庭人口数目(假定每个成员构成一个家庭,该家庭的家庭成员是指成员本人和他的孩子,即家庭人口数=孩子数+1)。要给出统计项的选择界面,如图8所示(仅供参考,可以有其它形式)

图7 统计项选择界面

3、查询某一成员的所有直系亲属。

4、给出某一成员的所有嫡系祖先。

5、确定两人关系。若两人辈分不等,则应指出甲是乙的多少代长辈(晚辈),甲是否是乙的直系长辈(晚辈),若辈分相同,则应指出是亲兄弟还是多少代的堂兄弟。

6.5.2选做功能

1、在控制台界面输出查询结果的同时,将查询统计结果输出到文本文件,注意,不容许使用全局变量。

2、对简历中的内容进行KMP算法匹配,即,搜索简历中包含某一内容的成员。

6.5.3关键算法提示

10

确定两人关系时,应充分利用辈分信息和指向父节点的指针。若辈分相同,则由父指针往上追溯,可知两人是亲兄弟还是堂兄弟;若辈分不等,则从辈分较小的一方往上追溯到较大的辈分数,如果追溯过程中出现辈分较大的一方,则说明辈分较大者是辈分较小者的直系长辈,反之则不是。 6.6阶段任务六(8学时)

系统总体调试与测试。应该对出现的错误进行详细记载,VC 编译器有出错提示的可以才用出错信息屏幕拷贝的方式;对逻辑错误要进行深入分析;详细记载错误的解决方法。

测试情况要求给出测试目的,输入,输出,截屏结果,结果分析。例如:

测试目的:检测在出生日期和死亡日期输入时,程序是否对闰年进行检测。 测试用例1:

输入:出生日期 1921年2月29日

输出:给出提示“你输入的日期有误,请重新输入”。 截屏:

结果分析:1921年不是闰年,程序能正确检测。 测试用例2:

输入:出生日期 1920年2月29日

输出:没有出错提示信息,直接进入下一步输入。 截屏:

结果分析:1920年是闰年,程序能正确检测。

数据结构家谱管理系统范本

数据结构家谱管理 系统

宁波大红鹰学院 信息工程学院 课 程 设 计 报 告 项目名 家谱查询系统 称: 白钰琦 项目组 长: 徐程凯、徐海域、项鸿伟 项目成 员: 10计科1班 班级名 称: 计算机科学与技术 专业名 称: 完成时间: 12月1日 信息工程学院制 目录 一、案例描述 ............................................................ 错误!未定义书签。 1、总体描述 ....................................................... 错误!未定义书签。 2、模块描述 ....................................................... 错误!未定义书签。

二、设计思路 ............................................................ 错误!未定义书签。 三、程序设计 ............................................................ 错误!未定义书签。 1、数据结构描述................................................ 错误!未定义书签。 2、主函数及其流程图........................................ 错误!未定义书签。 3、源程序 ........................................................... 错误!未定义书签。 四、调试与分析 ........................................................ 错误!未定义书签。 1、主菜单 ........................................................... 错误!未定义书签。 2、显示家谱信息................................................ 错误!未定义书签。 3、显示家谱中第n代人所有信息 .................... 错误!未定义书签。 4、按姓名查找某人并相应输出 ........................ 错误!未定义书签。 5、按出生日期查找家谱成员信息 .................... 错误!未定义书签。 6、为家谱中成员添加孩子信息 ........................ 错误!未定义书签。 7、为家谱中成员添加妻子信息 ........................ 错误!未定义书签。 8、删除家谱中成员及其后代信息 .................... 错误!未定义书签。 9、修改家谱中成员信息.................................... 错误!未定义书签。 10、确定家谱中两个成员关系 .......................... 错误!未定义书签。 11、按出生年月排序家谱 .................................. 错误!未定义书签。 五、设计总结 ............................................................ 错误!未定义书签。 1、完成情况 ....................................................... 错误!未定义书签。 2、心得体会 ....................................................... 错误!未定义书签。

#(16课时)数据库实验指导书

《数据库原理及使用》实验指导书 (适用于计算机科学和技术、软件工程专业) 热风器4 计算机科学和技术学院 2011年12月 ⒈本课程的教学目的和要求 数据库系统产生于20世纪60年代末。30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。数据库原理是计算科学和技术专业重要的专业课程。 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库使用的基本训练,提高其解决实际问题的能力。 ⒉实验教学的主要内容 数据库、基本表、视图、索引的建立和数据的更新;关系数据库的查询,包括单表查询、连接查询、嵌套查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库使用系统的设计实现。 ⒊实验教学重点 本课程的实验教学重点包括: ⑴数据库、基本表、视图、索引的建立和数据的更新; ⑵SQL的数据查询; ⑶恢复、完整性和安全性实现机制; ⑷简单数据库使用系统的设计实现; 4教材的选用 萨师煊,王珊.数据库系统概论(第四版).北京:高等教育出版社.2006,5 实验1创建数据库(2学时) 实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和使用。 实验内容 一、给定一个实际问题,实际使用问题的模式设计中至少要包括3个基本表。使用问题是供应商给工程供应零件(课本P74)。 1.按照下面的要求建立数据库: 创建一个数据库,数据库名称可以自己命名,其包含一个主数据文件和一个事务日志文件。注意主数据文件和事务日志文件的逻辑名和操作系统文件名,初始容量大小为5MB,

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

数据结构实验指导书(2016.03.11)

《数据结构》实验指导书 郑州轻工业学院 2016.02.20

目录 前言 (3) 实验01 顺序表的基本操作 (7) 实验02 单链表的基本操作 (19) 实验03 栈的基本操作 (32) 实验04 队列的基本操作 (35) 实验05 二叉树的基本操作 (38) 实验06 哈夫曼编码 (40) 实验07 图的两种存储和遍历 (42) 实验08 最小生成树、拓扑排序和最短路径 (46) 实验09 二叉排序树的基本操作 (48) 实验10 哈希表的生成 (50) 实验11 常用的内部排序算法 (52) 附:实验报告模板 .......... 错误!未定义书签。

前言 《数据结构》是计算机相关专业的一门核心基础课程,是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础,也是很多高校考研专业课之一。它主要介绍线性结构、树型结构、图状结构三种逻辑结构的特点和在计算机内的存储方法,并在此基础上介绍一些典型算法及其时、空效率分析。这门课程的主要任务是研究数据的逻辑关系以及这种逻辑关系在计算机中的表示、存储和运算,培养学生能够设计有效表达和简化算法的数据结构,从而提高其程序设计能力。通过学习,要求学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。另外本课程的学习过程也是进行复杂程序设计的训练过程,通过算法设计和上机实践的训练,能够培养学生的数据抽象能力和程序设计能力。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写实验指导书。 一、实验目的 本课程实验主要是为了原理和应用的结合,通过实验一方面使学生更好的理解数据结构的概念

福建工程学院《实验指导书(数据库系统原理及应用)》

数据库系统原理 实验指导书 (本科)

目录 实验一数据定义语言 (1) 实验二SQL Sever中的单表查询 (3) 实验三SQL Serve中的连接查询 (4) 实验四SQL Serve的数据更新、视图 (5) 实验五数据控制(完整性与安全性) (7) 实验六语法元素与流程控制 (9) 实验七存储过程与用户自定义函数 (11) 实验八触发器 (12)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\S tuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录; (4)将年龄的数据类型改为smallint; (5)向S表添加“入学时间(comedate)”列,其数据类型为日期型(datetime); (6)对表S,按年龄降序建索引(索引名为inxage); (7)删除S表的inxage索引; (8)删除S表; 5.在StuDB数据库中, (1)按照《数据库系统概论》(第四版)P82页的学生-课程数据库创建STUDENT、COURSE 和SC三张表,每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。 并输入相关数据。 (2)将StuDB数据库分离,在D盘下创建DB文件夹下找到StuDB数据库的两个文件,进行备份,后面的实验要用到这个数据库。 6.(课外)按照《数据库系统概论》(第四版)P74页习题5的SPJ数据库。创建SPJ数据 库,并在其中创建S、P、J和SPJ四张表。每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。要作好备份以便后面的实验使用该数据库数据。 三、实验要求:

家谱管理系统 -数据结构大作业

/* 家谱管理系统 任务:实现具有下列功能的家谱管理系统 功能要求: 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱中所有人排序。 12).打开一家谱时,提示当天生日的健在成员。 要求:建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。 测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据及测试结果请在上交的资料中写明; */ #include #include

#include #include #include"map.h" #define MAXN 100 #define MAXMEM 100 #define Elemtype char ============================== //树 typedef struct BiTNode { i nt mark;//标记 int level; char name[50];//姓名 char birthday[50];//生日 char address[MAXN];//住址 bool marriage;//婚否(true表示结婚,false表示没结婚) bool live;//建在(true表示活着,false表示过世) bool sex;//性别(true表示男,false表示女) char livemassage[50];//死亡日期(如果其已经死亡) Elemtype data;// struct BiTNode *lc,*rc; }BiTNode,*BiTree; //树的相关操作 char nametemp[50];//姓名 char birthdaytemp[50];//生日 char addresstemp[MAXN];//住址 bool marriagetemp;//婚否(true表示结婚,false表示没结婚)bool livetemp;//建在(true表示或者,false表示过世)

数据结构实验指导书

《数据结构》实验指导书 实验一顺序表 实验目的: 熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。 实验要求: 了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。 实验内容: 1、编写程序实现在线性表中找出最大的和最小的数据元素,并符合下列要求: (1)设数据元素为整数,实现线性表的顺序存储表示。 (2)从键盘输入10个数据元素,利用顺序表的基本操作建立该表。 (3)利用顺序表的基本操作,找出表中最大的和最小的数据元素(用于比较的字段为整数)。 2、编写一个程序实现在学生成绩中找出最高分和最低分,并符合下列要求: (1)数据元素为学生成绩(含姓名、成绩等字段)。 (2)要求尽可能少地修改第一题的程序来得到此题的新程序,即要符合第一题的所有要求。(这里用于比较的字段为分数) 实验二链表 实验目的: 熟悉链表的逻辑特性、存储表示方法的特点和链式表的基本操作。 实验要求: 了解并熟悉链式表的逻辑特性、存储表示方法和链式表的基本操作的实现和应用。

实验内容: 1、编写一个程序建立存放学生成绩的有序链表并实现相关操作,要求如下: (1)设学生成绩表中的数据元素由学生姓名和学生成绩字段组成,实现这样的线性表的链式存储表示。 (2)键盘输入10个(或若干个,特殊数据来标记输入数据的结束)数据元素,利用链表的基本操作建立学生成绩单链表,要求该表为有序表 并带有头结点。(用于比较的字段为分数)。 (3)输入关键字值x,打印出表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (4)输入关键字值x,删除表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (5)输入关键字值x,并插入到表中,使所在的链表仍为有序表。(用于比较的字段为分数)。 实验三栈的应用 实验目的: 熟悉栈的逻辑特性、存储表示方法和栈的基本操作。 实验要求: 了解并熟悉栈的逻辑特性、顺序和链式存储表示方法和栈的基本操作的实现和应用。 实验内容: (1)判断一个表达式中的括号(仅有一种括号,小、中或大括号) 是否配对。编写并实现它的算法。 (2)用不同的存储方法,求解上面的问题。 (3)* 若表达式中既有小括号,又有大括号(或中括号),且允许 互相嵌套,但不能交叉,写出判断这样的表达式是否合法的算 法。如 2+3*(4-{5+2}*3)为合法;2+3*(4-{5+2 * 3} 、 2+3*(4-[5+2 * 3)为不合法。

数据结构家谱课程设计报告

家谱管理系统 姓名:田鑫磊 学号:1514020421 (1)功能部分: 本程序共实现了6个功能分别为: 1.读出家谱并显示 2.确定指定成员在家族中的辈份 3.输出指定辈的所有成员 4.在家谱中添加新成员,并追加到文件中 5.输出指定家庭的所有成员 6. 退出本系统 (2)各功能的算法思想: 1.读出家谱并显示 存储结构用栈,按照先显示双亲,然后显示其所有孩子的顺序显示所有的家庭成员。 2.确定指定成员在家族中的辈份 用求成员所在的二叉树中的层数(按层遍历二叉树)来确定,这里采用的是递归算法3.输出指定辈的所有成员 此处定义了一个新的结构体类型(增加存储节点所在的层数),定义如下: struct { BTNode *q; int loc; //存结点所在的层数 }qu[10]; 并用一个队列来比较显示同辈分的所有成员。 4.在家谱中添加新成员,并追加到文件中 首先,输入一个新成员的名字; 然后,输入其双亲; 之后,再添加到整个存储二叉链表中。 然后,再将新的存储结构写回到文件中。 二叉链表的结点类型为:typedef struct node { ElemType data[10]; //存放成员的名字 struct node *child; //其孩子指针 struct node *brother; //其兄弟指针 }BTNode; 5.输出指定家庭的所有成员 首先,设一个栈,并设一个标记位,先置1; 然后,找到输入的要待显示的成员,将标记位置0; 再次,显示其孩子和兄弟,依次下去直到显示完其所有的亲戚。 6.退出本系统 通过一个输入字符q来控制,每完成一个功能,系统提示是否要继续操作:

数据库实训指导书(1)讲解

人事管理系统功能规范(SQL部分)

1 概述 1.1目的 本文为教学案例项目SQL Server功能规范说明书。本说明书将: ●描述数据库设计的目的 ●说明数据库设计中的主要组成部分 ●说明数据库设计中涵盖的教学知识要点 1.2内容 本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系)。本文档中包含对以下数据库内容的描述: ●数据表 ●视图 ●存储过程 ●用户自定义函数 ●触发器 ●约束 1.3与其他项目的关联 教学案例项目的数据库设计与教学项目(Web部分和Windows部分)功能密切相关。 教学案例项目的数据库将按照教学项目程序部分的功能需求而设计,数据库设计将配合教学案例的程序部分,以实现一个功能完备的企业环境内的应用。 2 表 2.1表设计概述 根据教学案例功能,数据库将以员工信息为中心存储相关数据,配合SQL Server 数据库系统中提供的数据管理,实现员工考勤、请假、加班管理及系统设置等业务功能。 数据库设计将以存储员工信息的员工表为基础,连接多张相关表以实现对以下关系的支持: ●员工与请假申请 ●员工与加班申请 ●员工与考勤记录 ●员工与部门

●员工与部门经理 ●员工与业绩评定记录 ●员工与薪资 此外数据库中还将记录教学案例应用中需要的全局配置信息和事件日志记录。数据库系统主要的实体关系如图2-1所示。

2.2员工表 概述 员工表用于记录员工基本信息,并作为基础表与其他表连接。该表通过DeptID和Title可以确定员工部门和职位信息。当Title的值为“经理”时可以确定此员工为该部门的部门经理。 表定义 员工表定义如表2-1所示。 表2-1 主键 员工表的主键是员工编号字段,类型为整型,设置自动增量。

2017数据结构实验指导书

《数据结构》实验指导书 贵州大学 电子信息学院 通信工程

目录 实验一顺序表的操作 (3) 实验二链表操作 (8) 实验三集合、稀疏矩阵和广义表 (19) 实验四栈和队列 (42) 实验五二叉树操作、图形或网状结构 (55) 实验六查找、排序 (88) 贵州大学实验报告 (109)

实验一顺序表的操作 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的和要求 1、熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。 2、以线性表的各种操作(建立、插入、删除等)的实现为重点。 3、掌握线性表的动态分配顺序存储结构的定义和基本操作的实现。 二、实验内容及步骤要求 1、定义顺序表类型,输入一组整型数据,建立顺序表。 typedef int ElemType; //定义顺序表 struct List{ ElemType *list; int Size; int MaxSize; }; 2、实现该线性表的删除。 3、实现该线性表的插入。 4、实现线性表中数据的显示。 5、实现线性表数据的定位和查找。 6、编写一个主函数,调试上述算法。 7、完成实验报告。 三、实验原理、方法和手段 1、根据实验内容编程,上机调试、得出正确的运行程序。 2、编译运行程序,观察运行情况和输出结果。 四、实验条件 运行Visual c++的微机一台 五、实验结果与分析 对程序进行调试,并将运行结果进行截图、对所得到的的结果分析。 六、实验总结 记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等,并将其写入实验报告中。

【附录----源程序】 #include #include using namespace std; typedef int ElemType; struct List { ElemType *list; int Size; int MaxSize; }; //初始化线性表 bool InitList(List &L) { L.MaxSize=20; L.list=new ElemType[L.MaxSize]; for(int i=0;i<20&&L.list==NULL;i++) { L.list=new ElemType[L.MaxSize]; } if(L.list==NULL) { cout<<"无法分配内存空间,退出程序"<L.Size+1||pos<1) { cout<<"位置无效"<

最新数据结构课程设计题目

数据结构课程设计 一、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在3页内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现 6.集合的并、交和差运算的程序 7.运动会分数统计 8.一元多项式计算器 9.文章编辑 10.哈夫曼树及其编码 11.校园导游咨询 12.通讯录管理系统的设计与实现——单链表 13.地图着色问题 14.内部排序算法比较 15.火车售票系统 16.图书管理系统 17.客户消费积分管理系统 18.产品进销存管理系统

数据结构实验指导书2014(1)

《数据结构》实验指导书 专业:____________班级:_______________组序:_____________ 学号:______________姓名:_______________ 中国矿业大学管理学院 2014 年9 月

上篇程序设计基础 实验一 Java编程环境 【实验目的】 1.掌握下载Java sdk软件包、Eclipse软件的安装和使用方法 2.掌握设置Java程序运行环境的方法 3.掌握编写与运行Java程序的方法 4.了解Java语言的概貌 【实验内容】 一 JDK下载与安装 1. 下载JDK 为了建立基于SDK的Java运行环境,需要先下载免费SDK软件包。SDK包含了一整套开发工具,其中包含对编程最有用的是Java编译器、Applet查看器和Java解释器。下载链接 https://www.doczj.com/doc/362229859.html,。 2.安装SDK 运行下载的JDK软件包,在安装过程中可以设置安装路径及选择组件,默认的组件选择是全部安装,安装成功后,其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,demo文件夹中包含开源代码程序实例。 安装成功后,文件和子目录结构如图1所示。其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。 图1 二.设置环境变量

数据结构家谱管理系统

//////////////////////////////////////////////////////////// /////////////////// //题目:家谱资料管理 //要求:家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件, //实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等。 //////////////////////////////////////////////////////////// /////////////////// #include #include #include int MATEFLAG=0; typedef struct TreeNode

int Num; //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Kind; //标示节点的种类有女G男B struct TreeNode * NextNode[20]; //记录这个人的儿女struct TreeNode * Parent; //记录这个节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree); void OutPutAll(TreeNode *Tree); TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenue(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree);

数据结构(二叉树)家谱管理系统

数学与计算机学院 课程设计说明书 课程名称: 数据结构与算法课程设计 课程代码: 题目: 二叉树生成家谱 年级/专业/班: 学生姓名: 学号: 开始时间: 2015 年 12 月 09 日 完成时间: 2015 年 12 月 29 日 课程设计成绩: 指导教师签名:年月日目录(小三黑体,居中)

1 需求分析 (6) 1.1任务与分析 (6) 1.2测试数据 (6) 2 概要设计 (7) 2.1 ADT描述 (7) 2.2程序模块结构 (8) 2.3各功能模块 (9) 3 详细设计 (10) 3.1结构体定义 (10) 3.2 初始化 (11) 3.3 插入操作 (13) 3.4 查询操作 (15) 4 调试分析 (18) 5 用户使用说明 (18) 6 测试结果 (18) 结论 (23) 附录 (24) 参考文献 (25)

随着计算机科学技术、计算机产业的迅速发展,计算机的应用普及也在以惊人的速度发展,计算机应用已经深入到人类社会的各个领域。 计算机的应用早已不限于科学计算,而更多地应用在信息处理方面。 计算机可以存储的数据对象不再是纯粹的数值,而扩展到了字符、声 音、图像、表格等各种各样的信息。对于信息的处理也不再是单纯的 计算,而是一些如信息存储、信息检索等非数值的计算。那么,现实 世界的各种数据信息怎样才能够存储到计算机的内存之中,对存入计 算机的数据信息怎样进行科学处理,这涉及计算机科学的信息表示和 算法设计问题。为解决现实世界中某个复杂问题,总是希望设计一个 高效适用的程序。这就需要解决怎样合理地组织数据、建立合适的数 据结构,怎样设计适用的算法,以提高程序执行的时间效率和空间效 率。“数据结构”就是在此背景下逐步形成、发展起来的。 在各种高级语言程序设计的基本训练中,解决某一实际问题的步骤一般是:分析实际问题;确定数学模型;编写程序;反复调试程序直 至得到正确结果。所谓数学模型一般指具体的数学公式、方程式等,如牛顿迭代法解方程,各种级数的计算等。这属于数值计算的一类问 题。而现实生活中,更多的是非数值计算问题,如手机中的通讯录,人们对它的操作主要是查找、增加、删除或者修改电话记录。再如,人们经常在互联网上查阅各种新闻,或查阅电子地图,人们可以在某 城区地图上查找自己所需的街道或店铺,其操作主要是搜索和查询。 下面再来分析几个典型实例,它们的主要特点是:不同实例的数据元 素之间存在不同的关系;对数据信息的处理主要有插入、删除、排序、 检索等。 关键词:网络化;计算机;对策;二叉树

数据库实训指导书

《数据库》实训计划 课程名称:数据库原理及应用 一、课程简介 《数据库原理及应用》课程是我院计算机科学与技术专业的一门重要专业课程,是一门理论性和实践性都很强的面向实际应用的课程,它是计算机科学技术中发展最快的领域之一。可以说数据库技术渗透到了工农业生产、商业、行政管理、科学研究、教育、工程技术和国防军事等各行各业。因此本课程的教学既要向学生传授一定的数据库理论基础知识,又要培养学生运用数据库理论知识和数据库技术解决实际应用问题的能力。 二.课程实验 实验题目 1.学籍管理系统 2.图书档案管理系统 3.企业人事管理系统 4.工资管理系统 5.用户和权限管理系统。 6.仓库管理系统。 7.企业进销存管理系统。 8、超市管理系统 10、酒店管理系统 11、旅游管理系统 12、高考成绩信息管理系统

13、医院信息管理系统 14、银行计算机储蓄系统 15、 ICU监护系统 16、可自拟题目 任选一题按照下列实验纲要进行设计。 实验纲要 1、实验目标 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库应用的基本训练,提高其解决实际问题的能力。 2、实验内容 数据库的模式设计;数据库、表、视图、索引的建立与数据的更新;关系数据库的查询,包括嵌套查询、连接查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库应用系统的设计实现。 给定一实际问题,让学生自己完成数据库模式的设计,包括各表的结构(属性名、类型、约束等)及表之间的关系,在选定的DBMS上建立数据库表。用SQL命令和可视化环境分别建立数据库表,体会两种方式的特点。 3、实验教学重点 本课程的实验教学重点包括:⑴数据库的模式设计;⑵SQL的数据查询; ⑶并发控制、恢复、完整性和安全性实现机制;⑷简单数据库应用系统的设计实现; 实验1:数据库的创建

数据结构课程设计题目

数据结构课程设计 一、考核方法和容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸打印,报告总页数控制在10—15页,报告中不能全是代码,报告中代码总量控制在3页。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现

《数据结构》实验指导书

《数据结构》实验指导书 实验类别:课内实验实验课程名称:数据结构 实验室名称:软件工程实验室实验课程编号:N02070601 总学时:64 学分: 4 适用专业:计算机科学与技术、网络工程、物联网工程、数字媒体专业 先修课程:计算机科学导论、离散数学 实验在教学培养计划中地位、作用: 数据结构是计算机软件相关专业的主干课程,也是计算机软硬件专业的重要基础课程。数据结构课程实验的目的是通过实验掌握数据结构的基本理论和算法,并运用它们来解决实际问题。数据结构课程实验是提高学生动手能力的重要的实践教学环节,对于培养学生的基本素质以及掌握程序设计的基本技能并养成良好的程序设计习惯方面发挥重要的作用。 实验一线性表的应用(2学时) 1、实验目的 通过本实验,掌握线性表链式存储结构的基本原理和基本运算以及在实际问题中的应用。 2、实验内容 建立某班学生的通讯录,要求用链表存储。 具体功能包括: (1)可以实现插入一个同学的通讯录记录; (2)能够删除某位同学的通讯录; (3)对通讯录打印输出。 3、实验要求 (1)定义通讯录内容的结构体; (2)建立存储通讯录的链表结构并初始化; (3)建立主函数: 1)建立录入函数(返回主界面) 2)建立插入函数(返回主界面) 3)建立删除函数(返回主界面) 4)建立输出和打印函数(返回主界面) I)通过循环对所有成员记录输出 II)输出指定姓名的某个同学的通讯录记录 5)退出 实验二树的应用(2学时) 1、实验目的 通过本实验掌握二叉排序树的建立和排序算法,了解二叉排序树在实际中的应用并熟练运用二叉排序树解决实际问题。 2、实验内容 建立一个由多种化妆品品牌价格组成的二叉排序树,并按照价格从低到高的顺序 打印输出。 3、实验要求 (1)创建化妆品信息的结构体; (2)定义二叉排序树链表的结点结构; (3)依次输入各类化妆品品牌的价格并按二叉排序树的要求创建一个二叉排序树链表;(4)对二叉排序树进行中序遍历输出,打印按价格从低到高顺序排列的化妆品品牌信息。 实验三图的应用(2学时)

家谱管理系统(含源代码)

家谱管理系统——C语言(数据结构) 目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员祖先、子孙、兄弟、堂兄弟的查找。 排答疑和辅导。 完整代码: #include #include #include int MATEFLAG=0; //是否入赘或嫁入这家的,1表示为是,0表示否 typedef struct TreeNode//树节点定义 { int Num; //保存此人儿女个数 char Name[20]; //保存此人姓名 char Kind; //保存此人性别,男M,女F struct TreeNode * NextNode[20]; //保存此人的儿女,NextNode[0]里存放配偶的地址struct TreeNode * Parent; //保存此节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree);//创建树 void OutPutAll(TreeNode *Tree);//输出树 TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenu(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree); void OutPutMessage(TreeNode * Tree,char name[],int length); //主函数 void main() { TreeNode *Tree;//产生根节点 Tree=(TreeNode *)malloc(sizeof(TreeNode)); Tree->Parent =NULL; strcpy(Tree->Name,"0"); MainMenu(Tree);//显示主菜单 } //添加新的成员 void AddNew(TreeNode * Tree) { SubMenue2(Tree);//添加新成员界面 } //显示添加家庭信息的界面

ACCESS数据库实训指导书

《ACCESS数据库》实训指导书 一、实训总目的: 利用access数据库技术开发一个学生档案管理系统,要求: 1.掌握数据库、数据表及表间关系的创建与修改方法,理解参照完整性概念。 2.了解查询基本功能,能熟练创建各种类型的查询。 3.了解窗体的作用,能利用各种方法创建、编辑出界面美观的窗体。 4.了解报表的作用,能按需制作格式正确的报表。 5.掌握系统集成技术,能将各分散对象组装成一个的完整系统。 二、实训内容和时间进程安排: 三、实训成绩评定、考核办法 数据表及关系创建占10分,学生档案窗体占10分,课程表窗体占10分,成绩表窗体占10分,查询窗体占15分,系统集成占5分,实训报告占40分。

实训内容 实训一数据表及关系的创建 一、实训目的 熟练掌握数据库的创建方法,熟练掌握数据表结构设计及修改方法。 二、实训理论基础 关系型数据库基本概念、关系完整性规则、主键及范式理论。 三、实训内容与步骤 创建学生档案表、课程名表、学生成绩表,设置主键、建立表间关系,收集到的各数据表的内容如下。 学生档案表 学生选课情况 课程名表

学生成绩表 具体步骤如下: 1、创建数据库: 启动ACCESS,创建以“学生”命名的数据库。 2、创建数据表: 经过对收集到的数据表经过规范化处理,在数据表设计视图中创建如下数据表:学生档案表、课程名表、学生选课成绩表,各表结构如下。 学生档案表 课程名表 学生成绩表 3、创建表间关系,如下图1-1所示。

图1-1 表间关系 四、效果要求: 1、字段属性设置正确。 2、表间关系设置正确,要求实施参照完整性、级联更新、级联删除相关记录。

相关主题
文本预览
相关文档 最新文档