航空訂票管理系統(tǒng)程序設(shè)計實驗報告_第1頁
航空訂票管理系統(tǒng)程序設(shè)計實驗報告_第2頁
航空訂票管理系統(tǒng)程序設(shè)計實驗報告_第3頁
航空訂票管理系統(tǒng)程序設(shè)計實驗報告_第4頁
航空訂票管理系統(tǒng)程序設(shè)計實驗報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 C+ 程序設(shè)計 學院:電氣信息工程學院 專業(yè):電子信息工程專業(yè) 班級學號:20111605010234 姓名: 張鶴 1、 需求分析2、 概要設(shè)計3、 詳細設(shè)計4、 調(diào)試分析5、 課程總計1、 需求分析1、 系統(tǒng)需求分析:隨著經(jīng)濟全球化的推進以及企業(yè)激烈的競爭,各大機場訂票系統(tǒng)已不能適應人們?nèi)粘3鲂械牧晳T局面,所以我們現(xiàn)在需要一個檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應我們的需求。問題的提出:為了減少人工工作量,提高工作效率,使機場管理員的工作更加有效的進行。2、功能需求分析: 通過此系統(tǒng)可以實現(xiàn)如下功能:(1)、航班信息錄入:每個航班信息包括航班號、起飛時間、降落時間、起飛地點、

2、將落地點、票價、折扣、剩余票量。通過剩余票量可以確定該航班是否已滿。(2)、航班信息查詢:通過航班號或者起飛地點、降落地點查詢所需要的航班信息。(3)訂票:輸入姓名和所要訂的航班的航班號訂票。(4)、退票:輸入姓名和所訂的航班的航班號辦理退票。(5)、修改航班信息:輸入航班號修改該航班的起飛和降落時間以修改航班的起降時間。(6)、刪除航班信息:輸入航班號刪除該航班。(7)、退出:退出的同時將信息寫入文件。二、概要設(shè)計結(jié)構(gòu)體:struct flight /航班信息int a1; /航班號 string a2; /起飛時間 string a3; /降落時間char a410; /起飛城市char

3、a510; /降落城市int a6; /價格 int a7; /票價折扣 int a8; /余票fl10;struct customer /客戶信息char name10; /定義字符型數(shù)組姓名name10 int seat; /定義整型變量座位號seat int num; /定義整型變量航班號numchar no18; /證件號noint ps; /訂票數(shù)psstring qfs; /起飛時間qfsstring jls; /降落時間jlschar qfd10; /起飛城市qfdchar jld10; /降落城市jldint pj; /票價pjcu200;使用的函數(shù):void luru();

4、/聲明錄入函數(shù)void chaxun(); /聲明查詢函數(shù)void chaxun1(); /聲明查詢方式1函數(shù)void chaxun2(); /聲明按查詢方式2函數(shù)void dingpiao(); /聲明訂票函數(shù)void tuipiao(); /聲明退票函數(shù)void xiugai(); /聲明修改函數(shù)void menu(); /聲明主菜單函數(shù)void duqu(); /聲明文件讀取函數(shù)void tuichu(); /聲明退出并保存函數(shù)通過各個函數(shù)的調(diào)用以實現(xiàn)航班信息錄入,航班信息查詢,訂票,退票,修改航班信息。三、詳細設(shè)計1. 系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)主函數(shù)航班信息修改退出系統(tǒng)航班退票航班訂票

5、航班信息查詢航班信息錄入2. 功能模塊說明:(1). 將航班的基本信息錄入到系統(tǒng)中。(2). 根據(jù)航班號或者根據(jù)起飛地點、降落地點查詢所需航班信息。(3). 輸入姓名和所要訂的航班的航班號訂票。(4). 輸入姓名和所訂的航班的航班號辦理退票。(5). 輸入航班號修改該航班的起飛和降落時間以修改航班的起降時間。(6). 退出的同時將信息寫入文件。#include#include#includeusing namespace std;struct flight /航班信息int a1; /航班號 string a2; /起飛時間 string a3; /降落時間char a410; /起飛城市ch

6、ar a510; /降落城市int a6; /價格 int a7; /票價折扣 int a8; /余票fl10;struct customer /客戶信息char name10; /定義字符型數(shù)組姓名name10 int seat; /定義整型變量座位號seat int num; /定義整型變量航班號numchar no18; /證件號noint ps; /訂票數(shù)psstring qfs; /起飛時間qfsstring jls; /降落時間jlschar qfd10; /起飛城市qfdchar jld10; /降落城市jldint pj; /票價pjcu200;int cnum=3;int l

