#include
#include
#include
#define MaxSpace 100
#define keylen 7
#define RADIX_n 10
#define RADIX_c 26
typedef char KeyType;
typedef struct
{
char start[6];
char end[6];
char sche[10];
char time1[5];
char time2[5];
char model[4];
char price[5];
}InfoType; //航班记录类型
typedef struct
{
KeyType keys[keylen];
InfoType others;
int next;
}SLNode;
typedef struct
{
SLNode sl[MaxSpace];
int keynum;
int length;
}SLList;
typedef int ArrType_n[RADIX_n];
typedef int ArrType_c[RADIX_c];
//一趟数字字符分配函数
void Distribute(SLNode *sl,int i,ArrType_n f,ArrType_n e)
{
int j,p;
for(j=0;j=2;i--)
{
Distribute(L.sl,i,fn,en);
Collect(L.sl,i,fn,en);
}
for(i=1;i>=0;i--)
{
Distribute_c(L.sl,i,fc,ec);
Collect_c(L.sl,i,fc,ec);
}
}
//按指针连重新整理静态链表
void Arrange(SLList &L)
{
int p,q,i;
SLNode temp;
p=L.sl[0].next;
for(i=1;i");
printf("* 航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价 *
");
for(j=1;j<=L.length;j++)
{
switch(i)
{
case 2:k=strcmp(key,L.sl[j].others.start);break;
case 3:k=strcmp(key,L.sl[j].others.end);break;
case 4:k=strcmp(key,L.sl[j].others.time1);break;
case 5:k=strcmp(key,L.sl[j].others.time2);break;
}
if(k==0)
{
m=1;
printf("* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%s *
",L.sl[j].keys,L.sl[j].others.start,
L.sl[j].others.end,L.sl[j].others.sche,L.sl[j].others.time1,L.sl[j].others.time2,
L.sl[j].others.model,L.sl[j].others.price);
}
}
if(m==0)
printf("* 无此航班信息,可能是输入错误! *
");
printf("*************************************************************
");
}
void Save(SLList L)
{
FILE* fp;
int k=0;
fp=fopen("xinxi.txt","w");/*以只写方式打开二进制文件*/
if(fp==NULL)
{
printf("
=====>文件打开失败!
");
getchar();
return ;
}
for(k=0;k<=L.length;k++)
fprintf(fp,"%s %s %s %s %s %s %s %s
",L.sl[k].keys,L.sl[k].others.start,
L.sl[k].others.end,L.sl[k].others.sche,L.sl[k].others.time1,L.sl[k].others.time2,
L.sl [k].others.model,L.sl[k].others.price);
if(k>0)
{
getchar();
printf("
=====>文件保存完整,记录数为:%d
",k-1);
// getchar();
}
else
{
getchar();
printf("
\t当前数据库无信息!
");
// getchar();
}
fclose(fp);
}
void Searchcon(SLList L)
{
KeyType key[keylen];
int i=1,k;
while(i>=1 && i<=6)
{
printf(" ********************
");
printf(" * 航班信息查询系统 *
");
printf(" ********************
");
printf(" * 1.航 班 号 *
");
printf(" * 2.起 点 站 *
");
printf(" * 3.终 点 站 *
");
printf(" * 4.起飞时间 *
");
printf(" *