




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
大學生理財信息管理系統(tǒng)摘要當今社會己進入信息社會時代。信息己經(jīng)受到社會的廣泛關(guān)注,被看作社會和科學技術(shù)發(fā)展的三大支柱(材料、能源、信息)。信息是管理的基礎(chǔ),是進行決策的基本依據(jù)。在一個組織里,信息己作為人力、物力、財力之外的第四種能源,占有重要的地位。然而,信息是一種非物質(zhì)的,有別于基本資源的新形式的資源。信息也是管理的對象,必須進行管理和控制。本文主要介紹了大學生理財系統(tǒng)的設(shè)計,本系統(tǒng)主要采用JSP為編程語言,數(shù)據(jù)庫采用SQLSERVER2000。可以方便大學生理財管理需要。主要包括收入統(tǒng)計功能、查詢功能、理財功能。本系統(tǒng)易于操作,使用方便,具有很高的可靠性。關(guān)鍵字:大學生理財系統(tǒng);系統(tǒng)設(shè)計;JSPTheuniversitystudentmanagesfinancesinformationmanagementsystemAbstractSocialoneselftoentertheinformationsocietytimenow.Informationoneselfundergoestosociety'swidespreadattention,isregardedassocialandthescientifictechnologicaladvancethreebigprops(material,energy,information).Theinformationisthemanagementfoundation,iscarriesonpolicy-makingthebasicbasis.Inanorganization,informationoneselftakesoutsidethemanpower,thephysicalresource,thefinancialresourcefourthkindofenergy,holdstheimportantstatus.However,theinformationisonenon-material,isdifferentwiththebaseresourcesthenewformresources.Theinformationisalsothemanagementobject,mustcarryonthemanagementandthecontrol.thisarticlemainlyintroducedtheuniversitystudentmanagesfinancessystem'sdesign,thissystemmainlyusesJSPistheprogramminglanguage,thedatabaseusesSQLSERVER2000.Mayfacilitatetheuniversitystudenttomanagefinancesthemanagementneed.Mainlyincludestheincomestatisticsfunction,theinquiryfunction,themanagingfinancesfunction.Thissystemsimplifyoperation,theeasytooperate,tohavetheveryhighreliability.Keywords:Theuniversitystudentmanagesfinancesthesystem;Systemdesign;JSPTOC\o"1-3"\h\z第1章引言 41.1選題背景 41.2可行性分析 5第2章需求分析 52.1用戶功能需求 52.2性能需求 62.3主要技術(shù)分析 6第3章概要設(shè)計 83.1功能模塊圖 83.2處理流程設(shè)計 93.2.1系統(tǒng)操作流程 93.2.2數(shù)據(jù)增加流程 103.2.3數(shù)據(jù)修改流程 103.2.4數(shù)據(jù)刪除流程 113.3系統(tǒng)E-R圖 123.4數(shù)據(jù)庫設(shè)計 123.4.1SQLServer2000分析 123.4.2數(shù)據(jù)庫表結(jié)構(gòu) 133.4.3數(shù)據(jù)庫連接技術(shù) 13第4章詳細設(shè)計 194.1管理員模塊設(shè)計 194.2注冊用戶管理 204.3用戶登陸 234.4用戶注冊 254.5收入統(tǒng)計 284.6收入查詢功能 31第5章系統(tǒng)調(diào)試與測試 325.1程序調(diào)試 325.2程序的測試 325.2.1測試的重要性及目的 325.2.2測試的步驟 345.2.3測試的主要內(nèi)容 34第6章結(jié)論 366.1系統(tǒng)評價 366.2安全性問題 37致謝 38參考文獻 39第1章引言1.1選題背景一個企業(yè)的發(fā)展需要長遠的規(guī)劃,長期、中期與短期目標計劃的相互協(xié)調(diào),日常必要的各種預測、考察和盡心盡力的實踐。同樣,對個人而言,人生就是自己最重要的企業(yè),富翁就是一個成功的企業(yè)經(jīng)營者。只有建立充分的自信心和高度的責任感,才具備成功者的氣魄。20~30歲時,年富力強,風險承受能力是最強的。個人理財?shù)暮诵氖峭顿Y收益的最大化和個人資產(chǎn)分配合理化的集合,通過充分利用各種理財工具,才能達到合理分配的目的、滿足對理財安全性、收益性等多樣化要求。理財是現(xiàn)代每個人都必須要具有的能力。理財能力是一個人得以生存不可缺少的一部分,也是素質(zhì)教育不可忽視的一項重要內(nèi)容。那么,大學生在校期間應該如何加強理財技能的培養(yǎng),做好自己的理財呢?我認為,應該努力做好以下幾點:首先,養(yǎng)成合理的消費習慣,錢要花在刀刃上。作為學生,要樹立勤儉意識,應該把錢花在必須花的地方,不要一味追求檔次盲目攀比,更多地應考慮所購物品的性價比和自己的承受能力。其次,培養(yǎng)財務規(guī)劃意識,學會記帳和編制預算。這是控制消費最有效的方法之一。其實記帳并不難,只要你保留所有的收支單據(jù),做一個簡單的T型記帳簿,抽空整理一下,就可以掌握自己的收支情況,做到量人為出,這樣對自己每筆資金的去向有一個詳盡的記錄,養(yǎng)成良好的記帳習慣。第三,理性花錢,遵守一定的生活消費原則。花錢必須要理性,要有計劃不該花的錢盡量不花,必須花的錢決不吝嗇。學生時代吃要營養(yǎng)均衡;穿要耐穿耐看;住要簡單實用;行要省錢方便。1.2可行性分析1.2.1技術(shù)可行性本系統(tǒng)僅需要一臺裝有Office軟件的計算機即可,對機器本身沒有太高的要求,一般當前學校或個人電腦完全可滿足要求。對于軟件技術(shù)要求,現(xiàn)在的程序設(shè)計語言已非常成熟,要運用HTML樣式,圖形圖象制作工具來制作生動活潑的網(wǎng)頁及美觀的圖形文件或動畫文件。1.2.2經(jīng)濟可行性由于本系統(tǒng)是為學生學習使用的系統(tǒng),裝上該應用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當系統(tǒng)投入運行后可以為學校節(jié)約大量的人力,物力。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。1.2.3操作可行性界面設(shè)計時充分考慮管理人員的習慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠;統(tǒng)計準確;制表靈活;適應力強;容易擴充。第2章需求分析2.1用戶功能需求本系統(tǒng)設(shè)計為基于B/S結(jié)構(gòu)的個人理財系統(tǒng),憑借設(shè)計的軟件系統(tǒng),通過數(shù)據(jù)庫的連接和訪問,進行相關(guān)數(shù)據(jù)的統(tǒng)計和查詢,還可以通過相應的計算功能,完成一些經(jīng)濟方面的實用計算。本系統(tǒng)的思路是:通過系統(tǒng)的數(shù)據(jù)錄入,可以將數(shù)據(jù)保存在相應的數(shù)據(jù)庫里面,而數(shù)據(jù)庫的設(shè)計方式,使錄入的數(shù)據(jù)更加有效,合理。對數(shù)據(jù)的統(tǒng)計有比較完善的設(shè)計,對各種輸入錯誤的情況有著比較合理的考慮,通過代碼提示用戶輸入完整,合理的數(shù)據(jù),以便于查找,統(tǒng)計。在記錄中有計算統(tǒng)計功能,避免用戶手動計算出錯;有相關(guān)的用戶登陸,密碼檢測,密碼修改的功能,保護用戶數(shù)據(jù)的安全性。2.2性能需求系統(tǒng)對環(huán)境的要求服務起端的最低配置是由建立站點所需要的軟件來決定的,在最底配置的情況下,服務器的性能往往不進人意,現(xiàn)在硬件性能已經(jīng)相當出色,而且價格也很便宜,因此通常應給服務器端配置高性能硬件。本機器的配置如下:處理器:InterPentium41.6Hz或更高。內(nèi)存:512MB硬件空間:160GB題目主要采用的技術(shù)數(shù)據(jù)庫:MicrosoftSQLServer2000。編程語言JSP服務器:Tomcat5.5,jdk1.6開發(fā)環(huán)境:WindowsXP2.3主要技術(shù)分析JSP(JavaServerPages)作為一種新的Web應用開發(fā)技術(shù),越來越受到開發(fā)人員的關(guān)注。它為創(chuàng)建高度動態(tài)的Web應用提供了一個獨特的開發(fā)環(huán)境,能夠適應市場上絕大多數(shù)的服務器產(chǎn)品。JSP是由多個公司參與合作建立起來的動態(tài)網(wǎng)頁技術(shù)標準。JSP的具體特征如下:(1)分離內(nèi)容的生成和演示。使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML標識設(shè)計和格式化最終頁面。使用JSP標識或者Java片段來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識和JavaBean組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。(2)生成可用的組件。絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應用程序所要求的更為復雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者讓這些組件為更多的使用者或者客戶集體所使用。(3)采用標識簡化頁面開發(fā)。Web頁面開發(fā)人員不一定都是熟悉腳本語言。JavaServerPage技術(shù)封裝了許多功能,這些功能都是在易用的、與JSP相關(guān)的XML標識中進行動態(tài)內(nèi)容生成時所需要的。標準的JSP標識能夠訪問和實例化JavaBean組件、設(shè)置或者檢索組件屬性、下載Applet以及執(zhí)行用其它方法更難于編碼或耗時的功能。通過開發(fā)定制標準庫,JSP技術(shù)可以進行相當?shù)臄U展,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和同標識一樣執(zhí)行特定功能的構(gòu)件來工作。第3章概要設(shè)計3.1功能模塊圖用戶登陸用戶登陸理財功能系統(tǒng)設(shè)置收支管理資產(chǎn)管理理財計算收支統(tǒng)計收支查詢助學貸款本外幣換算利率計算基金收益新用戶注冊密碼修改按日統(tǒng)計按月統(tǒng)計按年統(tǒng)計3.2處理流程設(shè)計3.2.1系統(tǒng)操作流程系統(tǒng)登錄界面輸入操作員及密碼系統(tǒng)主界面系統(tǒng)管理錯誤信息系統(tǒng)登錄界面輸入操作員及密碼系統(tǒng)主界面系統(tǒng)管理錯誤信息數(shù)據(jù)庫檢查密碼錯誤 數(shù)據(jù)庫檢查密碼錯誤密碼正確功能界面功能處理密碼正確功能界面功能處理3.2.2數(shù)據(jù)增加流程添加信息時,編號字段由系統(tǒng)自動生成,且不能修改,其他信息由用戶輸入,之后對數(shù)據(jù)進行合法判斷,合法則寫入保存至數(shù)據(jù)庫,不合法則重新輸入數(shù)據(jù)。數(shù)據(jù)增加流程圖:開始開始自動生成編號輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.2數(shù)據(jù)增加流程圖3.2.3數(shù)據(jù)修改流程在修改信息時,先選中一條待修改的記錄,然后直接輸入數(shù)據(jù),判斷合法性,合法則保存至數(shù)據(jù)庫,不合法重新輸入。數(shù)據(jù)修改流程圖如圖3.3所示。開始開始選擇需要修改記錄輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.3數(shù)據(jù)修改流程圖3.2.4數(shù)據(jù)刪除流程當用戶選定一條記錄時,單擊刪除按鈕,會提示用戶是否確定刪除,然后刪除數(shù)據(jù)庫相關(guān)內(nèi)容。數(shù)據(jù)刪除流程圖如圖3.4所示。開始開始選擇需要刪除記錄是否刪除更新數(shù)據(jù)庫圖3.4數(shù)據(jù)刪除流程圖3.3系統(tǒng)E-R圖密碼密碼用戶名用戶管理信息資產(chǎn)管理收支管理理財計算密碼修改3.4數(shù)據(jù)庫設(shè)計3.4.1SQLServer2000分析本系統(tǒng)采用SQLServer2000數(shù)據(jù)庫,SQLServer是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個OS/2版本。SQLServer近年來不斷更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用戶見面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點:1.真正的客戶機/服務器體系結(jié)構(gòu)。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進行程序設(shè)計提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成。5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7.SQLServer提供數(shù)據(jù)倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。3.4.2數(shù)據(jù)庫表結(jié)構(gòu)系統(tǒng)用戶表:系統(tǒng)用戶表(表3.1)用來存儲用戶名、密碼,權(quán)限等信息,是用戶登錄的關(guān)鍵表。表3.1系統(tǒng)用戶表user_info序號名稱編碼類型寬度標志備注1編號(流水號)user_idN10Y系統(tǒng)自動管理,自動產(chǎn)生。2用戶名user_nameC50NN系統(tǒng)的登錄用戶名。用戶的唯一標識,不重復。3登錄密碼user_pwdC50NN密碼。未加密。3.4.3數(shù)據(jù)庫連接技術(shù)JDBC技術(shù)是JavaDataBaseConnectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應用程序接口(ApplicationProgrammingInterface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應SQL語句,完成對不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用JDBCAPI可以不必編寫一個應用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個應用程序去訪問Oracle數(shù)據(jù)庫,再寫一個應用程序訪問Microsoft的SQLServer。不但如此,使用Java語言編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應用程序。簡單地說,JDBC能完成下列三件事:同一個數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫建立連接;處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種通用低層的應用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對Java對象進行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對對象的各種屬性、方法的操作來自動產(chǎn)生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個界面(如菜單等)讓用戶選擇對數(shù)據(jù)庫進行的操作,選中一個任務后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應的SQL命令以及Java程序。通過這處方式,用戶可以完成對數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程。數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權(quán)限進行認證,認證通過才能對數(shù)據(jù)庫進行操作。圖5.1使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對數(shù)據(jù)庫的存取權(quán)限認證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結(jié)果通過Web服務器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網(wǎng)絡上傳輸,在中間件中進行解密認證,然后再進行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。在三層模型中,命令將被發(fā)送到服務的”中間層”,而”中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖5.2所示。圖5.2JDBC的三層模型因為”中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應用程序與數(shù)據(jù)庫的溝通橋梁。它提供了三項服務功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結(jié)果。當JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅(qū)動程序,Class.forName()即是在執(zhí)行此項工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅(qū)動程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang.Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動程序載入進來。完成載入驅(qū)動程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對象。此連接對象的類類型為java.sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對象來取得。當取得連接對象后,還必須取得Statement對象才能對數(shù)據(jù)庫執(zhí)行SQL指令。Statement主要實現(xiàn)兩個功能:執(zhí)行SQL語句以及取得執(zhí)行結(jié)果。在java.sql.Statement的sql對象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個ResultSet對象,這個對象提供了一個存取SQL執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個Statement對象只能產(chǎn)生一個ResultSet對象。數(shù)據(jù)庫連接如圖5.3所示:圖5.3數(shù)據(jù)庫的連接處理數(shù)據(jù)庫的連接處理具體實現(xiàn)如下://建立JDBC——ODBC橋sun.jdbc.odbc.JdbcOdbcDriver;//橋建立不成功時的錯誤處理catch(ClassNotFoundExceptionevent){}//建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結(jié)果保存到rs對象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結(jié)果//SQL出錯處理 catch(SQLExceptione1){}有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBCAPI寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應用程序連接數(shù)據(jù)庫的標準方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。
Java具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡上自動下載等特性,是編寫數(shù)據(jù)庫應用程序的杰出語言。所需要的只是Java應用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而JDBC正是作為此種用途的機制。JDBC擴展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務,Java和JDBC可為外部客戶提供獲取信息更新的更好方法。簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}上述代碼對基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié)。第4章詳細設(shè)計4.1管理員模塊設(shè)計當系統(tǒng)登陸時,首先出現(xiàn)的是一個用戶登陸的界面,主要是維護系統(tǒng)的安全性和完整性。擁有管理員權(quán)限的操作員能進行相應操作,沒有權(quán)限的操作員不能對相應的窗口進行操作。如下圖所示:主要代碼如下:packageutil;importjava.sql.*;publicclassDBConn{static{try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");// Class.forName("com.mysql.jdbc.Driver");//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(Exceptionex){ex.printStackTrace();}}publicstaticConnectiongetConn(){try{ Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=hshygl","sa","123");// conn=DriverManager.getConnection("jdbc:mysql://localhost/fzshop","root","123");// Connectionconn=DriverManager.getConnection("jdbc:odbc:temp");returnconn;}catch(Exceptionex){ex.printStackTrace();returnnull;}}publicstaticvoidclose(Connectionconn,Statementst,ResultSetrs){ if(rs!=null){try{rs.close();}catch(SQLExceptionex){}}if(st!=null){try{st.close();}catch(Exceptionex){}}if(conn!=null){try{conn.close();}catch(Exceptionex){}4.2注冊用戶管理該模塊主要功能教職工信息進行管理,包括對注冊用戶的刪除功能,界面如下圖所示:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否為數(shù)字和英文驗證 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為整數(shù)驗證 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為非法字符驗證 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }4.3用戶登陸用于用戶登陸進入系統(tǒng)的界面,用戶需要建立一個賬號和密碼才能進入使用系統(tǒng),當用戶輸入自己的賬號和密碼時,系統(tǒng)進行驗證,如果正確,進入系統(tǒng);如果錯誤,則提示用戶輸入的信息不正確,重新輸入信息.該界面還為新用戶設(shè)置了專門的注冊組件,通過點擊注冊按鈕直接進入新用戶的注冊界面.在登陸的時候,密碼框采用密文形式輸入,保護用戶登陸的安全性。界面如下圖所示:主要代碼如下:packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.InsertUpdateDelBean;publicclassAmountServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicAmountServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringid=request.getParameter("id"); Stringamount=request.getParameter("amount"); Stringsql="updateuserssetamount=amount+"+amount+"whereid="+id; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); sql="insertintopayment(usersid,name,price)values("+id+",'',"+amount+")"; ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); RequestDispatcherrd=request.getRequestDispatcher("/admin/users_amount.jsp"); rd.forward(request,response); }4.4用戶注冊用于未注冊的用戶進行賬號的注冊,當新用戶使用該系統(tǒng)時,在登陸界面上點擊新用戶注冊的按鈕可以進入新用戶注冊的界面.該界面輸入新的用戶名稱,輸入兩次用戶密碼.如果用戶名稱和密碼符合要求并且兩次輸入的密碼都一致,則提示用戶注冊成功,如果用戶名稱已經(jīng)被注冊了或者是兩次輸入的密碼不一致,會提示相應的錯誤提示信息,并且清空輸入框,重新輸入.在該界面上有提示返回登陸框的組件,如果登陸成功以后,則可以直接點擊該組件,回到登陸界面,進行用戶登陸。界面如下圖所示:主要代碼如下:packageservlet;importjava.io.IOException;importjava.util.ArrayList;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.AllBean;importbean.InsertUpdateDelBean;importbean.SelectBean;publicclassBegindateServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicBegindateServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringusersid=request.getParameter("usersid"); Stringitem=request.getParameter("item"); Validatev=newValidate(); AllBeanab=newAllBean(); SelectBeansb=newSelectBean(); ArrayListalItem=ab.getItem(item); if(alItem.get(2)==null||alItem.get(2).equals("")){ Stringsql="select*fromuserswheredatediff(day,getdate(),begindate)<0anddatediff(day,getdate(),enddate)>0andid="+usersid; Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; ArrayListal=sb.select(args,sql); if(al==null||al.size()==0){ request.setAttribute("message","凍結(jié)"); }else{ sql="insertintoconsume(usersid,name)values('"+usersid+"','"+alItem.get(1)+"')"; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); }4.5收入統(tǒng)計該模塊作為該系統(tǒng)的一個主要模塊,其主要功能是按日,月,年進行收入開銷的統(tǒng)計,是體現(xiàn)理財功能的主要模塊.這個模塊分為日收支統(tǒng)計,月收支統(tǒng)計,年收支統(tǒng)計三個部分,每個部分有相關(guān)的一些收入統(tǒng)計,和日常的衣食住行方面的開銷統(tǒng)計,統(tǒng)計的時候必須輸入所統(tǒng)計的日期,如果忘了輸入或者輸入錯誤的日期,則要提示錯誤信息.還有相應的備注信息輸入框,以對自己的收支信息進行相應的補充說明.在這三種收支統(tǒng)計模塊中,都設(shè)置有計算功能,該功能可以計算每個界面中所有收入的總和,所有支出的總和,以及計算出凈收入的數(shù)目來.基本上具有完善的收入統(tǒng)計功能.三種按統(tǒng)計時間區(qū)分的模塊,可以分別按不同的時間段來進行統(tǒng)計,而其相應的統(tǒng)計范圍也有所調(diào)整。界面如下圖所示:主要代碼如下:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否為數(shù)字和英文驗證 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為整數(shù)驗證 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為非法字符驗證 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }4.6收入查詢功能該模塊也是作為理財系統(tǒng)的模塊,和收入統(tǒng)計模塊一起,實現(xiàn)個人理財系統(tǒng)的重要功能:收入支出的統(tǒng)計.在此查詢模塊中,分為按日查詢,按月查詢,按年查詢,分別對應著統(tǒng)計記錄模塊中的按日統(tǒng)計,按月統(tǒng)計,按年統(tǒng)計;如果要按日查詢的話,就輸入年,月,日的信息,點擊查詢按鈕,如果輸入信息正確,則在下面的窗體中會顯示曾經(jīng)統(tǒng)計過的相應項目的相應數(shù)據(jù),用戶可以直觀的看到自己在某個日期的統(tǒng)計數(shù)據(jù).在這個界面中也帶有統(tǒng)計計算的功能,以便于用戶計算;并且?guī)в行薷?刪除所統(tǒng)計的數(shù)據(jù)的功能.其他兩個,按月,按日查詢也是如此.該模塊和收入統(tǒng)計模塊,也可以算是一個整體的模塊.一起完成收支統(tǒng)計的功能。界面如下圖所示:第5章系統(tǒng)調(diào)試與測試5.1程序調(diào)試在設(shè)計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,在程序運行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現(xiàn)和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或?qū)δ承?shù)據(jù)的計算公式的邏輯錯誤導致的錯誤結(jié)果。這類錯誤隱蔽性強,有時會出現(xiàn),有時又不出現(xiàn),因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費力的。5.2程序的測試5.2.1測試的重要性及目的(1)測試的重要性軟件的測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。事實上,對于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內(nèi),討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括:①認為測試工作不如設(shè)計和編碼那樣容易取得進展難以給測試人員某種成就感;②以發(fā)現(xiàn)軟件錯誤為目標的測試是非建設(shè)性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責任者工作的一種否定;③測試工作枯燥無味,不能引起人們的興趣;④測試工作是艱苦而細致的工作;⑤對自己編寫的程序盲目自信,在發(fā)現(xiàn)錯誤后,顧慮別人對自己的開發(fā)能力的看法。這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。(2)測試的目的如果測試的目的是為了盡可能多地找出錯誤,那么測試就應該直接針對軟件比較復雜的部分或是以前出錯比較多的位置。①軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;②測試是為了證明程序有錯,而不是證明程序無錯誤;③一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;④一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產(chǎn)生誤導,認為發(fā)現(xiàn)錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設(shè)計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質(zhì)量的一種方法。5.2.2測試的步驟與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由若干個模塊組成。因此,大型軟件系統(tǒng)的測試基本上由下述幾個步驟組成:(1)模塊測試在這個測試步驟中所發(fā)現(xiàn)的往往是編碼和詳細設(shè)計的錯誤。(2)系統(tǒng)測試在這個測試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計中的錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤。(3)驗收測試在這個測試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。5.2.3測試的主要內(nèi)容為了保證測試的質(zhì)量,將測試過程分成幾個階段,即:代碼審查、單元測試、集成測試、確認測試和系統(tǒng)測試。(1)單元測試單元測試集中在檢查軟件設(shè)計的最小單位—模塊上,通過測試發(fā)現(xiàn)實現(xiàn)該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。(2)集成測試集成測試是將模塊按照設(shè)計要求組裝起來同時進行測試,主要目標
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保險業(yè)務居間合同書
- 合作經(jīng)營公路運輸合同
- 培訓協(xié)議約定合同
- 勞保協(xié)議合同
- 明星代言合同協(xié)議
- 伐木工協(xié)議合同
- 鋪裝合同協(xié)議
- 回遷房二手房合同協(xié)議書
- 項目資金合同協(xié)議
- 污水池施工合同協(xié)議書
- FOCUS-PDCA品管工具改善案例-手術(shù)室與外科病區(qū)提高手術(shù)患兒交接過程正確率成果匯報
- 勞動力材料投入計劃及保證措施機械設(shè)備投入計劃
- 《吸光度與透過率》課件
- 《中國膿毒血癥指南》課件
- 工程信息轉(zhuǎn)讓合同范例
- 中國頭痛門診建設(shè)專家共識2024(全文)
- 研學基地與旅行社合作協(xié)議書
- 得表揚了課件
- 2023年中國鐵路南寧局集團有限公司招聘考試真題
- 汽車發(fā)動機構(gòu)造與維修任務工單
- 造價咨詢服務投標文件
評論
0/150
提交評論