㈠ 航空公司的存貨是什麼
一些價值較小的飛機上的零配件.
油.
以及管理辦公用的低值易耗品.比如辦公桌.椅什麼的.
㈡ 簡述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)航空存儲系統擴展閱讀
飛機控制功能是依靠電子系統實現的,就是為完成飛行任務所需要的各種機載電子設備。包括計算機,有幾十部之多,這里所指的計算機不是個人電腦那樣完整的計算機,沒有操作系統,而是微處理器、微控制器、單片機那樣具有獨立功能而又與其他計算機互相聯系的部件,應用於飛機控制、導航、通信、娛樂等各個方面。
為了能夠在大溫差、低氣壓、寬頻范圍機械振動、強沖擊過載和狹小使用空間等惡劣環境條件下正常而可靠地工作,對飛機電子系統的設計以及元器件和材料的選用都有很高的要求。因此飛機電子系統的工程難度和成本都比普通電子系統高得多。