资源简介
基于C++数据结构编写的航空订票系统,含有源代码,可以运行,很好!
代码片段和文件信息
#include
#include
#include
#include
#define M 450//定义数组的空间为不可改变的整数
using namespace std;
int main();//申明主函数
struct flight//航班信息
{char terminal[10];//终点站名
char number[10];//航班号
char id[10];//飞机号
char date[10];//飞行日期
int member;//乘员定额
int rest;//余票量
struct flight * next;//指向下一个节点的指针
};
struct custom//客户信息
{char name[10];//姓名
char number[10];//航班号
int count;//数量
int grade;//舱位等级
struct custom * next;//指向下一个节点的指针
};
struct flight *a[M];//flight类型的指针数组
struct node//二叉树节点
{ struct custom * base;
node *r;//左孩子
node *l;//右孩子
};
char ch[100];
int judge(char (&ch)[100])
{
int is=0x=0;
if(strlen(ch)==3)
{for(i=0;i {
if(ch[i]>=‘0‘&&ch[i]<=‘9‘)
s++;
}
if(s==strlen(ch))
{for(i=0;i x=x*10+ch[i]-48;
return x;
}
else
return 0;
}
else return 0;
}
int hash(unsigned long k)
{return k%M;}//取余
unsigned long hashvalue(char *str)//将输入字符串转换成长整型数返回
{int il;
unsigned long ret=0;
unsigned short *s;
if (str == NULL) return(0);
l=(strlen(str)+1)/2;
s=(unsigned short *)str;
for (i=0; i ret^=(s[i]<<(i&0x0f));
return(ret);
}
void hashlist()//建立哈希表
{fstream obj;
flight *s=new flight*t=new flight;
int i=0val;
obj.open(“d:\\fly.txt“ios::in);//打开航班信息的文件
while(obj>>s->terminal>>s->number>>s->id>>s->date>>s->member>>s->rest)//提取文件信息
{val=hash(hashvalue(s->terminal));
while(a[hash(val)]!=NULL)//如果数组中的元素不为空,建立链表
{if(!strcmp(a[hash(val)]->terminals->terminal))
{t=a[hash(val)];
while(t->next)//将节点往下移,直至最后节点
{t=t->next;}
t->next=s;
t=s;
t->next=NULL;//末尾节点的next赋空
break;
}
else val++;//哈希表冲突,往数组后面的空位移动
}
if(a[hash(val)]==NULL)//如果哈希表中元素为空,赋给从文件中提取的值
{a[hash(val)]=s;
a[hash(val)]->next=NULL;}
s=new flight;
}
obj.close();//关闭文件
}
void create(node *&rootcustom *&s) //生成二分查找树
{ custom *t=new custom;
if(root==NULL) //当该节点为空时赋值
{ root=new node;
root->base=s;
root->l=NULL;
root->r=NULL;
}
else if(hash(hashvalue(s->name))>hash(hashvalue(root->base->name)))
create(root->rs); //比当前节点小,往左孩子移
else if(hash(hashvalue(s->name))base->name)))
create(root->ls); //比当前节点大,往右孩子移
else //等于当前节点
{t=root->base;
while(t->next!=NULL)//将节点往下移,直至最后节点
t=t->next;
t->next=s;//到尾部添加形成线性表
t=s;
t->next=NULL;//末尾节点的next赋空
}
}
void print(node *&rootchar *&name)//输出要查找的值
{custom *t=new custom;
if(root!=NULL)//如果节点不为空
{if(root->l!=NULL && hash(hashvalue(name))base->name)))
print(root->lname);//比当前节点小
else if(root->r!=NULL && hash(hashvalue(name))>hash(hashvalue(root->base->name)))
print(root->rname);//比当前节点大
else if(hash(hashvalue(name))==hash(hashvalue(root->base->name)))//等于当前节点
{t=root->base;
cout< “票量“< while(t!=NULL)//输出找到的线性表
{cout<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 836 2014-03-13 10:32 2-08-胡锋-航空订票系统\Makefile.win
文件 19027 2014-03-13 10:32 2-08-胡锋-航空订票系统\航空订票系统.cpp
文件 841 2014-03-13 10:32 2-08-胡锋-航空订票系统\航空订票系统.dev
文件 454569 2014-03-13 10:32 2-08-胡锋-航空订票系统\航空订票系统.exe
文件 41517 2014-03-13 10:32 2-08-胡锋-航空订票系统\航空订票系统.o
目录 0 2014-03-13 10:32 2-08-胡锋-航空订票系统
----------- --------- ---------- ----- ----
516790 6
- 上一篇:DBMS c实现
- 下一篇:Bresenham画线连成多边形并填充
相关资源
- 基于C++的端口扫描
- 基于VC++6.0的四杆机构运动仿真软件
- 遗传算法c++代码,车间调度
- 图像融合C++/MFC
- PC微信多开器,C#编写,C++ DLL
- C++蚁群算法的机器人路径规划
- C++队列操作入队出队
- Vc++/MFC下 Json解析
- 拍卖系统及其说明文档
- 八皇后问题课程设计C++版
- 数据结构c语言实现求最短路径
- More Effective C++中文完整版
- C++宿舍管理系统含实验报告
- 三次样条插值算法C++实现
- 如何利用VC++自动生成Excel表格
- 图像增强GLG算法(gray level grouping)
- C++倒排索引
- C语言版文件相似度对比,文本对比,
- openGL和C++实现光线跟踪作业
- c++_图书信息管理系统(
- 遗传算法C++
- 高斯迭代法的c++源程序
- C++排课程序
- c++学籍管理系统 课程设计报告
- 从C语言转C++简明教程_v5.3.zip
- c++语言基础教程课后答案_吕凤翥编
- 通讯录管理系统C++
- C++工作量的统计
- 数据结构c语言一元多项式的表示相加
- dsp2812三相PWM逆变源程序C++
评论
共有 条评论