jsp21大學生個人理財系統(tǒng)(jsp+servlet+sqlserver)-qkr_第1頁
jsp21大學生個人理財系統(tǒng)(jsp+servlet+sqlserver)-qkr_第2頁
jsp21大學生個人理財系統(tǒng)(jsp+servlet+sqlserver)-qkr_第3頁
jsp21大學生個人理財系統(tǒng)(jsp+servlet+sqlserver)-qkr_第4頁
jsp21大學生個人理財系統(tǒng)(jsp+servlet+sqlserver)-qkr_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大學生理財信息管理系統(tǒng)摘要當今社會己進入信息社會時代。信息己經受到社會的廣泛關注,被看作社會和科學技術發(fā)展的三大支柱(材料、能源、信息)。信息是管理的基礎,是進行決策的基本依據。在一個組織里,信息己作為人力、物力、財力之外的第四種能源,占有重要的地位。然而,信息是一種非物質的,有別于基本資源的新形式的資源。信息也是管理的對象,必須進行管理和控制。本文主要介紹了大學生理財系統(tǒng)的設計,本系統(tǒng)主要采用JSP為編程語言,數據庫采用SQLSERVER2000??梢苑奖愦髮W生理財管理需要。主要包括收入統(tǒng)計功能、查詢功能、理財功能。本系統(tǒng)易于操作,使用方便,具有很高的可靠性。關鍵字:大學生理財系統(tǒng);系統(tǒng)設計;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主要技術分析 6第3章概要設計 83.1功能模塊圖 83.2處理流程設計 93.2.1系統(tǒng)操作流程 93.2.2數據增加流程 103.2.3數據修改流程 103.2.4數據刪除流程 113.3系統(tǒng)E-R圖 123.4數據庫設計 123.4.1SQLServer2000分析 123.4.2數據庫表結構 133.4.3數據庫連接技術 13第4章詳細設計 194.1管理員模塊設計 194.2注冊用戶管理 204.3用戶登陸 234.4用戶注冊 254.5收入統(tǒng)計 284.6收入查詢功能 31第5章系統(tǒng)調試與測試 325.1程序調試 325.2程序的測試 325.2.1測試的重要性及目的 325.2.2測試的步驟 345.2.3測試的主要內容 34第6章結論 366.1系統(tǒng)評價 366.2安全性問題 37致謝 38參考文獻 39第1章引言1.1選題背景一個企業(yè)的發(fā)展需要長遠的規(guī)劃,長期、中期與短期目標計劃的相互協調,日常必要的各種預測、考察和盡心盡力的實踐。同樣,對個人而言,人生就是自己最重要的企業(yè),富翁就是一個成功的企業(yè)經營者。只有建立充分的自信心和高度的責任感,才具備成功者的氣魄。20~30歲時,年富力強,風險承受能力是最強的。個人理財的核心是投資收益的最大化和個人資產分配合理化的集合,通過充分利用各種理財工具,才能達到合理分配的目的、滿足對理財安全性、收益性等多樣化要求。理財是現代每個人都必須要具有的能力。理財能力是一個人得以生存不可缺少的一部分,也是素質教育不可忽視的一項重要內容。那么,大學生在校期間應該如何加強理財技能的培養(yǎng),做好自己的理財呢?我認為,應該努力做好以下幾點:首先,養(yǎng)成合理的消費習慣,錢要花在刀刃上。作為學生,要樹立勤儉意識,應該把錢花在必須花的地方,不要一味追求檔次盲目攀比,更多地應考慮所購物品的性價比和自己的承受能力。其次,培養(yǎng)財務規(guī)劃意識,學會記帳和編制預算。這是控制消費最有效的方法之一。其實記帳并不難,只要你保留所有的收支單據,做一個簡單的T型記帳簿,抽空整理一下,就可以掌握自己的收支情況,做到量人為出,這樣對自己每筆資金的去向有一個詳盡的記錄,養(yǎng)成良好的記帳習慣。第三,理性花錢,遵守一定的生活消費原則?;ㄥX必須要理性,要有計劃不該花的錢盡量不花,必須花的錢決不吝嗇。學生時代吃要營養(yǎng)均衡;穿要耐穿耐看;住要簡單實用;行要省錢方便。1.2可行性分析1.2.1技術可行性本系統(tǒng)僅需要一臺裝有Office軟件的計算機即可,對機器本身沒有太高的要求,一般當前學?;騻€人電腦完全可滿足要求。對于軟件技術要求,現在的程序設計語言已非常成熟,要運用HTML樣式,圖形圖象制作工具來制作生動活潑的網頁及美觀的圖形文件或動畫文件。1.2.2經濟可行性由于本系統(tǒng)是為學生學習使用的系統(tǒng),裝上該應用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當系統(tǒng)投入運行后可以為學校節(jié)約大量的人力,物力。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經濟上完全可行。1.2.3操作可行性界面設計時充分考慮管理人員的習慣,使得操作簡單;數據錄入迅速、規(guī)范、可靠;統(tǒng)計準確;制表靈活;適應力強;容易擴充。第2章需求分析2.1用戶功能需求本系統(tǒng)設計為基于B/S結構的個人理財系統(tǒng),憑借設計的軟件系統(tǒng),通過數據庫的連接和訪問,進行相關數據的統(tǒng)計和查詢,還可以通過相應的計算功能,完成一些經濟方面的實用計算。本系統(tǒng)的思路是:通過系統(tǒng)的數據錄入,可以將數據保存在相應的數據庫里面,而數據庫的設計方式,使錄入的數據更加有效,合理。對數據的統(tǒng)計有比較完善的設計,對各種輸入錯誤的情況有著比較合理的考慮,通過代碼提示用戶輸入完整,合理的數據,以便于查找,統(tǒng)計。在記錄中有計算統(tǒng)計功能,避免用戶手動計算出錯;有相關的用戶登陸,密碼檢測,密碼修改的功能,保護用戶數據的安全性。2.2性能需求系統(tǒng)對環(huán)境的要求服務起端的最低配置是由建立站點所需要的軟件來決定的,在最底配置的情況下,服務器的性能往往不進人意,現在硬件性能已經相當出色,而且價格也很便宜,因此通常應給服務器端配置高性能硬件。本機器的配置如下:處理器:InterPentium41.6Hz或更高。內存:512MB硬件空間:160GB題目主要采用的技術數據庫:MicrosoftSQLServer2000。編程語言JSP服務器:Tomcat5.5,jdk1.6開發(fā)環(huán)境:WindowsXP2.3主要技術分析JSP(JavaServerPages)作為一種新的Web應用開發(fā)技術,越來越受到開發(fā)人員的關注。它為創(chuàng)建高度動態(tài)的Web應用提供了一個獨特的開發(fā)環(huán)境,能夠適應市場上絕大多數的服務器產品。JSP是由多個公司參與合作建立起來的動態(tài)網頁技術標準。JSP的具體特征如下:(1)分離內容的生成和演示。使用JSP技術,Web頁面開發(fā)人員可以使用HTML標識設計和格式化最終頁面。使用JSP標識或者Java片段來生成頁面上的動態(tài)內容。生成內容的邏輯被封裝在標識和JavaBean組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。(2)生成可用的組件。絕大多數JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應用程序所要求的更為復雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者讓這些組件為更多的使用者或者客戶集體所使用。(3)采用標識簡化頁面開發(fā)。Web頁面開發(fā)人員不一定都是熟悉腳本語言。JavaServerPage技術封裝了許多功能,這些功能都是在易用的、與JSP相關的XML標識中進行動態(tài)內容生成時所需要的。標準的JSP標識能夠訪問和實例化JavaBean組件、設置或者檢索組件屬性、下載Applet以及執(zhí)行用其它方法更難于編碼或耗時的功能。通過開發(fā)定制標準庫,JSP技術可以進行相當的擴展,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和同標識一樣執(zhí)行特定功能的構件來工作。第3章概要設計3.1功能模塊圖用戶登陸用戶登陸理財功能系統(tǒng)設置收支管理資產管理理財計算收支統(tǒng)計收支查詢助學貸款本外幣換算利率計算基金收益新用戶注冊密碼修改按日統(tǒng)計按月統(tǒng)計按年統(tǒng)計3.2處理流程設計3.2.1系統(tǒng)操作流程系統(tǒng)登錄界面輸入操作員及密碼系統(tǒng)主界面系統(tǒng)管理錯誤信息系統(tǒng)登錄界面輸入操作員及密碼系統(tǒng)主界面系統(tǒng)管理錯誤信息數據庫檢查密碼錯誤 數據庫檢查密碼錯誤密碼正確功能界面功能處理密碼正確功能界面功能處理3.2.2數據增加流程添加信息時,編號字段由系統(tǒng)自動生成,且不能修改,其他信息由用戶輸入,之后對數據進行合法判斷,合法則寫入保存至數據庫,不合法則重新輸入數據。數據增加流程圖:開始開始自動生成編號輸入數據是否合法寫入數據庫結束圖3.2數據增加流程圖3.2.3數據修改流程在修改信息時,先選中一條待修改的記錄,然后直接輸入數據,判斷合法性,合法則保存至數據庫,不合法重新輸入。數據修改流程圖如圖3.3所示。開始開始選擇需要修改記錄輸入數據是否合法寫入數據庫結束圖3.3數據修改流程圖3.2.4數據刪除流程當用戶選定一條記錄時,單擊刪除按鈕,會提示用戶是否確定刪除,然后刪除數據庫相關內容。數據刪除流程圖如圖3.4所示。開始開始選擇需要刪除記錄是否刪除更新數據庫圖3.4數據刪除流程圖3.3系統(tǒng)E-R圖密碼密碼用戶名用戶管理信息資產管理收支管理理財計算密碼修改3.4數據庫設計3.4.1SQLServer2000分析本系統(tǒng)采用SQLServer2000數據庫,SQLServer是由Microsoft開發(fā)和推廣的關系數據庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個OS/2版本。SQLServer近年來不斷更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用戶見面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點:1.真正的客戶機/服務器體系結構。2.圖形化用戶界面,使系統(tǒng)管理和數據庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進行程序設計提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產品集成。5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術的支持,使用戶能夠很容易地將數據庫中的數據發(fā)布到Web頁面上。7.SQLServer提供數據倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。3.4.2數據庫表結構系統(tǒng)用戶表:系統(tǒng)用戶表(表3.1)用來存儲用戶名、密碼,權限等信息,是用戶登錄的關鍵表。表3.1系統(tǒng)用戶表user_info序號名稱編碼類型寬度標志備注1編號(流水號)user_idN10Y系統(tǒng)自動管理,自動產生。2用戶名user_nameC50NN系統(tǒng)的登錄用戶名。用戶的唯一標識,不重復。3登錄密碼user_pwdC50NN密碼。未加密。3.4.3數據庫連接技術JDBC技術是JavaDataBaseConnectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應用程序接口(ApplicationProgrammingInterface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數據庫的鏈接,通過執(zhí)行相應SQL語句,完成對不同數據庫的訪問。因此,開發(fā)人員使用JDBCAPI可以不必編寫一個應用程序來訪問Sybase數據庫,又另外編寫一個應用程序去訪問Oracle數據庫,再寫一個應用程序訪問Microsoft的SQLServer。不但如此,使用Java語言編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應用程序。簡單地說,JDBC能完成下列三件事:同一個數據庫建立連接;向數據庫建立連接;處理數據庫返回的結果。JDBC是一種通用低層的應用程序編程接口,它在不同的數據庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調用SQL命令,它比其他的一些數據庫連接API要容易使用些,但它有同樣可以作為更高級的,用戶辦面更友好的API或開發(fā)工具基礎。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關系數據庫的表或視圖映射為Java類,程序員通過可視化工具直接對Java對象進行操作,而真正需要的SQL調用則根據程序員發(fā)出的對對象的各種屬性、方法的操作來自動產生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個界面(如菜單等)讓用戶選擇對數據庫進行的操作,選中一個任務后,提示用戶輸入一些必要的信息,然后根據用戶的輸入產生相應的SQL命令以及Java程序。通過這處方式,用戶可以完成對數據庫的操作,即使他并不了解SQL語法以及JDBC編程。數據庫訪問的三層結構如圖5.1所示,瀏覽器端程序要訪問數據庫,首先通過中間件,然后由中間件對數據庫操作權限進行認證,認證通過才能對數據庫進行操作。圖5.1使用中間件的數據庫訪問三層結構用戶對數據庫的存取權限認證是中間件中完成,對數據庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務器端,中間件對數據庫進行操作后,再將處理結果通過Web服務器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網絡上傳輸,在中間件中進行解密認證,然后再進行數據庫的存取操作,數據庫存取權限的用戶名和密碼出現在位于服務器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結構的數據庫訪問模式。在三層模型中,命令將被發(fā)送到服務的”中間層”,而”中間層”將SQL語句發(fā)送到數據庫。數據庫處理SQL語句并將結果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖5.2所示。圖5.2JDBC的三層模型因為”中間層”可以進行對訪問的控制并協同數據庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉換,轉換成低層的調用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應用程序與數據庫的溝通橋梁。它提供了三項服務功能:一、與數據庫建立連接。二、將SQL語句傳遞給數據庫。三、從數據庫取得SQL語句的執(zhí)行結果。當JDBC要與數據庫建立連接前,首先,它必須先取得連接此數據庫的JDBC驅動程序,Class.forName()即是在執(zhí)行此項工作。建立數據庫連接的第一步驟就是將JDBC驅動程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang.Class類內的forName()靜態(tài)函數依據指定的類名稱,將JDBC驅動程序載入進來。完成載入驅動程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數,取得與數據庫間的連接對象。此連接對象的類類型為java.sal.Connection,必須通過它才能將SQL指令傳遞給數據庫,而執(zhí)行結果也需要通過連接對象來取得。當取得連接對象后,還必須取得Statement對象才能對數據庫執(zhí)行SQL指令。Statement主要實現兩個功能:執(zhí)行SQL語句以及取得執(zhí)行結果。在java.sql.Statement的sql對象中執(zhí)行查詢或修改命令的函數后傳回的是一個ResultSet對象,這個對象提供了一個存取SQL執(zhí)行結果的管道,以便通過它將表格數據從數據庫中取出。每個Statement對象只能產生一個ResultSet對象。數據庫連接如圖5.3所示:圖5.3數據庫的連接處理數據庫的連接處理具體實現如下://建立JDBC——ODBC橋sun.jdbc.odbc.JdbcOdbcDriver;//橋建立不成功時的錯誤處理catch(ClassNotFoundExceptionevent){}//建立與數據庫的連接,并發(fā)送SQL查詢語句,將結果保存到rs對象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結果//SQL出錯處理 catch(SQLExceptione1){}有了JDBC,向各種關系數據發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數據庫專門寫一個程序,為訪問Oracle數據庫又專門寫一個程序,或為訪問Informix數據庫又編寫另一個程序等等,程序員只需用JDBCAPI寫一個程序就夠了,它可向相應數據庫發(fā)送SQL調用。同時,將Java語言和JDBC結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。Java數據庫連接體系結構是用于Java應用程序連接數據庫的標準方法。JDBC對Java程序員而言是API,對實現與數據庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數據庫廠商及第三方中間件廠商實現與數據庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數據庫連接標準,如ODBC之間的橋接。JDBC實現了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現的接口。

Java具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是Java應用程序與各種不同數據庫之間進行對話的方法。而JDBC正是作為此種用途的機制。JDBC擴展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網頁,而該applet使用的信息可能來自遠程數據庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數據庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結合,因為它使信息傳播變得容易和經濟。企業(yè)可繼續(xù)使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務,Java和JDBC可為外部客戶提供獲取信息更新的更好方法。簡單地說,JDBC可做三件事:與數據庫建立連接、發(fā)送SQL語句并處理結果。下列代碼段給出了以上三步的基本示例: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的數據庫訪問做了經典的總結。第4章詳細設計4.1管理員模塊設計當系統(tǒng)登陸時,首先出現的是一個用戶登陸的界面,主要是維護系統(tǒng)的安全性和完整性。擁有管理員權限的操作員能進行相應操作,沒有權限的操作員不能對相應的窗口進行操作。如下圖所示:主要代碼如下: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{ /** *是否為數字和英文驗證 * */ 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; } } /** *是否為整數驗證 * */ 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);如果錯誤,則提示用戶輸入的信息不正確,重新輸入信息.該界面還為新用戶設置了專門的注冊組件,通過點擊注冊按鈕直接進入新用戶的注冊界面.在登陸的時候,密碼框采用密文形式輸入,保護用戶登陸的安全性。界面如下圖所示:主要代碼如下: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)時,在登陸界面上點擊新用戶注冊的按鈕可以進入新用戶注冊的界面.該界面輸入新的用戶名稱,輸入兩次用戶密碼.如果用戶名稱和密碼符合要求并且兩次輸入的密碼都一致,則提示用戶注冊成功,如果用戶名稱已經被注冊了或者是兩次輸入的密碼不一致,會提示相應的錯誤提示信息,并且清空輸入框,重新輸入.在該界面上有提示返回登陸框的組件,如果登陸成功以后,則可以直接點擊該組件,回到登陸界面,進行用戶登陸。界面如下圖所示:主要代碼如下: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","凍結"); }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)計,是體現理財功能的主要模塊.這個模塊分為日收支統(tǒng)計,月收支統(tǒng)計,年收支統(tǒng)計三個部分,每個部分有相關的一些收入統(tǒng)計,和日常的衣食住行方面的開銷統(tǒng)計,統(tǒng)計的時候必須輸入所統(tǒng)計的日期,如果忘了輸入或者輸入錯誤的日期,則要提示錯誤信息.還有相應的備注信息輸入框,以對自己的收支信息進行相應的補充說明.在這三種收支統(tǒng)計模塊中,都設置有計算功能,該功能可以計算每個界面中所有收入的總和,所有支出的總和,以及計算出凈收入的數目來.基本上具有完善的收入統(tǒng)計功能.三種按統(tǒng)計時間區(qū)分的模塊,可以分別按不同的時間段來進行統(tǒng)計,而其相應的統(tǒng)計范圍也有所調整。界面如下圖所示:主要代碼如下:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否為數字和英文驗證 * */ 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; } } /** *是否為整數驗證 * */ 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)計模塊一起,實現個人理財系統(tǒng)的重要功能:收入支出的統(tǒng)計.在此查詢模塊中,分為按日查詢,按月查詢,按年查詢,分別對應著統(tǒng)計記錄模塊中的按日統(tǒng)計,按月統(tǒng)計,按年統(tǒng)計;如果要按日查詢的話,就輸入年,月,日的信息,點擊查詢按鈕,如果輸入信息正確,則在下面的窗體中會顯示曾經統(tǒng)計過的相應項目的相應數據,用戶可以直觀的看到自己在某個日期的統(tǒng)計數據.在這個界面中也帶有統(tǒng)計計算的功能,以便于用戶計算;并且?guī)в行薷?刪除所統(tǒng)計的數據的功能.其他兩個,按月,按日查詢也是如此.該模塊和收入統(tǒng)計模塊,也可以算是一個整體的模塊.一起完成收支統(tǒng)計的功能。界面如下圖所示:第5章系統(tǒng)調試與測試5.1程序調試在設計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,在程序運行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或對某些數據的計算公式的邏輯錯誤導致的錯誤結果。這類錯誤隱蔽性強,有時會出現,有時又不出現,因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費力的。5.2程序的測試5.2.1測試的重要性及目的(1)測試的重要性軟件的測試在軟件生命周期中占據重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發(fā)現錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。事實上,對于軟件來講,不論采用什么技術和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內,討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括:①認為測試工作不如設計和編碼那樣容易取得進展難以給測試人員某種成就感;②以發(fā)現軟件錯誤為目標的測試是非建設性的,甚至是破壞性的,測試中發(fā)現錯位是對責任者工作的一種否定;③測試工作枯燥無味,不能引起人們的興趣;④測試工作是艱苦而細致的工作;⑤對自己編寫的程序盲目自信,在發(fā)現錯誤后,顧慮別人對自己的開發(fā)能力的看法。這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態(tài)度,才可能提高軟件產品的質量。(2)測試的目的如果測試的目的是為了盡可能多地找出錯誤,那么測試就應該直接針對軟件比較復雜的部分或是以前出錯比較多的位置。①軟件測試是為了發(fā)現錯誤而執(zhí)行程序的過程;②測試是為了證明程序有錯,而不是證明程序無錯誤;③一個好的測試用例是在于它能發(fā)現至今未發(fā)現的錯誤;④一個成功的測試是發(fā)現了至今未發(fā)現的錯誤的測試。這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產生誤導,認為發(fā)現錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。5.2.2測試的步驟與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由若干個模塊組成。因此,大型軟件系統(tǒng)的測試基本上由下述幾個步驟組成:(1)模塊測試在這個測試步驟中所發(fā)現的往往是編碼和詳細設計的錯誤。(2)系統(tǒng)測試在這個測試步驟中發(fā)現的往往是軟件設計中的錯誤,也可能發(fā)現需求說明中的錯誤。(3)驗收測試在這個測試步驟中發(fā)現的往往是系統(tǒng)需求說明書中的錯誤。5.2.3測試的主要內容為了保證測試的質量,將測試過程分成幾個階段,即:代碼審查、單元測試、集成測試、確認測試和系統(tǒng)測試。(1)單元測試單元測試集中在檢查軟件設計的最小單位—模塊上,通過測試發(fā)現實現該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。(2)集成測試集成測試是將模塊按照設計要求組裝起來同時進行測試,主要目標

溫馨提示

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

評論

0/150

提交評論