基于JAVA實現的個人理財系統_第1頁
基于JAVA實現的個人理財系統_第2頁
基于JAVA實現的個人理財系統_第3頁
基于JAVA實現的個人理財系統_第4頁
基于JAVA實現的個人理財系統_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

基于JAVA實現的個人理財系統目錄TOC\o"1-2"\h\z\u摘要 2Abstract 3引言 3\h41緒論 51.1前期調研 51.2計算機技術綜述 51.3開發背景與主要內容 72系統技術開發 82.1可行性分析 82.2面對對象的程序設計介紹 92.3SQL語言介紹 102.4JDBC數據訪問技術 112.5數據庫系統概述 PAGEREF_Toc224214273\h122.6系統開發理論介紹 132.7開發環境 143系統設計 163.1系統結構設計 163.2數據庫設計 174系統實現 194.1界面設計 194.2主要代碼的編寫 205系統測試和優化 245.1測試目的 PAGEREF_Toc224214283\h245.2測試方法 245.3測試步驟 246討論 26HYPERLINK\l"_Toc224214288"6.1源代碼的控制 266.2變量命名的約定 276.3JAVA對字符串操作總結 276.4對錯誤的處理 30結論 32致謝 34參考文獻 PAGEREF_Toc224214294\h34摘要理財系統是一個企業不可缺少的部分,企業很早就實施了理財的集中管理,而家庭或大學生使用的小型理財系統卻只是鳳毛麟角。然而,理財系統不僅僅對企業,而且對學生個人都有十分重要的意義。論文系統地分析了軟件開發的背景及過程,首先介紹了軟件的開發環境,其次介紹了本軟件的詳細設計過程:數據庫的設計以及具體界面的設計和功能,最后對在本軟件開發過程中的問題進行了總結。利用面向對象的編程方法(OOP)和ADO數據庫訪問技術,其開發主要包括后臺數據庫的建立、維護以及前端應用程序開發,通過JAVA和數據庫相結合,實現了大學生理財的自動化和信息化。系統主要包括以下幾個模塊:用戶密碼登陸,原始數據的匯入、修改、刪除等,從而實現對大學生個人的收入與支出進行有效、系統的管理,并使之更全面和靈活。通過論文,可以了解到“有‘理’真好——大學生理財軟件”的規劃、設計過程,掌握系統的功能。關鍵詞:大學生;理財;數據庫;面向對象的編程方法AbstractThesystemoffinancingisveryimportanttobusinessenterprise,anditisanindispensabilitypart.Thebusinessenterpriseispreviouslyandalreadyfocalizationintheexecutionfinancialmanagement.However,thefinancingsystemisnotonlytobusinessenterprise,andtostudentsorfamiliesallcontainveryimportantmeaning.Thisthesissystematicallyanalyzesthebackgroundandprocessofsoftware’sexploitation.Firstlyittellsustheexploitativeenvironmentofsoftware.Secondlyitshowstheprocessofdesigningthesoftwareindetail,suchasthedesignofdatabaseandtheachievement,aswellasthedesignandfunctionsoftheconcreteinterface.Finallyitconcludestheproblemsthatoccurintheexploitativeprocessofthissoftware.Adoptingthewayofobjectorientedprogram(OOP)andADOdatabaseinterviewtechnique,whoseexploitationmainlyincludestheestablishmentandmaintenanceofbackgrounddatabaseandtheprocessofforepartapplication,usingthewayJAVAthatachieveautomatizationandinformationtechnologyofthesystemoffinancinginstudents.Thesystemmainlyconsistsofthefollowingmodules:Customerpassworddebarkation,Investigatingdatabaseandtheconfluenceofinitialdataandsoon,whichmaketheavailabilityofthecashinstudentsintoearningandpayout,Investigationandmanagementofthesystemmoreperfectandflexible.Accordingtoreadthethesis,youcanrealizetheprogram“TheStudents’FinancingSystem“theapproachofdesignandcontrolthefunctionofsystem.KeyWords:UniversityStudents;Financing;DATABASE;ObjectOrientedProgram引言美國著名經濟學家詹姆斯菲爾德對于美國大學生理財規劃,提出了專門的“1+1+1”模式:學會貸款——用明天的錢圓今天的夢,學會兼職——讓“增值”為以后的超前消費埋下伏筆,學會投資——為今后的個人理財“投石問路”。現在很多大學生對自己的消費不以為然,有錢的時候就大手大腳,等到沒有錢的時候就和家里伸手,所以使得很多大學生養成了不好的習慣,就此我們小組對于這一項目展開調查和研究了這個軟件,有助于我們在平時的消費中養成良好的消費習慣。在我們的調查中發現很多大學生的花銷主要集中在通訊,娛樂等方面。另外參考了李永華等對武漢高校大學生消費情況的調查表明,大學生在經濟消費水平上存在著巨大差距,其中年消費最高的達到18500元,而年消費最低的只有2100元。武漢市大學生每年消費均值略高于8300元,其中包括學費均值3000元左右,住宿非均值500元左右。大學生的月食品支出在230元左右,它與生活費月支出(480元)比率是47.9%,這可視為大學生的“恩格爾系數”,與1999年武漢市人均消費支出和食物支出相比,呈現出整體上消費水平比較高的趨勢。據百度網站查詢的資料表明,暫時沒有一個成熟、具指導性、針對大學生的理財軟件。大學生是擁有一定的消費能力,除了家庭資金供給外,一部分大學生還有兼職收入、獎學金收入和投資收入,而且重要的一點是大學生將是未來4-5年后社會的主體消費及創造社會財富的群體,本軟件是根據大學生消費理念設計的,據我們調查所做的調查,有將近70%的大學生會考慮使用理財軟件,因此,在理財軟件方面是具有一定的潛力市場。我們小組采用java來實現軟件的開發,主要利用面向對象的編程(OOP)的方法來完成程序的開發。1緒論近年來,計算機技術飛速發展幾乎超出了人們的想象,硬件的更新換代速度更是以級數進行。計算機在處理對象、處理方法上都發生了很大的變化。作為計算機科學的重要分支——數據庫技術,也被越來越多的應用領域采用來存儲和處理他們的信息資源。計算機已經不再僅僅是科學研究的工具,它越來越多地影響到了我們生活的諸多方面,更多的應用軟件出現在了我們的身邊,給人們生活的方方面面都帶來了極大的便利。近年來隨著國內外社會經濟和科學技術的不斷改革和發展,2004中國大學生消費與生活形態研究報告指出:“當代大學生不僅消費能力在提高,而且在消費結構方面呈現多元化的趨勢。”各種各樣的開銷與收入也越來越多,很多大學生對于日常賬目的管理感到越來越力不從心,收支管理已刻不容緩。大學生們需要一款適合他們使用的理財軟件。1.1前期調研為了解大學生對于理財管理系統是否有需求,我們針對大學生理財方面提出了17條問題。我們采用的是通過QQ和E-mail進行隨機電子問卷調查方式,發出問卷50份,收回的有效問卷是36份。調研范圍為:全國各大高校在校大學生,地區主要集中在沈陽、大連,也包括廣州、佛山、上海、鄭州、長沙、濟南、香港等城市。調查表明,有83.33%的大學生每月沒有盈余,甚至是超支。對于問卷第16題“若有一款大學生理財軟件,你是否會考慮使用呢?”,回答“會”的人共有25人。說明有69.44%的人會使用適合他們使用的理財軟件。通過前期調研,不難發現大學生們急需一個成熟、具指導性、針對大學生的理財軟件進行合理的理財分析。1.2計算機技術綜述在計算機硬件和軟件技術不斷創新和進步的背景下,計算機技術在20世紀有許多重大突破,它涉及到人們生活的方方面面,主要可以歸結為以下四個方面:第一,處理對象的變化。在計算機應用初期,計算機的處理主要是數值和簡單的符號。隨著計算機速度和存儲容量的增大,今天的計算機已經能夠處理聲、圖、文和語言等多種信息,除二維、靜止圖像外,還可以處理三維運動的圖像等等。也就是說,人類使用的任何信息形式現在計算機都可以處理了。這不僅使計算機的用途大大地擴展,而且使今天的用戶能夠從計算機的屏幕上看到圖文并茂,有聲有色的畫面。從而使計算機從專業人員圈子中走出來,走向普通用戶,走向平民百姓。第二,處理方法或建模方法的進步。傳統計算機的應用只限制在數學模型為基礎的數值計算上。不管是科學計算,數據處理還是計算機自動化,這些都離不開數值計算,因此讓計算機做任何事情之前,首先需要建立數學模型:算數的、代數的、微積分的、等等,沒有數學模型計算機無從進行計算,這些使所有傳統算法的基礎,到了20世紀中葉,由于人工智能的出現以及它所取得的成就,計算機應用開始突破這一限制——計算機能夠進行符號計算,記憶邏輯和知識為基礎的符號推理。這些突破極大地擴展了計算機的應用范圍,使那些無法用數學表達的問題,只要人們有足夠的經驗知識,計算機就可能根據這些知識進行模擬,達到問題求解的目的,實現所謂人工智能,人們希望那些目前大家了解還不深,或者還不清楚的問題,計算機也能幫助解決,軟計算就是這個背景下提出的。二十世紀的七八十年代,提出的模糊計算,神經網絡計算以及進化計算等,都是希望計算機能夠進一步處理模糊概念、模糊推理等類問題,是計算機在先前經驗只是較弱的情況下,也能幫助人們處理疑難問題、軟計算或計算智能給人們帶來希望,因此成為近來研究的熱點。第三,處理方式的變化。在處理方式上人們也經歷了三個階段。在早期的主機時代,人們采用的是集中交互處理的模式。這兩種方式都是以各人單獨工作為中心的,現在我們進入了計算機網絡時代,人們的工作方式發生了很大轉變,走向分布協同工作的時代。總之,以上這些變化會影響到21世紀計算機應用技術的發展和變化。第四,硬件技術的提高。伴隨著時代的發展,由最初的電子管計算機發展到即將到來的量子計算機,計算速度也發展到了最初計算機的數萬倍以上。在外型上,從桌上型、筆記型(Notebook)到掌上型計算機(Palm),不管是功能上的提升或可攜帶性的特色,都顯示出未來計算機將以輕薄短小,容易攜帶為主。隨著計算機進一步的小型化,人工智能將越來越強地集成到我們的環境中。便攜設備將像裝飾品一樣穿在衣服里。個人計算機也不斷向著普及的方向發展,各種計算機外設的品質不斷提高、豐富,極大地方便了人們的工作和生活。數據庫技術的發展已經經歷了很長的一段時間,從層次型數據庫,網狀數據庫直到今天的關系型數據庫以及面向對象的數據庫。目前流行的數據庫管理系統(DBMS)有多種,其中大型數據庫管理系統有Oracle,SQLServer等,小型數據庫管理系統有FoxPro,Access等,它們已能滿足人們對數據庫應用的基本要求。今天,網絡技術的發展對數據庫技術提出了新的要求。人們希望能訪問存儲在不同網格,不同節點上的數據而不需要了解數據存儲的細節,并且能夠在系統局部故障的情況下保證數據無損。這就形成了人們對分布式數據庫管理系統的部分要求——數據的位置透明性和安全性。本理財系統采用的開發平臺是Microsoft?WindowsXP。與其它操作系統相比,WindowsXP更穩定,有較好的網絡功能。數據庫設計與維護采用的是Mysql,軟件的數據庫訪問及軟件開發工具采用的是Eclipse,它面向對象的編程方式(OOP)使程序設計過程大大簡化,對數據庫的訪問更靈活。相對于其他開發環境,Eclipse使開發人員的工作更快、成本更低、周期更短、質量更高、功能更強。Eclipse為應用開發環境提供了全面綜合性的支持:事件驅動的應用程序;功能強大的編程語言和函數;面向對象的編程;開放的數據庫連接系統。1.3開發背景與主要內容結合大學生理財現狀,大學生缺乏理財觀念開發這個應用系統的目標是為了代替人工進行許多繁雜的勞動,節省許多資源,提高大學生理財的工作效率。它主要實現的功能如下:功能一:驗證用戶和密碼的正確性再登入,以及修改密碼和退出系統;功能二:保存每次輸入的收支記錄,并提供查詢;功能三:對大學生收入/支出進行管理,實現費用的增加,修改,刪除;功能四:整個收支記錄按需求進行分類查詢。2系統技術開發2.1可行性分析可行性研究的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。2.1.1經濟可行性計算機的價格已經十分低廉,性能也有了長足的進步。而本系統的開發,為大學生理財的工作效率帶來了一個質的飛躍,為此主要表現有以下幾個方面:第一,本系統的運行可以代替人工進行許多繁雜的勞動;第二,本系統的運行可以節省許多資源;第三,本系統的運行可以大大的提高大學生理財的工作效率;等等。所以,本系統在經濟上是可行的。2.1.2技術可行性和運行可行性本理財系統采用的開發平臺是Microsoft?WindowsXP。與其它操作系統相比,WindowsXP更穩定,有較好的網絡功能。使用Eclipse作為系統開發的開發環境,它面向對象的編程方式(OOP)使程序設計過程大大簡化,對數據庫的訪問更靈活。提供完善的指令控制語句、類與對象的支持及豐富的數據類型,全面綜合性的支持:事件驅動的應用程序;功能強大的編程語言和函數;面向對象的編程;開放的數據庫連接系統。給開發高性能系統提供了保障,為開發滿足客戶要求的系統保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對新系統的擴展與修改。相對于其他開發環境,Java使開發人員的工作更快、成本更低、周期更短、質量更高、功能更強。綜上所述,本系統的設計與開發在技術上和硬件設備上的條件都是滿足的,因此,它在技術上是可行的。本系統為一個小型的理財系統,所耗費的資源非常的小,學校的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統在運行上是可行的。2.2面對對象的程序設計介紹傳統的結構化程序設計(StructuredProgramming)是一種強調功能抽象化和模塊化的編程方法,它把解決問題的過程看作是一個處理單位。這就是說結構化程序設計中,模塊是對功能的抽象,而每一個模塊都是一個處理單位,并有輸入和輸出。而面向對象的程序設計(ObjectOrientedProgramming,OOP)是一種以對象為基礎,以事件來驅動對象執行的程序設計技術。OOP把計算過程看作為對象的分類過程加上其狀態變化的過程,也就是將一個應用程序逐步劃分成相互關聯的多個對象,并且建立起與這些對象相互關聯的事件過程,通過對象對所發生的事件產生響應,并執行相應的事件過程以引發對象狀態的改變,從而最終達到完成計算的目的。與結構化程序設計不同,面向對象的程序設計綜合了功能的抽象和數據的抽象,它把解決問題的過程看作是一個對象分類演繹的過程。在OOP中,對象(Object)是一個包括數據和方法(操作)的并被封裝起來的整體,它是對數據和功能的抽象和統一,而對象就包含了模塊的概念。面向對象設計是一種全新的程序設計方法,它從根本上改變了傳統的程序設計模式。其基本思想是:通過建立與具體實際應用相對應的對象,并通過這些對象的組合來創建具體的應用程序。這種設計方法給程序設計帶來了許多良好特性,一般說來有以下幾點:(1)模塊性:對象是一個功能和數據獨立的單元,它們之間只能通過對象認可的方式來進行通信,并可以較為自由地為其他對象所調用。(2)封裝性:這一特性為信息的隱藏提供了具體的實現手段,用戶不必清楚對象內部的細節,只需了解其功能即可。(3)繼承性:這一特性為代碼的共享提供了一種非常有效的方法,從而可以避免重復的代碼設計,實現對象的可重用性。這一特性也是面向對象程序設計技術最本質的特征。(4)可靠性:對象實現了抽象和封裝,從而使得其中出現的錯誤限制在對象的內部,因而不會向外部傳播,同時也易于檢查和維護。(5)可擴充性:面向對象系統可以通過繼承機制不斷擴充其對象的功能,而不會影響原系統的運行。(6)連續性:雖然面向對象的程序設計語言在編程模式上相差很大,但它并沒有摒棄傳統的做法,它不僅采用了傳統程序設計語言的語言元素,而且利用它們來模擬建立對象,從而使得一個熟悉傳統程序設計語言的編程者能夠很快掌握面向對象設計的規律。2.3SQL語言介紹SQL(StructuredQueryLanguage,結構化查詢語言)是由Boyce和Chamberlin在1974年提出的,由于它功能豐富,使用靈活、語言簡潔易學等特點,在計算機工業界和計算機用戶中倍受歡迎,快得到應用和推廣。許多關系數據庫系統DB2、Oracle、SQLServer2000、Sybase等都實現了SQL語言。1986年10月,美國國家標準局(ANSI)的數據庫委員會批準了SQL作為關系數據庫語言的美國標準。1987年6月,國際標準化組織(ISO)將其采納為國際標準,也稱為“SQL86”SQL數據庫的體系結構基本上了三級模式結構。如圖2.1。圖2.1SQL數據庫的體系結構SQL數據庫的體系結構具有如下特點:(1)一個數據庫(Database)是表和約束的集合;(2)一個表(Table)由行(Row)構成,每行是列(Column)的集合;(3)一張表既可以是基本表,也可以是一個視圖;(4)一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表,一個表可以帶若干索引,索引文件也存放在存儲文件中;(5)SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在各種宿主語言中,宿主語言有VB、VC、VC#、VB.Net、Delphi、PowerBuildings等高級語言;SQL語言也能作為獨立用戶接口,供交互環境下的終端用戶使用。2.4JDBC數據訪問技術JDBC(JavaDataBaseConnectivity,java數據庫連接)是一種用于執行SQL語句的JavaAPI,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純JavaAPI編寫數據庫應用程序,同時,JDBC也是個商標名。有了JDBC,向各種關系數據發送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數據庫專門寫一個程序,為訪問Oracle數據庫又專門寫一個程序,或為訪問Informix數據庫又編寫另一個程序等等,程序員只需用JDBCAPI寫一個程序就夠了,它可向相應數據庫發送SQL調用。同時,將Java語言和JDBC結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優勢。Java數據庫連接體系結構是用于Java應用程序連接數據庫的標準方法。JDBC對Java程序員而言是API,對實現與數據庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發提供標準的接口,并為數據庫廠商及第三方中間件廠商實現與數據庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數據庫連接標準,如ODBC之間的橋接。JDBC實現了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現的接口。Java具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是Java應用程序與各種不同數據庫之間進行對話的方法。而JDBC正是作為此種用途的機制。JDBC擴展了Java的功能。例如,用Java和JDBCAPI可以發布含有applet的網頁,而該applet使用的信息可能來自遠程數據庫企業也可以用JDBC通過Intranet將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統)。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數據庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結合,因為它使信息傳播變得容易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統上。新程序的開發期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務,Java和JDBC可為外部客戶提供獲取信息更新的更好方法。2.5數據庫系統概述(1)數據(Data)數據是數據庫中存儲的對象。數據在大多數人頭腦中的第一反映就是數字。其實數字只是最簡單的一種數據,是數據的一種傳統和狹義的理解。廣義的理解,數據的種類很多,文字,圖形,圖像,聲音等都是數據,可以對數據做以下定義:描述事物的符號記錄稱為數據。(2)數據庫(Database)數據庫,顧名思義,是存放數據的倉庫。只不過這個倉庫是在計算機存儲設備上,而且數據是按一定的格式存放的。數據庫是指長期存在計算機內的,有組織的,可共享的數據集合。數據庫中的數據按一定的數據模型組織,描述和存儲,具有較高的數據獨立性和易擴展性,并可以為各種用戶共享。(3)數據庫管理系統(DatabaseManagementSystem,簡稱DBMS)數據庫管理系統是位于用戶和操作系統之間的一層數據管理軟件。它主要有以下幾個方面的功能:①數據定義功能DBMS提供數據定義語言,用戶通過它可以方便的對數據庫中的數據對象進行定義。②數據操縱功能DBMS還提供數據操縱語言,用戶可以使用這語言操縱數據實現對數據庫的基本操作。如查詢,插入,刪除和修改等。③數據庫的運行管理數據庫在建立,運行和維護時由數據庫管理系統統一管理,統一控制,以保證數據的安全性,完整性,多用戶對數據的并發使用乃發生故障后的系統恢復。④數據庫的建立和維護功能它包括數據庫初始的輸入,轉換功能,數據庫的轉存,恢復功能,數據庫的重組織功能和性能監視。這些功能通常是由一些實用的程序完成的。2.6eclipse開發工具Eclipse是一個開放源代碼的、與NetBeans、SunONEStudio和BorlandJbuilder類似的一種基于Java的整合型可擴展開發平臺,也是目前最著名的開源項目之一,IBM在最近幾年里也一直在大力支持該項目的發展,目標是將其做成用以替代IBMVisualAgeforJava(簡稱IVJ)的下一代IDE開發環境,并于2001年11月宣布投入4千萬美元資金到該項目的研發。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發工具(JavaDevelopmentTools,JDT)。其未來的目標不僅僅是成為專門開發Java程序的IDE環境,根據Eclipse的體系結構,通過開發插件,它能擴展到任何語言的開發,甚至能成為圖片繪制的工具。目前,Eclipse已經開始提供C語言開發的功能插件。更難能可貴的是,Eclipse是一個開放源代碼的項目,任何人都可以下載Eclipse的源代碼,并且在此基礎上開發自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的COBOL,Perl,Python等語言的開發插件出現。同時可以通過開發新的插件擴展現有插件的功能,比如本系列文章為了進行手機應用程序的開發就是通過J2ME插件的擴展來加以實現的。可以無限擴展,而且有著統一的外觀,操作和系統資源管理,這也正是Eclipse的潛力所在。Eclipse的主要組成Eclipse是一個開放源代碼的軟件開發項目,專注于為高度集成的工具開發提供一個全功能的、具有商業品質的工業平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個部分組成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java開發、CDT支持C開發、PDE用來支持插件開發,EclipsePlatform則是一個開放的可擴展IDE,提供了一個通用的開發平臺。它提供建造塊和構造并運行集成軟件開發工具的基礎。EclipsePlatform允許工具建造者獨立開發與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結束,而另一個工具功能在哪里開始。EclipseSDK(軟件開發者包)是EclipsePlatform、JDT和PDE所生產的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發環境,允許開發者有效地建造可以無縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產的軟件以CPL發布,第三方組件有各自自身的許可協議。2.7系統開發理論介紹2.7.1系統規劃階段系統規劃階段的任務是對各大學生理財的環境、目標及現行系統的狀況進行初步調查,根據大學生理財目標和發展戰略,確定信息系統的發展戰略,對建設新系統的需求做出分析和預測,同時考慮建設新系統所受的各種約束,研究建設新系統的必要性和可能性。根據需要與可能,給出擬建系統的備選方案。對這些方案進行可行性分析,寫出可行性分析報告。可行性分析報告審議通過后,將新系統建設方案及實施計劃編寫成系統設計任務書。2.7.2系統分析階段系統分析階段的任務是根據系統設計任務書所確定的范圍,對現行系統進行詳細調查,描述現行系統的業務流程,指出現行系統的局限性和不足之處,確定新系統的基本目標和邏輯功能要求,即提出新系統的邏輯模型。這個階段又稱為邏輯設計階段,他是整個系統建設的關鍵階段,也是信息系統建設與一般工程項目的重要區別所在。該階段的工作成果體現在系統說明書中,這是系統建設的必備文件。它既是給用戶看的,也是下一階段的工作依據。因此,系統說明書既要通俗,又要準確。用戶通過說明書可以了解未來系統的功能,判斷是不是其所要求的系統。系統說明書一旦討論通過,就是系統設計的依據,也是將來驗收系統的依據。2.7.3系統設計階段簡單地講,系統分析階段的任務是回答系統“做什么”的問題,而系統設計階段要回答的問題是“怎么做”。該階段的任務是根據系統說明書中規定的功能要求,考慮實際條件,具體設計實現邏輯模型的技術方案,也即設計新系統的物理模型。這個階段又稱為物理設計階段,可分為總體設計和詳細設計兩個階段。這個階段的技術文檔是“系統設計說明書”。2.7.4系統實施階段系統實施階段是將設計的系統付諸實施的階段。這一階段的任務包括計算機等設備的購置、安裝和調試,程序的編寫和調試,人員培訓,數據文件轉換,系統調試與轉換等。這個階段的特點是幾個互相聯系、互相制約的任務同時展開,必須精心安排、合理組織。系統實施是按實施計劃分階段完成的,每個階段應寫出實施進度報告。系統測試之后寫出系統測試分析報告。2.7.5系統運行和維護階段系統投入運行后,需要經常進行維護和評價,記錄系統運行的情況,根據一定的規格對系統進行必要的修改,評價系統的工作質量和經濟效益。2.8開發環境①硬件環境CPU:賽揚2.4GHz,內存:1GB,硬盤:120GB②操作系統Microsoft?WindowsXPProfessionalServicePack2③軟件環境開發工具:Eclipse3系統設計3.1系統需求分析1、性能需求為了保證系統能夠長期、安全、穩定、可靠、高效的運行,系統應該滿足以下的性能需求:(1)系統處理的準確性和及時性系統處理的準確性和及時性是系統的必要性能。在系統設計和開發過程中,要充分考慮系統當前和將來可能承受的工作量,使系統的處理能力和響應時間能夠滿足用戶對信息的處理。由于系統的查詢功能對于整個系統的功能和性能完成很重要。從系統的多個數據來源來看,學生信息查詢、實驗信息查詢、預約結果查詢、實驗成績查詢及預約實驗、撤消預約,其準確性很大程度上決定了系統的成敗。因此,在系統開發過程中,系統采用優化的SQL語句及安全擴展存儲過程來保證系統的準確性和及時性。(2)系統的開放性和系統的可擴充性系統在開發過程中,應該充分考慮以后的可擴充性。例如實驗信息屬性添加、修改,用戶查詢的需求及管理工作的分級管理,信息輸出打印報表等模塊也會不斷的更新和完善。所有這些,都要求系統提供足夠的手段進行功能的調整和擴充。而要實現這一點,應通過系統的開放性來完成,既系統應是一個開放系統,只要符合一定的規范,可以簡單的加入和減少系統的模塊,配置系統的硬件。通過軟件的修補、替換完成系統的升級和更新換代。(3)系統的易用性和易維護性系統是直接面對使用人員的,而有些使用人員往往對計算機并不是非常熟悉。這就要求系統能夠提供良好的用戶接口,易用的人機交互界面。要實現這一點,就要求系統應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現的使用問題,要提供足夠的在線幫助,縮短用戶對系統熟悉的過程。系統中涉及到的數據是高校實驗室相當重要的信息,因此系統為不同角色的用戶提供了方便的管理后臺進行數據管理,特別為系統管理員提供了數據備份,日常安全管理,防止系統意外崩潰等功能。(4)系統的響應速度系統設計中摒棄大量數據冗余,提出了優化數據庫的解決方案,大量使用存儲過程,大大提高系統響應時間和速度。系統在日常處理中的響應速度為秒級,達到實時要求,以及時反饋信息。嚴格保證操作人員不會因為速度問題而影響工作效率。系統的數據需求包括如下幾點:(1)數據錄入和處理的準確性和實時性數據的輸入是否準確是數據處理的前提,錯誤的輸入會導致系統輸出的不正確和不可用,從而使系統的工作失去意義。因此,本系統設計時對數據輸入進行了合法性較驗,確保數據的準確性。在系統中,數據的輸入及處理往往是大量的,因此系統擁有批處理能力,以保證迅速的處理數據。(2)數據的一致性與完整性由于系統的數據是共享和關聯的,所以如何保證這些數據的一致性,是系統必須解決的問題。為解決這一問題,系統創建了表間關系,并定義了觸發器、完整性約束,嚴格約束數據的更新與刪除,減少數據冗余,增強數據一致性及完整性。(3)數據的共享與獨立性整個系統的數據是共享的。然而,從系統開發的角度上看,共享會給設計和調試帶來困難。因此,應該提供靈活的配置,使各個分系統能夠獨立運行,而通過人工干預的手段進行系統數據的交換。這樣,也能提供系統的健壯性3.2系統結構設計為了真正達到我們方便顧客,做到簡潔方便易于使用,我們把我們的軟件界面設計為三大功能區:主功能區、副功能區和操作區。圖3.1理財系統結構功能設計圖3.2用戶驗證與操作流向設計圖3.3理財系統工作原理設計3.3數據庫設計數據庫是系統信息的有效中心,一個優秀的數據庫設計應考慮到系統工程的功能,系統的執行速度,以及是否可能引起系統工作的異常等。數據庫的設計合理與否不僅直接影響到程序設計的質量,而且影響到系統的實現。3.3.1數據庫結構設計(1)用戶表:說明本系統的用戶和密碼的存儲情況,有主鍵,自動增加,用戶不能為空;表3.1用戶名表字段名稱數據類型主鍵是否為空UName文本否否PWord文本否是ID自動增加是否Active整型否是(2)收入表:說明本系統收入信息存儲數據的格式,其中把收入編號設為本記錄的主鍵,日期要為日期數據類型,這些基本的信息都不能為空,除了備注以外;表3.2收入信息表字段名稱數據類型主鍵是否為空收入編號文本是否用戶名稱文本否否收入類型文本否否日期日期/時間否否金額數字否否備注備注否是(3)支出表:說明本系統支出信息存儲數據的格式,其中把支出編號設為本記錄的主鍵,日期要為日期數據類型,這些基本的信息都不能為空,除了備注以外;表3.3收入信息表字段名稱數據類型主鍵是否為空支出編號文本是否用戶名稱文本否否支出類型1文本否否支出類型2文本否否日期日期/時間否否金額數字否否備注備注否是(4)收入類型表:說明本系統收入類型,作為收入表的“收入類型”字段的外碼參照。表3.4收入類型表字段名稱數據類型主鍵是否為空收入類型文本否否(5)支出類型表:說明本系統支出類型,作為支出表的“支出類型”字段的外碼參照。表3.5支出類型表字段名稱數據類型主鍵是否為空說明支出類型1文本否否支出大類支出類型2文本否否支出分類4系統實現4.1界面設計(1)在進入系統之后,必須要有符合本系統的用戶以及每個用戶對應的密碼。如果沒輸入用戶名,點擊確定將會提示請輸入用戶名。如果用戶名錯誤和用戶的密碼不符合也將會有錯誤提示。具體界面如圖4.1所示。4.1系統登陸界面(2)用戶和密碼正確后,統的主界面將會顯示當前用戶的賬戶信息。在這個界面里將實現本系統所有的功能,用戶一看便會使用,如圖4.2所示。4.2主要代碼的編寫4.2.1數據庫模塊代碼實現publicclassMyDBConnection{privateConnectionmyConnection;publicMyDBConnection(){}publicerrorTypeinit(){try{Class.forName("com.mysql.jdbc.Driver");myConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/iwallet?characterEncoding=utf8","root","123456");returnerrorType.SUCCESS;}catch(Exceptione){System.out.println("Failedtogetconnection");e.printStackTrace();returnerrorType.DATABASE_ERROR;}}publicConnectiongetMyConnection(){returnmyConnection;}publicvoidclose(ResultSetrs){if(rs!=null){try{rs.close();}catch(Exceptione){}}}publicvoidclose(java.sql.Statementstmt){if(stmt!=null){try{stmt.close();}catch(Exceptione){}}}publicvoiddestroy(){if(myConnection!=null){try{myConnection.close();}catch(Exceptione){}}}}4.2.2packagecontroller;importjava.sql.*;importgui.*;importcontroller.IConstant.errorType;importdatabase.DataQuery;publicclassLoginController{publicLoginController(){}publicerrorTypelogin(Stringname,Stringpassword){ResultSetrs;DataQuerydq=newDataQuery();rs=dq.getUserByName(name);errorTyper=verify(rs,password);if(r==errorType.SUCCESS){Stringoldname=IWalletApp.getApplication().getUser().getName();if(oldname!=null){r=dq.setUserActive(oldname,false);if(r!=errorType.SUCCESS)returnr;}r=dq.setUserActive(name,true);if(r!=errorType.SUCCESS)returnr;IWalletApp.getApplication().getUser().alterUser(name);returnerrorType.SUCCESS;}elsereturnr;}privateerrorTypeverify(ResultSetrs,Stringpassword){try{if(!rs.next())returnerrorType.NAME_NOT_EXIST_ERROR;//nameerrorif(rs.getInt("Password")==password.hashCode()){if(!rs.getBoolean("Active"))returnerrorType.SUCCESS;elsereturnerrorType.ALREADY_LOGIN_ERROR;//yonghuyidenglu}else{returnerrorType.PASSWORD_WRONG_ERROR;//passwordwroong}}catch(SQLExceptionex){//sqlerrorreturnerrorType.SQL_ERROR;}}}4.2.3/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagecontroller;importjava.sql.*;importgui.*;importcontroller.IConstant.errorType;importdatabase.DataQuery;importmodel.User;/****@authors*/classRegisterController{publicRegisterController(){}publicerrorTyperegister(Stringname,Stringpassword){ResultSetrs;errorTyper;try{DataQuerydq=newDataQuery();rs=dq.getUserByName(name);if(rs.next()==false){Stringoldname=IWalletApp.getApplication().getUser().getName();if(oldname!=null){r=dq.setUserActive(oldname,false);if(r!=errorType.SUCCESS)returnr;}r=dq.insertUser(name,password);if(r!=errorType.SUCCESS)returnr;IWalletApp.getApplication().getUser().alterUser(name);returnerrorType.SUCCESS;}else{returnerrorType.DUPLICATED_NAME_ERROR;}}catch(SQLExceptione){System.out.println(e);e.printStackTrace();}returnerrorType.SQL_ERROR;}}4.2.4/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagecontroller;importcontroller.IConstant.errorType;importdatabase.DataQuery;importgui.IWalletApp;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.Calendar;importjava.util.Date;importjava.util.Vector;importjava.util.logging.Level;importjava.util.logging.Logger;/****@authors*/classGetChartItemController{publicGetChartItemController(){}errorTypegetChartItem(DatesDate,DateeDate,intaccountID,intchartType){if(sDate.after(eDate)){returnerrorType.WRONG_DATE_SECTION_ERROR;}CalendarsCal=Calendar.getInstance();sCal.setTime(sDate);CalendareCal=Calendar.getInstance();eCal.setTime(eDate);ResultSetrs;DataQuerydq=newDataQuery();if(chartType==0){intyear=sCal.get(Calendar.YEAR);intmonth=sCal.get(Calendar.MONTH)+1;Vector<Double>MonthIncome=newVector<Double>();Vector<Double>MonthOutgo=newVector<Double>();do{try{rs=dq.getSumByIDMonth(year,month,accountID);doubleincome=0,outgo=0;if(rs.next())income=rs.getDouble("total");if(rs.next())outgo=-rs.getDouble("total");if(income>0){MonthIncome.add(income);MonthOutgo.add(outgo);}else{MonthIncome.add(0.0);MonthOutgo.add(-income);}}catch(SQLExceptionex){Logger.getLogger(GetChartItemController.class.getName()).log(Level.SEVERE,null,ex);returnerrorType.SQL_ERROR;}month++;if(month==13){year++;month=1;}}while(year<eCal.get(Calendar.YEAR)||(year==eCal.get(Calendar.YEAR)&&month<=eCal.get(Calendar.MONTH)+1));IWalletApp.get

溫馨提示

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

評論

0/150

提交評論