電子交通模擬系統(tǒng)-學位論文_第1頁
電子交通模擬系統(tǒng)-學位論文_第2頁
電子交通模擬系統(tǒng)-學位論文_第3頁
電子交通模擬系統(tǒng)-學位論文_第4頁
電子交通模擬系統(tǒng)-學位論文_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第第頁共31頁1引言道路交通管理與控制是道路交通工程的一個重要組成部分,他的主要目的,是根據現有的道路網及其設施和出行分布狀況,對各種出行加以指導性管理,使整個系統(tǒng)從時間上盡可能地得到協(xié)調。隨著城市的快速發(fā)展,交通系統(tǒng)的問題也日漸突出,如市區(qū)道路行車延誤增大,整體行駛車速過低等,其中最為關鍵的是交叉口的車流量已處于飽和狀態(tài)。分析其原因,主要是由于現有交叉口的幾何條件所限,以及缺少完善的交通管理設施。道路上交通標志不規(guī)范,路口燈控率、十字路口渠劃率等衡量城市管理水平的重要指標較低等等。 為了解決交通擁擠的問題,許多城市采取了完善路網和改善交通信號控制設施的措施,也提出許多新理論和新方法,在這一定程度上環(huán)節(jié)了交通擁擠的問題。但是,交通系統(tǒng)的新理論和新方法受實踐限制,不能充分的進行驗證或者應用于實際中;而道路交叉口或區(qū)域的交通控制系統(tǒng)參數的測算,由于計算煩瑣和時間情況的變化也不能達到最佳效果,無法知道動態(tài)的情況。因此需要一種比較簡便快捷的方法來設計交通控制系統(tǒng)或能對其完善性進行評價和驗證。通過計算機,動態(tài)模擬交通控制系統(tǒng),可以在一定程度上對道路交通系統(tǒng)進行研究并得到較好的效果。2開發(fā)語言和開發(fā)工具簡介2.1Java技術簡介Java是近代出現的新一代面向對象程序設計語言,由Sun公司推出,起初用于家電產品上的軟件編程。后來,經過Sun公司的不斷推出新的版本,目前版本已達到1.6。Java是一種簡單的、面向對象的、分布式的、解釋的、健壯的、安全的、結構中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的語言。2.1.1Java語言的特點1.簡單Java與C的區(qū)別是C是面向過程的語言,而Java是面向對象的語言,Java與C++語言非常相近,但比C++簡單,在Java中取消息了對指針的操作,拋棄了C++中的一些不是絕對必要的功能,如頭文件、預處理文件、指針、結構、運算符重載、多重繼承以及自動強迫同型。Java實現了自動的垃圾收集,簡化了內存管理的工作。2.面向對象Java是面向對象的語言,將世間萬物都看成對象,將對象所具有的共性抽取出來,就是對象的類。Java提供了簡單的類機制和動態(tài)的構架模型。對象中封裝了它的狀態(tài)變量和方法,很好地實現了模塊化和信息隱藏;而類則提供了一類對象的原型,通過繼承和重載機制,子類可以使用或重新定義父類或超類所提供的方法,從而既實現了代碼的復用。3.多線程 多線程的實現方式可以通過軟件或硬件實現,Java是語言級別的多線程,通過JVM實現,多線程使應用程序可以同時進行不同的操作,處理不同的事件。在多線程機制中,不同的線程處理不同的任務,他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實現網絡上的實時交互操作。4.分布式Java是面向網絡的語言。通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網絡上很方便的訪問其他對象。5.跨平臺Java是通過JVM實現其跨平臺的,JVM通過不同的接口與操作系統(tǒng)交互,上層通過相同的接口與Java語言交互,Java是一種網絡語言,為使Java程序能在網絡的任何地方運行,Java解釋器生成與體系結構無關的字節(jié)碼結構的文件格式。Java語言環(huán)境還提供了用于訪問底層操作系統(tǒng)功能的類組成的包,當程序使用這些包時,可以確保它能運行在各種支持Java的平臺上。6.安全性用于網絡、分布環(huán)境下的Java必須要防止病毒的入侵,Java不支持指針,一切對內存的訪問都必須通過對象的實例變量來實現,這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產生的錯誤。2.1.2Java開發(fā)工具JDKJDK(JavaDevelopmentKit)是一個寫Java的applet和應用程序的程序開發(fā)環(huán)境。它由一個處于操作系統(tǒng)層之上的運行環(huán)境還有開發(fā)者編譯,調試和運行用Java語言寫的applet和應用程序所需的工具組成。1.Java編譯器(Javac命令)Java編譯器將Java源代碼文件編譯成可執(zhí)行的Java字節(jié)碼。Java源代碼文件的擴展名為.java,Java編譯器把這種擴展名的文件編譯成擴展名為.class的文件。源文件中的每個類在編譯后都將產生一個class文件,這意味一個Java源代碼文件可能編譯生成多個class文件。2.Java解釋器(java命令)Java解釋器對編譯生成的字節(jié)碼格式的可執(zhí)行程序的運行提供支持,它是運行非圖形Java程序的命令行工具。ECLIPSE根據需求分析及功能分析,選用Eclipse集成開發(fā)工具及Oracle數據庫來開發(fā)此系統(tǒng)。1.Eclipse的起源和發(fā)展Eclipse的前身是IBM的VisualAge。由于意識到VisualAge存在難以擴展、底層技術較為脆弱、很難與WebSphereStudio軟件集成等諸多問題,進一步發(fā)展甚為困難,同時也面臨包括Symantec公司的VisualCafé、Borland公司的JBuilder等開發(fā)工具的競爭壓力,IBM決定創(chuàng)建一個更開放的,并且可以為IBM其他開發(fā)工具提供支持的一體化開發(fā)平臺。1998年11月,IBM專門成立了一個項目開發(fā)小組,開始開發(fā)該平臺,2000年新一代開發(fā)平臺誕生,這就是大家所熟悉的Eclipse。2000年11月,IBM做出了一個重大決定,將Eclipse采用開放源碼的授權和運作模式發(fā)布,以增強業(yè)界對Eclipse的關注度并加快其推廣應用速度。隨后,IBM于2001年12月向外界宣布,捐贈價值4千萬美元的Eclipse源碼給開源社區(qū);成立由成員公司組成的Eclipse協(xié)會(EclipseConsortium),以便支持并促進Eclipse開源項目。事實證明,IBM的決策非常英明。Eclipse受到廣泛關注,蜂擁而至的用戶使得其下載服務器一度阻塞,給業(yè)界帶來了久違的震撼!IBM趁熱打鐵,在EclipseCon2004上宣布成立一個獨立的、非盈利性的基金會,由該基金會負責管理和指導Eclipse開發(fā),目前其成員多達近百家知名公司,其中包括Borland、RationalSoftware、RedHat、Sybase、Google和Oracle等業(yè)界巨頭。Eclipse開發(fā)狀態(tài)非?;钴S,目前成熟穩(wěn)定的版本是3.2,正在開發(fā)的版本是3.3,已經成為業(yè)界主要的非微軟軟件開發(fā)平臺。2.Eclipse的優(yōu)勢目前全球有上百萬人在使用Eclipse進行開發(fā)。為什么Eclipse擁有如此眾多的用戶?這與Eclipse集眾多特性于一身有很大關系。Eclipse是開放源代碼的軟件。這意味著Eclipse不僅可以免費使用,還可以通過研究源代碼學習世界上頂尖開發(fā)人員的編程技術,并可以共享遍布全球的開發(fā)人員所貢獻的公共開放源代碼庫。Eclipse是真正可擴展并可配置的。Eclipse采用插件機制,猶如一個花瓶,你可以隨時向花瓶里面插花,也可以很容易將不再需要的花取出。Eclipse支持眾多的開發(fā)語言而不僅僅是Java。Eclipse只是給開發(fā)人員提供了一個能夠擴展系統(tǒng)功能的最小核心,基于擴展點的插件體系結構使得Eclipse支持多種語言成為可能。只要安裝相應語言的插件,Eclipse就可以支持該種語言的開發(fā)。目前,Eclipse已經可以支持C、COBOL、PHP、Perl、Python等多種語言。Eclipse提供了對多重平臺特性的支持。開發(fā)者可以使用他們感覺最舒適、最熟悉的平臺,例如Windows、Linux等。Eclipse對每個平臺都有其單獨的圖形工具包,這使得應用程序具有接近本地操作系統(tǒng)的外觀和更好的性能。2.2GUI技術簡介2.2.1GUI的概述GUI(GraphicsUserInterface)是指圖形用戶接口,當Java在1995年的春天第一次發(fā)布的時候,它包含了一個叫AWT(AbstractWindowingToolkit)的庫,用來構建圖形用戶界面應用程序。Java很有雄心的宣言--"writeonce,runanywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應用程序將能夠在各種操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。雖然最初Java是支持操作系統(tǒng)獨立的應用程序開發(fā),在Java提出"writeonce,runanywhere"宣言那段時間的革命導致了Javaapplet和主導桌面應用程序計劃的產生。盡管從那以后大部分構建桌面應用程序的成就都慢慢衰退,Java構建圖形用戶界面的能力反倒增強了。跟蹤JavaGUI的發(fā)展和演化,我們將發(fā)現3個主要的構建窗口程序庫:AWT,Swing和SWT(StandardWidgetToolkit)。在本系統(tǒng)中,主要采用的是Swing。2.2.2Swing的概述Swing是SUN公司退出的第二代圖形用戶接口工具包,通過Swing可以開發(fā)出功能強大,界面優(yōu)美的客戶應用程序。Swing不但提供了很多功能完善的控件,而且其還具有良好的擴展能力,用Swing來進行交互界面的開發(fā)是一件另開發(fā)人員非常愉快的工作。Swing從誕生到現在大致經歷了如下幾個階段。Swing項目是從1996年底開始的,在項目開始的同時所有的參與者共同選定了這個名稱,目的就是開發(fā)一個不依賴于本地系統(tǒng)的圖形用戶接口工具包。1997年后半年Swing進入測試階段,并在1998年春隨同JDK1.1首次發(fā)行,對于JDK1.1之前的版本,是不能使用Swing庫的。Swing從首次發(fā)行開始,就不斷快速的成長,自JDK1.2之后,便被完全集成到了java的標準類庫中,成為java基礎類庫(JFC)大家族中一個重要組成部分。2.2.3Swing的特點 Swing的特點主要包括完全輕量級的控件、可插拔的感觀風格、更多的控件擴展3個方面。完全輕量級的控件:幾乎所有的Swing控件都是輕量級的、純java開發(fā)的,這樣在控件對自己進行繪制時就不會依賴本地操作系統(tǒng)平臺的對等控件,而是使用繪制圖形的基本元素直接通過java平臺在屏幕上進行繪制,這樣就避免了早期不是使用輕量級控件的java圖形用戶界面程序在不同的操作系統(tǒng)中運行時有不同的外觀,切換操作系統(tǒng)后顯示不正常等問題。可插拔的感觀風格:Swing在界面顯示上很吸引人的一點就是支持可插拔的感觀風格,主要包含以下幾個方面:Swing能夠模擬各種不同操作系統(tǒng)的感觀風格,其類庫中就包含了Windows,UnixMotif,LinuxGTK,MacOSX以及JavaMetal等感觀風格。如果有需要,開發(fā)人員還可以通過系統(tǒng)提供的接口編寫自定義的感觀風格。Swing還允許用戶在不關閉應用程序的情況下,在各種感觀風格之間進行自由切換。系統(tǒng)自帶的JavaMetal感觀風格合并了眾多風格中最好的圖形元素,甚至增加了一些屬于其自己的特性。現在的Metal感觀風格支持多種不同的主題,各主題之間在顏色和字體等方面都有所不同,用戶如果有需要,還可以開發(fā)自己的主題。3)更多的控件擴展:Swing中增加了許多新的控件并且為每個控件都增加了工具提示的功能,同時Swing還支持任意數量嵌套邊框的鑲邊替代物,并且可以任意的將鍵盤事件綁定到控件中。2.3JDBC技術簡介2.3.1JDBC概述1996年,SUN公司提出JDBC即JavaDataBaseConnectivity;JDBCTM(trademark);JDBC(java數據庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關系數據庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發(fā)人員能夠編寫數據庫應用程序。2.3.2JDBC的功能1)有了JDBC,向各種關系數據庫發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數據庫專門寫一個程序,為訪問Oracle數據庫又專門寫一個程序,為訪問Informix數據庫又寫另一個程序,等等。您只需用JDBCAPI寫一個程序就夠了它可向相應數據庫發(fā)送SQL語句。而且,使用Java編程語言編寫的應用程序,就無須去憂慮要為不同的平臺編寫不同的應用程序。將Java和JDBC結合起來將使程序員只須寫一遍程序就可讓它在任何平臺上運行。2)Java具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是Java應用程序與各種不同數據庫之間進行對話的方法。而JDBC正是作為此種用途的機制。3)JDBC擴展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網頁,而該applet使用的信息可能來自遠程數據庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數據庫的要求也在日益增加。3系統(tǒng)分析和總體規(guī)劃3.1系統(tǒng)的必要性和可行性一、必要性:近年來,隨著社會經濟的不斷發(fā)展和人們生活水平的普遍提高,整個社會對交通運輸的需求日益增加。雖然世界各國政府已經或是正在大量投入財力于交通基礎設施的建設,但交通狀況惡化及其伴生的安全事故、空氣污染等一系列問題越來越困擾著有關的政府當局。交通運輸對經濟發(fā)展的制約作用不同程度地普遍存在于每個國家/地區(qū),如何解決大城市周圍地區(qū)交通擁擠和堵塞現象幾乎成了最為棘手的難題之一。因此為了能更好的控制車輛流動;更好的減少交通擁擠,避免交通堵塞;更好的發(fā)揮智能交通燈的優(yōu)勢,使城市車流的調節(jié)達到最優(yōu),以至讓我國的經濟再一次的快速發(fā)展,我們通過構建一個電子交通模擬器實現對交通的模擬是很有必要的。二、可行性:(1)經濟可行性:該系統(tǒng)只需要一臺計算機,運行安裝oracle數據庫服務器即可,對于一個交通管理部門來說,這是很容易達到的,所以在經濟上是可行的。(2)操作可行性:在當今社會,科技騰飛的時代,計算機的使用已經很普及,只要是受過教育的人,對于計算機的基本操作都能得心應手,所以對于交通管理部門里面的人員,其操作性毋庸懷疑,所以也是可行的。(3)技術可行性:本系統(tǒng)采用Java語言,基于Eclipse+SUSELinux+SunOS5.10開發(fā)平臺,采用GUISwing,Oracle10g,JDBC技術,開發(fā)者掌握這些技術就可以具備開發(fā)此系統(tǒng)的能力,這些技術都是公開的,且開發(fā)者容易掌握的。所以,技術方面也是可行的。3.2需求分析3.2.1數據需求:此系統(tǒng)主要完成交通路口模擬的功能,因此,需要的數據信息包括:紅綠燈的計時時間,各方向的開始車輛,各方向的后來車輛,以及車速等。3.2.2功能需求:功能需求分析的任務是弄清用戶對目標系統(tǒng)數據處理功能所提出的需求。本系統(tǒng)的功能需求有:(1)用戶可以通過輸入紅綠燈的數據,看到時間計時。(2)用戶可以通過界面直接看到紅綠燈隨著時間有規(guī)律的轉換。(3)用戶可以通過輸入車輛的相應數據,看到車輛通行的情況。(4)用戶可以直接查詢日志文件。(5)用戶可以查詢某一時間段的交通情況。3.3總體設計3.3.1系統(tǒng)功能設計1.系統(tǒng)功能:本模塊的主要功能是客戶端通過用戶輸入數據,對交通路口進行一個模擬,并把數據紀錄下來,以供研究。其主要功能如下:(1)時間的計時通過用戶輸入的紅綠燈時間進行倒計時。(2)紅綠燈的切換用戶可以觀看紅綠燈在規(guī)定時間自動轉換。(3)車輛的模擬通過用戶輸入的數據,實現車輛。(4)日志查看用戶可以查看某一天的日志情況。(5)歷史查詢用戶可以查詢某一時間段的交通模擬情況2.系統(tǒng)功能結構圖:通過對所做模塊的功能需求分析,該模塊主要功能可分為五大部分,系統(tǒng)用例如圖3-1所示。圖3-1系統(tǒng)用例圖3.3.2運行過程設計本系統(tǒng)使用java語言,在客戶端使用GUISwing編程技術,實現圖形化界面和用戶進行交互,對于用戶的請求由action事件進行處理,轉而調用相應的業(yè)務邏輯層,隨著時間的計時,系統(tǒng)執(zhí)行相應的功能,對于執(zhí)行后的結果直接寫入到日志中同時也備份到數據庫中,供用戶查詢。運行步驟:(1)用戶打開圖形化界面。(2)輸入相應的數據。 (3)查看紅綠燈計時以及車輛通行的情況。(4)查看日志文件。(5)用戶通過輸入時間查詢對應的歷史紀錄。系統(tǒng)流程圖圖3-2系統(tǒng)流程流程圖詳解:用戶找到MainGUI.java類文件,并運行它,彈出交通模擬界面圖像,根據圖像顯示的內容,用戶輸入相應的初始數據,然后點擊確定按鈕,此時,界面上的計時模塊便開始計時,同時界面上的車輛也開始根據紅綠燈的顯示走動起來。用戶此時就可以觀察,如果發(fā)現某個路口的車輛越來越多,則表明用戶輸入的初始數據不適合此路口的交通,需重新輸入,再進行觀察,直到界面上的車輛走動順暢,就表明此次用戶輸入的時間數據適合這個路口的交通。當用戶點擊查詢按鈕時,會彈出一個查詢界面,此時,用戶輸入所想要查詢的某一天或某幾天的日期,就可以搜索到這幾天所輸入的數據的紀錄,根據這些紀錄也可以找出一個適合這個交通路口的最佳的時間設置。最后點擊結束按鈕,就會停止模擬。3.3.3數據庫設計數據庫設計就是設計程序所需數據的類型、格式、長度和組織方式。因為數據庫應用系統(tǒng)主要是處理大量的數據,所以數據庫設計的優(yōu)劣,直接影響整個數據庫應用系統(tǒng)的性能和執(zhí)行速率。根據本系統(tǒng)的功能需求分析,本系統(tǒng)的數據庫包括四個表,東邊交通路口表(east_tbl),南邊交通路口表(south_tbl),西邊交通路口表(west_tbl),北邊交通路口表(north_tbl) 4系統(tǒng)具體設計4.1數據庫表設計1)東路口的表(east_tbl)該表只存放東邊交通路口所紀錄的數據信息,主鍵是id字段名類型字段寬度小數位數鍵值idint10PKdaydatetimer_redint10timer_greenint10timer_yellowInt10count_carInt10 表4-1east_tbl表建表語句:createtableeast_tbl(idnumber(10)primarykey,daydate,timer_rednumber(10),timer_greennumber(10),timer_yellownumber(10),count_carnumber(10))創(chuàng)建sequence:createsequenceeast_tbl_idincrementby1startwith1nocachenocycle;2)南路口的表(south_tbl)該表只存放南邊交通路口所紀錄的數據信息,主鍵是id字段名類型字段寬度小數位數索引idint10PKdaydatetimer_redint10timer_greenint10timer_yellowint10count_carInt10表4-2south_tbl表創(chuàng)建語句createtablesouth_tbl(idnumber(10)primarykey,daydate,timer_rednumber(10),timer_greennumber(10),timer_yellownumber(10),count_carnumber(10))創(chuàng)建sequence:createsequencesouth_tbl_idincrementby1startwith1nocachenocycle;3)西邊路口(west_tbl)該表只存放西邊交通路口所紀錄的數據信息,主鍵是id字段名類型字段寬度小數位數索引idint10PKdayinttimer_redint10timer_greenint10timer_yellowInt10count_carint10表4-3west_tbl表創(chuàng)建語句createtablewest_tbl(idnumber(10)primarykey,daydate,timer_rednumber(10),timer_greennumber(10),timer_yellownumber(10),count_carnumber(10))創(chuàng)建sequence:createsequencewest_tbl_idincrementby1startwith1nocachenocycle;4)北邊路口(north_tbl)該表只存放北邊交通路口所紀錄的數據信息,主鍵是id字段名類型字段寬度小數位數索引idint10PKdaydatetimer_redint10timer_greenint10timer_yellowInt10count_carInt10表4-4north_tbl表創(chuàng)建語句createtablenorth_tbl(idnumber(10)primarykey,daydate,timer_rednumber(10),timer_greennumber(10),timer_yellownumber(10),count_carnumber(10))創(chuàng)建sequence:createsequencenorth_tbl_idincrementby1startwith1nocachenocycle;5)E-R圖:由于這四張表是獨立的表,所以E-R圖如下: 圖4-5E-R圖4.2系統(tǒng)界面設計1.主窗口界面(模擬界面)實現過程:本頁面主要實現用戶可以直接從該窗口看出交通路口模擬的情況。 圖4-6程序運行主界面代碼如下:publicclassMainGUI{ staticJFramef; privateContainerc; privateJPanelp1,p2,p3,p5; privateBoxb;privateJButtonstartjb,endjb,selectjb;//開始,結束,查詢按鈕publicstaticJPanelp4;//設置主畫面 publicstaticTimertimer1,timer2,timer3;//三種燈的計時publicstaticJLabel[]jl=newJLabel[21]; publicstaticJTextField[]jt=newJTextField[11];//標記單行文本框,用于輸入初始數據publicstaticJButton[]jb=newJButton[12];//標記紅綠燈的按鈕publicstaticJButton[]jb1=newJButton[10];//標記北方向車輛的按鈕publicstaticJButton[]jb11=newJButton[30];//標記北方后來車輛的按鈕publicstaticJButton[]jb2=newJButton[10];//標記南方向車輛的按鈕publicstaticJButton[]jb22=newJButton[30];//標記南方后來車輛的按鈕publicstaticJButton[]jb3=newJButton[10];//標記東方向車輛的按鈕publicstaticJButton[]jb33=newJButton[30];//標記東方后來車輛的按鈕publicstaticJButton[]jb4=newJButton[10];//標記西方向車輛的按鈕publicstaticJButton[]jb44=newJButton[30];//標記西方后來車輛的按鈕//初始化所有的車輛 static{ //北方開始車輛 for(inti=0;i<jb1.length;i++){ jb1[i]=newJButton(); } //北方后來車輛 for(inti=0;i<jb11.length;i++){ jb11[i]=newJButton(); } //南方開始車輛 for(inti=0;i<jb2.length;i++){ jb2[i]=newJButton(); } //南方后來車輛 for(inti=0;i<jb22.length;i++){ jb22[i]=newJButton(); } //東方開始車輛 for(inti=0;i<jb3.length;i++){ jb3[i]=newJButton(i+""); } //東方后來車輛 for(inti=0;i<jb33.length;i++){ jb33[i]=newJButton(i+""); } //西方開始車輛 for(inti=0;i<jb4.length;i++){ jb4[i]=newJButton(i+""); } //西方后來車輛for(inti=0;i<jb44.length;i++){ jb44[i]=newJButton(i+""); } } //frame總窗口 publicMainGUI(){ f=newJFrame("電子交通模擬系統(tǒng)"); c=f.getContentPane(); c.setLayout(newBorderLayout(10,10));//p1窗口的左半邊 p1=westJPanel(); p1.setBackground(Color.gray); c.add(p1,BorderLayout.WEST);//p2窗口的右半邊 p2=mainJPanel(); c.add(p2); f.setSize(800,500); f.setVisible(true); f.setResizable(false); f.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 2.查詢窗口登陸界面 用戶通過輸入時間數據,從該窗口進入到查詢窗口界面。 圖4-7登陸界面代碼如下:publicclassSelectGUIextendsJDialog{ privatestaticfinallongserialVersionUID=-5191965365261772248L; privateJPaneljp; privateJLabel[]jl={newJLabel("請輸入您要查詢記錄的時間"),newJLabel("開始時間:"),newJLabel("結束時間:")}; privateJTextFieldjt1,jt2; privateJButtonjb; publicSelectGUI(finalJFramejf){ jp=newJPanel(); jp.setLayout(null); jl[0].setBounds(100,30,200,20); jp.add(jl[0]); jl[1].setBounds(60,80,80,20); jp.add(jl[1]); jt1=newJTextField(); jt1.setBounds(150,80,100,20); jp.add(jt1); jl[2].setBounds(60,130,80,20); jp.add(jl[2]); jt2=newJTextField(); jt2.setBounds(150,130,100,20); jp.add(jt2); jb=newJButton("確定"); jb.setBounds(170,200,60,20); jb.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ if(jt1.getText()==null||jt1.getText().equals("")){ JOptionPane.showMessageDialog(jf,"您沒有輸入開始時間,請重新輸入"); } if(jt2.getText()==null||jt2.getText().equals("")){ JOptionPane.showMessageDialog(jf,"您沒有輸入結束時間,請重新輸入"); }else{ newDatebaseGUI(jf,jt1.getText(),jt2.getText()); } } }); jp.add(jb); this.add(jp); this.setTitle("查詢歷史記錄"); this.setResizable(false); this.setBounds(100,100,400,300); this.setVisible(true); jf.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); } publicstaticvoidmain(String[]args){ JFramejf=newJFrame(); newSelectGUI(jf); }}3.查詢結果界面用戶通過單擊“確定”按鈕進入此界面。該界面顯示了所想要查詢的所有紀錄,它包含了紅綠燈的計時時間,和各個路口的車輛數。從而可以判斷出交通是否擁擠圖4-9查詢結果界面5運行與測試5.1軟件測試的目的和原則在開發(fā)大型軟件系統(tǒng)的過程中,需要面對錯綜復雜的問題,因此,在軟件生存周期的每個階段都不可避免地會產生錯誤。我們力求在每個階段結束之前通過嚴格的技術審查,盡可能早的發(fā)現并糾正錯誤。測試的目的就是在軟件投入生產性運行之前,盡可能多地發(fā)現軟件中的錯誤。目前軟件測試仍然是保證軟件質量的關鍵步驟,它是對軟件規(guī)格說明、設計和編碼的最后復審。盡管面向對象技術的基本思想保證了軟件應該有更高的質量,但無論采用什么樣的編程技術,編程人員的錯誤都是不可避免的,而且由于面向對象技術開發(fā)的軟件代碼重用率高,更需要嚴格測試,避免錯誤的繁衍。因此,軟件測試在面向對象編程里更具有它的重要性。與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟地繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由許多模塊組成。因此,圖5-1測試的基本層次大型軟件系統(tǒng)的測試的基本層次如圖5-1所示。1)單元測試單元測試的用例從單元詳細設計中導出。在單元測試中可以采用功能性測試和結構性測試兩種。2)集成測試在這個測試步驟中所發(fā)現的往往是概要設計的錯誤。3)系統(tǒng)測試在這個測試步驟中所發(fā)現的往往是需求規(guī)格說明的錯誤。一般來說,系統(tǒng)測試是功能性測試,不是結構性測試。5.2軟件的運行與安裝5.2.1J2EE應用程序的構建與部署在J2EE框架下,使用Eclipse開發(fā)出來的程序可以通過工具直接布署到服務器上進行測試運行,但是由于真正的運行服務器并沒有與開發(fā)環(huán)境同處于同一環(huán)境,所以需要手工進行布署。首先,將整個程序進行打包成一個.war包或.ear包,或直接將整個工程拷貝到webapps目錄下,服務器會自動進行解包,打包與部署過程如圖5-2所示。 圖5-2打包與部署過程5.2.2具體運行過程以及后期維護打開oracle數據庫,運行MainGUI.java類文件,就可以運行該系統(tǒng)。所謂軟件維護就是在軟件交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。我們可以通過描述軟件交付使用后可能進行的四項活動,具體定義軟件維護。1.改正性維護因為軟件測試不可能暴露出一個大型軟件系統(tǒng)的所有潛在錯誤,所以必然會有第一項維護活動:在任何軟件的使用期間,用戶必然發(fā)現程序,并且把他們遇到的問題報告給維護人員。我們把診斷和改正錯誤的過程稱為改正性維護。2.適應性維護計算機科學技術的各個方面都在迅速進步,大約每36個月就有新一代的硬件出現,因此,適應性維護,也就是為了和變化的環(huán)境適當的配合而進行的修改軟件的活動,是既必要又經常的維護活動。3.完善性維護當一個軟件系統(tǒng)順利的進行時,在使用軟件的過程中用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性修改意見。為了滿足這類要求,需要進行完善性維護。這項維護活動通常占軟件維護的大部分工作。4.預防性維護為了改進未來可維護性或可靠性,或為了

溫馨提示

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

評論

0/150

提交評論