7、en=0;int A=0;void luru(); /聲明錄入函數(shù)void chaxun(); /聲明查詢函數(shù)void chaxun1(); /聲明查詢方式1函數(shù)void chaxun2(); /聲明按查詢方式2函數(shù)void dingpiao(); /聲明訂票函數(shù)void tuipiao(); /聲明退票函數(shù)void xiugai(); /聲明修改函數(shù)void shanchu(); /生命刪除函數(shù) void menu(); /聲明主菜單函數(shù)void duqu(); /聲明文件讀取函數(shù)void tuichu(); /聲明退出并保存函數(shù)void luru() /航班信息錄入 cout請輸入航班信息

8、:endl;cout請輸入航班號fllen.a1; /錄入航班號 cout起飛時間fllen.a2; /錄入起飛時間cout降落時間fllen.a3; /錄入降落時間cout起飛城市fllen.a4; /錄入起飛城市cout降落城市fllen.a5; /錄入降落城市cout票價fllen.a6; /錄入票價cout折扣fllen.a7; /錄入機票折扣cout剩余票量fllen.a8; /錄入剩余票量len+; cout請選擇所要進行的操作endl; menu(); /錄入完成跳轉(zhuǎn)回菜單選擇操作void chaxun() /查詢system(cls);cout請選擇查詢方式endl;cout1

9、.按航班號查詢endl;cout2.按城市查詢t; /選擇查詢方式switch(t)case 1:chaxun1();break;case 2:chaxun2();break;default:cout輸入的數(shù)據(jù)有誤,請重新輸入!endl;menu(); /輸入錯誤返回主菜單重新輸入break;void chaxun1() /按航班號查詢航班信息 int n;cout請輸入要查詢的航班號:n;for(int j=0;jlen;j+)if(flj.a1=n)cout*航班信息*endl航班號:flj.a1t起飛時間:flj.a2t降落時間:flj.a3t起飛城市:flj.a4t降落城市:flj.a

10、5t票價:flj.a6t折扣:flj.a7t剩余票量:flj.a8endl;break; /輸出航班信息elsecout沒有對應的航班!endl;getchar();menu();void chaxun2() /按起飛城市和降落城市查詢航班信息char m110,m210;int j;cout請輸入要查詢的起始、降落城市:m1m2; /輸入起始城市和降落城市for(j=0;jlen;j+)if(strcmp(flj.a4,m1)=0)&(strcmp(flj.a5,m2)=0)cout*航班信息*endl航班號:flj.a1t起飛時間:flj.a2t降落時間:flj.a3t起飛城市:flj.a

11、4t降落城市:flj.a5t票價:flj.a6t折扣:flj.a7t剩余票量:flj.a8endl;break;/輸出航班信息 if(j=10) cout沒有對應的航班!endl;menu();void dingpiao() /訂票 char Name10; int fn;int sign=0; cout請輸入你的姓名和想訂的航班號:Name; /輸入乘客姓名 cinfn; /輸入乘客所要訂的航班號for(int i=0;i0) strcpy(cuA.name,Name);cuA.num=fn;cuA.seat=fli.a8;A+;fli.a8-;sign=1;cout訂票成功!endl;br

12、eak;if(sign) break;if(i=len)cout航班號錯誤!endl;void tuipiao() /退票system(cls);char Name10;int fn;int sign=0; coutName; /輸入乘客姓名 coutfn;coutendl; /輸入乘客所訂的航班的航班號 for(int i=0;ilen;i+)if(fn=fli.a1)for(int j=0;jA;j+)if(strcmp(Name,)=0)cout 退票成功!endl;fli.a8+;sign=1;break;if(sign)break;if(i=len) cout輸入信息

13、有誤!退票失敗endl; void xiugai() /修改航班信息cout輸入航班號:num;for(int i=0;ilen;i+)if(fli.a1=num)num=i; coutflnum.a2;coutflnum.a3;coutendl;break; if(i=len)cout航班號錯誤!endl;void shanchu() /刪除航班信息cout輸入航班號:num;for(int i=0;ilen;i+) if(fli.a1=num)num=i;break; if(i=len)cout航班號錯誤!endl;void tuichu() /退出時保存錄入和更改信息 ofstream

