第一篇:火車票務(wù)管理系統(tǒng)
///////////////////////達(dá)內(nèi)課后訓(xùn)練項(xiàng)目-火車票務(wù)管理系統(tǒng)///////////////////////// //
// //
姓名: X X
學(xué)號(hào):1005010124
//
//
//
//
(1)火車時(shí)刻信息錄入:包括車次、日期、起點(diǎn)、終點(diǎn)、開(kāi)車時(shí)間、到達(dá)時(shí)間、票價(jià)// //
數(shù)據(jù)存入數(shù)據(jù)文件hchsk.dat或hchsk.txt中。
// //
每次打開(kāi)軟件自動(dòng)讀入文件中的信息
// //
(2)火車時(shí)刻信息查詢。
// //
按照車次查詢
// //
按終點(diǎn)查詢
// //
按起點(diǎn)查詢
// //
按終點(diǎn)和日期查詢
// //
(3)統(tǒng)計(jì)
// //
按終點(diǎn)統(tǒng)計(jì)每日的車次數(shù)
// //
按起點(diǎn)統(tǒng)計(jì)每日的車次數(shù)
// // 系統(tǒng)主界面應(yīng)有以下功能選項(xiàng)
// //
錄入火車時(shí)刻信息
// //
瀏覽火車時(shí)刻信息
// //
查詢火車時(shí)刻信息
// //
刪除火車時(shí)刻信息
// //
統(tǒng)計(jì)火車車次
// //
退出
// /////////////////////////////////////////////////////////////////////////////////
#include
#define N 30
void menu();
//函數(shù)菜單 void save();
//保存文件信息
void open();
//運(yùn)行軟件的時(shí)候 自動(dòng)打開(kāi)以前錄入的信息,并讀入鏈表 void display();
//瀏覽輸入的消息記錄 void SearchTrain();
//根據(jù)火車車次查詢 void Search();
//選擇查詢方式 void Quit();
//退出系統(tǒng) void Great_Ticket();
//信息整體錄入 void GoMenu();
//返回主菜單
void search(int x);
//按車次,啟動(dòng),終點(diǎn)查詢 void SearchEnd_Data();
//按終點(diǎn)和日期終點(diǎn)查詢 void Statistics_Star();
//按起點(diǎn)統(tǒng)計(jì)車次數(shù)量 void Statistics_End();
//按終點(diǎn)統(tǒng)計(jì)車次數(shù)量 void Detele();
//刪除火車時(shí)刻信息
struct Train_Ticket *Input(struct Train_Ticket *h);//單個(gè)信息輸入 struct Train_Ticket *Output(struct Train_Ticket *h);//單個(gè)信息輸出
struct Train_Ticket { char trains[N];
//車次
char data[N];
// 日期
char star[N];
//起點(diǎn)
char end[N];
// 終點(diǎn)
char star_time[N];
//開(kāi)車時(shí)間
char end_time[N];
//到大時(shí)間
char prices[N];
//票價(jià)
struct Train_Ticket *next;
};struct Train_Ticket *head;//鏈表頭
//錄入單個(gè)信息
struct Train_Ticket *Input(struct Train_Ticket *h){
printf(“請(qǐng)輸入:日期
起點(diǎn)
終點(diǎn)
開(kāi)車時(shí)間
到達(dá)時(shí)間
票價(jià)n”);fflush(stdin);scanf(“%s %s %s %s %s %s”,h->data, h->star, h->end, h->star_time, h->end_time, h->prices);return h;}
//輸出單個(gè)信息
struct Train_Ticket *Output(struct Train_Ticket *h){ printf(“%s %s %s %s %s %s %sn”,h->trains,h->data, h->star, h->end, h->star_time, h->end_time, h->prices);return h;}
//保存文件 void save(){ FILE *fp;struct Train_Ticket *p;p = head;fp = fopen(“hchsk.txt”,“w+”);if(fp == NULL){
printf(“打開(kāi)文件失敗!n”);
return;} else {
while(p!= NULL)
{
fprintf(fp,“ %s %s %s %s %s %s %s”,p->trains,p->data, p->star, p->end, p->star_time, p->end_time, p->prices);
p = p->next;
} // printf(“成功保存文件!n”);} printf(“n”);fclose(fp);}
//錄入整個(gè)鏈表信息
車次號(hào)不能相同 否則錄入信息失敗 void Great_Ticket(){
struct Train_Ticket *p1,*p2;p1 = p2 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));printf(“請(qǐng)輸入車次(車次為'0'時(shí)結(jié)束輸入):”);if(p2 == NULL){
free(p2);
printf(“ 未分配內(nèi)存成功!n”);
return;} else {
fflush(stdin);
scanf(“%s”, &p2->trains);
p2->next = NULL;} while(p2->trains[0]!= '0')
//車次號(hào)不為結(jié)束標(biāo)志‘0’
{
p2 = Input(p2);
if(head == NULL)
{
head = p2;
}
else
{
p1 = head;
while(p1->next!= NULL)
{
if(!strcmp(p1->trains,p2->trains))
//判斷車次是否存在{
printf(“該車次已存在,輸入信息失敗!nn”);
return;
}
p1 = p1->next;
}
p1->next = p2;
}
p2 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));
printf(“請(qǐng)輸入車次(車次為'0'時(shí)結(jié)束輸入):”);
if(p2!= NULL)
{
fflush(stdin);
scanf(“%s”, &p2->trains);
p2->next = NULL;
} } save();//輸入完成后 自動(dòng)保存輸入的信息到文件件
return;}
//打開(kāi)文件信息 void open(){ FILE *fp;if((fp = fopen(“hchsk.txt”,“r”))== NULL){
printf(“文件無(wú)任何消息記錄!n”);
return;} struct Train_Ticket *p1,*p2;p1 = p2 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));head = p1;while(!feof(fp))
//文件不到結(jié)束時(shí),將文件內(nèi)容寫到鏈表中 {
fscanf(fp,“%s %s %s %s %s %s %s”,&p2->trains,&p2->data, &p2->star, &p2->end, &p2->star_time, &p2->end_time, &p2->prices);
p1->next = p2;
p1 = p2;
p2 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));
p1->next = NULL;} fclose(fp);return;}
//瀏覽
void display(){ char ch;struct Train_Ticket *p1;p1 = head;if(p1 == NULL){
printf(“無(wú)任何記錄!n”);
return;}
printf(“車次
日期
起點(diǎn)
終點(diǎn)
開(kāi)車時(shí)間 while(p1!= NULL){
Output(p1);
if(p1->next!= NULL)
p1 = p1->next;
else
{
printf(”n“);
printf(”返回主菜單?(y/n): “);
fflush(stdin);
scanf(”%c“, &ch);
if(ch == 'y' || ch == 'Y')
{
system(”cls“);
GoMenu();
}
else
return;
到達(dá)時(shí)間票價(jià)n”);
} } }
//刪除火車時(shí)刻信息 void Delete(){ char c[30];char ch;printf(“請(qǐng)輸入要?jiǎng)h除的火車車次:”);scanf(“%s”, c);struct Train_Ticket *p1,*p2;p1 =(struct Train_Ticket *)malloc(sizeof(struct Train_Ticket));p1 = head;if(p1 == NULL){
printf(“無(wú)任何記錄!n”);
return;} p2 = p1->next;
if(!strcmp(p1-> trains, c))
//如果刪除的信息是在表頭
{
printf(“您要?jiǎng)h除的信息如下:n”);
printf(“車次
日期
起點(diǎn)
終點(diǎn)
開(kāi)車時(shí)間
到達(dá)時(shí)間
票價(jià)n”);
Output(p1);
printf(“確定刪除嗎?(y/n): ”);
fflush(stdin);
scanf(“%c”, &ch);
if(ch == 'y' || ch == 'Y')
{
head = p2;
printf(“成功刪除該信息!nn”);
save();
//刪除完成后,自動(dòng)保存信息
free(p1);
//釋放p1
return;
}
else
return;
}
else
//要?jiǎng)h除的信息不在表頭
{
while(p2!= NULL)
{
if(!strcmp(p2->trains, c))
{
printf(“您要?jiǎng)h除的信息如下:n”);
printf(“車次
日期
起點(diǎn)
終點(diǎn)
開(kāi)車時(shí)間
到達(dá)時(shí)間
票價(jià)n”);
Output(p2);
printf(“確定刪除嗎?(y/n): ”);
fflush(stdin);
scanf(“%c”, &ch);
if(ch == 'y' || ch == 'Y')
{
p1->next = p2->next;
printf(“成功刪除該信息!nn”);
save();
//刪除完成后,自動(dòng)保存信息
free(p2);
//釋放p2
return;
}
}
else if(p2->next!= NULL)
{
p1 = p1->next;
p2 = p2->next;
}
else
{
printf(“無(wú)此車次信息,刪除失敗!n”);
return;
}
} } }
//按火車車次、起點(diǎn)、終點(diǎn)查詢 void search(int x){ char Tra[30];char a[30];struct Train_Ticket *p;p = head;printf(“請(qǐng)輸入您要查詢的內(nèi)容:”);scanf(“%s”, Tra);if(p == NULL){
printf(“對(duì)不起,無(wú)資料記錄!n”);
exit(0);} else {
while(p!= NULL)
{
if(x == 1)
strcpy(a, p->trains);
if(x == 2)
strcpy(a, p->star);
if(x == 3)
strcpy(a, p->end);
if(!strcmp(a, Tra))
{
printf(“車次
日期
起點(diǎn)
終點(diǎn)
Output(p);
return;
}
p = p-> next;
}
printf(”沒(méi)有您要查詢的車次記錄!n“);} }
//按終點(diǎn)和日期查詢 void SearchEnd_Data(){ char end[30];char data[30];struct Train_Ticket *p;p = head;printf(”請(qǐng)輸入您要查詢的車次和日期:“);fflush(stdin);scanf(”%s %s“, end,data);if(p == NULL){
printf(”對(duì)不起,無(wú)資料記錄!n“);
exit(0);} else {
開(kāi)車時(shí)間到達(dá)時(shí)間票價(jià)n”);
while(p!= NULL)
{
if(!strcmp(p->end, end)&&!strcmp(p->data,data))
{
printf(“車次
日期
起點(diǎn)
終點(diǎn)
開(kāi)車時(shí)間
到達(dá)時(shí)間
票價(jià)n”);
Output(p);
}
if(p->next!= NULL)
{
p = p-> next;
}
else
return;
}
return;} }
//返回主菜單 void GoMenu(){ system(“cls”);menu();}
//查詢
void Search(){ system(“cls”);int i;printf(“
1.按車次查找n”);printf(“
2.起點(diǎn)次查找n”);printf(“
3.終點(diǎn)次查找n”);printf(“
4.終點(diǎn)和日期次查找n”);printf(“
5.返回主菜單n”);T: printf(“請(qǐng)選擇:”);fflush(stdin);scanf(“%d”,&i);switch(i){ case 1:
search(1);
break;case 2:
search(2);
break;case 3:
search(3);
break;case 4:
SearchEnd_Data();
break;case 5:
GoMenu();
break;default:
printf(“輸入無(wú)效,請(qǐng)重試!n”);
goto T;} goto T;}
//按起點(diǎn)統(tǒng)計(jì)車數(shù)量 void Statistics_Star(){ int cout = 0;char b[30];struct Train_Ticket *p;p = head;printf(“請(qǐng)輸入起點(diǎn)名:”);fflush(stdin);scanf(“%s”, b);if(p == NULL){
printf(“對(duì)不起,無(wú)資料記錄!n”);
return;} else {
while(p!= NULL)
{
if(!strcmp(p->star, b))
{
cout ++;
}
if(p->next!= NULL)
{
p = p-> next;
}
else
{
printf(“起點(diǎn)為:%s 的車次共有 %d 次n”,b,cout);
return;
}
}
} }
//按終點(diǎn)統(tǒng)計(jì)車數(shù)量 void Statistics_End(){ int cout = 0;char b[30];struct Train_Ticket *p;p = head;printf(“請(qǐng)輸入終點(diǎn)名:”);fflush(stdin);scanf(“%s”, b);if(p == NULL){
printf(“對(duì)不起,無(wú)資料記錄!n”);
return;} else {
while(p!= NULL)
{
if(!strcmp(p->end, b))
{
cout ++;
}
if(p->next!= NULL)
{
p = p-> next;
}
else
{
printf(“終點(diǎn)為:%s 的車次共有 %d 次n”,b,cout);
return;
}
} } }
//統(tǒng)計(jì)車數(shù)量 void Statistics(){ int n;printf(“1.按起點(diǎn)統(tǒng)計(jì)
2.按終點(diǎn)統(tǒng)計(jì)n”);if(!scanf(“%d”, &n)){
printf(“輸入無(wú)效!n”);
return;} else {
if(n == 1)
Statistics_Star();
else if(n == 2)
Statistics_End();
else
{
printf(“輸入無(wú)效!n”);
return;
} } }
//退出 void Quit(){ char ch;printf(“確定退出嗎?(y/n)n”);fflush(stdin);scanf(“%c”,&ch);if(ch == 'y' || ch == 'Y')
exit(0);else
return;}
//菜單 void menu(){ int m;printf(“************************************n”);printf(“*
火車票務(wù)管理系統(tǒng)
*n”);printf(“************************************n”);printf(“ ① 錄入火車時(shí)刻信息
n”);
printf(“ ② 瀏覽火車時(shí)刻信息
n”);printf(“ ③ 查詢火車時(shí)刻信息
n”);printf(“ ④ 刪除火車車次
n”);printf(“ ⑤ 統(tǒng)計(jì)火車車次
n”);printf(“ ⑥ 退出
nn”);L: printf(“請(qǐng)選擇功能:”);fflush(stdin);if(!scanf(“%d”,&m)){
printf(“輸入無(wú)效,請(qǐng)重試:n”);
goto L;} switch(m){ case 1:
Great_Ticket();
break;case 2:
display();
break;
case 3:
Search();
break;case 4:
Delete();
break;case 5:
Statistics();//統(tǒng)計(jì)
break;
case 6:
Quit();
break;default:
printf(“輸入無(wú)效,請(qǐng)重新輸入:n”);
goto L;} goto L;}
//主菜單 int main(){ printf(“歡迎進(jìn)入火車票務(wù)管理系統(tǒng)!n”);printf(“正在加載文檔信息:”);open();
//運(yùn)行軟件的時(shí)候自動(dòng)打開(kāi)存入文件中的相關(guān)信息
for(int i = 0;i < 3;i++){
printf(“* ”);
Sleep(400);} system(“cls”);menu();return 0;}
第二篇:火車訂票管理系統(tǒng)
學(xué)號(hào)11~15 選題三:火車票訂票管理系統(tǒng)
1.基本要求:為方便管理火車票購(gòu)買信息,編寫一個(gè)火車票訂票管理系統(tǒng)軟件。系統(tǒng)記錄必須包括訂票人姓名、訂票人身份證號(hào)、始發(fā)站、終到站、票價(jià)、席別、訂票時(shí)間等。2.基本管理功能: [1] [2] 添加:增加一條訂票人的記錄到管理系統(tǒng)中。
查詢:根據(jù)訂票人身份證查找訂票人的相關(guān)信息并顯示,若找不到也要給出相應(yīng)提示。[3] [4] 修改:在管理系統(tǒng)中修改訂票人的訂票記錄。
保存:將所有訂票信息保存在一個(gè)文件中(數(shù)據(jù)庫(kù)文件或普通的文本文件)。[5] [6] [7] [8] 讀取:從文件中讀取已保存了數(shù)據(jù)。刪除:從管理系統(tǒng)中刪除一條記錄。恢復(fù):能恢復(fù)被刪除的記錄。
統(tǒng)計(jì):(A)統(tǒng)計(jì)每天訂票張數(shù)和總車票金額;(B)統(tǒng)計(jì)單價(jià)在100元以下、100~400元之間和400元以上的票數(shù)總張數(shù)及總金額;(C)以表格形式打印所有訂票信息。
源代碼:
#include
int d;//用于選擇(按1繼續(xù),按2退出,按他其他報(bào)錯(cuò)待完善)int x=1;//用于脫出while循環(huán)
string sfz;//身份證號(hào)碼,用戶輸入可用到
class ticket {public: string ID;string name;string Sstation;string Tstation;float price;string seat;string time;ticket *next;ticket(string I,string n,string S, string T,float p, string s,string t){ID=I;name=n;Sstation=S;Tstation=T;price=p;seat=s;time=t;} void display();};
void ticket::display(){cout< cout<<“|”< ************歡迎使用 ************”< **請(qǐng)輸入選項(xiàng)前的編號(hào)**”< **************************************************************”< * 1.添加車票信息 *”< * 2.查詢車票信息 *”< * 3.修改車票信息 *”< * 4.刪除車票信息 *”< * 5.恢復(fù)車票信息 *”< * 6.顯示車票信息 *”< * 7.統(tǒng)計(jì)車票信息 *”< * 8.保存車票信息 *”< * 9.讀取車票信息 *”< * 0.離開(kāi) *”< **************************************************************”< ticket *head=NULL,*del=NULL,*p0,*p1,*p2,*p3,*p4;//head數(shù)據(jù)鏈表頭指針,p0,p1,p2添加函數(shù)專用,避免發(fā)生錯(cuò)誤 int check(string b)//身份證號(hào)碼作為功能基本辨別數(shù)據(jù),應(yīng)該有一個(gè)函數(shù)專門檢查其是否重復(fù),0 表示重復(fù),1 表示不重復(fù) {ticket *ch;ch=head;int che=1;while(ch!=NULL) {if(ch->ID==b){che=0;ch=NULL;} else {ch=ch->next;} } return che;} int check1(string b)// sbl {ticket *ch;ch=del;int che=1;while(ch!=NULL) {if(ch->ID==b){che=0;ch=NULL;} else {ch=ch->next;} } return che;} int add()//將訂票數(shù)據(jù)保存在一個(gè)基礎(chǔ)鏈表中 {system(“cls”);float price;string name,ID,Sstation,Tstation,seat,time; if(head==NULL)//以下為鏈表為空的情況 { cout<<“=============開(kāi)始輸入訂票信息=============”< cout<<“請(qǐng)輸入訂票人身份證號(hào)碼:”;cin>>ID;cout<<“請(qǐng)輸入訂票人姓名:”;cin>>name;cout<<“請(qǐng)輸入始發(fā)站:”;cin>>Sstation; cout<<“請(qǐng)輸入終點(diǎn)站:”;cin>>Tstation; cout<<“請(qǐng)輸入票價(jià):”;cin>>price;cout<<“請(qǐng)輸入席別:”;cin>>seat;cout<<“請(qǐng)輸入訂票時(shí)間(年月日以“-”隔開(kāi)):”;cin>>time; head=p1=p2=new ticket(ID,name,Sstation,Tstation,price,seat,time);x=1;while(x){system(“cls”); cout<<“按1繼續(xù)輸入,按2退出-》”; cin>>d; if(d==1) {system(“cls”); p1->next=NULL; cout<<“=============開(kāi)始輸入訂票信息=============”< cout<<“請(qǐng)輸入訂票人身份證號(hào)碼:”; cin>>ID; if(check(ID)==0){cout<<“身份證號(hào)碼重復(fù)!”< system(“pause”); return 0;} cout<<“請(qǐng)輸入訂票人姓名:”; cin>>name; cout<<“請(qǐng)輸入始發(fā)站:”; cin>>Sstation; cout<<“請(qǐng)輸入終點(diǎn)站:”; cin>>Tstation; cout<<“請(qǐng)輸入票價(jià):”; cin>>price; cout<<“請(qǐng)輸入席別:”; cin>>seat; cout<<“請(qǐng)輸入訂票時(shí)間(年月日以“-”隔開(kāi)):”; cin>>time; p1=new ticket(ID,name,Sstation,Tstation,price,seat,time); p2->next=p1; p2=p1; } else if(d==2) {p1->next=NULL; x=0; } else {cout<<“非法輸入!”< } //以上為鏈表為空的情況 else //以下為鏈表已有數(shù)據(jù),往末尾添加 {p3=head; while(p3->next!=NULL) {p3=p3->next;} x=1; while(x) {system(“cls”); cout<<“=============開(kāi)始輸入訂票信息=============”< cout<<“請(qǐng)輸入訂票人身份證號(hào)碼:”; cin>>ID; if(check(ID)==0){cout<<“身份證號(hào)碼重復(fù)!”< system(“pause”); return 0;} cout<<“請(qǐng)輸入訂票人姓名:”; cin>>name; cout<<“請(qǐng)輸入始發(fā)站:”; cin>>Sstation; cout<<“請(qǐng)輸入終點(diǎn)站:”; cin>>Tstation; cout<<“請(qǐng)輸入票價(jià):”; cin>>price; cout<<“請(qǐng)輸入席別:”; cin>>seat; cout<<“請(qǐng)輸入訂票時(shí)間(年月日以“-”隔開(kāi)):”; cin>>time; p0=new ticket(ID,name,Sstation,Tstation,price,seat,time); p3->next=p0; p3=p0; system(“cls”); cout<<“按1繼續(xù)輸入,按2退出-》”; cin>>d; if(d==1){x=1;p3->next=NULL;} else if(d==2){p3->next=NULL;x=0;} else {cout<<“非法輸入!”< } } //以上為鏈表已有數(shù)據(jù),往末尾添加 return 1;} ticket *search1(string a)//查詢函數(shù)1,用于輸入身份證號(hào)碼返回一個(gè)指針,可在其他部分被使用 {ticket *cha1;cha1=head;x=1;while(x) {if(cha1==NULL){x=0;} else if(cha1->ID==a){x=0;} else {cha1=cha1->next;} } return cha1;} ticket *search_1(string a)//改查1后面都得改,嗯,就這樣了(~ ̄▽ ̄)~ {ticket *cha1;cha1=del;x=1;while(x) {if(cha1==NULL){x=0;} else if(cha1->ID==a){x=0;} else {cha1=cha1->next;} } return cha1;} ticket *search2(string b)//查詢函數(shù)2,返回所要查詢結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)的指針,在刪除部分使用 {ticket *cha2,*cha3;cha2=cha3=head;x=1;while(x) {if(cha2->next==NULL){x=0;} else if(cha2->ID==b){x=0;} else {cha3=cha2; cha2=cha2->next;} } return cha3;} ticket *search_2(string b)//-_-{ticket *cha2,*cha3;cha2=cha3=del;x=1;while(x) {if(cha2->next==NULL){x=0;} else if(cha2->ID==b){x=0;} else {cha3=cha2; cha2=cha2->next;} } return cha3;} void search()//用于用戶查詢功能(目前只能查詢一次,然后退出,待完善){system(“cls”);cout<<“請(qǐng)輸入身份證號(hào)碼:”;cin>>sfz;p3=search1(sfz);if(p3==NULL){cout<<“無(wú)相關(guān)信息!”< cout<<“|”< cout<<“----------”< p3->display();system(“pause”);} } void display1()// {system(“cls”);ticket *dis;cout< {dis->display(); dis=dis->next; } while(dis!=NULL);} void modify()//修改函數(shù),用于修改數(shù)據(jù)(目前只可以修改單個(gè)訂票信息,待完善){system(“cls”);display1();cout<<“請(qǐng)輸入要修改信息的身份證號(hào)碼:”;cin>>sfz;p3=search1(sfz);if(p3==NULL){cout<<“無(wú)相關(guān)信息!”< while(x) {system(“cls”); cout<<“1.身份證號(hào)碼 2.姓名 3.始發(fā)站 4.終點(diǎn)站 5.票價(jià) 6.席別 7.時(shí)間”< cout<<“請(qǐng)輸入要修改的選項(xiàng)前的編號(hào):”; cin>>d; if(d==1){hui2: cout<<“請(qǐng)輸入身份證號(hào)碼:”; cin>>sfz; if(check(sfz)==0){cout<<“身份證號(hào)碼重復(fù)!”< goto hui2;} p3->ID=sfz; } else if(d==2){cout<<“請(qǐng)輸入姓名:”;cin>>p3->name;} else if(d==3){cout<<“請(qǐng)輸入始發(fā)站:”;cin>>p3->Sstation;} else if(d==4){cout<<“請(qǐng)輸入終點(diǎn)站:”;cin>>p3->Tstation;} else if(d==5){cout<<“請(qǐng)輸入票價(jià):”;cin>>p3->price;} else if(d==6){cout<<“請(qǐng)輸入席別:”;cin>>p3->seat;} else if(d==7){cout<<“請(qǐng)輸入時(shí)間:”;cin>>p3->time;} else {cout<<“非法輸入!”< hui1: cout<<“按1繼續(xù)輸入,按2退出-》”; int d1; cin>>d1; if(d1==1){x=1;} else if(d1==2){x=0;} else {cout<<“非法輸入!”< } } } void Darea(ticket *c)//將刪除信息儲(chǔ)存在另一鏈表中 {if(del==NULL){del=c;del->next=NULL;} else {ticket *Dar; Dar=del; while(Dar->next!=NULL) {Dar=Dar->next;} Dar->next=c; Dar=c; Dar->next=NULL; } } void Delete()//刪除函數(shù)將要?jiǎng)h除的訂票信息移出鏈表,并將所有刪除信息結(jié)成另一鏈表,供恢復(fù)使用 {system(“cls”);display1();cout<<“請(qǐng)輸入要?jiǎng)h除訂票信息的身份證號(hào)碼:”;cin>>sfz;p3=search1(sfz);p4=search2(sfz);if(p3==NULL){cout<<“無(wú)相關(guān)信息!”< void recover()//恢復(fù)函數(shù),用于將已經(jīng)刪除的訂票信息恢復(fù) {system(“cls”);ticket *r1,*r2,*r3;if(del==NULL){cout<<“無(wú)可恢復(fù)訂票信息!”< cout<<“|”< cout<<“----------”< r1=del; if(del!=0) do {r1->display(); r1=r1->next; } while(r1!=NULL);hui3: cout<<“請(qǐng)輸入要恢復(fù)的訂票信息的身份證號(hào)碼:”; cin>>sfz; if(check1(sfz)==1){cout<<“非法輸入!”< r2=head; while(r2->next!=NULL){r2=r2->next;} r3=search_1(sfz); r2->next=r3; r3->next=NULL; Rdel(sfz); cout<<“成功恢復(fù)!”< system(“pause”); } } void display()//顯示基礎(chǔ)鏈表中的所有訂票信息 {system(“cls”);ticket *dis;cout< {dis->display(); dis=dis->next; } while(dis!=NULL);system(“pause”);} void count()//統(tǒng)計(jì)部分 {system(“cls”);if(head==NULL){cout<<“無(wú)可統(tǒng)計(jì)信息!”< n=0,n1=0,n2=0,n3=0; float i,m=0,m1=0,m2=0,m3=0; p3=head; while(p3!=NULL) {i=p3->price; n=n+1; m=m+i; if(i<100){n1=n1+1;m1=m1+i;} if(i>=100&&i<=400){n2=n2+1;m2=m2+i;} if(i>400){n3=n3+1;m3=m3+i;} p3=p3->next; } cout< cout<<“|”< cout<<“-------------------”< cout<<“|”< 元 以 下 cout<<“|”< cout<<“|”< cout<<“|”< system(“pause”); } } void save()//保存函數(shù) {system(“cls”);string filename,filename1;ofstream file;cout<<“請(qǐng)輸入文件名:”;cin>>filename1;filename1=filename1+“.txt”;filename=“C:Program Files(x86)Microsoft Visual StudioMyProjects火車票訂票管理系統(tǒng)savedata”+filename1;//此處路徑根據(jù)需要自行更改 /*file.open(filename.c_str(),ios::in);//功能失敗部分待完善 if(!file){d=1;} else {d=2;} file.close();if(d==1){file.open(filename.c_str(),ios::out); p1=head; x=1; while(x) {if(p1!=NULL) {file< ID< name< Sstation< Tstation< price< seat< time< p1=p1->next;} else {x=0;} } file.close(); cout<<“保存成功”< if(d==2){ */ int i;// cout<<“文件已存在!”< cin>>i; if(i==1) {file.open(filename.c_str(),ios::out); p3=head; x=1; while(x) {if(p3!=NULL) {file< ID< p3=p3->next;} else {x=0;} } file.close(); cout<<“保存成功”< } else if(i==2) {file.open(filename.c_str(),ios::app); p3=head; x=1; while(x) {if(p3!=NULL) {file< ID< p3=p3->next;} else {x=0;} } file.close(); cout<<“保存成功”< } else {cout<<“非法輸入!”;goto hui;} //} } int load()//讀取函數(shù) {system(“cls”);int i=0,ii=0,j=0;ifstream infile;string filename,filename1;cout<<“請(qǐng)輸入文件名:”;cin>>filename1;filename1=filename1+“.txt”;filename=“C:Program Files(x86)Microsoft Visual StudioMyProjects火車票訂票管理系統(tǒng)savedata”+filename1;//此處路徑根據(jù)需要自行更改 infile.open(filename.c_str(),ios::in); if(!infile){cerr<<“讀取失敗!”< system(“pause”); return-1;} string a[1000];//能力有限,不會(huì)動(dòng)態(tài)大小,只能這樣了(+﹏+)~ while(!infile.eof()){getline(infile,a[i],'n'); i++;} ticket *L1,*L2;float f;for(ii=0;ii {f=atof(a[ii+4].c_str()); head=new ticket(a[ii],a[ii+1],a[ii+2],a[ii+3],f,a[ii+5],a[ii+6]); head->next=NULL; } else {L1=head; while(L1->next!=NULL) {L1=L1->next;} f=atof(a[ii+4].c_str()); L2=new ticket(a[ii],a[ii+1],a[ii+2],a[ii+3],f,a[ii+5],a[ii+6]); L1->next=L2; L1=L2; L1->next=NULL; } } infile.close();cout<<“讀取成功”< void select()//選擇功能分支 {system(“cls”);menu();cin>>d; if(d==1){add();select();} if(d==2){search();select();} if(d==3){modify();select();} if(d==4){Delete();select();} if(d==5){recover();select();} if(d==6){display();select();} if(d==7){count();select();} if(d==8){save();select();} if(d==9){load();select();} else if(d==0) {ticket *ex1,*ex2,*ex3,*ex4; ex1=head; while(ex1!=NULL) {ex2=ex1; ex1=ex1->next; delete ex2; } ex3=del; while(ex3!=NULL) {ex4=ex3; ex3=ex3->next; delete ex4; } cout<<“離開(kāi)!”< exit(0);} else {cout<<“錯(cuò)誤!”< int main(){head=NULL;select();return 0;} //較多bug,比如,如果先恢復(fù)第一個(gè)會(huì)導(dǎo)致后面的數(shù)據(jù)全部丟失,時(shí)間能力有限,實(shí)在抱歉->_<- 票務(wù)管理 為了加強(qiáng)門票經(jīng)營(yíng)管理工作,保障經(jīng)營(yíng)者的合法權(quán)益,進(jìn)一步規(guī)范門票,確保門票收入穩(wěn)定,促使游樂(lè)園能夠更好的持續(xù)發(fā)展,特制定此管理方案。 一、樂(lè)民水上樂(lè)園有限公司票務(wù)部負(fù)責(zé)門票的出售工作。 二、票務(wù)管理 1、門票經(jīng)領(lǐng)導(dǎo)審批同意后由稅務(wù)局定點(diǎn)印制。嚴(yán)禁其他部門 或個(gè)人私印、偽造。 2、公司負(fù)責(zé)門票的設(shè)計(jì)、印刷工作,由財(cái)務(wù)部負(fù)責(zé)保存,票 務(wù)部專人負(fù)責(zé)領(lǐng)用、回收、登記核算等工作。門票收入每日上繳財(cái)務(wù)。每次領(lǐng)用量最多不超過(guò)一周的使用量。 3、由于門票調(diào)價(jià)、霉變、重新設(shè)計(jì)等原因,造成庫(kù)存門票報(bào) 廢,保管員應(yīng)及時(shí)清理造冊(cè)。經(jīng)領(lǐng)導(dǎo)審批后由旅游公司、財(cái)務(wù)部負(fù)責(zé)監(jiān)督銷毀。 三、門票結(jié)算管理 1、進(jìn)入樂(lè)園游客一律現(xiàn)金購(gòu)票,一人一票,票價(jià)10元,票 已售出,概不退換,車輛不收費(fèi)。 2、出售時(shí)間為 8:00—18:00,節(jié)假日視情況另行安排。 四、為進(jìn)一步開(kāi)拓市場(chǎng),對(duì)有關(guān)涉旅服務(wù)行業(yè)實(shí)行門票優(yōu)惠及減免政策。 1.、本集團(tuán)員工憑上崗證可免費(fèi)進(jìn)入 2、工作人員、車輛及住戶施行通行證政策,每車150元/年,由公司辦公室負(fù)責(zé)登記辦理。人員及車輛憑通行證免費(fèi)進(jìn)入。 4、記者、導(dǎo)游憑有效證件免費(fèi)進(jìn)入。 5、70歲以上老年人和1.2米以下兒童可免費(fèi)進(jìn)入。 6、旅行社可享受八折優(yōu)惠。 7、在校學(xué)生、現(xiàn)役軍人、殘疾人可憑有效證件享受半價(jià)優(yōu)惠。 8、縣直政府部門及其他執(zhí)法部門經(jīng)領(lǐng)導(dǎo)同意后可免費(fèi)進(jìn)入。 四、門票出售和檢票管理 1、票務(wù)管理人員每天與財(cái)務(wù)做好交接手續(xù),出售的門票做好 日清月結(jié) 2、票務(wù)出售人員應(yīng)提前5分鐘到崗。做好票務(wù)登記,并及時(shí) 解答游客所提出的問(wèn)題。 3、景區(qū)實(shí)行售、檢票分開(kāi)管理方式,根據(jù)工作需要設(shè)立售票 口和檢票口。保安專門負(fù)責(zé)檢票工作。無(wú)票者禁止入內(nèi) 4、票務(wù)管理人員負(fù)責(zé)指揮、疏導(dǎo)車輛。避免交通堵塞。 5、保安負(fù)責(zé)維持售票口的安全秩序。出現(xiàn)問(wèn)題后應(yīng)及時(shí)解 決。對(duì)于私自拉客現(xiàn)象應(yīng)予堅(jiān)決杜絕。 程序簡(jiǎn)介 此程序是采用多文件模塊化形式編寫;其中自定義頭文件中包括了程序中所有調(diào)用的函數(shù)的聲明,以及需要的所有系統(tǒng)頭文件。 #include 編寫時(shí)的分塊包括訂票塊、查詢塊、輸出塊,及已訂票修改部分等。 訂票塊則包含了定票流程的所有代碼。查詢塊中是通過(guò)車次號(hào)碼或是到達(dá)城市來(lái)查詢的。輸出部分包括了主界面的輸出,已定車票信息的輸出,所查車次信息輸出的頭部分。訂票修改即是改定過(guò)程的編程。 即此程序包括了查詢、訂票、改定的流程。 編程過(guò)程 在編寫該程序時(shí),遇到了信息的保存問(wèn)題。訂票時(shí)與改定時(shí)的錄入信息的保存不知如何處理;之后將保存的部分分為鏈表暫存和文件的保存,在錄入信息時(shí)是暫存在鏈表中的,當(dāng)離開(kāi)此系統(tǒng)是會(huì)提示是否保存信息,若是則保存到文件中。此舉方便了票的改定,將數(shù)據(jù)分割開(kāi)了,也精簡(jiǎn)了程序,更便于閱讀。 編程模塊劃分后,編寫程序之后的編譯時(shí),總是連分文件編譯時(shí)都無(wú)法通過(guò)。但是寫入的代碼經(jīng)過(guò)檢查又沒(méi)有問(wèn)題,一直困擾著我。直到想起老師教的課本以外的知識(shí),并以一種玩玩試一試的心態(tài)用條件編譯得以解決此問(wèn)題。 同時(shí)在編程時(shí)多次用到“清屏”,保證了輸出界面的簡(jiǎn)潔。 在分出模塊后,未完成所有部分的編程時(shí)的試運(yùn)行時(shí)出現(xiàn)剛一進(jìn)入子程序時(shí)便會(huì)回到主界面,后發(fā)現(xiàn)時(shí)由于只有輸出部分沒(méi)有輸入部分,每當(dāng)運(yùn)行完子程序后回到主程序時(shí)都會(huì)被“清屏”,結(jié)果造成編譯時(shí)正常,到運(yùn)行時(shí)卻漏洞百出。 在編程時(shí),由于對(duì)文件的處理不熟悉,以及計(jì)算機(jī)的設(shè)置問(wèn)題沒(méi)考慮,使用了‘w+’的調(diào)用方式,使得在保存數(shù)據(jù)到文件時(shí)出現(xiàn)無(wú)法寫入文件的現(xiàn)象。在百度,問(wèn)同學(xué)以及問(wèn)老師后才用‘wb+’和別的方式調(diào)用,并寫入成功。 這個(gè)程序時(shí)我學(xué)習(xí)計(jì)算機(jī)c以來(lái)編寫的最大型涵蓋面最廣的一個(gè)程序,沒(méi)有之一。但同時(shí)我也知道這在c語(yǔ)言編程中也只是很小的一個(gè)小程序而已,我在這編程中發(fā)現(xiàn):我要學(xué)的還有很多,大型程序也不是一個(gè)人能寫出來(lái)的,會(huì)一些編程技巧是很有必要的,與人合作是 – 1 – 必須的,當(dāng)然了,我不是在寫詩(shī),而是真的這么覺(jué)得。一個(gè)人會(huì)的有限,專精方向也不同,若能好好的合作肯定可以超過(guò)一個(gè)人單干。 部分源代碼 訂票程序 #ifndef TRAINHEAD_H #define TRAINHEAD_H #include“trainhead.h” #endif/*條件編譯,作用是防止頭文件被重復(fù)引用*/ int saveflag = 0;void Bookticket(link l,booklink k){ Node *p[10],*q;char c[2],tnum[10],str[10],str1[10];Book *r,*s;int i = 0,t = 0,flag = 0,dnum;r = k;while(r->next!=NULL) r = r->next;printf(“Input the city you want to go:”);scanf(“%s”,&str);q = l->next;while(q!=NULL) { if(strcmp(q->data.reachcity,str)==0) { p[i] = q; i++; } q = q->next; } printf(“nthe number of record have %dn”,i); printhead(); for(t=0;t printdata(p[t]); if(i==0) printf(“nSorry!Can't find the train for you!n”); else { printf(“ndo you want to book it? scanf(“%s”,c); if(strcmp(c,“Y”)==0||strcmp(c,“y”)==0)/*判斷是否訂票*/ { s =(Book*)malloc(sizeof(Book)); printf(“nInput your name: ”); scanf(“%s”,&s->data.name); printf(“nInput your ID: ”); scanf(“%s”,&str1); 相應(yīng)減少*/ strcpy(s->data.num,str1);printf(“nplease input the number of the train:”);scanf(“%s”,tnum);for(t=0;tdata.num,tnum)==0){ if(p[t]->data.ticketnum < 1)/*判斷剩余的供訂票的票數(shù)是否為0*/ { printf(“nsorry,no ticket!”); Sleep(2); return;} printf(“nremain %d ticketsn”,p[t]->data.ticketnum);flag = 1;break;} if(flag==0){ printf(“ninput error”);Sleep(2);return;} printf(“nInput your bookNum: ”);scanf(“%d”,&dnum);p[t]->data.ticketnum=p[t]->data.ticketnum-dnum;/*定票成功則可供訂的票數(shù)s->data.bookNum = dnum;s->next = NULL;r->next = s;r = s;printf(“nLucky!you have booked a ticket!”);getch(); – 3 – } } } saveflag = 1;使用說(shuō)明 運(yùn)行程序時(shí),首先進(jìn)入到菜單部分,菜單部分提供了菜單顯示和輸入功能部分。其運(yùn)行效果如圖19.1所示。在主界面上輸入數(shù)字0——6,實(shí)現(xiàn)相應(yīng)的功能。 圖19.1 火車訂票系統(tǒng)主界面 主界面輸入“1”,進(jìn)入添加火車信息界面,如圖19.2所示。根據(jù)屏幕上給出的提示輸入火車的車次,起點(diǎn),終點(diǎn),出發(fā)時(shí)間,到達(dá)時(shí)間,票價(jià)和可以訂購(gòu)的票數(shù)。 – 4 – 圖19.2 輸入效果圖 主界面輸入“2”,可以查詢火車信息,可以選擇查詢的方法有兩種,一種是按照車次查詢,一種是按照你想要到達(dá)的地方查詢,運(yùn)行效果如圖19.3所示。 – 5 – 圖19.3 查詢效果圖 當(dāng)在主界面輸入“3”時(shí),進(jìn)入訂票界面,按照提示輸入你想要到達(dá)的城市,會(huì)自動(dòng)顯示出你終點(diǎn)站為你輸入城市的信息,根據(jù)提示輸入你是否決定訂票以及你的個(gè)人信息,運(yùn)行效果如圖19.4所示。 圖19.4 訂票效果圖 當(dāng)在主界面輸入“4”時(shí),進(jìn)入修改界面,根據(jù)提示輸入你要修改的內(nèi)容,修改模塊的運(yùn)行效果如圖19.5所示。 – 6 – 圖19.5 修改效果圖 當(dāng)在主界面輸入“5”時(shí),可以顯示出所有的火車信息,顯示模塊效果如圖19.6所示。 – 7 – 圖19.6 顯示效果圖 當(dāng)在主界面輸入“6”時(shí),進(jìn)入到保存模塊,將錄入的火車信息進(jìn)行保存,并且將訂票人的信息也進(jìn)行保存,存儲(chǔ)在指定的磁盤文件中。運(yùn)行效果如圖19.7所示。 圖19.7 保存效果圖 – 8 – 票務(wù)管理復(fù)習(xí) 行統(tǒng)計(jì)獲得的信息。 第三章 1.在封閉式售檢票的作業(yè)環(huán)境下,售檢票方式可分為人工售檢票、辦自動(dòng)售檢票、自動(dòng)售檢票。 2.實(shí)現(xiàn)自動(dòng)售檢票系統(tǒng)的基本構(gòu)架一般有線路式架構(gòu)、分散式架構(gòu)、區(qū)域式架構(gòu)、完全集中式架構(gòu)、分級(jí)集中式架構(gòu)五種。 3.選擇自動(dòng)售檢票系統(tǒng)總體架構(gòu)時(shí)需考慮以下因素: (1)符合軌道交通的戰(zhàn)略目標(biāo)和發(fā)展規(guī)劃;(2)滿足路網(wǎng)換乘; (3)滿足票務(wù)結(jié)算的需求;(4)提高運(yùn)營(yíng)管理效率; (5)系統(tǒng)穩(wěn)定性好,既有較強(qiáng)的適應(yīng)性;(6)系統(tǒng)具有較好的經(jīng)濟(jì)性。 第五章 1.票務(wù)交易數(shù)據(jù):根據(jù)這些運(yùn)營(yíng)參數(shù)自動(dòng)售檢票系統(tǒng)的各種終端設(shè)備自動(dòng)執(zhí)行票務(wù)政策,各種終端設(shè)備在執(zhí)行過(guò)程中記錄的信息被統(tǒng)稱為票務(wù)交易數(shù)據(jù) 2.票務(wù)交易數(shù)據(jù)的管理主要體現(xiàn)在: (1)各種分類組合條件下的查詢、統(tǒng)計(jì)和相關(guān)報(bào)表的處理,以滿足票務(wù)管理的業(yè)務(wù)需要。 (2)在預(yù)先設(shè)置規(guī)則和統(tǒng)計(jì)模型情況下,對(duì)票務(wù)交易數(shù)據(jù)進(jìn)行進(jìn)一步挖掘和分析,為自動(dòng)售檢票運(yùn)營(yíng)管理提供輔助決策。 (3)中央計(jì)算機(jī)系統(tǒng)聯(lián)機(jī)數(shù)據(jù)庫(kù)中,按預(yù)設(shè)條件下將歷史交易明細(xì)數(shù)據(jù)和相關(guān)統(tǒng)計(jì)資料的遷移、備份與刪除,以保證中央計(jì)算機(jī)系統(tǒng)能連續(xù)、可靠地運(yùn)行。 3.系統(tǒng)參數(shù)一般由:車票類型、價(jià)目表、優(yōu)惠率、交易類型、操作權(quán)限、黑名單等組成。 4.運(yùn)行參數(shù)包括:費(fèi)率類;基礎(chǔ)資料類;運(yùn)行管理類;設(shè)備運(yùn)行類。 5.信息匯總包括:信息統(tǒng)計(jì)、數(shù)據(jù)挖掘、各類報(bào)表生成。 6.數(shù)據(jù)挖掘是指把人工智能、機(jī)器學(xué)習(xí)與數(shù)據(jù)庫(kù)等技術(shù)結(jié)合起來(lái),由計(jì)算機(jī)自動(dòng)地從數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中的大量數(shù)據(jù)揭示出隱含的、先前未知的并具有潛在價(jià)值的信息或模式,以解決數(shù)據(jù)量大而知識(shí)貧乏這一困擾專家系統(tǒng)的知識(shí)瓶頸問(wèn)題的非平凡過(guò)程。 7.根據(jù)軌道交通情分系統(tǒng)的業(yè)務(wù)及管理需要,系統(tǒng)的報(bào)表主要分為三大類:結(jié)算類報(bào)表、管理分析類報(bào)表、故障輔助解決類報(bào)表。 8.車票管理包括:車票的編碼管理、車票庫(kù)存管理、車票使用情況跟蹤、車票交易查詢。 9.設(shè)備管理包括:故障監(jiān)控和統(tǒng)計(jì)、維修日志管理、操作日志、設(shè)備設(shè)置、設(shè)備軟件管理、維護(hù)統(tǒng)計(jì)。 第六章 1.車站計(jì)算機(jī)系統(tǒng)的應(yīng)用系統(tǒng)架構(gòu)有五個(gè)子系統(tǒng)組成:通信管理子系統(tǒng)、運(yùn)行管理子系、報(bào)表統(tǒng)計(jì)子系統(tǒng)、權(quán)限控制子系統(tǒng)、車站數(shù)據(jù)庫(kù)系統(tǒng)。 2.車站計(jì)算機(jī)系統(tǒng)的日志包括兩大類型:系統(tǒng)日志和應(yīng)用日志。 3.車站計(jì)算機(jī)系統(tǒng)采用 UPS供電。 第七章 1.電磁兼容是指設(shè)備或者系統(tǒng)在電磁環(huán)境中不受干擾地正常工作,并且不會(huì)對(duì)該環(huán)境中任何事物構(gòu)成不能承受的電磁干擾的影響。 2.外界電磁干擾侵入系統(tǒng)的主要途徑:電源系統(tǒng)、傳導(dǎo)通路、空間電磁波感應(yīng)(包括靜電場(chǎng)和磁場(chǎng))。 第八章 1..A類卡的電源為5V;B類卡的電源為3V。 2.非接觸式IC票的關(guān)鍵技術(shù)包括: (1)射頻技術(shù)(2)低功耗技術(shù)(3)封裝技術(shù)(4)安全技術(shù) 3..所謂突發(fā)的偶然因素,是指數(shù)據(jù)在傳輸過(guò)程中可能會(huì)收到外界的干擾,從而使原來(lái)的正確數(shù)據(jù)受到破壞。 4.所謂因系統(tǒng)本身的使用特點(diǎn)而產(chǎn)生的因素是指在非接觸式IC卡系統(tǒng)的應(yīng)用中經(jīng)常會(huì)出現(xiàn)一個(gè)讀卡器必須同時(shí)處理幾張卡的情況(即有多張卡在讀卡器的天線感應(yīng)范圍內(nèi)),在這種情況下,卡片之間會(huì)出現(xiàn)數(shù)據(jù)干擾。 5.計(jì)算例題P235。 6.循環(huán)冗余校驗(yàn)碼的特點(diǎn) ①可檢測(cè)出所有奇數(shù)位錯(cuò) ②可檢驗(yàn)出所有雙比特的錯(cuò) ③可檢驗(yàn)出所有小于、等于校驗(yàn)位長(zhǎng)度的突發(fā)錯(cuò)。 第九章 1.一個(gè)全方位的安全體系包含:訪問(wèn)控制、檢查安全漏洞、攻擊監(jiān)控、認(rèn)證、備份和恢復(fù)、多層防御、隱藏內(nèi)部信息、設(shè)立安全監(jiān)控中心等。 第十章 1.容災(zāi)系統(tǒng)是通過(guò)在異地另行建立和維護(hù)一套獨(dú)立的應(yīng)用系統(tǒng),利用地理上的分離來(lái)保證信息系統(tǒng)和數(shù)據(jù)對(duì)災(zāi)難性事件的抵御能力,以實(shí)現(xiàn)整個(gè)應(yīng)用系統(tǒng)和業(yè)務(wù)數(shù)據(jù)的完整備份。 第十一章 1.中央系統(tǒng)的維護(hù)人員需要進(jìn)行以下運(yùn)行維護(hù)操作: (1)系統(tǒng)運(yùn)行狀況監(jiān)控;(2)系統(tǒng)用戶管理; (3)重要數(shù)據(jù)和數(shù)據(jù)庫(kù)的備份與恢復(fù);(4)自診斷; (5)數(shù)據(jù)歸檔;(6)生產(chǎn)系統(tǒng)與災(zāi)容備份系統(tǒng)的切換演練。 2.越來(lái)越被廣泛用于計(jì)算機(jī)系統(tǒng)的性能測(cè)試方法是基準(zhǔn)程序方法。第三篇:票務(wù)管理
第四篇:火車訂票管理系統(tǒng)主程序流程
第五篇:票務(wù)管理復(fù)習(xí)