下载此文档

数据结构课程设计旅游管理系统.docx


文档分类:办公文档 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
该【数据结构课程设计旅游管理系统 】是由【小熙】上传分享,文档一共【19】页,该文档可以免费在线阅读,需要了解更多关于【数据结构课程设计旅游管理系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。课程设计
--------数据构造课程设计报告
学号:
姓名:张灿
指导教师:曹春萍
专业:计算机
达成日期:
目录
A篇:旅行信息管理系统
一、题目要求
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、插入达成-----------------------------------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)、二叉排序树加单链表
(2)、二叉排序树
说明:1、用二叉排序树表示旅行地址,用单链表表示旅客。
、用二叉排序树表示旅行地址和旅客。
)、功能
(1)、旅行地址的插入
(2)、旅客报名
(3)、当某地的旅行人数少于三个人时,撤消次旅行地,建议
旅客该选其余旅行点
(4)、当某旅行地旅行人数等于六个时,不同意在报名。建
议旅客改选其余旅行地。
二、程序设计目标
、题目剖析
读题可知,需达成双方面的编程以对旅行系统进行操作。一方
面是旅行企业管理人员,主假如旅行景点的增添与删除,对旅行人员
的录入与删除,对旅行人数的统计,把旅客所需信息打印等等;第二
方面是旅客关于旅行地的选、改、删,以及个人信息的输入、确认等
等。
2、功能简介
由以上剖析可得:本设计程序功能主要有:
、旅行企业管理人员对旅行人员和旅行地址的操作,用二叉排序树管理旅行地址。主要有地址的改正,插入、删除、旅客的信息储存及实时提示等功能。此中二叉树每一个结点包含旅行地址的区号(area_node)、名称(area)、该旅行地的旅客人数(count)、以及一个指向旅客信息构造的指针(list),还有二叉树结点的左孩子和右孩子指针(lchild,rchild)。
、旅客能够登岸旅行企业界面进行报名、选择旅行地址和输入个人信息。旅客构造采纳单链表,此中包含单链表的初始化、插入、
删除、计数功能。此中每一个单链表结点包含旅客的编号(id)、姓名(name)、性别(sex)、和链接链表的指针(next)。
、数据构造
用到的数据构造有:单链表,排序二叉树,数组。
三、纲要简述
、功能构造图
主菜单
程序员旅客












2、模块剖析叉



本程序包含三个模块:主程序模块、二叉排序树模块、单链表
模块,工作区选择模块。如图:
主程序模块
四、详尽设计
、构造体定义









二叉排序树模块
单链表模块
1)、链表结点构造体
typedefstructtourist{
stringname;
intid;
stringsex;
structtourist*next;
}Trist,*linklist;
左孩子区号地名旅客数右孩子指向链表的指针
2)、二叉排序树结点构造体
typedefstructTree_Place{
intarea_code;//旅行地域号
stringarea;//旅行地名称
intcount;//记录该旅行地报名旅客人数
structTree_Place*lchild,*rchild;
Trist*list;//指向旅客所在单链表的指针
}Place,*TPlace;
左孩子区号地名旅客数右孩子指向链表的指针
2、程序流程图
主菜单(1、程序员,2、旅客)
1
输入密码
错误
正确(12345)
2
程序管理员旅客



退







输入








成功

3




退

退/输


Y
N


醒N
五、源程序代码
1、源程序c++实现代码
#include<iostream>
#include<>
#include<string>
#include<iomanip>
usingnamespacestd;
#defineMAX50
#defineSIZE12
typedefstructtourist{
charname[SIZE];
intid;
charsex[5];
structtourist*next;
}Trist,*linklist;
typedefstructTree_Place{
intcode;//
chararea[SIZE];
intcount;//
人数
structTree_Place*lchild,*rchild;





退
























区可

退



号报







成Y打
功印




旅行地域号
//旅行地名称
记录该旅行地报名旅客
Trist*list;//指向旅客所在单链表
的指针
}Place,*TPlace;
voidSearch_T(TPlace&tree,intco);
voidMainlist(TPlace&tree);
voidTour_1(TPlace&tree);
voidTour_2(TPlace&tree);
voidDestory(TPlace&tree);
voidInit_L(linklist&head)
{
head=NULL;
}
voidInsert_L(TPlace&tree,TPlace&t,linklist&head)
{
linklisttr;
charc;
inti=1,co,id;
while(t->count<6&&i==1)
{
cout<<"请输入你的身份证号:"<<endl;
cin>>id;
tr=(linklist)malloc(sizeof(Trist));
tr->id=id;
cout<<"输入姓名,性别:"<<endl;
cin>>tr->name>>tr->sex;
tr->next=head;
head=tr;
t->count++;
cout<<"持续报名请按1,按0退出!"<<endl;
cin>>i;
}
if(t->count>=6)
{
cout<<"此旅行地人数已满,按
"<<endl;cin>>c;
if(c=='y'||c=='Y'){cout<<"
"<<endl;cin>>co;Search_T(tree,co);}

'y'

选择其余旅行地,其余键退出!
请从头输入区号
}
elseTour_2(tree);
}
voidDelet_L(linklist&head)
{
linklistp,pro;
pro=head;
while(pro)
{
p=pro;pro=p->next;free(p);
}
}
voidInsert_T(TPlace&tree,TPlacep){

//

在二叉排序树中插入一个
新结点
if(tree==NULL)tree=p;
elseif(p->code<tree->code)Insert_T(tree->lchild,p);
elseif(p->code>tree->code)Insert_T(tree->rchild,p);
}
voidSearch_T(TPlace&tree,intco)
{
charc;
TPlacep;
intcode;
p=tree;
while(p&&p->code!=co)
{
if(p->code>co)
p=p->lchild;
elsep=p->rchild;
}
if(!p){cout<<"此旅行地址还未存在!"<<endl;system("pause");Tour_2(tree);}else{
if(p->count>=6)
{
cout<<"此旅行地人数已满,按'y'选择其余旅行地,其余键退出!
"<<endl;cin>>c;
if(c=='y'||c=='Y'){cout<<"请从头输入区号
"<<endl;cin>>code;Search_T(tree,code);}elseTour_2(tree);
}
else{cout<<"能够报名"<<endl;Insert_L(tree,p,p->list);Tour_2(tree);}
}
}
TPlaceDelete_T(TPlace&t,intco)
{
TPlacep,parent,s,q;//parent

指向要删除的节点的双亲,

p指向要删除的节点
p=t;
parent=NULL;
while(p)
{
if(p->code==co)
break;
parent=p;
if(p->code>co)
p=p->lchild;
else
p=p->rchild;
}
if(p==NULL)

//

不存在该树节点
returnt;
if(p->lchild==NULL)//无左子树,右子树无关紧要
{
if(parent==NULL)
t=p->rchild;
else
if(parent->lchild==p)
parent->lchild=p->rchild;
else
parent->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);
}
returnt;
}
voidFun1(TPlace&tree)
{
charc;
intn;
TPlacep;
cout<<"请输入插入地址个数:"<<endl;
cin>>n;
cout<<"挨次输入各个旅行地址的区号和地名:"<<endl;for(inti=0;i<n;i++)
{
p=(TPlace)malloc(sizeof(Place));
cout<<"请输入第"<<i+1<<"个地址:"<<endl;
cin>>p->code>>p->area;
p->lchild=p->rchild=NULL;

数据结构课程设计旅游管理系统 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小熙
  • 文件大小218 KB
  • 时间2022-12-01