第一篇:QTP自帶的飛機(jī)訂票程序產(chǎn)品規(guī)格說(shuō)明書
QTP自帶的飛機(jī)訂票程序
產(chǎn)品規(guī)格說(shuō)明書
一.產(chǎn)品介紹
QTP是HP公司開發(fā)的功能自動(dòng)化測(cè)試工具。相對(duì)于手工測(cè)試,QTP自動(dòng)化測(cè)試比人工測(cè)試快得多,同時(shí)可以避免人工測(cè)試的錯(cuò)誤,減輕了測(cè)試的工作量,給測(cè)試人來(lái)帶來(lái)了極大的便利。隨著測(cè)試技術(shù)的發(fā)展,自動(dòng)化測(cè)試逐漸成為測(cè)試的一個(gè)重要測(cè)試工具。
二.產(chǎn)品面向的用戶群體
專業(yè)的測(cè)試人員、企業(yè)公司測(cè)試組以及測(cè)試團(tuán)隊(duì) 三.產(chǎn)品應(yīng)當(dāng)遵循的標(biāo)準(zhǔn)和規(guī)范
遵守軟件相關(guān)的標(biāo)準(zhǔn)、規(guī)范建立一套軟件測(cè)試的管理和評(píng)判體系,從根本上保證軟件測(cè)試的質(zhì)量,有一定的行業(yè)規(guī)范和操作規(guī)范,腳本生成簡(jiǎn)單易懂,錯(cuò)誤糾正符合常規(guī)測(cè)試人員的測(cè)試習(xí)慣,操作易于上手。
四.產(chǎn)品的功能簡(jiǎn)介
QTP自帶的飛機(jī)訂票程序包括登錄、訂票、刪除等一系列功能操作,運(yùn)用QTP自動(dòng)化測(cè)試工具來(lái)進(jìn)行登錄測(cè)試和訂票測(cè)試,通過(guò)檢查點(diǎn)來(lái)實(shí)現(xiàn)對(duì)各種測(cè)試用例的測(cè)試,同時(shí)可以對(duì)操作進(jìn)行錄制和回放,并生成腳本,便于測(cè)試人員對(duì)產(chǎn)品進(jìn)行檢查。
五.操作說(shuō)明
QTP自帶的飛機(jī)訂票程序,可實(shí)現(xiàn)登錄測(cè)試和訂票測(cè)試。
QTP自帶的飛機(jī)訂票程序,小圖標(biāo)為飛行圖標(biāo)。如圖1-01
圖1-01
登錄模塊
打開后可以看到登錄界面,登錄界面——兩個(gè)文本框,三個(gè)按鈕 如圖1-02
圖1-02 Agent Name文本框
1.登錄框可以輸入的登錄名必須大于4個(gè)字符,小于10個(gè)字符。
當(dāng)輸入的字符小于4個(gè)時(shí),不能登錄成功
當(dāng)輸入的字符大于10個(gè)時(shí),則光標(biāo)將移動(dòng)到所輸入字符的初始端,如果此時(shí)繼續(xù)輸入字符,那么所輸入的字符將會(huì)逐漸覆蓋原先輸入的 字符
2.輸入的字符可以是數(shù)字,字母,漢字以及特殊符號(hào)。3.所輸入的字符均為明文,可以看得見。4.登錄名不固定可以自主輸入。
Password文本框
1.密碼框中可以輸入的字符可以是數(shù)字,字母,漢字以及特殊符號(hào)。2.密碼框中可以輸入的字符必須大于4個(gè)字符,最多只能有8個(gè)字符。3.所輸入的字符均加密不可見,用戶所看到的只是星號(hào)(*)。4.密碼固定為mercury,不區(qū)分大小寫。OK按鈕
登陸窗口中沒(méi)有輸入任何內(nèi)容,或者是只輸入密碼時(shí),點(diǎn)擊此按鈕會(huì)提示。如圖1-03
圖1-03
2.當(dāng)?shù)卿浢斎氲淖址∮?個(gè)時(shí),點(diǎn)擊此按鈕會(huì)提示。如圖1-04
圖1-04 3.當(dāng)輸入符合規(guī)格的登錄名時(shí),并沒(méi)有輸入密碼時(shí),點(diǎn)擊此按鈕會(huì)提示。如圖1-05
圖1-05 4.當(dāng)輸入符合規(guī)格的登錄名,及任意輸入大于4個(gè)字符的密碼時(shí),點(diǎn)擊按鈕會(huì)提示。如圖1-06
圖1-06 5.當(dāng)輸入符合規(guī)格的登錄名,并輸入密碼長(zhǎng)度小于4個(gè)字符時(shí),點(diǎn)擊此按鈕會(huì)提示。如圖1-07
圖1-07 6.當(dāng)在文本框中輸入的字符均不符合時(shí),點(diǎn)擊此按鈕將會(huì)提示出以下警示框。如圖1-08
圖1-08 7.當(dāng)輸入符合規(guī)格的登錄名,并輸入Help中所提示的密碼(不區(qū)分大小寫時(shí),則會(huì)登錄成功。如圖1-09
圖1-09
Cancel按鈕
點(diǎn)擊此按鈕整個(gè)登錄窗口都會(huì)關(guān)閉,如果在點(diǎn)擊按鈕之前的路窗口 中輸入的有內(nèi)容,則將不會(huì)被保存。
Help按鈕
不論登錄窗口中是否輸入有字符,點(diǎn)擊此按鈕都會(huì)提示。如圖1-08
圖1-08
訂票模塊
登陸成功后可以看到訂票界面。如圖2-01
圖2-01
日期選擇
時(shí)間的格式為月/日/年,其中空格處必須輸入兩個(gè)數(shù)字,其他字符均不能識(shí)別。
當(dāng)輸入的日期不符合常規(guī)或者輸入的數(shù)字不均為兩個(gè)時(shí),點(diǎn)擊飛行班機(jī)圖標(biāo)。如圖2-02,會(huì)出現(xiàn)提示框。如圖2-03
圖2-02
圖2-03
當(dāng)輸入的日期時(shí)間過(guò)早,則會(huì)出現(xiàn)提示框。如圖2-04
圖2-04 當(dāng)輸入的日期沒(méi)有對(duì)應(yīng)的航班,點(diǎn)擊飛行班機(jī)圖標(biāo)時(shí),則會(huì)出現(xiàn)對(duì)話框。如圖2-05
圖2-05 當(dāng)輸入的時(shí)間有對(duì)應(yīng)的航班,點(diǎn)擊飛行班機(jī)圖標(biāo)時(shí),則會(huì)出現(xiàn)相應(yīng)對(duì)話框可供選擇具體航班。如圖2-06
圖2-06 起始地和目的地
均有下拉列表,可以自行選擇,但只能選擇下拉列表里所給出的地點(diǎn)。起始地 如圖2-07,目的地 如圖2-08。
圖2-07
圖2-08
當(dāng)選擇相應(yīng)的航班,點(diǎn)擊飛行班機(jī)圖標(biāo)時(shí)。對(duì)應(yīng)在訂票窗口中的航班號(hào),登機(jī)時(shí)間,到達(dá)時(shí)間,航線,票數(shù),所價(jià)錢以及總計(jì)都會(huì)自動(dòng)生成在對(duì)話框中。如圖2-09
圖2-09
種類選擇class 可以自行選擇 頭等艙first,經(jīng)濟(jì)艙economy,商務(wù)艙business,如圖2-10。同時(shí)票價(jià)會(huì)隨著選擇自行改動(dòng)。
圖2-10
姓名填寫Name 在選票的同時(shí)可以輸入自己的姓名,如圖2-11
圖2-11
選擇所買票的張數(shù)點(diǎn)擊提交訂單Insert Order,則訂票成功,且自動(dòng)生成訂單號(hào),同時(shí)可以刪除訂單Delete Order。
快捷按鈕
訂票窗口不但可以訂票,同時(shí)可以查看某時(shí)間段的訂票比例圖。如圖2-12
圖2-12 查看Agents Order Report,在Agents Order Report 記錄著訂票人的信息,訂票信息,以及總?cè)藬?shù),總票數(shù)和總價(jià)。如圖2-13
圖2-13 菜單欄
可以根據(jù)自己的需要進(jìn)行有機(jī)選擇和調(diào)整,進(jìn)行新建、查看、添加、刪除等操作,同時(shí)對(duì)某些疑問(wèn)可以在help中尋求幫助。
附:
登錄模塊中,當(dāng)?shù)卿洿螖?shù)過(guò)多時(shí),將會(huì)有警示框提示錯(cuò)誤次數(shù)太多,不能再登錄了。
訂票模塊中,菜單欄和快捷圖形按鈕可實(shí)現(xiàn)的功能基本相同,都可以進(jìn)行新建、查看、添加、刪除等操作,同時(shí)對(duì)某些疑可尋求幫助。
第二篇:QTP自帶的飛機(jī)訂票功能測(cè)試報(bào)告
QTP自帶的飛機(jī)訂票功能測(cè)試報(bào)告
課題名稱
飛機(jī)訂票系統(tǒng)功能測(cè)試報(bào)告 系/專 業(yè)
*******學(xué)院 班
級(jí)
***** 學(xué)
號(hào)
***** 學(xué)生姓名
*****
指導(dǎo)教師:*****
測(cè)試目標(biāo)
了解熟悉QTP自動(dòng)化測(cè)試工具及其基本功能,掌握QTP自動(dòng)化測(cè)試的基本測(cè)試步驟,能運(yùn)用QTP測(cè)試工具對(duì)系統(tǒng)進(jìn)行簡(jiǎn)單的自動(dòng)化測(cè)試。在QTP測(cè)試中能寫出基本的腳本語(yǔ)言,以及能夠?qū)δ_本語(yǔ)句進(jìn)行編寫,能夠測(cè)試登錄功能、訂票功能。其中有判斷訂票是否成功、添加檢查點(diǎn)及循環(huán)所有航班能否成功測(cè)試。
測(cè)試內(nèi)容
熟悉了解飛機(jī)訂票系統(tǒng)的基本運(yùn)行流程,從登錄到訂票、查詢、刪除等一系列基本功能的操作,并能夠?qū)ζ渲械囊恍┕δ苓M(jìn)行測(cè)試工作。此次飛機(jī)訂票系統(tǒng)測(cè)試內(nèi)容有登錄功能,其中登陸功能測(cè)試包含一個(gè)用戶能否正確登錄、設(shè)置參數(shù)可以進(jìn)行多個(gè)用戶正確和錯(cuò)誤的登錄進(jìn)行測(cè)試。在訂票功能中有對(duì)訂票是否成功的測(cè)試、設(shè)置檢查點(diǎn)以及循環(huán)所有航班的測(cè)試。
測(cè)試原理分析
QTP主要采用的是GUI模擬人的操作。它在模擬人的操作時(shí)會(huì)通過(guò)錄制記錄操作的對(duì)象及所做的操作和順序,然后在回放時(shí)按照記錄順序操作這些對(duì)象。而在這個(gè)模擬的過(guò)程中最重要的莫過(guò)于界面對(duì)象控件的識(shí)別。
基本操作
第二步:點(diǎn)擊QTP的執(zhí)行文件
第二步:第一步完成后會(huì)出現(xiàn)下圖的對(duì)畫框,然后點(diǎn)擊”O(jiān)K”,如圖1-01;
圖1-01
第三步:選擇“Blank Test”選項(xiàng),如圖1-02;
圖1-02
第四步:關(guān)閉右上角的對(duì)話框,選擇左上角的“Record”選項(xiàng),如圖1-03;
圖1-03
第五步:對(duì)具體軟件程序的測(cè)試有兩種方法。第一種是錄制并且運(yùn)行測(cè)試任何一個(gè)打開的基于Windows下的應(yīng)用程序,第二種是只是錄制和運(yùn)行QTP軟件中打開的應(yīng)用程序。如圖1-04;
圖1-04
第六步:在“application”中點(diǎn)擊“+”按鈕選擇要執(zhí)行程序的文件,并點(diǎn)擊確定按鈕,開始錄制,如圖1-05;
圖1-05
登陸測(cè)試測(cè)試用例設(shè)計(jì)
針對(duì)登錄模塊的輸入條件:用戶名和密碼,有以下幾種情況: 1.當(dāng)用戶什么也沒(méi)輸入,直接點(diǎn)OK按鈕,是否提示請(qǐng)輸入用戶名;
2.當(dāng)用戶輸入正確的用戶名,沒(méi)輸入密碼,直接點(diǎn)擊OK按鈕,是否提示請(qǐng)輸入密碼;
3.對(duì)密碼進(jìn)行驗(yàn)證看是否設(shè)置輸入密碼的長(zhǎng)度;
4.當(dāng)輸入正確的用戶名和密碼時(shí),點(diǎn)擊OK按鈕是否進(jìn)入操作界面;
對(duì)登錄模塊進(jìn)行測(cè)試時(shí),盡可能全面的測(cè)試登陸功能的正常和異常情況:只要用戶名大于或等于4個(gè)字符,密碼是“mercury”,即可
登錄。
錄制與測(cè)試過(guò)
第一步:用QTP自動(dòng)打開Flight Reservation系統(tǒng)的登陸界面,輸入用戶名和密碼,確定當(dāng)前的操作,將訂票系統(tǒng)打開,登陸界面如圖2-01;
圖2-01 第二步:在QTP主界面中單擊“Record”,在登陸界面的文本框
中,輸入正確的用戶名和密碼,單擊“OK”按鈕,進(jìn)入飛機(jī)訂票系統(tǒng)界面。在QTP主界面,單擊“Stop”按鈕,結(jié)束當(dāng)前的錄制,如圖2-02;
圖2-02
錄制的腳本代碼為:
'寫一個(gè)循環(huán),讀取datatable的每一行測(cè)試用例 Dim i '定義變量i Dim outputvalue '定義變量實(shí)際得到的輸出 Dim istatus '定義變量希望得到的輸出
For i=1 to datatable.GetSheet(“Action1”).getrowcount '從第一行,讀到datatable的最后一行
Dialog(“Login”).WinEdit(“Agent Name:”).Set DataTable(“AgentName”, dtLocalSheet)Dialog(“Login”).WinEdit(“Password:”).SetSecure DataTable(“Password”, dtLocalSheet)Dialog(“Login”).WinButton(“OK”).Click Dialog(“Login”).Dialog(“Flight Reservations”).Static(“Agent name must be at least 4 characters long.”).Output CheckPoint(“Agent name must be at least 4 characters long.”)Dialog(“Login”).Dialog(“Flight Reservations”).WinButton(“確定”).Click outputvalue=datatable(“outmsg”,dtlocalsheet)'獲取該次循環(huán)的實(shí)際輸出 istatus=datatable(“status”,dtlocalsheet)'獲取該次循環(huán)的預(yù)期輸出
If outputvalue<>istatus Then Reporter.ReportEvent micFail,“登錄測(cè)試”,“實(shí)際的:”+outputvalue+“預(yù)期的:”+istatus+“不相同!” '報(bào)錯(cuò)
else Reporter.ReportEvent micPass,“登錄測(cè)試”,“實(shí)際的:”+outputvalue+“預(yù)期的:”+istatus+“相同!” '報(bào)對(duì) End If
datatable.GetSheet(“Action1”).setnextrow '獲取下一行測(cè)試用例 Next Dialog(“Login”).WinButton(“Cancel”).Click Dialog(“Login_2”).WinButton(“Cancel”).Click
測(cè)試結(jié)果
通過(guò)運(yùn)用QTP對(duì)飛機(jī)訂票系統(tǒng)的測(cè)試,將已設(shè)計(jì)好的測(cè)試用例添加到QTP中,通過(guò)腳本的參數(shù)化設(shè)置,對(duì)測(cè)試用例進(jìn)行自動(dòng)化循環(huán)測(cè)試,如下圖2-03;
圖2-03 QTP對(duì)測(cè)試用例的自動(dòng)化測(cè)試后,分別將可以登陸成功和不能登陸成功的測(cè)試用例進(jìn)行測(cè)試,運(yùn)行結(jié)果如圖2-04
圖2-04
訂票測(cè)試
訂票實(shí)例的前提是登錄訂票系統(tǒng)的成功,該實(shí)例是在訂票系統(tǒng)中進(jìn)行訂票
操作:輸入航班日期、選擇起飛地、選擇目的地、選擇航班、輸入顧客姓名、輸入票的張數(shù)、選擇航班級(jí)別、單擊訂票按鈕,完成訂票功能。
錄制與測(cè)試過(guò)程
第一步:錄制腳本,選擇“Record”如圖(3-01);
圖3-01 第二步:在Agent Nname和Password中都輸入Mercury點(diǎn)擊“OK”按鈕,如圖3-02;
圖3-02 第三步:輸入飛機(jī)的時(shí)間、出發(fā)地、目的地,然后選擇“Flights”選擇航班,如圖3-03;
圖3-03
第四步:選擇要乘坐飛機(jī)的航班,然后點(diǎn)擊確定,如圖3-04;
圖3-04 第五步:輸入顧客的姓名、票數(shù)、票的類型、點(diǎn)擊“insert”,如圖3-05;
圖3-05 第六步:點(diǎn)擊“Stop”結(jié)束錄制過(guò)程,腳本錄制成功,如圖3-06;
圖3-06 錄制的腳本代碼為:
Dialog(“Login”).WinEdit(“Agent Name:”).Set “mercury” Dialog(“Login”).WinEdit(“Password:”).SetSecure “50d03c65bf584d4548c5df42c75a1b2ce70a1491” Dialog(“Login”).WinButton(“OK”).Click
Dim i '定義變量i
For i=1 to datatable.GetSheet(“Action1”).getrowcount '循環(huán)datatable中若干個(gè)測(cè)試用例 Window(“Flight
Reservation”).ActiveX(“MaskEdBox”).Type DataTable(“Date”, dtLocalSheet)Window(“Flight
Reservation”).WinComboBox(“Fly
From:”).Select DataTable(“FlyFrom”, dtLocalSheet)Window(“Flight
Reservation”).WinComboBox(“Fly
To:”).Select DataTable(“FlyTo”, dtLocalSheet)Window(“Flight Reservation”).WinButton(“FLIGHT”).Click ' 日期不同,起飛地不同,目的地不同,可選擇的航班是不一樣的 ' 為適應(yīng)這種不同,則需要從剛才現(xiàn)實(shí)的列表中隨機(jī)選擇一個(gè) '則需要用到隨機(jī)函數(shù),首先要獲取列表框中的條目個(gè)數(shù)
ItemCount=Window(“Flight Table”).WinList(“From”).GetItemsCount SelectItem=RandomNumber(0,ItemCount)'從0~ItemCount中隨機(jī)選擇一個(gè)數(shù)目
Window(“Flight
Reservation”).Dialog(“Flights Reservation”).Dialog(“Flights Table”).WinList(“From”).Select SelectItem Window(“Flight Table”).WinButton(“OK”).Click Window(“Flight Reservation”).WinEdit(“Name:”).Set “l(fā)ixiao” Window(“Flight Reservation”).WinRadioButton(“Business”).Set Window(“Flight Reservation”).WinButton(“Insert Order”).Click Window(“Flight Reservation”).WinButton(“Button”).Click
datatable.GetSheet(“Action1”).setnextrow '讀取下一行 Next Window(“Flight Reservation”).Close
Reservation“).Dialog(”Flights
測(cè)試結(jié)果
通過(guò)運(yùn)用QTP對(duì)飛機(jī)訂票系統(tǒng)的測(cè)試,將已設(shè)計(jì)好的測(cè)試用例添加到QTP中,通過(guò)腳本的參數(shù)化設(shè)置,對(duì)測(cè)試用例進(jìn)行自動(dòng)化循環(huán)測(cè)試,如下圖3-07;
圖3-07 QTP對(duì)測(cè)試用例的自動(dòng)化測(cè)試后,對(duì)訂票參數(shù)的測(cè)試用例進(jìn)行測(cè)試,測(cè)試結(jié)果如圖3-08
圖3-08 分析與建議
功能較少,但基本上滿足了飛機(jī)訂票的需求,但是建議一般用戶也能對(duì)系統(tǒng)進(jìn)行訪問(wèn),查看自己的訂票。沒(méi)有連到外網(wǎng),只是在本機(jī)進(jìn)行測(cè)試,建議在互聯(lián)網(wǎng)進(jìn)行功能等測(cè)試。
飛機(jī)訂票系統(tǒng)測(cè)試小結(jié)
通過(guò)對(duì)QTP飛機(jī)訂票系統(tǒng)從需求分析到執(zhí)行測(cè)試,從錄制腳本到腳本分析結(jié)果,使得我對(duì)以前所學(xué)習(xí)的軟件測(cè)試方面的知識(shí)有了更好的理解,實(shí)踐中才能更深入的理解掌握知識(shí)。在此期間我了解和認(rèn)識(shí)了軟件測(cè)試技術(shù)和QTP自動(dòng)化測(cè)試工具,并且學(xué)習(xí)了QTP工具的使用。現(xiàn)在已經(jīng)能很熟練的使用QTP測(cè)試工具。使用QTP可以加速測(cè)試的整個(gè)過(guò)程,并且建置完新版本的應(yīng)用程序后網(wǎng)站后,可以重復(fù)使用測(cè)試腳本進(jìn)行測(cè)試。
第三篇:4 飛機(jī)訂票系統(tǒng)系統(tǒng)概要設(shè)計(jì)說(shuō)明書
文檔編號(hào): 版本號(hào):V1.0
概要設(shè)計(jì)說(shuō)明書
項(xiàng)目名稱
飛機(jī)訂票系統(tǒng) 項(xiàng)目負(fù)責(zé)人
何柳青 本文檔編寫者 李欣純 項(xiàng)目開發(fā)者 計(jì)算機(jī)081第二組
2010年11月7日 目錄
1.引言.....................................................................1
1.1 編寫目的......................................................................................................................................1 1.2 背景.............................................................................................................................................1 1.3 定義.............................................................................................................................................1 1.4參考資料.......................................................................................................................................1
2.任務(wù)概述...............................................................2
2.1目標(biāo)...............................................................................................................................................2 2.2運(yùn)行環(huán)境.......................................................................................................................................2
2.2.1設(shè)備........................................................................................................................2
2.2.2支持軟件................................................................................................................2 2.3需求概要.......................................................................................................................................2 2.4條件與限制...................................................................................................................................2 3.總體設(shè)計(jì).................................................................3
3.1處理流程.......................................................................................................................................3 3.2總體結(jié)構(gòu)和模塊外部設(shè)計(jì)...........................................................................................................4
4.接口設(shè)計(jì).................................................................4
4.1 硬件接口......................................................................................................................................4 4.2 軟件接口......................................................................................................................................4
5.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì).............................................................5
5.1 邏輯結(jié)構(gòu)設(shè)計(jì)..............................................................................................................................5 5.2 物理結(jié)構(gòu)設(shè)計(jì)..............................................................................................................................5 5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系..............................................................................................................5
6.運(yùn)行設(shè)計(jì).................................................................5
6.1 運(yùn)行模塊的組合..........................................................................................................................5 6.2 運(yùn)行控制......................................................................................................................................5 6.3 運(yùn)行時(shí)間......................................................................................................................................5
7.出錯(cuò)處理設(shè)計(jì).............................................................6
7.1 出錯(cuò)輸出信息..............................................................................................................................6 7.2 出錯(cuò)處理對(duì)策..............................................................................................................................6
8.安全保密設(shè)計(jì).............................................................6 9.維護(hù)設(shè)計(jì).................................................................6
1.引言
1.1 編寫目的
從該階段正式進(jìn)入軟件的實(shí)際開發(fā)階段,本文檔將對(duì)《飛機(jī)訂票系統(tǒng)》的軟件功能進(jìn)行描述。本階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的系統(tǒng)結(jié)構(gòu)圖。本概要設(shè)計(jì)說(shuō)明書的目的就是進(jìn)一步細(xì)化軟件設(shè)計(jì)階段得出的軟件總體概貌,把它加工成在程序細(xì)節(jié)上非常接近于源程序的軟件表示。本文檔的讀者是項(xiàng)目策劃、設(shè)計(jì)和評(píng)審人員。
1.2 背景
開發(fā)軟件名稱:飛機(jī)票訂系統(tǒng)。
//(1)項(xiàng)目任務(wù)提出者:中國(guó)民航及中國(guó)國(guó)際旅游開發(fā)公司。(2)項(xiàng)目開發(fā)者:何柳靑,陸銀琳,李欣純,單國(guó)英,阿依古麗
(3)項(xiàng)目與其他軟件,系統(tǒng)的關(guān)系:本項(xiàng)目采用客戶機(jī)/服務(wù)器原理,客戶端的程序是建立在Windows NT 系統(tǒng)上以Microsoft Visual C++為開發(fā)軟件的應(yīng)用程序,服務(wù)器端采用Linux 為操作系統(tǒng)的工作站,是采用Oracle 8的為開發(fā)軟件的數(shù)據(jù)庫(kù)服務(wù)程序。
1.3 定義
概要設(shè)計(jì)說(shuō)明書中的專門術(shù)語(yǔ)有:數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),總體設(shè)計(jì),接口設(shè)計(jì),運(yùn)行設(shè)計(jì),系統(tǒng)出錯(cuò)處理設(shè)計(jì)。
1.4參考資料
《軟件工程導(dǎo)論》 清華大學(xué)出版社 張海藩 編著 《實(shí)用軟件工程》 清華大學(xué)出版社 鄭人杰 等 編著
《數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)》 高等教育出版社 薩師煊 王珊等編著 《實(shí)用軟件文檔寫作》 清華大學(xué)出版社 肖剛等 編著 《軟件工程》第3版 人民郵電出版社 張海藩等 編著 2.任務(wù)概述
2.1目標(biāo)
該階段目的在于明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件結(jié)構(gòu),此外總體設(shè)計(jì)還將給出內(nèi)部軟件和外部系統(tǒng)部分之間的接口定義,各個(gè)軟件模塊的功能說(shuō)明,數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)以及具體的裝配要求。
2.2運(yùn)行環(huán)境
2.2.1設(shè)備
硬件最低要求:內(nèi)存128MB,硬盤20G以上PC機(jī)
2.2.2支持軟件
vc++.net 傳感器windows系列os 如 win98/me/2000pro server/xp/server2003/win7 2.3需求概要
系統(tǒng)主要的輸入輸出:
1.乘客通過(guò)登錄用戶界面輸入姓名和密碼,進(jìn)行登錄,查詢信息等; 2.操作人員根據(jù)乘客的要求輸入信息到數(shù)據(jù)庫(kù)中進(jìn)行相應(yīng)的查詢及修3.4.5.改;
操作人員或用戶登錄相應(yīng)的界面輸入基本信息,例如姓名,性別,年齡,身份證號(hào)等;
公告信息的輸出,公告信息的回復(fù);
航班具體情況的輸出,剩余票數(shù)的輸出,及臨時(shí)調(diào)整的輸出。
2.4條件與限制
為了評(píng)價(jià)該設(shè)計(jì)階段的設(shè)計(jì)表示的“優(yōu)劣程度”,必須遵循以下幾個(gè)準(zhǔn)則:
(1)軟件設(shè)計(jì)應(yīng)當(dāng)表現(xiàn)出層次結(jié)構(gòu),它應(yīng)巧妙地利用各個(gè)軟件部件之間的控制關(guān)系;
(2)設(shè)計(jì)應(yīng)當(dāng)是模塊化的,即該軟件應(yīng)當(dāng)從邏輯上被劃分成多個(gè)部件,分別實(shí)現(xiàn)各種特定功能和子功能;(3)設(shè)計(jì)最終應(yīng)當(dāng)給出具體的模塊(例如子程序或過(guò)程),這些模塊就具有獨(dú)立的功能特性;
(4)應(yīng)當(dāng)應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來(lái)獲得設(shè)計(jì)。
3.總體設(shè)計(jì)
3.1處理流程
系統(tǒng)的總體處理流程如下圖:
開始進(jìn)入用戶登錄界面是否為后臺(tái)數(shù)據(jù)管理員NO YES是否訂票NOYES查看航班信息YESNO是否改簽NOYES查詢顯示航班信息YES是否修改退票改簽訂票修改信息NO結(jié)束圖3.1 流程圖 3.2總體結(jié)構(gòu)和模塊外部設(shè)計(jì)
模塊是軟件是軟件結(jié)構(gòu)的基礎(chǔ),軟件結(jié)構(gòu)的好壞完全由模塊的屬性體現(xiàn)出來(lái),把軟件模塊化的目的是為了降低軟件復(fù)雜性,使軟件設(shè)計(jì)、測(cè)試、調(diào)試、維護(hù)等工作變得簡(jiǎn)易,但隨著模塊數(shù)目的增加,通過(guò)接口連接這些模塊的工作量也隨之增加。
從系統(tǒng)的層次圖中可以看出,訂票以及退票的信息輸入輸出功能是由航班數(shù)據(jù)管理系統(tǒng)進(jìn)行的。
飛機(jī)訂票系統(tǒng)登錄驗(yàn)證乘客信息修改訂票管理航班信息查詢航班信息調(diào)整后臺(tái)管理員驗(yàn)證用戶身份驗(yàn)證乘客基本信息錄入乘客基本信息修改乘客票務(wù)信息修改乘客訂票改簽退票按時(shí)間查詢按目的地查詢按航班號(hào)查詢?cè)黾有潞桨嘈薷脑泻桨鄤h除航班圖3.2系統(tǒng)層次圖
4.接口設(shè)計(jì)
4.1 硬件接口
本軟件不需要特定的硬件或硬件接口進(jìn)行支持。
4.2 軟件接口
可以運(yùn)行于Windows等操作系統(tǒng)之上。5.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
5.1 邏輯結(jié)構(gòu)設(shè)計(jì)
1.航空公司表:AIRLINE 2.客戶表CUSTOMER 3.飛機(jī)表PLANE 4.航線表LINE 5.航班表FLIGHT 6.訂票表BOOKTICKET 5.2 物理結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫(kù)來(lái)設(shè)計(jì)與生成的。
5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系
系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言SQL生成。
6.運(yùn)行設(shè)計(jì)
6.1 運(yùn)行模塊的組合
具體軟件的運(yùn)行模塊組合為程序多窗口的運(yùn)行環(huán)境,各個(gè)模塊在軟件運(yùn)行過(guò)程中能較好的交換信息,處理數(shù)據(jù)。
6.2 運(yùn)行控制
軟件運(yùn)行時(shí)有較友好的界面,基本能夠?qū)崿F(xiàn)用戶的數(shù)據(jù)處理要求。
6.3 運(yùn)行時(shí)間
系統(tǒng)的運(yùn)行時(shí)間基本可以達(dá)到用戶所提出來(lái)的要求。7.出錯(cuò)處理設(shè)計(jì)
7.1 出錯(cuò)輸出信息
用戶使用錯(cuò)誤的數(shù)據(jù)或訪問(wèn)沒(méi)有權(quán)限的數(shù)據(jù)后,系統(tǒng)給出提示:“對(duì)不起,你無(wú)法使用數(shù)據(jù),沒(méi)有權(quán)限!”而且用戶的密碼管理可以允許用戶修改自己的密碼,不允許用戶的匿名登錄。
7.2 出錯(cuò)處理對(duì)策
由于數(shù)據(jù)在數(shù)據(jù)庫(kù)中已經(jīng)有備份,故在系統(tǒng)出錯(cuò)后可以依靠數(shù)據(jù)庫(kù)恢復(fù)功能,并且依靠日志文件使系統(tǒng)再啟動(dòng),就算系統(tǒng)崩潰用戶的數(shù)據(jù)也不會(huì)丟失或遭到破壞。但有可能占用更多的數(shù)據(jù)存儲(chǔ)空間,權(quán)衡措施由用戶來(lái)決定。
8.安全保密設(shè)計(jì)
系統(tǒng)的系統(tǒng)用戶管理保證了只有授權(quán)的用戶才能進(jìn)入系統(tǒng)進(jìn)行數(shù)據(jù)操作,而且對(duì)一些重要的數(shù)據(jù),系統(tǒng)設(shè)置為只有最高權(quán)限的人員方可讀取或是操作。系統(tǒng)安全保密性較高。
9.維護(hù)設(shè)計(jì)
由于系統(tǒng)較小沒(méi)有加外加維護(hù)模塊,因?yàn)橄到y(tǒng)維護(hù)工作比較簡(jiǎn)單,僅靠數(shù)據(jù)庫(kù)的一些基本維護(hù)。
第四篇:qtp測(cè)試飛機(jī)訂票使用DataTable參數(shù)化(實(shí)驗(yàn)3
飛機(jī)訂票使用DataTable參數(shù)化(實(shí)驗(yàn)III)
原理:通過(guò)關(guān)鍵字視圖可觀察到自動(dòng)化測(cè)試腳本是由操作步驟與數(shù)據(jù)構(gòu)成的。如測(cè)試腳本在某個(gè)變量中重復(fù)使用,而該變量的值經(jīng)常需要根據(jù)具體測(cè)試需求進(jìn)行變更。QT參數(shù)化可以實(shí)現(xiàn)無(wú)須打開測(cè)試腳本,直接改變量的值,提供了高效的維護(hù)測(cè)試腳本方式。主要過(guò)程包括:錄制實(shí)驗(yàn)程序,使用DataTable進(jìn)行參數(shù)化,同時(shí)使用RandomNumber實(shí)現(xiàn)參數(shù)化的正常運(yùn)行和測(cè)試。初步掌所握QuickTest Professional的環(huán)境變量的使用,同時(shí)對(duì)Data Driver了解其概念。
一: 實(shí)現(xiàn)步驟
1.1:點(diǎn)擊安裝并QuickTest安裝步驟完成后,運(yùn)行QuickTest Professional,出現(xiàn)如下界面,點(diǎn)擊Automation->Record and Run Setting,選擇紅框中的內(nèi)容。
1.2:將flight4b.exe打開,運(yùn)行至此界面,確保錄制從這個(gè)階段開始
1.3插入一條訂票的記錄,注意記好num號(hào),生成如下的測(cè)試過(guò)程,并運(yùn)行回放該測(cè)試的結(jié)果,點(diǎn)擊run驗(yàn)證“僅錄制預(yù)定機(jī)票的過(guò)程”
1.4:要求測(cè)試過(guò)程為全部pass
II.對(duì)預(yù)定機(jī)票中的數(shù)據(jù)進(jìn)行參數(shù)化 2.1:在test用例中選中Fly From這個(gè)項(xiàng)
2.2:命名為Fly_from,點(diǎn)擊確定
2.3:,以此類推,對(duì)Fly_to進(jìn)行參數(shù)化,命名后點(diǎn)擊OK
2.4參數(shù)如下紅框所示,手動(dòng)添加進(jìn)參數(shù),London Denver;London Frankfurt;也可以自已多添幾條,前提是機(jī)票預(yù)定系統(tǒng)里有這些地點(diǎn)即可。
2.5:出錯(cuò)信息如附,因?yàn)槭止ぬ砑訁?shù)后,QT并沒(méi)有識(shí)別到,所以我們下一步采用RandomNumber來(lái)實(shí)現(xiàn)
2.6:選擇Flight Table下的From,點(diǎn)擊# 5 2.7:選擇random Number
2.8:測(cè)試完成,參數(shù)化自動(dòng)執(zhí)行Data table表中的參數(shù)。III:環(huán)境變量的使用
3.1使用正常的錄制過(guò)程,機(jī)票錄入系統(tǒng)界面彈出即可。點(diǎn)擊File-setting 6
3.2選擇用戶自定義
3.3按+號(hào)將用戶名添加入
3.4按下圖操作,選擇Environment
3.5選RUN驗(yàn)證吧
要求:主要完成I、II部分,III部分作為體驗(yàn)
完成將調(diào)試PASS的界面截圖,同時(shí)將測(cè)試腳本用例保存打包 班級(jí)+姓名+學(xué)號(hào).RAR方式提交,同時(shí)將實(shí)驗(yàn)報(bào)告(可以打印)方式上交課代表。
第五篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 飛機(jī)訂票系統(tǒng)
飛機(jī)訂票系統(tǒng)
1.需求分析
描述要求編程解決的問(wèn)題。以無(wú)歧義的陳述說(shuō)明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么?明確規(guī)定:
(a)輸入的形式和輸入值的范圍;
(b)輸出的形式;
(c)程序所能達(dá)到的功能;
(d)測(cè)試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。
2.概要設(shè)計(jì)
給出程序要達(dá)到的具體的要求。描述解決相應(yīng)問(wèn)題算法的設(shè)計(jì)思想。描述所設(shè)計(jì)程序的各個(gè)模塊(即函數(shù))功能。說(shuō)明本程序中用到的所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。
3.詳細(xì)設(shè)計(jì)
實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類型,對(duì)每個(gè)操作只需要寫出流程或偽碼算法;對(duì)主程序和其他模塊也都需要寫出流程或偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計(jì)算機(jī)鍵盤直接輸入高級(jí)程序設(shè)計(jì)語(yǔ)言程序);畫出函數(shù)的調(diào)用關(guān)系圖。給出所使用的基本抽象數(shù)據(jù)類型,所定義的具體問(wèn)題的數(shù)據(jù)類型,以及新定義的抽象數(shù)據(jù)類型。設(shè)計(jì)出良好的輸入輸出界面(清晰易懂)。
4.調(diào)試分析 內(nèi)容包括:
(a)調(diào)試過(guò)程中遇到的問(wèn)題是如何解決的以及對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析;
(b)算法的時(shí)空分析(包括基本操作和其他算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析)和改進(jìn)設(shè)想;
(c)經(jīng)驗(yàn)和體會(huì)等。
5.用戶使用說(shuō)明
說(shuō)明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。
6.測(cè)試結(jié)果
設(shè)計(jì)測(cè)試數(shù)據(jù),或具體給出測(cè)試數(shù)據(jù)。要求測(cè)試數(shù)據(jù)能全面地測(cè)試所設(shè)計(jì)程序的功能。列出你的測(cè)試結(jié)果,包括輸入和輸出。這里的測(cè)試數(shù)據(jù)應(yīng)該完整和嚴(yán)格,最好多于需求分析中所列。
7.測(cè)試情況:給出程序的測(cè)試情況,并分析運(yùn)行結(jié)果
附錄(非必須,按照需要添加)
帶注釋的源程序。可以只列出程序文件名的清單。
需求分析
任務(wù):通過(guò)此系統(tǒng)可以實(shí)現(xiàn)如下功能: 錄入:
可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)
查詢:
可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng)); 可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;
訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無(wú)票,可以提供相關(guān)可選擇航班;
退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;
客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。
概要設(shè)計(jì)
詳細(xì)設(shè)計(jì)
詳列函數(shù) void list(){
struct airline *info;
int i=0;
info=start;
printf(“起點(diǎn)城市t終點(diǎn)城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”);
while(i { display(info); info++; i++; } printf(“nn”);} 查詢函數(shù) void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請(qǐng)輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入要抵達(dá)城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒(méi)有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請(qǐng)輸入航班號(hào):”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒(méi)有這條航線!n”); return NULL;} 訂票函數(shù) void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請(qǐng)輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請(qǐng)輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); printf(“請(qǐng)輸入您的身份證號(hào):”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號(hào)是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } 退票函數(shù) void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒(méi)有訂過(guò)票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} 存儲(chǔ)結(jié)構(gòu) typedef struct passenger { char name[10]; int tickets; char id[30]; struct passenger *next;} linklist;typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo;調(diào)試分析 查看航線信息 查詢航線 ① 輸入起飛城市 ② 輸入抵達(dá)城市 ③ 輸出航班信息 辦理訂票業(yè)務(wù) ① 查詢符合的航班 ② 查詢余票量 ③ 輸出航班信息 辦理退票業(yè)務(wù) 源代碼 #include char name[10]; int tickets; char id[30]; struct passenger *next;} linklist; typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo; struct airline *start; void display(struct airline *info){ printf(“%st %10st %10st %10st %10st %5dt %5dn”,info->qi_name,info->jiang_name,info->air_num,info->qi_time,info->jiang_time,info->ticket_all,info->ticket_left);} void list(){ struct airline *info; int i=0; info=start; printf(“起點(diǎn)城市t終點(diǎn)城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); while(i { display(info); info++; i++; } printf(“nn”);} void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請(qǐng)輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入要抵達(dá)城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒(méi)有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請(qǐng)輸入航班號(hào):”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒(méi)有這條航線!n”); return NULL;} linklist *insertlink(linklist *head,int amount,char name[],char id[]){ linklist *p1,*new1; p1=head; new1=(linklist*)malloc(sizeof(linklist)); strcpy(new1->name,name); new1->tickets=amount; new1->next=NULL; strcpy(new1->id,id); if(head==NULL) { head=new1; new1->next=NULL; } else { while(p1->next!=NULL) p1=p1->next; p1->next=new1; } return head;} void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請(qǐng)輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請(qǐng)輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); printf(“請(qǐng)輸入您的身份證號(hào):”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號(hào)是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒(méi)有訂過(guò)票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} int menu_select(){ int c; char s[20]; printf(“ 訂票系統(tǒng)n”); printf(“-------------n”); printf(“ 1.查看航線信息 printf(” 2.查詢航線 printf(“ 3.辦理訂票業(yè)務(wù) printf(” 4.辦理退票業(yè)務(wù) printf(“ 5.退出系統(tǒng) printf(”-------------n“); do { printf(”請(qǐng)選擇(1-5):“); scanf(”%s“,s); c=atoi(s); } while(c<1||c>6); return c; n”);n“);n”);n“); n”); } int main(){ struct airline air[MAXSIZE]= { {“harbin”,“beijing”,“1”,“12:00”,“14:00”,30,30},{“harbin”,“shanghai”,“2”,“10:00”,“13:00”,20,20},{“harbin”,“beijing”,“3”,“13:30”,“10:00”,50,50},{“harbin”,“guangzhou”,“4”,“17:00”,“21:00”,50,50},{“harbin”,“dalian”,“5”,“14:00”,“17:00”,40,40} }; start=air; while(1) { system(“cls”); switch(menu_select()) { case 1: list(); break; case 2: search(); break; case 3: order(); break; case 4: returnticket(); break; case 5: exit(0); } getch(); } } 經(jīng)驗(yàn)體會(huì) 1、通過(guò)設(shè)計(jì)飛機(jī)訂票系統(tǒng),加深了對(duì)鏈表的運(yùn)用和理解。 2、通過(guò)多組測(cè)試數(shù)據(jù),發(fā)現(xiàn)了程序的問(wèn)題,并做了調(diào)整、3、通過(guò)設(shè)計(jì)選擇菜單,對(duì)選擇結(jié)構(gòu)有更深刻的了解。