版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号 数据结构课程设计设计说明书Horse管理信息系统+Horse图结构数据应用起止日期: 2015年 01月 06 日 至 2015年 01 月 15日学生姓名班级成绩指导教师(签字)计算机与信息工程学院2015年 01月 15日天津城建大学课程设计任务书20142015学年第 1 学期 学院 专业 班级课程设计名称: 数据结构课程设计 设计题目: Horse管理信息系统+Horse图结构数据应用 完成期限:自 2015 年 01月 6日至 2015 年 01月 15 日共 1 周设计依据、要求及主要内容(可另加附页):一、建立一个小型的管理信息系统:1、确认管理信息系统的主题:(一)主题
2、词汇表:1.hippopotamus 河马 2.jackal 豺 3.kingfisher 翠鸟 4. leopard豹 5.lion 狮 6.actor 演员 7.astronaut 太空员8.policeman 警察 9.firefighter 消防员 10.mugger 强盗 11.farmer 农民 12. boss 老板 13.dancer 跳舞者 14. Ostrich 鸵鸟 15. pilot 飞行员16.hairdresser 理发师 17. Mule 骡 18.waiter 服务员 19.accountant 会计20.monk-和尚 21.dog狗 22. priest-牧
3、师23.director- 导演24.model- 模特儿 25. singer-歌手 26.dentist-牙医 27. elephant-象 28.nurse-护士 29.navigator- 航海家 30.pilot- 飞行员31.architect建筑师 32. peacock孔雀 33.baker面包师 34.businessman商人 35. penguin企鹅 36.receptionist接待员 37.secretary-秘书 38.attorney-律师 39.judge-法官 40. rabbit兔子41.carpenter-木匠 42.painter-油漆匠 43.tai
4、lor-裁缝师 44.driver-司机 45.captain-船长 46.fisherman-渔夫 47.doctor医师 48.gardener园丁 49. chemist-药剂师 50.engineer工程师 51.scientist-科学家 52.salesperson售货员 53.photographer摄影师 54.fox狐 55.hourse 马 56.giraffe 长颈鹿 57.goat 山羊 58. Gorilla 大猩猩 59.Seagull海鸥 60.hedgehog 刺猬 61. Teacher 教师 62.professor 教授 63. cook 厨师 64.pr
5、incipal 校长65.singer 歌手66. monkey猴子按对应序号,每个同学获取对应词汇(二)为每个主题词确定具有特征的信息集。例:fish:id, name, length, Weight, Color, Is_Carnivore, Is_Marine意义:编号, 名字, 长度, 体重, 颜色, 是否食肉, 是否海鱼horse: id(编号), name(名字), age(年龄), length(身长),weight(体重),color(颜色),sex(性别)(三)为每个主题建立一个信息管理系统要求:1.定义结构体存储每个主题词实体的数据;2.使用单向链表进行多个数据的存储;3.
6、要求程序有主菜单,执行时显示实例为:Fish管理系统功能菜单1.增加Fish;2.删除Fish;3.修改Fish;4.查询Fish信息;5.统计Fish个数;6.输出Fish列表;7.退出;请输入你的选择(1-7):请实现以上功能。二、现在考虑新的应用场景,使得产生多对多的关系,例如:Fish主题中,一条鱼与另外多条鱼存在相邻的关系;那么在Fish的基础信息之上,还需要保存相邻的Fish的信息。为此,需要额外扩充关系数据。使用邻接链表是一个很好的方式。其思想是:先开辟数组存储Fish的基本数据,然后,为每个Fish,构建链表,存储所有的关系(即指向相邻Fish的指针数据);请按照上述思想,为你
7、的每个主题词实体,建立邻接链表实现,并且实现以下功能:Fish图结构数据处理程序1.创建Fish图)2.按照深度遍历的方式打印所有的Fish;3.按照广度遍历的方式打印所有的Fish;4.退出。三、直觉上,我们会认为:图的遍历的编程问题,比给定n个数字的线性序列求最大值问题更难。我们知道:面向过程编程的核心问题是:当处理完当前数据,决定下一个数据是谁。请回答下面的问题:(1)图的广度和深度优先遍历中,如何找到下一个要处理的数据? (2)n个数字线性序列求最大值问题中,如何找到下一个要处理的数据? (3)结合前述解答,解释为何图的广度和深度优先遍历问题难度直觉上大于线性序列最大值问题。四、心得和
8、体会1.如何理解数据结构中的关系?如果说:数据结构等同于数据+关系,那么对于编程问题而言,数据更重要还是关系更重要?为什么?2.能够预先建立关系,对于编程来说很重要。能否举例说明:哪些问题无法事先建立数据的关系?3.做完本课程设计后,你尚存在的问题是什么?有所收获的是什么?指导教师(签字): 系主任(签字): 批准日期: 年 月 日Horse管理信息系统+Horse图结构数据应用设计报告一、Horse信息管理系统1属性集及对应意义数据类型变量含义(整型)intid编号(字符串)stringname名字(整型)intage年龄(整型)intlength身长(整型)intweight体重(字符串)
9、stringcolor颜色(字符串)stringsex性别2结构体定义struct hoursenodeint id; /编号string name; /名字int age; /年龄 int length; /身长int weight; /体重string color; /颜色string sex; /性别struct hoursenode *next;3修改Horse功能的实现描述(文字描述和流程图)输入想要修改的马的idp!=NULL&p-id!=idp=p-next输出:所要修改的马不存在p=NULL输入所要进行的修改ENDY N Y N文字描述:输入想要修改的马的id,当p不为NULL
10、并且 p的id不等于id时,令p指向下一个结点p-next;否则,判断p是否为NULL。如果p为空,则马不存在;否则查找成功,输入所要进行的修改进行修改信息。4 各个功能的界面贴图(每个图都要图名)主菜单:增加Hourse:查询Horse:统计Horse:输出Horse:修改Horse:删除Horse:5 画出包含有三个数据的链表示意图123 id name age length weight color sex 二、Horse图结构数据处理程序1描述你的场景主题在Horse信息系统中,一匹马与其他多匹马存在相邻关系,在保存一匹马的基本信息基础上,还需要保存马匹之间的相邻关系。在建立信息系统过
11、程中,输入Horse的基本信息后,再建立它的关系属性,用链表的方式存储,建立Horse之间的关系,实现相邻成员之间的链接。2 画图表示你的样例数据对应的邻接链表,并上方注明结构体的各个域名;VertexNumidnameagelengthweightcolorsexfirstVertexNumnext01jack2190290whitem1212rose2170270redw02423mary2160260redw01334jerry2180280redm245tom2185270whitem1012343 用自己的话,描述深度遍历或广度遍历的算法思想深度遍历:从指定顶点出发,首先访问这个顶点
12、,然后从这个顶点的第一个未被访问过的邻接点出发再次进行深度遍历,直到所有的顶点都被访问过。广度遍历:从指定顶点出发,首先访问这个顶点,然后访问这个顶点的所有未被访问过的邻接点,然后从这些邻接点中第一个出发,访问它的未被访问过的邻接点,直到所有顶点都被访问过。4 广度遍历和深度遍历在存储待处理结点的数目上,哪个更多?为什么?深度遍历在存储待处理结点的数目上多一些。深度优先遍历一次只遍历一个与指定结点邻接的顶点,如果在递归遍历过程中出现某一个顶点的所有邻接点都已被访问,但还有未被访问过的顶点,就需要回到它的上一个顶点,再找出没有被访问过的顶点,进行深度遍历。而广度遍历,一次就可把所有与指定顶点的相
13、邻接都访问,然后再访问邻接点的未被访问的顶点。所以,深度遍历在存储待处理结点的数目较多。三、程序难度的探索直觉上,我们会认为:图的遍历的编程问题,比给定n个数字的线性序列求最大值问题更难。我们知道:面向过程编程的核心问题是:当处理完当前数据,决定下一个数据是谁。请回答下面的问题:1 图的广度和深度优先遍历中,如何找到下一个要处理的数据? 在深度遍历时,遍历时,结点以栈的形式存储,通过被访问过的栈来找到下一个处理数据。在广度遍历中,遍历时,结点以队列的形式存储,通过被访问过的队列来找到下一个处理数据。 2 n个数字线性序列求最大值问题中,如何找到下一个要处理的数据? 线性序列中,数据以线性表形式
14、存储,将一个数据的指针域指向另一个数据存储就可以找到下一个要处理的数据。3 结合前述解答,解释为何图的广度和深度优先遍历问题难度直觉上大于线性序列最大值问题。线性表中数据之间的关系是一对一的关系,一个结点有唯一一个邻接点,而深度遍历和广度遍历数据之间的关系是多对多,一个结点可以有多个邻接点,感觉上难度大。四、心得和体会1.如何理解数据结构中的关系?如果说:数据结构等同于数据+关系,那么对于编程问题而言,数据更重要还是关系更重要?为什么?数据结构中的关系是数据之间的联系,将原本孤立的点联系起来编程一个整体,一种结构,便于更好地处理数据。我觉得对于编程问题而言,关系更为重要。数据是独立的,不能做任何编程,而关系却能处理更多编程问题,所以关系比较重要。2. 能够预先建立关系,对于编程来说很重要。能否举例说明:哪些问题无法事先建立数据的关系?括号匹配问题没法事先建立数据关系。3. 做完本课程设计后,你
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人房屋租赁担保合同模板4篇
- 2024苹果加工副产品深加工技术研发合同3篇
- 2025年度彩色激光打印机租赁及升级服务合同模板3篇
- 雪人的创意课程设计
- 年度雕刻雕铣设备控制系统竞争策略分析报告
- 2025年猕猴桃种植技术培训土地租赁与农民增收合同4篇
- 2025年度个人二手房交易合同模板环保装修服务版3篇
- 2025年离婚风险防范:协议离婚与诉讼离婚适用条件合同3篇
- 二零二五年度苗木出口业务代理销售合同4篇
- 二零二五版智能门窗控制系统集成与安装服务合同4篇
- 医院三基考核试题(康复理疗科)
- 2024-2030年中国招标代理行业深度分析及发展前景与发展战略研究报告
- 医师定期考核 (公共卫生)试题库500题(含答案)
- 基因突变和基因重组(第1课时)高一下学期生物人教版(2019)必修2
- 内科学(医学高级):风湿性疾病试题及答案(强化练习)
- 音乐剧好看智慧树知到期末考试答案2024年
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 案卷评查培训课件模板
- 2024年江苏省样卷五年级数学上册期末试卷及答案
- 人教版初中英语七八九全部单词(打印版)
- 波浪理论要点图解完美版
评论
0/150
提交评论