/***********************************************************
*版权所有 (c)2017,zhangqingbiao
*文件名称:航班信息的查询与检索
*文件标识:无
*内容:该代码是用于使用各种信息查询航班信息
*其他说明:无
*作者:张庆彪
*完成日期:20171222
*修改记录:无
**********************************************************/
[html] view plain copy
头文件:fk.h
#ifndef FK__H_INCLUDED
#define FK__H_INCLUDED
#define N 6 //航班数
typedef struct flight
{
char flight_number[10]; //航班号
char start_address[10]; //起飞站
char arrived_address[10]; //终点站
char work_date[10]; //班期
char start_time[6]; //起飞时间
char arrived_time[6]; //到达时间
char FlightType[4]; //机型
int fare; //票价
}DataType;
typedef char KeyType;
#define D 7 // D为排序码的最大位数
#define R 'a' // R为基数,这里为小于字母'a'代表的整型值
struct Node; //单链表结点类型
typedef struct Node RadixNode;
struct Node
{
KeyType key[D]; //关键字
DataType info; //数据信息
RadixNode *next;
};
typedef RadixNode * RadixList;
typedef struct QueueNode
{
RadixNode *f; //对列的头指针
RadixNode *e; //对列的尾指针
}Queue;
void radixSort(RadixList * plist, int d, int r,Queue queue[]);
void Cout_info1();
void Cout_info2_1(Node p[]);
void Cout_info2_2(flight F[],int i);
void output_ALL_info1(Node element[]);
void output_ALL_info2(flight F[]);
void copy(flight F[],Node element[]);
void mainmenu(flight flight[],Node element[],Node p[]);
//---------------服 务 菜 单--------------
void F_By_Time(flight F[],int);
void F_By_Address(flight F[],int);
void F_By_fare(flight F[]);
void F_By_FN(flight F[]);
#endif // FK__H_INCLUDED
源文件:fk.cpp
#include<iostream>
#include<stdio.h>
#include "fk..h"
#include<string.h>
using namespace std;
/*********************************************************** *功能描述: 基数排序 *输入参数: 无 *输出参数: 无 *返回值: 无 *其他说明:无 **********************************************************/
void radixSort(RadixList * plist, int d, int r,Queue queue[]){ int i,j,k; RadixNode *p, *head; head=(*plist)->next; for(j=d-1; j>=0; j--) //进行d次分配和收集 { p=head; for(i=0; i<r; i++) { queue[i].f=NULL; queue[i].e=NULL; //清队列 } while(p!=NULL) { k=p->key[j]; //按排序码的第j个分量进行分配 if(queue[k].f==NULL) queue[k].f=p; // 若第k个堆为空,则当前记录为队头 else (queue[k].e)-