14、nfile2(cus.dat,ios_base:binary); /輸出方式打開文件 nfile2.close(); /關(guān)閉文件ofstream infile2(cus.dat,ios_base:binary|ios_base:app); /輸入方式打開文件 for(int i=0;iA;i+)infile2.write(reinterpret_cast(&cui),sizeof(customer);cout寫入成功!endl;/將乘客信息寫入文件infile2.close(); /關(guān)閉文件ofstream nfile1(airline.dat,ios_base:binary); /輸出方式打

15、開文件nfile1.close(); /關(guān)閉文件 ofstream infile1(airline.dat,ios_base:binary|ios_base:app); /輸出方式打開文件for( i=0;ilen;i+) infile1.write(reinterpret_cast(&fli),sizeof(flight);/將航班信息寫入文件infile1.close(); /關(guān)閉文件void duqu() /讀取文件信息 ifstream infile1(airline.dat,ios_base:binary); while(infile1.peek()!=EOF)infile1.rea

16、d(reinterpret_cast(&fllen),sizeof(flight);/輸入方式讀取文件cout*航班信息*endl航班號:fllen.a1t起飛時間:fllen.a2t降落時間:fllen.a3t起飛城市:fllen.a4t降落城市:fllen.a5t票價:fllen.a6t折扣:fllen.a7t剩余票量:fllen.a8endl;len+; infile1.close();/關(guān)閉文件ifstream infile2(cus.dat,ios_base:binary); while(infile2.peek()!=EOF)infile2.read(reinterpret_cas

17、t(&cuA+),sizeof(customer); /輸入方式讀取文件infile2.close(); /關(guān)閉文件getchar();system(cls);void menu()cout*航班訂票系統(tǒng)*endl;coutendl;cout1.錄入航班信息endl;cout2.查詢航班信息endl;cout3.訂票endl;cout4.退票endl;cout5.修改航班信息endl;cout6.刪除航班信息endl;cout7.退出系統(tǒng)endl;coutendl;cout*endl;coutendl; /菜單界面int i;cout輸入選項:i; /選擇菜單switch(i)case 1:l

18、uru(); break;case 2:chaxun(); break;case 3:dingpiao();menu();case 4:tuipiao();menu();case 5:xiugai();menu();case 6:tuichu(); exit(1); /退出break;default:cout輸入的選項不合法,請重新輸入endl;system(cls); /清屏menu();void main()cout讀取endl;duqu(); /跳轉(zhuǎn)至讀取航班信息文件menu(); /菜單四、調(diào)試分析1. 運行程序:因為之前沒有進行航班信息的錄入,起始讀取信息為空 按任意鍵進入菜單2.錄

19、入航班信息:鍵入1,錄入航班信息,輸入完成后跳出菜單選擇后續(xù)操作 3.查詢航班信息:鍵入1,按航班號查詢,并顯示菜單以便繼續(xù)操作:鍵入2,按起飛城市及降落城市查詢4.主菜單鍵入3,辦理訂票業(yè)務(wù):查詢該航班剩余票量是否改變:5. 主菜單鍵入4,辦理退票業(yè)務(wù):查詢航班信息是否修改完成:6.主菜單鍵入7,結(jié)束并退出操作并把航班和乘客信息寫入文件中:5、 課程總結(jié)1、知識點:此次系統(tǒng)的設(shè)計包含了很多的知識點,涉及到C+簡單的輸入輸出控制、運算符和表達式、選擇控制(if)、循環(huán)控制(while)、字符數(shù)組(char p)、字符串的比較(strcmp(m,p)=0)、數(shù)據(jù)庫(#include、#inclu

20、de )、函數(shù)的定義(void luru()、void chaxun()、void chaxun1();void chaxun2();void dingpiao();void tuipiao();void xiugai(); void shanchu();void menu();void duqu();void tuichu();)等知識點。2、調(diào)試過程中遇到的主要問題及解決辦法 :設(shè)計初期,先完成初步構(gòu)思,寫出主函數(shù)。然后對主函數(shù)所涉及的各個模塊進行編程,將各個模塊利用指針和鏈表聯(lián)系起來。在環(huán)境中進行調(diào)試,應一邊編譯,一邊調(diào)試,并且要一個模塊一個模塊的調(diào)試。直至此模塊完全沒有錯誤時,在進入下一模塊的調(diào)試。不能直接輸入全部的代碼一次性調(diào),這樣錯誤會很多,并且不易找出和修改。在完成程序的編譯鏈接后,要用多組數(shù)據(jù)進行審查,確保做到系統(tǒng)無誤。 設(shè)計過程中,不應忽視環(huán)境提示的警告,有時程序運行不正確與警告也有很大的關(guān)系。這次設(shè)計中遇到很多問題都是提示類型不匹配,這時就要認真檢查前面的代碼,及時改正并且認真仔細,杜絕此類錯再次發(fā)生。 編寫代碼時應該少用全局變量,全局變量在編寫試看似定義次數(shù)少,很方便。但全局變量出錯幾率較大,且不易修改,每次修改時都要全面考慮,所以應避免用到。 程序調(diào)試中碰到的錯誤可以使自己學到知識。養(yǎng)成良好的編程習慣,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論