数据结构课设
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号
数据结构B课程设计
设计说明书
Photographer管理信息系统+
Photographer图结构数据应用
起止日期:2012 年06月25 日至2012年06 月29日
学生姓名
班级
成绩
指导教师(签字)
计算机与信息工程学院
2012年06月29日
天津城市建设学院
课程设计任务书
2011—2012学年第2 学期
学院专业班级
课程设计名称:数据结构B课程设计
设计题目:Photographer管理信息系统+Photographe r图结构数据应用
完成期限:自2012 年06月25日至2012 年06月29 日共 1 周
设计依据、要求及主要内容(可另加附页):
一、建立一个小型的管理信息系统:1、确认管理信息系统的主题:
(一)主题词汇表:
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--牧师23.director-- 导演24.model-- 模特儿25. singer--歌手
26.dentist--牙医27.doctor--医生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.tailor--裁缝师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.principal 校长65.singer 歌手
66. monkey猴子
按对应序号,每个同学获取对应词汇
(二)为每个主题词确定具有特征的信息集。
例:fish:{id, name, length, Weight, Color, Is_C arnivore, Is_Marine}
意义:{编号,名字,长度,体重,颜色,是否食肉,是否海鱼}
(三)为每个主题建立一个信息管理系统
要求:
1.定义结构体存储每个主题词实体的数据;
2.使用单向链表进行多个数据的存储;
3.要求程序有主菜单,执行时显示实例为:
Fish管理系统功能菜单
1.增加Fish;
2.删除Fish;
3.修改Fish;
4.查询Fish信息;
5.统计Fish个数;
6.输出Fish列表;
7.退出;
请输入你的选择(1-7):
请实现以上功能。
二、现在考虑新的应用场景,使得产生多对多的关系,例如:Fish主题中,一条鱼与另外多条鱼存在相邻的关系;那么在Fish的基础信息之上,还需要保存相邻的Fish的信息。为此,需要额外扩充关系数据。使用邻接链表是一个很好的方式。
其思想是:先开辟数组存储Fish的基本数据,然后,为每个Fish,构建链表,存储所有的关系(即指向相邻Fish的指针数据);
请按照上述思想,为你的每个主题词实体,建立邻接链表实现,
并且实现以下功能:
Fish图结构数据处理程序
1.创建Fish图)
2.按照深度遍历的方式打印所有的Fish;
3.按照广度遍历的方式打印所有的Fish;
4.退出。
三、直觉上,我们会认为:图的遍历的编程问题,比给定n个数字的线性序列求最大值问题更难。
我们知道:面向过程编程的核心问题是:当处理完当前数据,决定下一个数据是谁。请回答下面的问题:
(1)图的广度和深度优先遍历中,如何找到下一个要处理的数据?
(2)n个数字线性序列求最大值问题中,如何找到下一个要处理的数据?
(3)结合前述解答,解释为何图的广度和深度优先遍历问题难度直觉上大于线性序列最大值问题。
四、心得和体会
1.如何理解数据结构中的关系?如果说:数据结构等同于数据+关系,那么对于编程问题而
言,数据更重要还是关系更重要?为什么?
2.能够预先建立关系,对于编程来说很重要。能否举例说明:哪些问题无法事先建立数据的关系?
3.做完本课程设计后,你尚存在的问题是什么?有所收获的是什么?
指导教师(签字):
系主任(签字):
批准日期:年月日
Photographer管理信息系统+
Photographer图结构数据应用设计报告
一、Photographer信息管理系统
1.属性集及对应意义
数据类型变量意义
(整型) int id (编号)
(字符型) char name[20] (姓名)
(字符型) char sex[10] (性别)
(整型) int age (年龄)
(枚举类型)enum Nationality nationality(国籍)
(字符型) char color[20](肤色)
(整型) int level (职业等级)
2.结构体定义
enum Nationality