㈠ 航空公司的存货是什么
一些价值较小的飞机上的零配件.
油.
以及管理办公用的低值易耗品.比如办公桌.椅什么的.
㈡ 简述SRAM,DRAM型存储器的工作原理
个人电脑的主要结构:
显示器
主机板
CPU
(微处理器)
主要储存器
(记忆体)
扩充卡
电源供应器
光盘机
次要储存器
(硬盘)
键盘
鼠标
尽管计算机技术自20世纪40年代第一台电子通用计算机诞生以来以来有了令人目眩的飞速发展,但是今天计算机仍然基本上采用的是存储程序结构,即冯·诺伊曼结构。这个结构实现了实用化的通用计算机。
存储程序结构间将一台计算机描述成四个主要部分:算术逻辑单元(ALU),控制电路,存储器,以及输入输出设备(I/O)。这些部件通过一组一组的排线连接(特别地,当一组线被用于多种不同意图的数据传输时又被称为总线),并且由一个时钟来驱动(当然某些其他事件也可能驱动控制电路)。
概念上讲,一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号,称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么),也可以是数据(指令的处理对象)。原则上,每一个“细胞”都是可以存储二者之任一的。
算术逻辑单元(ALU)可以被称作计算机的大脑。它可以做两类运算:第一类是算术运算,比如对两个数字进行加减法。算术运算部件的功能在ALU中是十分有限的,事实上,一些ALU根本不支持电路级的乘法和除法运算(由是使用者只能通过编程进行乘除法运算)。第二类是比较运算,即给定两个数,ALU对其进行比较以确定哪个更大一些。
输入输出系统是计算机从外部世界接收信息和向外部世界反馈运算结果的手段。对于一台标准的个人电脑,输入设备主要有键盘和鼠标,输出设备则是显示器,打印机以及其他许多后文将要讨论的可连接到计算机上的I/O设备。
控制系统将以上计算机各部分联系起来。它的功能是从存储器和输入输出设备中读取指令和数据,对指令进行解码,并向ALU交付符合指令要求的正确输入,告知ALU对这些数据做那些运算并将结果数据返回到何处。控制系统中一个重要组件就是一个用来保持跟踪当前指令所在地址的计数器。通常这个计数器随着指令的执行而累加,但有时如果指令指示进行跳转则不依此规则。
20世纪80年代以来ALU和控制单元(二者合成中央处理器,CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。
由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。一般可以分为四类:1)、数据移动(如:将一个数值从存储单元A拷贝到存储单元B)2)、数逻运算(如:计算存储单元A与存储单元B之和,结果返回存储单元C)3)、条件验证(如:如果存储单元A内数值为100,则下一条指令地址为存储单元F)4)、指令序列改易(如:下一条指令地址为存储单元F)
指令如同数据一样在计算机内部是以二进制来表示的。比如说,10110000就是一条Intel
x86系列微处理器的拷贝指令代码。某一个计算机所支持的指令集就是该计算机的机器语言。因此,使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说,它们通常只会关注一种或几种不同的机器语言。
更加强大的小型计算机,大型计算机和服务器可能会与上述计算机有所不同。它们通常将任务分担给不同的CPU来执行。今天,微处理器和多核个人电脑也在朝这个方向发展。
超级计算机通常有着与基本的存储程序计算机显着区别的体系结构。它们通常由者数以千计的CPU,不过这些设计似乎只对特定任务有用。在各种计算机中,还有一些微控制器采用令程序和数据分离的哈佛架构(Harvard
architecture)。
㈢ AeroTEM航空瞬变电磁系统
一、内容概述
AeroTEM(图1)直升机时间域航电系统由Aeroquest公司研制,是根据中心回线时间域航空电磁法原理创新开发的一种物探方法系统,单发多收,理论勘探深度可达500m。2000年,Aeroquest公司对该系统进行了改进,主要加大了发射机偶极矩、降低最低基频(到30Hz)和引入数据流。2004年中期,Aeroquest公司又开始研发新一代的直升机AeroTEM时间域航电系统,截止到2007年已开发了第四代AeroTEM时间域数字直升机航电系统,近三代 AeroTEM参数见表1。新的AeroTEM系统拥有超过600m的探测深度,甚至可以和固定翼飞机系统相媲美。
图1 AeroTEM 时间域直升机航空电磁系统
(据劳雷工业公司)
直升机装载的AeroTEMⅡ系统的发射线圈直径5m,由8匝铜线组成,最大发射电流250A,可以产生40000Am2的峰值发射矩。有2个接收线圈,一个沿Z轴布置,另一个沿X轴布置。
表1 最近三代AeroTEM的性能参数对比
发射线圈发射的三角形电流脉冲(一次场)向地下传播,当遇到导体的探测目标时产生二次场。一次场和二次场被接收线圈所接收,并存储在可移动的硬盘之中,以便进行后处理。发射线圈、接收线圈和发射驱动线路安置在圆形的框架上,在飞行中发射-接收线圈距地面间距30m,距直升机40m。铯光泵磁力仪安置在发射-接收线圈10m以上的吊舱内。数据采集系统和定位系统,如GPS和无线电测高仪,安置在直升机内部。
系统相对于垂直轴的对称性使得目标对吊舱航向的响应敏感,从而消除了其他系统在崎岖地形中爬升时所造成的干扰响应;高度聚焦的电磁辐射面,突出地描述地下电导体,便携式的快速测量系统,几乎适用所有的地理位置,即使崎岖地形,刚性平台都能提供良好效果;高精度定位和双分量记录有利于直接定井打钻;优越的早关断时间有利于检测弱导电目标,on-time数据的采集可了解浅层信息;AeroTEM IV系统目前500多米的穿透深度已达到传统的频率域直升机电磁系统的两倍;高度集中的EM系统覆盖面为地下导电体提供了突出的描绘与特征化,这比更昂贵的大线圈地面电磁方法所得到的效果要更好;系统具有高度便携性,到任何地理位置都可以容易地拆卸和重组,以便经济化运输;具有频率域和时间域电磁系统的双重特性。
二、应用范围及应用实例
400m深或者更深的铜矿、多金属硫化矿、金矿、镍-铜-铂集合体、金刚石、铁矿、矽卡岩型矿体、石油和天然气等矿产调查和构造调查。
三 资料来源
加拿大Aeroquest公司.http://aeroquest.net/
http://www.instrument.com.cn/netshow/SH100788/C152241.htm(劳雷工业公司网站)
www.aeroquestairborne.com
㈣ C语言编写一个简单的航空管理系统
需要分析:
A.车寻航线:
1.根据旅客提出的起点站,终点站名输出下列信息:航班号,票价,折扣,最多载客量,是否满载,起飞时间,降落时间和飞行时间;
2.根据订票乘客的姓名可以查询所订航班的航班号,座位号,飞行日期等信息;
3.根据航班号查询航班的起点站,中转站,终点站名,票价,折扣,最多载客量,是否满载,起飞时间,降落时间和飞行时间;
B.承办客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号,需付款项信息;若已满员或余票额少于盯票额,则需重新询问客户要求。若需要,可登记排队候补;
C.根据客户提供的情况(日期、航班),为客户办理退票手续。(然后查询该航班是否有人排队候补,首先询问排第一的客户,若所退票额所能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补客户);
E.内部人员对航班情况的控制:
可以录入航班信息,删除航班信息,修改航班信息,查看基本航班信息。
概要设计:
因为每个客户名单或查询名单都包括多个数据域,这样就需要有一个能存储多个数据域的数据类型来存储,因此采用单链表类型。由于航线的信息是固定的,可选用结构体数组,又因为订票与预约人数无法预计,可选用链表存储信息。
线性表的单链表存储结构:typedef struct LNode{
ElemType;
Struct Lnode*next;}LNode,*LinkList;
a.抽象数据类型顺序表的定义如下:
ADT SqList{
数据对象:D={ai|ai∈数据类型,i=1,2,3...,n}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,3...,n}
基本操作:
InitList_Sq(&L)
操作结果:创建空的顺序表。
CreatList_Sq(&L)
操作结果:建立顺序表。
}ADT SqList
b.抽象数据类型单链表的定义如下:
ADT LinkList{
数据对象:D={ai|ai∈结构类型,i=1,2,3...,n,n>0}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,3...,n}
基本操作:
InitList_L(&L)
操作结果:创建空的顺序表。
}ADT LinkList
在main()里调用各个函数
2.主程序
void main(){
初始化;
do{
接受命令;
处理命令;
}while(“命令”!=“退出”);
}
3.程序的模块调用:
三.详细设计:
1.所有数据类型:
struct plan /*航班数据*/
{
char num[5];/*航班号码*/
char city[10];/*到达城市*/
char up[8];/*航班起飞时间*/
char down[8];/*航班到达时间*/
int pric ;/*航班价格*/
int rshu ;/*人数*/
int zheg[4];/*价格折扣*/
}
;
struct man/*定票人数据*/
{
char num[10];/*身份证号码*/
char nam[10];/*姓名*/
int demand ;/*定票数量*/
}
;
typedef struct node/*航班数据结点*/
{
struct plan data ;
struct node*next ;
}
Node,*Link ;
typedef struct people/*乘客数据结点*/
{
struct man data ;
struct people*next ;
}
peo,*LIN ;
2.程序所用函数:
void print()/*界面输出*/
{
printf("============================System of book ticket===============================\n");
printf("\n");
printf("\t***********************************************************\n");
printf("\t*\t1---Bookticket \t2---Dishonorbill *\n");
printf("\t*\t3---Adding flight\t4---Adding flight *\n");
printf("\t*\t5---Modify \t6---Advice *\n");
printf("\t*\t7---Save \t8---exit *\n");
printf("\t##########################################################\n");
}
添加航班模块
void add(Link l)/*添加航班数据*/
{
Node*p,*r,*s ;
char num[10];
r=l ;
s=l->next ;
while(r->next!=NULL)
r=r->next ;
while(1)
{
printf("please input the number of the plan(0-return)");/*输入0就返回*/
scanf("%s",num);
if(strcmp(num,"0")==0)
break ;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====tip:the number'%s'has been born!\n",num);
return ;
}
s=s->next ;
}
p=(Node*)malloc(sizeof(Node));/*航班数据输入*/
strcpy(p->data.num,num);
printf("Input the city where the plan will reach:");/*飞机到达地城市*/
scanf("%s",p->data.city);
getchar();
printf("Input the time which the plan take off:");/*起飞时间*/
scanf("%s",p->data.up);
getchar();
printf("Input the time which the plan reach:");/*降落时间*/
scanf("%s",&p->data.down);
getchar();
printf("Input the price of ticket:$");/*机票价格*/
scanf("%d",&p->data.pric);
getchar();
printf("Input the number of people who have booked ticket:");/*定票数量*/
scanf("%d",&p->data.rshu);
getchar();
printf("Input the agio of the ticket:");
scanf("%s",&p->data.zheg);
getchar();
p->next=NULL ;
r->next=p ;
r=p ;
shoudsave=1 ;
}
}
输出模块
void pri(Node*p)/*输出函数*/
{
printf("\n\t\t\tThe following is the record you want:\n");
printf("\nnumber of plan: %s",p->data.num);
printf("\ncity the plan will reach: %s",p->data.city);
printf("\nthe time the plan take off: %s\nthe time the plan reach: %s",p->data.up,p->data.down);
printf("\nthe price of the ticket: %d",p->data.pric);
printf("\nthe number of people who have booked ticket: %d",p->data.rshu);
printf("\nthe agio of the ticket:%s",p->data.zheg);
}
退出函数模块
Node*Locate1(Link l,char findmess[],char numorcity[])
{
Node*r ;
if(strcmp(numorcity,"num")==0)
{
r=l->next ;
while(r)
{
if(strcmp(r->data.num,findmess)==0)
return r ;
r=r->next ;
}
}
else if(strcmp(numorcity,"city")==0)
{
r=l->next ;
while(r)
{
if(strcmp(r->data.city,findmess)==0)
return r ;
r=r->next ;
}
}
return 0 ;
}
航班信息模块
void qur(Link l)/*航班信息查询*/
{
Node*p ;
int sel ;
char str1[5],str2[10];
if(!l->next)
{
printf("TIP:there are not any record to be inquired for you!");
return ;
}
printf("Choose the way:(1->according to the number of plan;2->according to the city):");/*选择航班号查询和终点城市查询*/
scanf("%d",&sel);
if(sel==1)
{
printf("Input the the number of plan:");
scanf("%s",str1);
p=Locate1(l,str1,"num");
if(p)
{
printf("the following is what you want:\n");
pri(p);
}
else
{
mark1=1 ;
printf("\nthe file can't be found!");
}
}
else if(sel==2)
{
printf("Input the city:");
scanf("%s",str2);
p=Locate1(l,str2,"city");
if(p)
{
printf("the following is what you want:\n");
pri(p);
}
else
{
mark1=1 ;
printf("\nthe file can't be found!");
}
}
}
定票模块
void buy(Link l,LIN k)/*定票函数*/
{
Node*r[10],*p ;
int ch,dem ;
peo*v,*h ;
int i=0,t=0 ;
char str[10],str1[10],str2[10];
v=k ;
while(v->next!=NULL)
v=v->next ;
printf("Input the city you want to go: ");/*航班终点站城市*/
scanf("%s",&str);
p=l->next ;
while(p!=NULL)
{
if(strcmp(p->data.city,str)==0)
{
r[i]=p ;
i++;
}
p=p->next ;
}
printf("\n\nthe number of record have %d\n",i);
for(t=0;t<i;t++)
pri(r[t]);
if(i==0)
printf("\n\tSorry!Can't find the plan for you!\n");
else
{
printf("\ndo you want to book it?<1/0>\n");
printf("please choose: ");
scanf("%d",&ch);
if(ch==1)
{
h=(peo*)malloc(sizeof(peo));/*重新分配空间*/
printf("Input your name: ");
scanf("%s",&str1);
strcpy(h->data.nam,str1);
printf("Input your id: ");
scanf("%s",&str2);
strcpy(h->data.num,str2);
printf("Input your demand: ");
scanf("%d",&dem);
h->data.demand=dem ;
h->next=NULL ;
v->next=h ;
v=h ;
printf("\n\tLucky!Success in booking ticket!");
getch();
shoudsave=1 ;
}
}
}
peo*Locate2(LIN k,char findmess[])
{
peo*r ;
r=k->next ;
while(r)
{
if(strcmp(r->data.num,findmess)==0)
{
mark=1 ;
return r ;
}
r=r->next ;
}
return 0 ;
}
退票模块
void tui(LIN k)/*退票函数*/
{
char str[10];
peo*p,*r ;
int ch2=0 ;
printf("Input your id: ");/*输入身份证号*/
scanf("%s",&str);
p=Locate2(k,str);
if(mark!=1)
printf("can't find the people!");
else if(mark==1)
{
mark=0 ;
printf("\t\t\tthe following is the record you want:\n");
printf("your id:%s\n",p->data.num);
printf("name:%s\n",p->data.nam);
printf("your denmand:%d",p->data.demand);
printf("\ndo you want to refund the ticket?<1/0>");
scanf("%d",&ch2);
if(ch2==1)
{
if(p)
{
r=k ;
while(r->next!=p)
r=r->next ;
r->next=p->next ;
free(p);
}
count2--;
printf("\nyou have sucessed in refunding ticket!");
shoudsave=1 ;
}
}
}
void Modify(Link l)/*修改航班信息*/
{
Node*p ;
char findmess[20],ch ;
if(!l->next)
{
printf("\n=====tip:there isn't record for you to modify!\n");
return ;
}
else
{
qur(l);
if(mark1==0)
{
printf("\nDo you want to modify it?\n");
getchar();
scanf("%c",&ch);
if(ch=='y');
{
printf("\nInput the number of the plan:");
scanf("%s",findmess);
p=Locate1(l,findmess,"num");
if(p)
{
printf("Input another number of plan:");
scanf("%s",&p->data.num);
getchar();
printf("Input another city the plan will reach:");
scanf("%s",&p->data.city);
getchar();
printf("Input another time the plan take off");
scanf("%s",&p->data.up);
printf("Input another time the plan reach:");
scanf("%s",&p->data.down);
printf("Input another price of the ticket::");
scanf("%d",&p->data.pric);
printf("Input another number of people who have booked ticket:");
scanf("%d",&p->data.rshu);
printf("Input another agio of the ticket:");
scanf("%s",&p->data.zheg);
printf("\n=====>tip:modifying record is sucessful!\n");
shoudsave=1 ;
}
else
printf("\tcan't find the flight!");
}
}
else
mark1=0 ;
}
}
void advice(Link l)/*终点站航班查询*/
{
Node*r ;
char str[10];
int mar=0 ;
r=l->next ;
printf("Iuput the city you want to go: ");/*输入终点站城市*/
scanf("%s",str);
while(r)
{
if(strcmp(r->data.city,str)==0&&r->data.rshu<200)
{
mar=1 ;
printf("\nyou can select the following plan!\n");
printf("\n\nplease select the fourth operation to book the ticket!\n");
pri(r);
}
r=r->next ;
}
if(mar==0)
printf("\n\t\t\tyou can't book any ticket now!\n");
}
void save1(Link l)/*保存数据*/
{
FILE*fp ;
Node*p ;
int count=0,flag=1 ;
fp=fopen("g:\\data1","wb");
if(fp==NULL)
{
printf("the file can't be opened!");
return ;
}
p=l->next ;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next ;
count++;
}
else
{
flag=0 ;
break ;
}
}
if(flag)
{
printf("the number of the record which have been saved is %d\n",count);
shoudsave=0 ;
}
fclose(fp);
}
void save2(LIN k) /*保存数据*/
{
FILE*fp ;
peo*p ;
int count=0,flag=1 ;
fp=fopen("g:\\data2","wb");/*文件连接*/
if(fp==NULL)
{
printf("the file can't be opened!");
return ;
}
p=k->next ;
while(p)
{
if(fwrite(p,sizeof(peo),1,fp)==1)
{
p=p->next ;
count++;
}
else
{
flag=0 ;
break ;
}
}
if(flag)
{
printf("the number of the record which have been saved is %d\n",count);
shoudsave=0 ;
}
fclose(fp);
}
四.主函数模块:
main()
{
FILE*fp1,*fp2 ;
Node*p,*r ;
char ch1,ch2 ;
Link l ;
LIN k ;
peo*t,*h ;
int sel ;
l=(Node*)malloc(sizeof(Node));
l->next=NULL ;
r=l ;
k=(peo*)malloc(sizeof(peo));
k->next=NULL ;
h=k ;
fp1=fopen("g:\\data1","ab+");
if((fp1==NULL))
{
printf("can't open the file!");
return 0 ;
}
while(!feof(fp1))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp1)==1)
{
p->next=NULL ;
r->next=p ;
r=p ;
count1++;
}
}
fclose(fp1);
fp2=fopen("g:\\data2","ab+");
if((fp2==NULL))
{
printf("can't open the file!");
return 0 ;
}
while(!feof(fp2))
{
t=(peo*)malloc(sizeof(peo));
if(fread(t,sizeof(peo),1,fp2)==1)
{
t->next=NULL ;
h->next=t ;
h=t ;
count2++;
}
}
fclose(fp2);
while(1)
{
getch();
clrscr();
print();
printf("please choose the operation(1-8): ");
scanf("%d",&sel);
if(sel==8)
{
if(shoudsave==1)
{
getchar();
printf("\n=====tip:the file have been changed!do you want to save it(y/n)?\n");
scanf("%c",&ch1);
if(ch1=='y'||ch1=='Y')
{
save2(k);
save1(l);
}
}
printf("\n\tyou have exited! Happy serve for you");
break ;
}
switch(sel)
{
case 1 :
buy(l,k);
break ;
case 2 :
tui(k);
break ;
case 3 :
qur(l);
break ;
case 4 :
add(l);
break ;
case 5 :
Modify(l);
break ;
case 6 :
advice(l);
break ;
case 7 :
{
save1(l);
save2(k);
break ;
}
case 8 :
exit(0);
}
}
getch();
}
㈤ 航空信息管理系统 设计内容和要求(包括原始数据、技术参数、条件、设计要求等
/*数据结构程序设计 航空信息管理系统*/
/*班级 通工06XX */
/*姓名 XX*/
/*班内序号 XX*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "malloc.h"
int k;
/*清屏函数*/
void clearscreen()
{
getchar();
system("cls");
}
typedef struct node1
{
long light; /*航班号*/
char destination[20]; /*目的地*/
char time[10]; /*起飞时间*/
long num; /*飞机号*/
int ticket; /*票量*/
struct node1 *next; /*航班信息链*/
}NODE1;
NODE1 *creat() /*录入航班信息*/
{
int i,k;
NODE1 *p1,*p2,*head;
printf("请输入总航班数目:\n");
scanf("%d",&k);
head=NULL;
if(k>0)
{
head=p1=p2=(NODE1 *)malloc(sizeof(NODE1));
printf("请输入航班号--目的地--起飞时间--飞机号--票量\n");
scanf("%ld %s %s %ld %d",&p1->light,p1->destination,p1->time,&p1->num,&p1->ticket);
head=p1=p2;
for(i=1;i<k;i++)
{
p1=(NODE1 *)malloc(sizeof(NODE1));
printf("请输入航班号--目的地--起飞时间--飞机号--票量\n");
scanf("%ld %s %s %ld %d",&p1->light,p1->destination,p1->time,&p1->num,&p1->ticket);
p2->next=p1;
p2=p1;
p2->next=NULL;
}
}
return head;
}
void print(NODE1 *p)/*显示所有航班信息*/
{ FILE *fp;
NODE1 *q;
q=p;
while(p!=NULL)
{
printf("%7ld %7s %7s %7ld %7d\n",p->light,p->destination,p->time,p->num,p->ticket);
p=p->next;
}
/*文件开始*/
if((fp=fopen("c:\\hfm_mima.txt","wt"))==NULL)
{
printf("不能打开此文件,按任意键退出");
getch();
exit (1);
}
while(q!=NULL)
{
fprintf(fp,"%7ld %7s %7s %7ld %7d\n",q->light,q->destination,q->time,q->num,q->ticket);
q=q->next;
}
fclose(fp);
}
NODE1 * find(NODE1 *p)/*按航班号 查找单个航班信息*/
{
long light;
printf("请输入要查找的航班号:");
scanf("%ld",&light);
while(p!=NULL)
{
if(p->light==light)
return p;
p=p->next;
}
return NULL;
}
int delete(NODE1 **h)/*删除某个航班信息*/
{
long light;
NODE1 *p,*p0;
if(*h==NULL) return 0;
printf("请输入要删除的航班号");
scanf("%ld",&light);
p0=*h;
if(p0->light==light)
{
*h=p0->next;
free(p0);
return 1;
}
p=p0->next;
while(p!=NULL)
{
if(p->light==light)
{
p0->next=p->next;
free(p);
return 1;
}
p0=p;
p=p->next;
}
return 0;
}
int insert(NODE1 **h)
{
NODE1 *p,*p0;
p=(NODE1 *)malloc(sizeof(NODE1));
printf("请输入航班号--目的地--起飞时间--飞机号--票量\n");
scanf("%ld %s %s %ld %d",&p->light,p->destination,p->time,&p->num,&p->ticket);
p->next=NULL;
if(*h==NULL)
{
*h=p;
return 1;
}
p0=*h;
if(p0->light>p->light)
{
p->next=*h;
*h=p;
return 1;
}
while(p0->next!=NULL&&p0->next->light<p->light)
p0=p0->next;
if(p0->next==NULL)
{
p0->next=p;
return 1;
}
else if(p0->next->light==p->light)
{
free(p);
return 0;
}
p->next=p0->next;
p0->next=p;
return 1;
}
main()
{
int choice;
NODE1 *head,*p;
do
{
printf("按回车键进入主菜单!");
clearscreen();
printf(" :---------------------------------------------:\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("\n");
printf("请输入您选择的功能号<1-5>:");
scanf("%d",&choice);
getchar();
if(choice>0)
switch(choice)
{
case 1:head=creat();break;
case 2:print(head);break;
case 3:p=find(head);
if(p)
{
printf("航班号%ld--目的地%s--起飞时间%s--飞机号%ld--票量%7d\n",p->light,p->destination,p->time,p->num,p->ticket);
getchar();
}
else printf("没有找到\n");
break;
case 4:if(insert(&head))
{
printf("已经成功插入\n");
getchar();
}
else printf("有重复航班号,插入失败\n");
break;
case 5:if(delete(&head))
{
printf("已正确删除\n");
getchar();
}
else printf("要删除的航班信息不存在\n");
break;
case 0:break;
}
}while(choice!=0);
}
㈥ 分布式存储和传统存储比较在哪些应用场景比较有优势
1、分布式存储优势
分布式存储可以使生产系统在线运行的情况下进行纵向扩展(Scale-Up)或横向扩展(Scale-Out),且存储系统在扩展后可以达到容量与性能均线性扩展的效果。其具有以下特性:
高性能
分布式存储系统能够将所有存储节点的处理器资源、硬盘资源、网络资源进行整合,将任务切分给多台存储节点,进行并发数据处理,避免了单个硬盘或设备造成的瓶颈,提升整个集群的处理能力。分布式存储系统具有良好的性能扩展能力,可以满足应用程序对存储性能不断增长的要求。
高扩展性
分布式存储系统通过扩展集群存储节点规模从而提高系统存储容量、计算和性能的能力,通过增加和升级服务器硬件,或者指通过增加存储节点数量来提升服务能力。分布式存储系统支持在线增加存储节点,对前端业务透明,系统整体性能与存储节点数量呈线性关系。
高可用性
分布式存储系统同时基于硬件及软件设计了高可用机制,在面对多种异常时(如存储节点宕机、网络中断、硬盘故障、数据损坏等)仍可提供正常服务,提高分布式存储系统硬件的可用性可以通过增加存储节点数量或者采用多种硬件冗余机制保证。分布式存储系统多采用副本机制或纠删码机制保证数据的高可用性,副本机制可以提供较高的数据冗余度,但会降低存储系统有效空间的利用率,纠删码机制可以在保证一定数据冗余度的情况下,大幅提高存储系统的有效空间利用率。
高安全性
分布式存储系统支持可靠的权限控制及互信确认机制,同时采用私有的数据切片及数据编码机制,可以从多重角度保证集群系统不受恶意访问和攻击,保护存储数据不被窃取。
2、分布式存储应用场景
分布式的“四高”特性,使得其在高性能计算、大数据视频云及大数据分析等应用场景中有着广泛的应用。
高性能计算场景
在如气象气候、地质勘探、航空航天、工程计算、材料工程等领域,基于集群的高性能计算,已成为必需的辅助工具。集群系统有极强的伸缩性,可通过在集群中增加或删减节点的方式,在不影响原有应用与计算任务的情况下,随时增加和降低系统的处理能力。根据不同的计算模式与规模,构成集群系统的节点数可以从几个到成千上万个。这些业务对后端的存储系统提出了新的需求,包括统一的存储空间、高效率的文件检索、高带宽的吞吐性能,高可靠的数据安全保障等。
大数据视频云应用场景
随着视频高清技术及超高清技术的普及,视频大数据应用场景,如雪亮工程、平安城市、广电媒资、影视制作、视频网站等领域,对存储设备提出了大容量、高读写性能、高可靠性、低延时及可扩展性等需求。针对这样大规模视频数据应用场景,就需要一个技术先进、性能优越的存储系统作为后端数据存储的支撑者。
大数据分析应用场景
伴随着互联网技术及人工智能的发展,各种基于海量用户/数据/终端的大数据分析及人工智能业务模式不断涌现,同样需要充分考虑存储功能集成度、数据安全性、数据稳定性,系统可扩展性、性能及成本各方面因素。
在数据爆发增长的“数字时代”,软件定义的分布式存储是存储技术高速发展的结晶,并具有着很大的成长空间,必将应用于更广泛的大数据业务场景。
㈦ 大数据时代下的三种存储架构
大数据时代下的三种存储架构_数据分析师考试
大数据时代,移动互联、社交网络、数据分析、云服务等应用的迅速普及,对数据中心提出革命性的需求,存储基础架构已经成为IT核心之一。政府、军队军工、科研院所、航空航天、大型商业连锁、医疗、金融、新媒体、广电等各个领域新兴应用层出不穷。数据的价值日益凸显,数据已经成为不可或缺的资产。作为数据载体和驱动力量,存储系统成为大数据基础架构中最为关键的核心。
传统的数据中心无论是在性能、效率,还是在投资收益、安全,已经远远不能满足新兴应用的需求,数据中心业务急需新型大数据处理中心来支撑。除了传统的高可靠、高冗余、绿色节能之外,新型的大数据中心还需具备虚拟化、模块化、弹性扩展、自动化等一系列特征,才能满足具备大数据特征的应用需求。这些史无前例的需求,让存储系统的架构和功能都发生了前所未有的变化。
基于大数据应用需求,“应用定义存储”概念被提出。存储系统作为数据中心最核心的数据基础,不再仅是传统分散的、单一的底层设备。除了要具备高性能、高安全、高可靠等特征之外,还要有虚拟化、并行分布、自动分层、弹性扩展、异构资源整合、全局缓存加速等多方面的特点,才能满足具备大数据特征的业务应用需求。
尤其在云安防概念被热炒的时代,随着高清技术的普及,720P、1080P随处可见,智能和高清的双向需求、动辄500W、800W甚至上千万更高分辨率的摄像机面市,大数据对存储设备的容量、读写性能、可靠性、扩展性等都提出了更高的要求,需要充分考虑功能集成度、数据安全性、数据稳定性,系统可扩展性、性能及成本各方面因素。
目前市场上的存储架构如下:
(1)基于嵌入式架构的存储系统
节点NVR架构主要面向小型高清监控系统,高清前端数量一般在几十路以内。系统建设中没有大型的存储监控中心机房,存储容量相对较小,用户体验度、系统功能集成度要求较高。在市场应用层面,超市、店铺、小型企业、政法行业中基本管理单元等应用较为广泛。
(2)基于X86架构的存储系统
平台SAN架构主要面向中大型高清监控系统,前端路数成百上千甚至上万。一般多采用IPSAN或FCSAN搭建高清视频存储系统。作为监控平台的重要组成部分,前端监控数据通过录像存储管理模块存储到SAN中。
此种架构接入高清前端路数相对节点NVR有了较高提升,具备快捷便利的可扩展性,技术成熟。对于IPSAN而言,虽然在ISCSI环节数据并发读写传输速率有所消耗,但其凭借扩展性良好、硬件平台通用、海量数据可充分共享等优点,仍然得到很多客户的青睐。FCSAN在行业用户、封闭存储系统中应用较多,比如县级或地级市高清监控项目,大数据量的并发读写对千兆网络交换提出了较大的挑战,但应用FCSAN构建相对独立的存储子系统,可以有效解决上述问题。
面对视频监控系统大文件、随机读写的特点,平台SAN架构系统不同存储单元之间的数据共享冗余方面还有待提高;从高性能服务器转发视频数据到存储空间的策略,从系统架构而言也增加了隐患故障点、ISCSI带宽瓶颈导致无法充分利用硬件数据并发性能、接入前端数据较少。上述问题催生了平台NVR架构解决方案。
该方案在系统架构上省去了存储服务器,消除了上文提到的性能瓶颈和单点故障隐患。大幅度提高存储系统的写入和检索速度;同时也彻底消除了传统文件系统由于供电和网络的不稳定带来的文件系统损坏等问题。
平台NVR中存储的数据可同时供多个客户端随时查询,点播,当用户需要查看多个已保存的视频监控数据时,可通过授权的视频监控客户端直接查询并点播相应位置的视频监控数据进行历史图像的查看。由于数据管理服务器具有监控系统所有监控点的录像文件的索引,因此通过平台CMS授权,视频监控客户端可以查询并点播整个监控系统上所有监控点的数据,这个过程对用户而言也是透明的。
(3)基于云技术的存储方案
当前,安防行业可谓“云”山“物”罩。随着视频监控的高清化和网络化,存储和管理的视频数据量已有海量之势,云存储技术是突破IP高清监控存储瓶颈的重要手段。云存储作为一种服务,在未来安防监控行业有着客观的应用前景。
与传统存储设备不同,云存储不仅是一个硬件,而是一个由网络设备、存储设备、服务器、软件、接入网络、用户访问接口以及客户端程序等多个部分构成的复杂系统。该系统以存储设备为核心,通过应用层软件对外提供数据存储和业务服务。
一般分为存储层、基础管理层、应用接口层以及访问层。存储层是云存储系统的基础,由存储设备(满足FC协议、iSCSI协议、NAS协议等)构成。基础管理层是云存储系统的核心,其担负着存储设备间协同工作,数据加密,分发以及容灾备份等工作。应用接口层是系统中根据用户需求来开发的部分,根据不同的业务类型,可以开发出不同的应用服务接口。访问层指授权用户通过应用接口来登录、享受云服务。其主要优势在于:硬件冗余、节能环保、系统升级不会影响存储服务、海量并行扩容、强大的负载均衡功能、统一管理、统一向外提供服务,管理效率高,云存储系统从系统架构、文件结构、高速缓存等方面入手,针对监控应用进行了优化设计。数据传输可采用流方式,底层采用突破传统文件系统限制的流媒体数据结构,大幅提高了系统性能。
高清监控存储是一种大码流多并发写为主的存储应用,对性能、并发性和稳定性等方面有很高的要求。该存储解决方案采用独特的大缓存顺序化算法,把多路随机并发访问变为顺序访问,解决了硬盘磁头因频繁寻道而导致的性能迅速下降和硬盘寿命缩短的问题。
针对系统中会产生PB级海量监控数据,存储设备的数量达数十台上百台,因此管理方式的科学高效显得十分重要。云存储可提供基于集群管理技术的多设备集中管理工具,具有设备集中监控、集群管理、系统软硬件运行状态的监控、主动报警,图像化系统检测等功能。在海量视频存储检索应用中,检索性能尤为重要。传统文件系统中,文件检索采用的是“目录-》子目录-》文件-》定位”的检索步骤,在海量数据的高清视频监控,目录和文件数量十分可观,这种检索模式的效率就会大打折扣。采用序号文件定位可以有效解决该问题。
云存储可以提供非常高的的系统冗余和安全性。当在线存储系统出现故障后,热备机可以立即接替服务,当故障恢复时,服务和数据回迁;若故障机数据需要调用,可以将故障机的磁盘插入到冷备机中,实现所有数据的立即可用。
对于高清监控系统,随着监控前端的增加和存储时间的延长,扩展能力十分重要。市场中已有友商可提供单纯针对容量的扩展柜扩展模式和性能容量同步线性扩展的堆叠扩展模式。
云存储系统除上述优点之外,在平台对接整合、业务流程梳理、视频数据智能分析深度挖掘及成本方面都将面临挑战。承建大型系统、构建云存储的商业模式也亟待创新。受限于宽带网络、web2.0技术、应用存储技术、文件系统、P2P、数据压缩、CDN技术、虚拟化技术等的发展,未来云存储还有很长的路要走。
以上是小编为大家分享的关于大数据时代下的三种存储架构的相关内容,更多信息可以关注环球青藤分享更多干货
㈧ 用C++编写一个航空售票系统
#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
using namespace std;
class Tair //通过定义一个类来定义数据录入的函数
{
char flight[20]; char data[20];char start[20];
char finish[20];char stime[20];char ftime[20];int price;
public:
Tair()
{};
Tair(char fl[20], char D[20],char S[20],char Fin[20],char st[20],char ft[20],int pr);
friend void main(); //将主函数定义为友元函数,方便访问类中的成员
};
Tair::Tair (char fl[20], char D[20],char S[20],char Fin[20],char st[20],char ft[20],int pr)
{
strcpy(flight,fl); //
strcpy(data,D);
strcpy(start,S);
strcpy(finish,Fin);
strcpy(stime,st);
strcpy(ftime,ft);
price=pr; //
}
void main()
{
int p=0; //全局变量,用于选择菜单时的输入
Tair *s[100]; //类定义的指针将所录入的数据按类中的形式分别存储
ofstream *file[100];
int i=0; //全局变量,用于做每个录入数据的下标
int j=0;
int chris1=0;//用于判断do—while语句
while(p!=6)
{
cout<<"\n************ 欢迎来到民航售票系统,请选择您需要的操作并输入相应数字! ***********\n";
cout<<"(1)录入信息\n";
cout<<"(2)按起点查出所有航班的信息\n";
cout<<"(3)按终点查出所有航班的信息\n";
cout<<"(4)按日期、航班号查询航班信息\n";
cout<<"(5)按起点站统计航班数\n";
cout<<"(6)退出\n";
do //判断输入指令是否正确
{
cin>>p;
if((p>=1&&p<=6))
chris1=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(chris1==0);
do
{
switch(p)
{
case 1://录入
{
char flight[20],data[20],start[20],finish[20],stime[20],ftime[20];
int price; char c; //用于在小项中选择是否继续操作
do
{
cout<<"请依次输入航班号、日期、起点站、终点站、起飞时间、到达时间、票价\n";
cin>>flight>>data>>start>>finish>>stime>>ftime>>price;
fstream outfile,infile; //作一个文本文档在文件夹中用于显示所录入的数据
outfile.open("flight.txt",ios::out|ios::app); //以向文件追加写入的方式打开文件flight.txt
if(!file)
{
cout<<"flight.txt can not open.\n";
return;
}
outfile<<"航班号:"<<flight<<" "<<"日期:"<<data<<" "<<"起点站:"<<start<<" "<<"终点站:"<<finish<<" "<<"起飞时间:"<<stime<<" "<<"到达时间:"<<ftime<<" "<<"票价:"<<price<<endl;
outfile.close();
infile.open("flight.txt",ios::in);
if(!file) //判断文件是否打开
{
cout<<"f1.txt can not open.\n";
return;
}
char ch;
while(infile.get(ch))
cout<<ch;
cout<<endl<<endl;
infile.close();
j++;
s[i]=new Tair(flight,data,start,finish,stime,ftime,price);
i++;
cout<<"已录入"<<i<<"条航班信息,想继续录入吗(y/n)"<<endl;
cin>>c;
chris1=0;
//do
//{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
//else chris1=1;
//}while(chris1==0);
}while(c=='y');
break;
}
case 2://按起点站查询
{
char st[20];char c;int j=0;int flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的起点站: "<<endl;
cin>>st;
cout<<"您要查询的起点站为%c的航班信息如下:"<<st<<endl<<endl;
for(int j=0;j<i;j++)
{
if(strcmp(st,(*s[j]).start)==0)
{
flag=1;
cout<<"航班号:"<<(*s[j]).flight<<" 日期:"<<(*s[j]).data<<" 终点站:"<<(*s[j]).finish<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 3://按终点站查询
{
char fin[20];char c;int j=0;int flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的终点站: "<<endl;
cin>>fin;
cout<<"您要查询的终点站为"<<fin<<"的航班信息如下:"<<endl<<endl;
for(int j=0;j<i;j++)
{
if(strcmp(fin,(*s[j]).finish)==0)
{
flag=1;
cout<<"航班号:"<<(*s[j]).flight<<" 日期:"<<(*s[j]).data<<" 起点站:"<<(*s[j]).start<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 4://按日期、航班号查询
{
char dat[20],fli[20];char c;int j,flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的日期和航班号: "<<endl;
cin>>dat>>fli;
cout<<"您要查询的日期为"<<dat<<",航班号为"<<fli<<"的航班信息如下:"<<endl<<endl;
for(j=0;j<i;j++)
{
if(strcmp(dat,(*s[j]).data)==0 && strcmp(fli,(*s[j]).flight)==0)
{
flag=1;
cout<<"起点站:"<<(*s[j]).start<<" 终点站:"<<(*s[j]).finish<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 5://按起点或终点统计一周的航班数
{
int count,flag,j;
char str[20]; char c;
if(i==0)
{ cout<<"\n系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;count=0;
cout<<"\n请输入要统计的航班起点站:"<<endl;
cin>>str;
for(j=0;j<i;j++)
{
if(strcmp(str,(*s[j]).start)==0)
{
flag=1;
count++;
}
}
if(j>=i && flag==0)
cout<<"对不起,您查询的航班信息不存在!"<<endl<<endl;
else
cout<<"\n您要查询的起点站为"<<str<<"的航班数为:"<<count<<endl<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 6://退出
{
cout<<endl<<"********* 感谢您的使用,( ^_^ )/~~拜拜! **********"<<endl;
break;
}
}break;
}while(chris1==0);
}
}
㈨ 易捷航空原来的信息系统存在哪些问题
摘要 易捷航空(easyJet)提供的飞航点遍及全欧洲。此外,易捷航空(easyJet)与欧洲许多国家的饭店有网际连接,提供便宜的住宿订房服务。
㈩ 飞机上的计算机一般是什么操作系统
机载计算机和我们日常使用的PC不是一个概念,它是一个自动化程度很高的智能系统。从计算机架构上来说,同普通的计算机系统并无太大区别。飞机的航电系统包括了很多子系统,例如通讯系统,导航系统,电传飞控系统,发动机电控系统,飞行任务管理系统等等。
波音-787,AH-64用的操作系统是VxWorks。B-2, F-16,F-22, F-35,空客-380 使用的操作系统是Integrity-178B。类似波音-787,空客-380,空客-350内部设备之间是使用以太网的一种变体来互联的,叫AFDX,在应用软件这一层,同普通的以太网程序没有任何区别。
(10)航空存储系统扩展阅读
飞机控制功能是依靠电子系统实现的,就是为完成飞行任务所需要的各种机载电子设备。包括计算机,有几十部之多,这里所指的计算机不是个人电脑那样完整的计算机,没有操作系统,而是微处理器、微控制器、单片机那样具有独立功能而又与其他计算机互相联系的部件,应用于飞机控制、导航、通信、娱乐等各个方面。
为了能够在大温差、低气压、宽频范围机械振动、强冲击过载和狭小使用空间等恶劣环境条件下正常而可靠地工作,对飞机电子系统的设计以及元器件和材料的选用都有很高的要求。因此飞机电子系统的工程难度和成本都比普通电子系统高得多。