永发信息网

C语言程序设计课程设计 题目:航班信息管理系统 还有几天就交了,求帮忙,运行无错,要有源代码,分还会加

答案:3  悬赏:60  手机版
解决时间 2021-02-13 18:33
设计内容:
1.确定能记录航班信息的数据结构,包括航班号、起点站、终点站、2
航班期、起飞时间、到达时间、机型、票价等信息,它是本程序的核心数
据结构,定义为如下的结构体类型:
#define MaxSpace 100
#define keylen 6 //航班号长度
#define RADIX_n 10 //数字基数
#define RADIX_c 26 //英文字母基数
typedef char KeyType;
typedef struct
{
char start[7];
char end[7];
char sche[12];
char time1[5];
char time2[5];
char mode1[3];
int price;
}InfoType; //航班信息结构
typedef struct
{
KeyType keys[keylen];
InfoType others;
int next;
}SLNode; //记录航班信息的静态链表结点
typedef struct
{
SLNode s1[MaxSpace];
int keynum;
int length;
}SLList; //记录航班信息的静态链表
typedef int ArrType_n[RADIX_n];
typedef int ArrType_c[RADIX_c];
2.程序应具有以下基本功能:
录入:包括从硬盘和键盘上读入信息,录入后信息以静态链表存储。
浏览:浏览所有航班信息
按航班号查找记录:先对航班号进行基数排序、后进行折半查找
按起点站、.终点站查找记录:按起点站或终点站名查找
按起飞时间、到达时间查找记录:按起飞、到达时间查找
发我邮箱470366519@qq.com 急用!!!!
最佳答案
void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e)
{
int j,p;
for(j=0;j {
f[j]=e[j]=0;
}
for(p=sl[0].next;p;p=sl[p].next)
{
j=sl[p].keys[i]%48;
if(!f[j])
f[j]=p;
else
sl[e[j]].next=p;
e[j]=p;
}
}
void collect(slnode *sl,int i,arrtype_n f,arrtype_n e)
{
int j,t;
for(j=0;!f[j];j++);
sl[0].next=f[j];
t=e[j];
while(j {
for(j=j+1;j if(f[j])
{
sl[t].next=f[j];
t=e[j];
}
}
sl[t].next=0;
}
void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e)
{
int j,p;
for(j=0;j {
f[j]=e[j]=0;
}
for(p=sl[0].next;p;p=sl[p].next)
{
j=sl[p].keys[i]%65;
if(!f[j])
f[j]=p;
else
sl[e[j]].next=p;
e[j]=p;
}
}
void collect_c(slnode *sl,int i,arrtype_c f,arrtype_c e)
{
int j,t;
for(j=0;!f[j];j++);
sl[0].next=f[j];
t=e[j];
while(j {
for(j=j+1;j if(f[j])
{
sl[t].next=f[j];
t=e[j];
}
}
sl[t].next=0;
}
void radixsort(sllist &l)//链式
{
int i;
arrtype_n fn,en;
arrtype_c fc,ec;
for(i=0;i l.sl[i].next=i+1;
l.sl[l.length].next=0;
for(i=l.keynum-1;i>=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 {
while(p p=l.sl[p].next;
q=l.sl[p].next;
if(p!=i)
{
temp=l.sl[p];
l.sl[p]=l.sl[i];
l.sl[i]=temp;
l.sl[i].next=p;
}
p=q;
}
}
int binsearch(sllist l,keytype key[])
{
int low,high,mid;
low=1;
high=l.length;
while(low<=high)
{
mid=(low+high)/2;
if(strcmp(key,l.sl[mid].keys)==0)
return mid;
else if(strcmp(key,l.sl[mid].keys)<0)
high=mid-1;
else
low=mid+1;
}
return 0;
}
void seqsearch(sllist l,keytype key[],int i)
{
int j,k,m=0;
printf("*************************************************************\n");
printf("* 航班号 起始站 终点站 航班期 起飞时间 到达时间 机型 票价*\n");
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%4d *\n",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("* 无此航班信息,可能是输入错误*\n");
printf("*************************************************************\n");
}
void searchcon(sllist l)
{
keytype key[keylen];
int i=1,k;
while(i>=1&&i<=5)
{printf("\n ********************\n");
printf(" * 航班信息查询系统 *\n");
printf(" ********************\n");
printf(" * 1.航班号*\n");
printf(" * 2.起点站*\n");
printf(" * 3.终点站*\n");
printf(" * 4.起飞时间*\n");
printf(" * 5.到达时间*\n");
printf(" * 0.退出系统*\n");
printf(" ********************\n");
printf(" 请选择(0-5):");
scanf("%d",&i);
printf("\n");
switch(i)
{case 1:printf("输入要查询的航班号(字母要大写):");
scanf("%s",key);
k=binsearch(l,key);
printf("*************************************************************\n");
if(k==0)
printf("* 无此航班信息,可能是输入错误!*\n");
else
{
printf("* 航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价*\n");
printf("* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%4d *\n",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);
}
printf("*************************************************************\n");
break;
case 2:printf("输入要查询的航班起点站名:");
scanf("%s",key);
seqsearch(l,key,i);
break;
case 3:printf("输入要查询的航班起点站名:");
scanf("%s",key);
seqsearch(l,key,i);
break;
case 4:printf("输入要查询的航班起点站名:");
scanf("%s",key);
seqsearch(l,key,i);
break;
case 5:printf("输入要查询的航班起点站名:");
scanf("%s",key);
seqsearch(l,key,i);
break;
case 0:printf("\n\n\n 再 见n\n\n");
}
}
}
void inputdata(sllist &l)
{
int i=++l.length;
char yn='y';
while(yn=='y'||yn=='Y')
{
printf("航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价\n");
scanf("%s%s%s%s%s%s%s%d",l.sl[i].keys,l.sl[i].others.start,l.sl[i].others.end,l.sl[i].others.sche,l.sl[i].others.time1,l.sl[i].others.time2,l.sl[i].others.model,&l.sl[i].others.price);
++i; getchar();
radixsort(l);
arrange(l);
printf("继续输入吗?y/n:");
scanf("%c",&yn);
}
l.length=i-1;
}
void main()
{
sllist l;
l.keynum=6;
l.length=0;
inputdata(l);
searchcon(l);
}
全部回答
#include <stdio.h> int main(void) {     int cn, cz, cp, n;     float k;     while(1) {     scanf("%d", &n);     if(n == 0)     break;     cn = cz = cp = 0;     while(n--) {     scanf("%f", &k);     if(k < 0)     ++cn;     else if(k == 0)     ++cz;     else     ++cp;     }     printf("%d %d %d\n", cn, cz, cp);     }     return 0; }
真不明白现在的学生在学啥,也不算难,一天就搞定,还要人家发邮箱。300块,我给你做,别自己不想付出老想白拿。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
读卫校还要限制身高吗?初中毕业可以去念卫校
台州金氏奇石石雕艺术馆地址在什么地方,我要
二氧化碳是制冷剂还是致冷剂
大光明眼镜公司我想知道这个在什么地方
长安区石家庄慧赢乒乓球俱乐部这个地址在什么
缤纷艺术馆地址在哪,我要去那里办事
为什么迅雷离线.一直取回本地.没加速
nike有哪些超高帮的鞋
家乡互动(厦门)网络科技有限公司工资怎么样
弘邦领邸这个地址在什么地方,我要处理点事
某同学的胸围长度在平静状态时是81厘米,尽力
经济学考研复试
小语种高考是不是全国都能考,小的市也能么?
天一纹身艺术馆怎么去啊,我要去那办事
底盘鳍条修复,有没有人可以分享一下经验?
推荐资讯
江发明水泵电机电动工具专卖店我想知道这个在
永顺专业发艺烫染空间地址在哪,我要去那里办
男字为:上田下力,可以称为:田里卖力干活的
眼睛下方的痣
溢香阁龙虾地址在什么地方,想过去办事
谁知道如何开通,扣扣新出的星钻,黄绿的内个
波罗蜜多心经书法可以挂在客厅吗
新华二手车(龙岩新罗区)地址在什么地方,想过
路基横坡怎么计算的?横坡计算公式是?
乐童幼教地址有知道的么?有点事想过去
犹他大学和内布拉斯加林肯哪个好,包括环境
红海滩旅游风景区这个地址在什么地方,我要处
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?