版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精心整理 课程设计 数据结构课程设计报告 学 号: 姓名:张 灿 指导教师 : 专业:计算机 完成日期: 目录 篇:旅游信息管理系统 一、题目要求 1、题目内容1 二、程序设计目标 1、题目分析1 2 、功能简介2 3 、数据结构2 三、概要简述 1 、功能结构图3 2 、模块分析3 精心整理 四、详细设计 1、结构体定义3 2 、程序流程图5 五、源程序代码 1、源程序C+实现代码 -6 六、调试分析及测试结果 1、运行结果截14 七、附录 1、补充说明19 八、程序小结 1、报告总结 19 B 篇:B-树手工题 一、题目要求 1、题目内容20 二、运行过程 1、从空树插入20 2 、插入完
2、成25 3 、依次删除要求点26 4 、最终结果28 C篇:附加题 一、题目 精心整理 1、题目内容29 二、程序设计目标 1、功能简介29 2、数据结构29 三、设计思路 1、结构体定义29 2 、功能结构图30 3 、程序流程图30 四、实现代码 1、程序代码32 五、程序调试以及运行结果 1、调试结果及截图43 六、报告总结 1、报告总结44 精心整理 A篇:旅游信息管理系统 一、题目要求 1、题目内容 旅游信息管理系统 1 )数据结构 (1)、二叉排序树加单链表 (2)、二叉排序树 说明:1、用二叉排序树表示旅游地点,用单链表表示游客。 2、用二叉排序树表示旅游地点和游客。 2 )、功
3、能 (1)、旅游地点的插入 (2)、游客报名 (3)、当某地的旅游人数少于三个人时,取消次旅游地,建 议游客该选其他旅游点 (4) 、当某旅游地旅游人数等于六个时,不允许在报名。建 议游客改选其它旅游地。 二、程序设计目标 1、题目分析 读题可知,需完成两方面的编程以对旅游系统进行操作。一方 面是旅游公司管理人员,主要是旅游景点的添加与删除,对旅游人员 的录入与删除,对旅游人数的统计,把游客所需信息打印等等;第二 精心整理 方面是游客对于旅游地的选、改、删,以及个人信息的输入、确认等 等。 2、功能简介 由以上分析可得:本设计程序功能主要有: 、旅游公司管理人员对旅游人员和旅游地点的操作,用二
4、 叉排序树管理旅游地点。主要有地点的变更,插入、删除、游客的信 息存储及及时提醒等功能。其中二叉树每一个结点包括旅游地点的区 号(area_node)、名称(area)、该旅游地的游客人数(count )、 以及一个指向游客信息结构的指针(list ),还有二叉树结点的左孩 子和右孩子指针(Ichild ,rchild )。 、游客可以登陆旅游公司界面进行报名、选择旅游地点和输 入个人信息。游客结构采用单链表,其中包括单链表的初始化、插入、 删除、计数功能。其中每一个单链表结点包括游客的编号(id)、姓 名(name)性别(sex)、和链接链表的指针(next )。 3 、数据结构 用到的数据
5、结构有:单链表,排序二叉树,数组。 三、概要简述 1 、功能结构图 2、模块分析二 本程序包括 单 三链模块:主程序模块、二叉排序树模块、单链表 模块,工作区选择模块。如图: 工 主程序模块*作 去 四、详细设计选 1、结构体定义 1)、链表结点结构体 typedef struct tourist stri ng n ame; int id; stri ng sex; struct tourist *n ext; Trist,*li nklist; 2) typedef struct Tree_Place int area_code;/ stri ng area;/ int count;/ s
6、truct Tree_Place *lchild,*rchild; Trist *list;/ 二叉排序树模块 单链表模块 左孩子排序区结点结构体游客数 右孩子 指 旅游地区号 旅游地名称 记录该旅游地报名游客人数 指向游客所在单链表的指针 Place,*TPlace; X 精心整理 2、 1左孩子 磊区 号 地名I 游客数 右孩子指 (1、程序员.2、游客) 主菜单 错误 输入密码 正确 (123 5) #in clude #in cludevstri ng #in cludevioma nip using n amespace std; #defi ne MAX 50 #define SI
7、ZE 12 typedef struct tourist char n ameSIZE; int id; char sex5; struct tourist *n ext; Trist,*li nklist; typedef struct Tree_Place int code; char areaSIZE; int count; 人数 struct Tree_Place *lchild,*rchild; Trist *list; 的指针 Place,*TPlace; void Search_T(TPIace void Mai nlist(TPIace / / / / 旅游地区号 旅游地名称
8、记录该旅游地报名游客 指向游客所在单链表 精心整理 void Tour_1(TPIace void Tour_2(TPIace void Destory(TPIace void In it_L(Ii nklist void In sert_L (TPlace char c; int i=1,co,id; while(t-cou nt6 tr=(li nklist)malloc(sizeof(Trist); tr-id =id; coutvv输入姓名,性别:vve ndl; cin tr- n ametr-sex; tr-n ext=head; head=tr; t-co un t+; cout
9、vv继续报名请按1,按0退出! vvendl; cin i; if(t-co un t=6) coutvv此旅游地人数已满,按 y选择其他旅游地,其他键退出! vve ndl;ci n c; if(c=y|c=Y) coutvv请重新输入区号 vve ndl;ci n co;Search_T(tree,co); else Tour_2(tree); void Delet_L (li nklist pro=head; while(pro) p=pro ;pro=p-n ext ;free(p); void In sert_T(TPIace else if(p-codecode) In sert_
10、T(tree-lchild,p); else if(p-codetree-code) In sert_T(tree-rchild,p); void Search_T(TPIace TPlace p; int code; p=tree; while(p else p=p-rchild ; if(!p) coutvv此旅游地点还未存在!co un t=6) coutvv此旅游地人数已满,按、y选择其他旅游地,其他键退出! vve ndl;ci n c; if(c=y|c=Y) coutvv请重新输入区号 vve ndl;ci n code;Search_T(tree,code);else Tour
11、_2(tree); else coutvv可以报名vvendl;Insert_L(tree,p, p-list);Tour_2(tree); TPlace Delete_T(TPIace /pare nt指向要删除的节点的双亲,p指向要删除的节点 p=t; pare nt=NULL; while(p) if(p-code=co) break; pare nt=p; if(p-codeco) p=p-lchild; else p=p-rchild; if(p=NULL)/不存在该树节点 return t; if(p-lchild=NULL) /无左子树,右子树可有可无 if(pare nt=NU
12、LL) t=p-rchild; else if(pare nt-lchild=p) pare nt-lchild=p-rchild; else pare nt-rchild=p-rchild; Delet_L (p-list); free(p); else /有左子树,右子树可有可无 q=p; s=q-lchild; / while(s-rchild) q=s; s=s-rchild; if(q=p) /其左孩子没有右子树 q-lchild=s-lchild; else q-rchild=s-lchild; p-code=s-code; Delet_L (s-list); free(s); r
13、eturn t; void Fun 1(TPIace int n; TPlace p; coutvv请输入插入地点个数: p-codep-area ; p-lchild =p-rchild =NULL; p-list=NULL; p-co unt =0; In sert_T(tree,p); coutvv输入完成,输入y或者Y继续操作,其他键退出!; cin c; if(c=y|c=Y) Fun 1(tree); else system(cls);Tour_1(tree); void Fun 2(TPlace TPlace p,sMAX; p=tree; while(p|top0) while
14、(p) stop+=p; p=p-lchild; if(top0) p=s-top;coutvvsetw(8)vv区号:vvp-codeareavvsetw(10)vv人数:vvp-co un tvve ndl; p=p-rchild; if(tree=NULL)coutvv还未录入旅游地!请稍后查询!vve ndl; coutvv按任意键返回上一级菜单!vvendl; system(pause);if(x=1)Tour_1(tree);if(x=2) Tour_2(tree); void Fun 3(TPlace char c; int top=0; in t elemMAX; TPlace
15、 p,sMAX; p=tree; while(p|top0) while(p) stop+=p; p=p-lchild; if(top0) p=s-top; if(p-cou nt3elem n 1=p-code ;n 1+; if(p-cou ntv6; n2+; p=p-rchild; if(x=1)coutvv 一共有vvnlvv各旅游景点人数少于三个 vvendl;coutvv 删除旅 游地请输入或者d,其他键返回菜单!vvendl;cinc; if(c=d|c=D) for(i nt i=0;iv n1;i+) Delete_T(tree,elemi);coutvv删 除完成! vv
16、endl; system(pause);Tour_1(tree); if(x=2)coutvv 一共有vvn2vv个旅游景点仍可报名vvendl;coutvv 按任意键返 回上一级菜单!vve ndl;system(pause);Tour_2(tree); void Fun 4(TPIace TPlace p; li nklist l,pre; p=tree; coutvv输入要退出旅游地的区号和自己的身份证号:vvendl; cin coid; while(p else p=p-rchild ; if(!p) coutvv此旅游地点还未存在!vve ndl;system(pause);Tou
17、r_2(tree); else l=p-list;pre=l; while(l-id!=id) pre=l; l=l-n ext; pre- next=l- next;free(l);p-co un t-;coutvv输入要报名的地点区号:vve ndl; cin co; Search_T(tree,co); void Ma in list(TPIace coutvv coutvv coutvv coutvv coutvv coutvv 欢迎登陆旅游购票系统vve ndl; 请选择登录身份:vve ndl; 1 、旅游公司管理人员vve ndl; 2 、游客vvendl; 3 、退出 程序vv
18、endl; *1 vve ndlvve ndl; coutvv *1 vve ndlvve ndl; int n, key,i=1; cinn; switch( n) case 3: Destory(tree);exit(0); case 1: docoutvv请输入登陆密码:”;cin key;i+;while(key!=12345 if(key=12345) Tour_1(tree);else Ma in list(tree);break; case 2: Tour_2(tree);break; default :coutvv输入错误,请重新选择!vve ndl;system(pause)
19、; Mai nl ist(tree); void Tour_1(TPlace int n; coutvv vve ndlvve ndl; coutvv1 、输入旅游地点vve ndl; *1 coutvv2 coutvv3 coutvv4 、查询各旅游地游客人数vve ndl; 、显示不足三人的旅游地vve ndl; 、退出vvendl; coutvv vve ndlvve ndl; *1 cinn; switch( n) case 1: Fun 1(tree);break; case 2: Fun 2(tree,1);break; case 3: Fun 3(tree,1);break; c
20、ase 4: Ma in list(tree);break;default :coutvv输入错误,请重新输入! code;Search_T(tree,code);break; case 2: Fun 2(tree,2);break; case 3: Fun 3(tree,2);break; case 4: Fun4 (tree);break; case 5:Ma in list(tree);break; default:coutvv输入错误,请重新输入! vvendl;system(pause);Tour_2(tree); /销毁二叉树 void Destory(TPlace system(
21、pause); exit(O); if(tree if(tree coutvvsetw(5)vvtree-codevvsetw(5)vvtree-areavve ndl; Delet_L (tree-list); free(tree); void mai n() TPlace T=NULL; Mai nl ist(T); 六、调试分析及测试结果 1、运行结果截图 七、附录 1、补充说明 #in clude #in cludevstri ng #in cludevioma nip :包含分配空间的头文件 :包含对字符串进行操作的头文件 :包含控制输出格式的头文件 Destory函数为释放内存,删
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区乐跑活动策划方案
- 篮球推广活动方案
- 水中运动训练方法
- 筹备招商活动方案
- 社区儿童艺术活动方案
- 疫情开学课间活动方案
- 高中亲子活动方案
- 客服实训报告
- 古地理分析编图省公共课全国赛课教案(2025-2026学年)
- 过度营销活动方案
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 交通银行测评题库答案大全
- 矿山合规与法律风险防控
- 夜班管理中的质量控制和监督措施
- 钼评估项目可行性研究报告
- JCT2460-2018 预制钢筋混凝土化粪池
- 2019火灾自动报警系统施工及验收标准
- 安徽东昇木业股份有限公司年产80000m3中(高)密度纤维板技改项目环境影响报告表
- 乳糜泻:诊断与治疗指南
- 型糖尿病病程记录模板
- 铁路专用线建设工程竣工备案材料
评论
0/150
提交评论