版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
DesignandImplementationofFinancialReportingManagementSystemABSTRACTWiththeadventoftheInternettrend,allwalksoflifeareconsideringusingtheInternettopromotethemselves,thebestwayistoestablishtheirownInternetsystem,anditsmaintenanceandmanagement.Inthepracticalapplication,theworkrulesanddevelopmentstepsoftheapplicationsoftwareareusedtobuildthefinancialstatementsmanagementsystemwithSSMframework.Thisgraduationprojectmainlyrealizesthefinancialreportmanagementsystemwhichintegratestheadvantagesofhumanization,highefficiencyandconvenience.Itcompletesthefunctionsofstaffinformationmanagement,departmentinformationmanagement,reimbursementbillmanagement,examinationandapprovalrecordmanagement,companyannouncementmanagementandsystemmanagement.Thesystemcommunicateswiththeserverthroughthebrowsertorealizetheinteractionandchangeofdata.Onlythroughacomputer,thefingercanbemovedtooperatethesystem,toachievedatacommunicationmanagement.Thewholesystemdesignprocessfullyconsidersthesecurity,stabilityandreliabilityofdata,andtheoperationprocessissimple.Throughscientificmanagementandconvenientservice,thesystemimprovesworkefficiencyandreduceserrorsandomissionsindatastorage.ThissystemusesWindows7astheserver-sideoperatingsystem,Javaasthedevelopmentlanguage,Mysqlasthedatabase,Mybatisasthedatabaseconnectiontechnology,Myeclipseasthedevelopmenttoolofthesystemapplication,Tomcat7.0astheWebserver.Keywords:Datacommunication;Java;Mysqldatabase;Thewebserver
目錄摘要 IABSTRACT II目錄 III第1章緒論 11.1開發(fā)背景與意義 11.2論文結(jié)構(gòu) 1第2章主要技術(shù)和工具介紹 22.1jsp腳本語言 22.2Mysql數(shù)據(jù)庫 22.3B/S結(jié)構(gòu) 32.4MVC模式 32.5SSM框架 32.6tomcat服務(wù)器概述 3第3章系統(tǒng)分析 43.1可行性分析 43.1.1技術(shù)可行性 43.1.2經(jīng)濟可行性 43.1.3操作可行性 43.2需求分析 43.3業(yè)務(wù)流程分析 5第4章系統(tǒng)設(shè)計 64.1整體架構(gòu) 64.2系統(tǒng)結(jié)構(gòu)設(shè)計 64.3功能模塊設(shè)計 74.4系統(tǒng)安全設(shè)計 84.5表單字段校驗處理設(shè)計 84.6系統(tǒng)維護設(shè)計 84.7數(shù)據(jù)庫設(shè)計 84.7.1數(shù)據(jù)庫設(shè)計概述 84.7.2概念設(shè)計 94.7.3邏輯設(shè)計 94.7.3物理設(shè)計 9第5章系統(tǒng)實現(xiàn) 135.1登錄模塊的實現(xiàn) 135.2用戶子系統(tǒng)模塊的實現(xiàn) 155.2.1用戶首頁的實現(xiàn) 155.2.2賬單模塊的實現(xiàn) 155.3管理員子系統(tǒng)模塊的實現(xiàn) 175.3.1用戶管理模塊的實現(xiàn) 175.3.2密碼修改模塊的實現(xiàn) 195.3.3員工管理模塊的實現(xiàn) 215.3.4公告管理模塊的實現(xiàn) 23第6章系統(tǒng)測試 256.1測試目的與定義 256.2功能測試 256.3測試結(jié)果 266.4測試評價 26第7章總結(jié) 27致謝 28參考文獻(xiàn) 29第1章緒論1.1開發(fā)背景與意義財務(wù)報賬管理系統(tǒng)是將財務(wù)報銷和計算機技術(shù)結(jié)合起來的一種新型的辦公方式,是信息化社會的產(chǎn)物。通過網(wǎng)絡(luò),組織機構(gòu)內(nèi)部的人員可跨越時間、空間進(jìn)行操作。通過財務(wù)報賬管理系統(tǒng)所實施的交換式網(wǎng)絡(luò)應(yīng)用,使信息的傳遞更加快捷和方便,從而極大地擴展了辦事效率。財務(wù)報賬管理系統(tǒng),是以網(wǎng)絡(luò)為依托,在企業(yè)內(nèi)部進(jìn)行暢通的信息交流。在這種模式下,它所屬的財務(wù)、人事都成為企業(yè)信息流中的獨立的一個環(huán)節(jié),而不再為安全過分擔(dān)憂。依靠這種模式,企業(yè)的組織結(jié)構(gòu)能夠得到簡化,各個部門在信息共享的基礎(chǔ)上進(jìn)行協(xié)作,藕合性大大減低,便于明確各個部門甚至每個員工的責(zé)任,而決策層可以迅速綜合來自各個方而的信息,并此為依據(jù)制定企業(yè)的戰(zhàn)略決策。沒有人懷疑計算機的出現(xiàn)給辦公室職員帶來的便利,但是對現(xiàn)代的企業(yè)人事煩雜,為了減輕員工的工作量,要將員工從繁瑣的事務(wù)性工作中解放出來,用更多的精力去關(guān)注最重要的事情,從而提高企業(yè)的效率,增強企業(yè)的綜合競爭能力[1][2]。1.2論文結(jié)構(gòu)第一章是論文的緒論部分,主要介紹了課題的研究背景以及研究目的和意義。第二章研究了財務(wù)報賬管理系統(tǒng)的所采用的開發(fā)技術(shù)和開發(fā)工具。第三章研究了財務(wù)報賬管理系統(tǒng)的需求分析,根據(jù)系統(tǒng)的特點,分析系統(tǒng)采用的體系結(jié)構(gòu)及開發(fā)方法,以及該系統(tǒng)的運行環(huán)境,并分析了業(yè)務(wù)流程,繪制了業(yè)務(wù)流程以及數(shù)據(jù)流程。第四章是對系統(tǒng)的詳細(xì)設(shè)計進(jìn)行說明。第五章是系統(tǒng)的具體實現(xiàn),介紹系統(tǒng)的各個模塊的具體實現(xiàn)。第六章在前幾章的基礎(chǔ)上對系統(tǒng)進(jìn)行測試和運行。最后對系統(tǒng)進(jìn)行了認(rèn)真的總結(jié),以此對未來有一個新的展望。第2章主要技術(shù)和工具介紹2.1jsp腳本語言JSP是一種跨平臺的網(wǎng)頁技術(shù),最終實現(xiàn)網(wǎng)頁的動態(tài)效果,與ASP技術(shù)類似,都是在HTML中混合一些程序的相關(guān)代碼,運用語言引擎來執(zhí)行代碼,JSP能夠?qū)崿F(xiàn)與用戶的交互,方便用戶的使用[3]。JSP技術(shù)具有諸多優(yōu)點,由于JSP是基于Java的,所以具有了Java的最大優(yōu)點。可以忽略所使用的平臺,實現(xiàn)僅需一次編寫就能夠到處運行使用,而且還具有很好的安全性和多平臺支持的特性,能夠在任何平臺的任何環(huán)境中進(jìn)行開發(fā),進(jìn)行系統(tǒng)部署和環(huán)境擴展。它也有屬于自己的功能強大的開發(fā)工具的支持,并且可以通過很多渠道免費得到,這就為JSP技術(shù)的傳播也準(zhǔn)備了條件[4]。與微軟公司的ASP技術(shù)相比,JSP具有如下優(yōu)點:(1)開放的技術(shù):JSP技術(shù)基于平臺和服務(wù)器的相互獨立,技術(shù)支持來自廣泛的、專門的、各種工具包,有服務(wù)器的組件和數(shù)據(jù)庫產(chǎn)品開發(fā)商提供。相比之下,ASP技術(shù)主要依賴MICROSOFT支持[5]。(2)平臺和服務(wù)器的獨立性:JSP編寫的代碼可運行在任何符合JAVA語法結(jié)構(gòu)的環(huán)境中。這樣JSP就能夠運行在多種WEB服務(wù)器上并支持來自多家開發(fā)商提供的各種工具包[6]。(3)開放的開發(fā)過程,開放的源碼:自1995年以來,SUN用開放過程方法同國際JAVA組織合作開發(fā)和修改JAVA技術(shù)和規(guī)范。(4)JSP標(biāo)記可擴充性:JSP技術(shù)能夠為開發(fā)者擴展JSP標(biāo)記,充分利用與XML兼容的標(biāo)記技術(shù)強大的功能,大大減少對腳本語言的依賴。(5)JSP跨平臺的可重用性:JSP組件(EJB,JavaBean或定制的JSP標(biāo)記)都是跨平臺可重用的[7][8]。2.2Mysql數(shù)據(jù)庫MySQL是PHP的最佳搭檔,是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)[9][10]。MySQL有如下特點:1.MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)。2.MySQL是開源的。3.MySQL服務(wù)器是一種快速的、可靠的和易于使用的數(shù)據(jù)庫服務(wù)器。4.MySQL可運行在不同的操作系統(tǒng)下,可以支持Windows95/98/NT/2000以及Unix、Linux等多種操作系統(tǒng)平臺。5.MySQL支持大型的數(shù)據(jù)庫。雖然對于用PHP編寫的網(wǎng)頁來說只要能夠存放上百條以上的記錄數(shù)據(jù)就足夠了,但MySQL數(shù)據(jù)庫可以方便地支持上千萬條記錄。6.MySQL服務(wù)器工作在客戶/服務(wù)器或嵌入系統(tǒng)中[11]。2.3B/S結(jié)構(gòu)B/S模式也就是瀏覽器/服務(wù)器模式,它的界面部分是在瀏覽器端展示,而主要工作是由服務(wù)器端進(jìn)行實現(xiàn)的,用戶的請求由瀏覽器端提交給服務(wù)器端進(jìn)行處理,而服務(wù)器將處理結(jié)果反饋給瀏覽器端,在瀏覽器端界面描畫給用戶查看。采用B/S模式不僅可以避免用戶必須安裝專業(yè)軟件才能開發(fā)系統(tǒng)或者訪問系統(tǒng)的局限性,而且更加便利[12]。2.4MVC模式MVC是一個框架模式,有三個核心部件,即模型(Model)、視圖(View)和控制器(Controller)。模型表示應(yīng)用程序核心,視圖表示顯示數(shù)據(jù),控制器表示處理輸入。它們各自處理自己的任務(wù),將業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離,便于代碼的重用[13]。2.5SSM框架市面上J2EE的開源框架層出不窮,本系統(tǒng)采用近期比較流行的SSM的框架組合,即SpringMVC4.2.3+Spring4.2.3+Mybatis3.4.1的框架組合,、其中Mybatis和Hibernate都是操作數(shù)據(jù)庫的框架,同時使用是因為Mybatis查詢效率高,而Hibernate由于其ORM特性,對更新修改操作很方便。具體采用技術(shù)框架描述如下:?(1)SpringMVC?Spring?MVC是一種實現(xiàn)了MVC設(shè)計模式的輕量級Web框架,大大簡化了開發(fā)人員的日常Web開發(fā),選擇SpringMVC還有一個原因,就是SpringMVC對Ajax的支持非常好。?(2)Spring?Spring是一個全方位的應(yīng)用程序框架,一般用Spring來整合整個應(yīng)用程序,同時它也可以很輕松的用來整合其它各種框架,包括Mybatis、Hibernate?等。?(3)Mybatis?MyBatis是優(yōu)秀的持久層框架,它可以通過配置xml或注解的方式來定制SQL,然后將接口和Java的實體對象映射成數(shù)據(jù)庫中的記錄[14]。2.6tomcat服務(wù)器概述Tomcat屬于著名的Apache工程組下的一個獨立項目組jakarta,該項目組和Java領(lǐng)導(dǎo)者Sun公司合作共同致力于Servlet/JSP服務(wù)技術(shù)的開發(fā)。雖然目前Tomcat不是性能最好的Servlet/JSP服務(wù)器,但是由于它的開發(fā)者具有深厚的技術(shù)背景,加上該項目本身非常活躍。同時Tomcat屬于開放源代碼項目產(chǎn)品,可以使我們有機會更深入的了解和使用[15]。第3章系統(tǒng)分析3.1可行性分析本次畢業(yè)設(shè)計基于B/S模式下,運用Java、SSM框架采用的是Mysql數(shù)據(jù)庫和Myeclipse實現(xiàn),總體的可行性共分為以下三個方面。3.1.1技術(shù)可行性采用的是當(dāng)下流行的JAVA語言,SSM框架,它具有如下優(yōu)點。強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺Application進(jìn)行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。JSP可以使用成熟的JAVABEANS組件來實現(xiàn)復(fù)雜功能。3.1.2經(jīng)濟可行性財務(wù)報賬管理系統(tǒng)采用的插件都是開源免費的,開發(fā)工具,Myeclipse,以及數(shù)據(jù)庫是Mysql皆是開源免費的,服務(wù)器采用tomcat,也是當(dāng)下流行的開發(fā)所用的服務(wù)器,因為都是開源免費的,所以在開發(fā)前期,開發(fā)時用于項目的經(jīng)費將會大大降低,不會讓開發(fā)該軟件在項目啟動期受到經(jīng)費的影響,所以經(jīng)濟上還是可行的。盡量用最少的花費去滿足用戶的需求。省下經(jīng)費用于人工費,以及設(shè)備費用。將在無紙化,高效率的道路上越走越遠(yuǎn)。3.1.3操作可行性本系統(tǒng)實現(xiàn)功能的操作很簡單,普通電腦的常見配置就可以運行本軟件,并且只要粗通電腦使用的基本常識就可以流暢的使用本軟件。電腦具備連接互聯(lián)網(wǎng)的能力,并且可以正常訪問系統(tǒng),并不需要操作者有什么高超的能力,只需了解業(yè)務(wù)流程,并且按照專業(yè)知識進(jìn)行正確操作即可,所以財務(wù)報賬管理系統(tǒng)具備操作可行性。3.2需求分析一個系統(tǒng)的開發(fā)至關(guān)重要的一點就在于對需求的分析。在研究調(diào)查的基礎(chǔ)之上,對所開發(fā)的系統(tǒng)功能進(jìn)行的詳細(xì)分析總結(jié),從而設(shè)計出完整的系統(tǒng)并將其實現(xiàn)。用戶和開發(fā)人員的交流分析,使其達(dá)到最佳理解程度,使系統(tǒng)功能達(dá)到最佳。下面分別簡單闡述一下這幾個功能模塊需求。登錄:登錄功能主要分為用戶登錄用戶子系統(tǒng)和管理員登錄管理子系統(tǒng)兩部分內(nèi)容,用戶在用戶子系統(tǒng)登錄頁面進(jìn)行登錄,系統(tǒng)將用戶填寫的登錄信息與用戶已存在的用戶名和密碼進(jìn)行驗證,驗證通過則登錄成功。個人資料管理:用戶可以根據(jù)自己當(dāng)前的情況修改個人的信息。賬單管理:添加賬單記錄:用戶添加賬單記錄;編輯賬單記錄:用戶修改賬單記錄信息;刪除賬單記錄:用戶刪除賬單記錄;查詢賬單記錄:用戶查詢個人賬單記錄;賬單記錄審核:管理員給用戶添加的賬單進(jìn)行審核。員工管理:添加員工信息:管理員添加員工信息;編輯員工信息:管理員修改員工信息;刪除員工信息:管理員刪除員工信息;查詢員工信息:管理員查詢員工信息。公告管理:添加公告信息:員工添加公告信息;編輯公告信息:員工修改公告信息;刪除公告信息:員工刪除公告信息;查詢公告信息:員工查詢公告信息。3.3業(yè)務(wù)流程分析業(yè)務(wù)流程圖是一種物理模型,它描述系統(tǒng)內(nèi)部各單位與人員之間的業(yè)務(wù)關(guān)系和管理信息的流向。系統(tǒng)的業(yè)務(wù)流程如下圖所示。圖3-1系統(tǒng)業(yè)務(wù)流程圖第4章系統(tǒng)設(shè)計4.1整體架構(gòu)系統(tǒng)整體采用分層架構(gòu),分層就是要把界面部分、業(yè)務(wù)邏輯部分、數(shù)據(jù)庫訪問部分的代碼放在各自獨立的方法或類中編寫,減少代碼之間的聯(lián)系,分層設(shè)計思想已經(jīng)成為開發(fā)軟件的主流思想。SSM框架是springMVC,spring和mybatis框架的整合,是標(biāo)準(zhǔn)的MVC模式,將整個系統(tǒng)劃分為表現(xiàn)層,controller層,service層,DAO層四層,使用springMVC負(fù)責(zé)請求的轉(zhuǎn)發(fā)和視圖管理,spring實現(xiàn)業(yè)務(wù)對象管理,mybatis作為數(shù)據(jù)對象的持久化引擎。SSM框架的工作原理如下:1.客戶端發(fā)送請求到DispacherServlet(分發(fā)器)。2.由DispacherServlet控制器查詢HanderMapping,找到處理請求的Controller。3.Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView。4.DispacherSerclet查詢視圖解析器,找到ModelAndView指定的視圖。5.視圖負(fù)責(zé)將結(jié)果顯示到客戶端。6.IOC容器可以裝載bean(也就是Java中的類,當(dāng)然也包括servicedao里面的),有了這個機制,就不用在每次使用這個類的時候為它初始化,很少看到關(guān)鍵字new。另外spring的aop,事務(wù)管理等等都是我們經(jīng)常用到的。7.mybatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關(guān)聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進(jìn)行的sql語句映射。在每次與數(shù)據(jù)庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執(zhí)行sql命令。其構(gòu)建圖如下圖所示。圖4-1整體架構(gòu)4.2系統(tǒng)結(jié)構(gòu)設(shè)計本系統(tǒng)使用的角色主要有系統(tǒng)管理員、員工,員工可以登錄個人中心進(jìn)行員工資料管理、公告查詢、報銷賬單、已審批賬單查詢等功能。以管理員的身份在登錄頁面輸入賬號和密碼,經(jīng)過數(shù)據(jù)庫身份驗證,驗證成功后登錄系統(tǒng)主頁,可以使用員工信息管理(員工信息錄入、刪除、修改)、部門信息管理(部門信息錄入、刪除、修改)、報銷賬單管理(報銷賬單查詢)、審批記錄管理、公司公告管理(公司公告錄入、刪除、修改)、系統(tǒng)管理(系統(tǒng)用戶錄入、刪除、修改)等功能操作。同時管理員可以通過關(guān)鍵字搜索可以搜索相應(yīng)的信息,打印各種詳細(xì)信息,導(dǎo)出各類信息列表至excel中。系統(tǒng)的功能結(jié)構(gòu)圖如下圖所示。圖4-2系統(tǒng)功能結(jié)構(gòu)圖4.3功能模塊設(shè)計用戶管理模塊:該模塊包括員工管理和系統(tǒng)用戶管理,系統(tǒng)用戶主要是普通管理員,對用戶信息進(jìn)行管理,只有員工才可在該系統(tǒng)上進(jìn)行相應(yīng)的操作。用戶對個人信息可進(jìn)行修改;管理員可對自己的個人信息進(jìn)行維護,同時可對用戶的密碼信息進(jìn)行修改,也可刪除系統(tǒng)中的用戶。公告信息管理模塊公告信息管理模塊主要實現(xiàn)了管理員可以在系統(tǒng)中添加公告信息,也可以修改系統(tǒng)中已有的公告信息,同時可查看公告信息和搜索公告信息;而用戶只能查看公告信息和搜索公告信息。賬單管理模塊用戶賬單員工模塊主要實現(xiàn)的是對員工的賬單功能,同時可查看自己的賬單記錄,并對賬單可進(jìn)行取消賬單操作。管理員登錄系統(tǒng)后,可查看用戶的賬單信息,也可搜索賬單信息,同時可對賬單信息進(jìn)行確認(rèn)或刪除的操作。員工管理模塊管理員點擊員工管理菜單,點擊員工添加子菜單,添加員工信息,添加成功后,該員工信息將顯示給用戶查看。打印和導(dǎo)出模塊系統(tǒng)多個頁面可以進(jìn)行打印功能,包括信息詳細(xì)頁,信息列表頁,打印時調(diào)用外部打印機,完成打印設(shè)置即可打印,在信息列表頁可以將該信息列表導(dǎo)出至excel中,用戶選擇保存excel文件的路徑,既可以下載至本地,在excel中可以自由編輯。4.4系統(tǒng)安全設(shè)計財務(wù)報賬管理系統(tǒng)才為了防止被暴力登錄,設(shè)置了登錄驗證碼功能。除此之外,為了保證數(shù)據(jù)的安全性,用戶密碼被加密后存入系統(tǒng)數(shù)據(jù)庫中,此外數(shù)據(jù)庫采用的是Mysql相對穩(wěn)定,數(shù)據(jù)通過人工備份的方式進(jìn)行定期備份。系統(tǒng)整體上數(shù)據(jù)業(yè)務(wù)邏輯前臺頁面做到了很好的分離,這也是能夠相對保證安全。4.5表單字段校驗處理設(shè)計1.出錯信息類型出錯信息類型包括:A未輸入必填項;B應(yīng)輸入合法字符或數(shù)字卻輸入非法字符或數(shù)字;C對空數(shù)據(jù)表進(jìn)行更改或刪除操作;D向要求唯一值的關(guān)鍵字段添加重復(fù)值。2.出錯處理對策對于錯誤A,系統(tǒng)要求用戶輸入非空值。對于錯誤B,系統(tǒng)要求用戶輸入合法字符。對于錯誤C,系統(tǒng)提示數(shù)據(jù)表無記錄可更改或刪除。對于錯誤D,系統(tǒng)要求用戶輸入非重復(fù)值。4.6系統(tǒng)維護設(shè)計財務(wù)報賬管理系統(tǒng)是個現(xiàn)代化的高度集成的綜合信息系統(tǒng),系統(tǒng)主要服務(wù)對象為用戶,最大化在頁面中提供多的信息,因此在系統(tǒng)維護上,數(shù)據(jù)量較大,整體的維護設(shè)計如下:(1)代碼的維護:部署在云服務(wù)器上或本地服務(wù)器,通過SVN或FTP保持版本更新迭代。(2)功能增加:功能升級在必要的前提下。(3)數(shù)據(jù)維護:根據(jù)安全性等需求,定期對數(shù)據(jù)庫進(jìn)行人工備份。4.7數(shù)據(jù)庫設(shè)計4.7.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫的設(shè)計在整個系統(tǒng)開發(fā)的過程中扮演者關(guān)鍵的角色,前期考慮不全面修改數(shù)據(jù)庫有可能整個系統(tǒng)都要重新開發(fā),所以數(shù)據(jù)庫的設(shè)計不容忽視。數(shù)據(jù)庫具有完整性和一致性,并且數(shù)據(jù)庫的響應(yīng)速度非常的快。在財務(wù)報賬管理系統(tǒng)中,設(shè)計數(shù)據(jù)庫表的各個字段,確定表和表之間的關(guān)聯(lián)關(guān)系,在后期的開發(fā)中盡量減少改動數(shù)據(jù)庫,提高開發(fā)效率。4.7.2概念設(shè)計數(shù)據(jù)庫的前期設(shè)計最關(guān)鍵的步驟是概念結(jié)構(gòu)的設(shè)計,是數(shù)據(jù)模型的概念信息。將需求分析抽象為信息世界的結(jié)構(gòu),才能更好更準(zhǔn)確的使用數(shù)據(jù)庫管理系統(tǒng)。其設(shè)計具有以下兩點優(yōu)勢:(1)能夠體現(xiàn)事物之間的關(guān)聯(lián)關(guān),滿足用戶對數(shù)據(jù)的處理要求。(2)易于理解、更改,用戶的積極參與是數(shù)據(jù)庫設(shè)計成功的關(guān)鍵。(3)描述概念模型最有力的工具就是E-R模型,使用E-R圖可以清楚的指導(dǎo)各實體之間的聯(lián)系,它有三個關(guān)鍵的元素,即實體、屬性和聯(lián)系。系統(tǒng)總體ER圖如下圖所示。圖4-3系統(tǒng)總體ER圖4.7.3邏輯設(shè)計數(shù)據(jù)庫的概念模型轉(zhuǎn)換成邏輯模型又稱邏輯設(shè)計,通俗的講就是實體圖轉(zhuǎn)化成以關(guān)系模式、層次模式表現(xiàn)出來的形式。財務(wù)報賬管理系統(tǒng)的數(shù)據(jù)庫邏輯結(jié)構(gòu)如下。管理員用戶信息(序號、用戶名、密碼、權(quán)限、添加時間)員工信息(用戶名、密碼、姓名、性別、年齡、部門、聯(lián)系方式、照片)賬單信息(單號、交通費、補貼費、餐費、交際費、其他、合計金額、報銷費、狀態(tài)、報銷時間、審批人)公告信息(序號、標(biāo)題、類別、首頁圖片、點擊率、添加人、添加時間)4.7.3物理設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計,就是在數(shù)據(jù)庫中創(chuàng)建表設(shè)置表的屬性和大小等等,建立表和表之間的關(guān)聯(lián)關(guān)系。本系統(tǒng)所使用的部分?jǐn)?shù)據(jù)表結(jié)構(gòu)如下。allusers表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2username150255
3pwd150255
4cx150255
5addtimeDateTime819
baoxiaozhangdan表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2danhao150255
3jiaotongfei150255
4zhusufei150255
5butiefei150255
6canfei150255
7jiaojifei150255
8qita150255
9hejijine150255
10fapiaozhaopian150255
11baoxiaoren150255
12zhuangtai150255
13baoxiaoshijianDateTime819
14issh30255
15addtimeDateTime819
bumenxinxi表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2bumen150255
3addtimeDateTime819
gonggaoxinxi表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2biaoti150255
3neirong255255
4fabushijianDateTime819
5addtimeDateTime819
shenpi表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2danhao150255
3jiaotongfei150255
4butiefei150255
5canfei150255
6jiaojifei150255
7qita150255
8hejijine150255
9baoxiaoren150255
10zhuangtai150255
11baoxiaoshijian150255
12shenpiren150255
13shenpishijianDateTime819
14issh30255
15iszf30255
16addtimeDateTime819
yonghuxinxi表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2yonghuming150255
3mima150255
4xingming150255
5xingbie150255
6nianling150255
7bumen150255
8lianxifangshi150255
9zhaopian150255
10beizhu255255
11addtimeDateTime819
yonghuzhuce表:序號字段名稱字段類型大小允許為空最大長度備注1idInt410
2yonghuming150255
3mima150255
4xingming150255
5xingbie150255
6chushengnianyueDateTime819
7QQ150255
8youxiang150255
9shouji150255
10shenfenzheng150255
11touxiang150255
12dizhi150255
13beizhu255255
14issh30255
15addtimeDateTime819
第5章系統(tǒng)實現(xiàn)5.1登錄模塊的實現(xiàn)系統(tǒng)的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進(jìn)入訪問。通過在登錄提交表單,后臺處理判斷是否為合法用戶,進(jìn)行頁面跳轉(zhuǎn),進(jìn)入系統(tǒng)中去。登錄合法性判斷過程:用戶輸入賬號和密碼后,系統(tǒng)首先確定輸入輸入數(shù)據(jù)合法性,其不能為空,然后調(diào)用數(shù)據(jù)庫查找alluser表中數(shù)據(jù),進(jìn)行匹配查看此賬號是否存在和密碼是否正確。在主頁中切入登錄窗口頁面,調(diào)用設(shè)計好的CSS、JS和IMAGES等文件對頁面進(jìn)行整體設(shè)計,創(chuàng)建表單,在login.jsp頁面發(fā)送登錄請求,通過applicationContext.xmll文件來指定所要執(zhí)行的DispacherServlet分發(fā)器,分發(fā)器找到控制層下的hsgloginController文件。當(dāng)系統(tǒng)判定賬號密碼都正確,系統(tǒng)會跳轉(zhuǎn)到系統(tǒng)的首頁。用戶登錄模塊的IPO如下所示:輸入:用戶名和密碼。處理:1)檢驗用戶是否滿足輸入的要求,即檢驗用戶名和密碼文本框是否為空,若為空,則提示用戶輸入用戶名和密碼。2)檢驗是否存在用戶輸入的用戶名,并且密碼是否正確。3)從數(shù)據(jù)庫中提取記錄,并儲存在本地的session中(timeout默認(rèn)=30min)。4)根據(jù)用戶名,將其顯示在系統(tǒng)首頁上。5)關(guān)閉窗口。輸出:是否成功的信息。登錄流程圖如下所示。圖5-1登錄流程圖系統(tǒng)登錄界面如下所示。圖5-2系統(tǒng)登錄用戶登錄的邏輯代碼如下:@RequestMapping("hsglogin.do") publicStringcheckAllusersLogin(Allusersallusers,HttpSessionsession){ Map<String,Object>u=newHashMap<String,Object>(); System.out.println("name==="+allusers.getUsername()); u.put("username",allusers.getUsername()); //u.put("utype","用戶"); //Md5.MD5HexEncode(user.getPassword()) u.put("pwd",allusers.getPwd()); allusers=allusersService.allusersLogin(u); if(allusers!=null){ session.setAttribute("username",allusers); System.out.println("username="+allusers); session.removeAttribute("suc"); return"redirect:index.do"; }else{ System.out.println("usernafwfwwme="); session.setAttribute("suc","登錄失??!用戶名或密碼錯誤!"); return"login"; }5.2用戶子系統(tǒng)模塊的實現(xiàn)5.2.1用戶首頁的實現(xiàn)本系統(tǒng)的首頁使用多個jsp頁面組成,通過設(shè)置頁面的長度和高度限制顯示區(qū)域的大小,整個系統(tǒng)首頁以圖片為背景。在一個jsp頁面中,使用css指定字體大小和字體類型以及其位置,水平排列菜單欄,通過設(shè)置超鏈接的樣式去掉下劃線和鼠標(biāo)移動到該選項時變顏色等等,編寫javascript腳本在導(dǎo)航欄顯示系統(tǒng)的當(dāng)前日期,首先定義一個數(shù)組d存放周一至周日,創(chuàng)建一個獲取時間的對象time后通過該對象的方法獲取年月日,(time.getDay())%7計算得到的結(jié)果是數(shù)組的下標(biāo),通過數(shù)組下標(biāo)就獲取了數(shù)組的值,利用字符竄連接把年月日和星期轉(zhuǎn)換成字符竄,通過document.getElementById("date")獲取標(biāo)簽后使用innerHTML把該字符竄顯示在jsp頁面。利用<jsp:include></jsp:include>標(biāo)簽包含設(shè)計好的頭部和左邊部分的網(wǎng)頁。如下圖所示為系統(tǒng)的首頁界面。圖5-3系統(tǒng)首頁其中載入前臺頁面的主要代碼如下:<td><%@includefile="qttop.jsp"%></td><td><%@includefile="qtleft.jsp"%></td><td><%@includefile="qtdown.jsp"%></td>5.2.2賬單模塊的實現(xiàn)員工點擊賬單報銷,使用getmap(id,"xinxi"),通過員工ID得到員工信息,將員工信息賦值給賬單信息,添加賬單則發(fā)出名為baoxiaozhangdan_add.jsp的action請求,找到BaoxiaozhangdanController控制層的addBaoxiaozhangdan()方法,然后調(diào)用業(yè)務(wù)邏輯層下的baoxiaozhangdanService類,將賬單內(nèi)容插入賬單表中。員工賬單流程圖如下所示。圖5-12員工賬單流程圖員工賬單界面如圖所示。圖5-13員工賬單賬單管理界面如圖所示。圖5-14賬單管理賬單添加關(guān)鍵代碼為:@RequestMapping("addBaoxiaozhangdan.do") publicStringaddBaoxiaozhangdan(HttpServletRequestrequest,Baoxiaozhangdanbaoxiaozhangdan,HttpSessionsession)throwsSQLException{ Timestamptime=newTimestamp(System.currentTimeMillis()); baoxiaozhangdan.setAddtime(time.toString().substring(0,19)); baoxiaozhangdanService.add(baoxiaozhangdan); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl",request.getHeader("Referer")); //session.setAttribute("backurl","baoxiaozhangdanList.do"); return"redirect:postback.jsp"; //return"redirect:baoxiaozhangdanList.do"; }5.3管理員子系統(tǒng)模塊的實現(xiàn)5.3.1用戶管理模塊的實現(xiàn)用戶在yhzhgl查看用戶信息,先使用sql語句查詢出所有用戶表的數(shù)據(jù),然后調(diào)用PageManager.getPages(url,4,sql,request),返回一個ArrayList的對象,在for循環(huán)里,使用jsp得到每個ArrayList對象的數(shù)據(jù),然后放入頁面模板中,添加用戶則將添加的用戶數(shù)據(jù)封裝在HashMap,中然后調(diào)用action包下Action類的insert方法將用戶內(nèi)容插入用戶表中。系統(tǒng)用戶管理界面如下圖所示。圖5-17系統(tǒng)用戶管理員工管理界面如下圖所示。圖5-18員工管理系統(tǒng)用戶管理關(guān)鍵代碼為:@RequestMapping("allusersList.do") publicStringgoodList(@RequestParam(value="page",required=false)Stringpage, ModelMapmap,HttpSessionsession,Allusersallusers,Stringusername,Stringpwd,Stringcx){ /*if(session.getAttribute("user")==null){ return"login"; }*/ if(page==null||page.equals("")){ page="1"; } PageBeanpageBean=newPageBean(Integer.parseInt(page),15); Map<String,Object>pmap=newHashMap<String,Object>(); pmap.put("pageno",pageBean.getStart()); pmap.put("pageSize",15); Map<String,Object>bmap=newHashMap<String,Object>(); Map<String,Object>cmap=newHashMap<String,Object>(); /*pmap.put("uid",((Users)session.getAttribute("user")).getId()); bmap.put("uid",((Users)session.getAttribute("user")).getId());*/ if(username==null||username.equals("")){pmap.put("username",null);cmap.put("username",null);}else{pmap.put("username",username);cmap.put("username",username);} if(pwd==null||pwd.equals("")){pmap.put("pwd",null);cmap.put("pwd",null);}else{pmap.put("pwd",pwd);cmap.put("pwd",pwd);} if(cx==null||cx.equals("")){pmap.put("cx",null);cmap.put("cx",null);}else{pmap.put("cx",cx);cmap.put("cx",cx);} inttotal=allusersService.getCount(bmap); pageBean.setTotal(total); List<Allusers>list=allusersService.getByPage(pmap); map.put("page",pageBean); map.put("list",list); session.setAttribute("p",1); return"allusers_list"; }5.3.2密碼修改模塊的實現(xiàn)修改用戶密碼是將用戶的原密碼用新密碼替換,用戶在原密碼輸入正確的情況下,更新用戶信息表中的密碼以及確認(rèn)密碼字段,密碼修改成功之后頁面跳轉(zhuǎn)到密碼修改界面,下次登錄使用新密碼。密碼修改流程圖如下所示。圖5-19密碼修改流程圖密碼修改關(guān)鍵代碼為:if(ac.equals("uppass")) { Stringolduserpass=request.getParameter("ymm"); Stringuserpass=request.getParameter("xmm1"); Stringcopyuserpass=request.getParameter("xmm2"); HashMapm=dao.getmaps("yonghuming",(String)request.getSession().getAttribute("username"),"yonghuzhuce"); if(!(((String)m.get("mima")).equals(olduserpass))) { request.setAttribute("error",""); go("mod2.jsp",request,response); }else{ //Stringid=(String)user.get("id"); Stringsql="updateyonghuzhucesetmima='"+userpass+"'whereyonghuming='"+(String)request.getSession().getAttribute("username")+"'"; mOper(sql); request.setAttribute("suc",""); go("mod2.jsp",request,response); } }5.3.3員工管理模塊的實現(xiàn)用戶在yuangongxinxi_list查看員工信息,先使用sql語句查詢出所有員工表的數(shù)據(jù),然后調(diào)用PageManager.getPages(url,4,sql,request),返回一個ArrayList的對象,在for循環(huán)里,使用jsp得到每個ArrayList對象的數(shù)據(jù),然后放入頁面模板中。用戶點擊添加員工則跳轉(zhuǎn)至yuangongxinxi_add.jsp,添加員工則將添加的員工數(shù)據(jù)封裝在HashMap,中然后調(diào)用action包下Action類的insert方法將員工內(nèi)容插入員工表中。員工管理流程圖如下所示。圖5-21員工管理流程圖員工添加如下圖所示:圖5-22員工添加員工查詢?nèi)缦聢D所示:圖5-23員工查詢員工信息添加關(guān)鍵代碼為:@RequestMapping("addYuangongxinxi.do") publicStringaddYuangongxinxi(HttpServletRequestrequest,Yuangongxinxiyuangongxinxi,HttpSessionsession)throwsSQLException{ Timestamptime=newTimestamp(System.currentTimeMillis()); yuangongxinxi.setAddtime(time.toString().substring(0,19)); yuangongxinxiService.add(yuangongxinxi); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl",request.getHeader("Referer")); //session.setAttribute("backurl","yuangongxinxiList.do"); return"redirect:postback.jsp"; //return"redirect:yuangongxinxiList.do"; }5.3.4公告管理模塊的實現(xiàn)管理員發(fā)布新的公告信息,系統(tǒng)前臺顯示公告信息,公告信息添加功能主要指對其編號等一些基本信息的添加、刪除和修改。公告查詢能根據(jù)公告編號等多種條件對公告信息進(jìn)行查詢。公告管理流程圖如下所示。圖5-24公告管理流程圖公告添加如下圖所示:圖5-25公告添加公告查詢?nèi)缦聢D所示:圖5-26公告查詢公告信息添加關(guān)鍵代碼為:@RequestMapping("addHuodongxinxi.do") publicStringaddHuodongxinxi(HttpServletRequestrequest,Huodongxinxihuodongxinxi,HttpSessionsession)throwsSQLException{ Timestamptime=newTimestamp(System.currentTimeMillis()); huodongxinxi.setAddtime(time.toString().substring(0,19)); huodongxinxiService.add(huodongxinxi); session.setAttribute("backxx","添加成功"); session.setAttribute("backurl",request.getHeader("Referer")); //session.setAttribute("backurl","huodongxinxiList.do"); return"redirect:postback.jsp"; //return"redirect:huodongxinxiList.do"; }第6章系統(tǒng)測試6.1測試目的與定義在對該系統(tǒng)進(jìn)行完詳細(xì)設(shè)計和編碼之后,就要對財務(wù)報賬管理系統(tǒng)的程序進(jìn)行測試,檢測程序是否運行無誤,反復(fù)進(jìn)行測試和修改,使之最后成為完整的軟件,滿足用戶的需求,實現(xiàn)預(yù)期的功能。6.2功能測試功能測試就是對產(chǎn)品的各功能進(jìn)行驗證,根據(jù)功能測試用例,逐項檢測,檢查產(chǎn)品是否達(dá)到用戶要求的功能。下面列出的測試用例是基于需求分析階段的用例描述而進(jìn)行的設(shè)計。下面將通過表格的形式介紹針對本系統(tǒng)每個功能模塊所進(jìn)行的功能測試。測試用例表如下所示。表6-1測試用例測試用例方案輸入數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果用戶登錄使用已存在的用戶名和相匹配的密碼、驗證碼登錄系統(tǒng)用戶名:zcyh密碼:zcyh驗證碼:6066系統(tǒng)提示登錄成功,并跳轉(zhuǎn)至系統(tǒng)主頁與預(yù)期結(jié)果一致使用已存在的用戶名和不匹配的密碼、正確的驗證碼登錄系統(tǒng)用戶名:zcyh密碼:zcyh123驗證碼:6066系統(tǒng)提示登錄失敗,密碼錯誤與預(yù)期結(jié)果一致使用已存在的用戶名和相匹配的密碼、不正確驗證碼登錄系統(tǒng)用戶名:zcyh密碼:zcyh驗證碼:6061系統(tǒng)提示登錄失敗,驗證碼錯誤與預(yù)期結(jié)果一致密碼修改用戶登錄系統(tǒng)后,使用原始密碼和兩次一致新密碼修改當(dāng)前的登錄密碼原始密碼:zcyh新密碼:zcyh1確認(rèn)新密碼:zcyh1系統(tǒng)提示修改密碼成功與預(yù)期結(jié)果一致原始密碼輸入錯誤,兩次新密碼一致原始密碼:zcyh2新密碼:zcyh1確認(rèn)新密碼:zcyh1系統(tǒng)提示修改密碼失敗,原始密碼錯誤與預(yù)期結(jié)果一致原始密碼輸入正確,兩次新密碼不一致原始密碼:zcyh新密碼:zcyh1確認(rèn)新密碼:zcyh2系統(tǒng)提示修改密碼失敗,兩次新密碼不一致與預(yù)期結(jié)果一致員工管理用戶已登錄,打開員工添加界面,輸入員工姓名、內(nèi)容等信息員工姓名:wernziihu員工內(nèi)容:qerjzfiew系統(tǒng)提示員工添加成功,新員工成功顯示與預(yù)期結(jié)果一致用戶已登錄,打開員工添加界面,用戶未輸入員工姓名和內(nèi)容員工姓名:員工內(nèi)容:系統(tǒng)提示員工添加失敗與預(yù)期結(jié)果一致公告管理用戶已登錄,打開公告添加界面,輸入公告標(biāo)題、內(nèi)容等信息公告標(biāo)題:wernziihu公告內(nèi)容:qerjzfiew系統(tǒng)提示公告添加成功,新公告成功顯示與預(yù)期結(jié)果一致用戶已登錄,打開公告添加界面,用戶未輸入公告標(biāo)題和內(nèi)容公告標(biāo)題:公告內(nèi)容:系統(tǒng)提示公告添加失敗與預(yù)期結(jié)果一致6.3測試結(jié)果測試完成后,系統(tǒng)總體上已經(jīng)完成了預(yù)期的所有功能,滿足了任務(wù)書中的各項要求,該系統(tǒng)操作簡便,界面簡潔,安全性高,對用戶來說無疑是一款非常實用的財務(wù)報賬管理系統(tǒng)。6.4測試評價軟件基本達(dá)到設(shè)計要求,功能完整,操作簡便,界面簡潔,安全可靠,錯誤處理正確,且能在出錯時提示出相對應(yīng)的錯誤種類,然而同時在測試中也發(fā)現(xiàn)了軟件的一些不足。比如,該系統(tǒng)在用戶的數(shù)據(jù)量達(dá)到上萬條時,頁面操作會有微小的卡頓,等等一些缺陷,這些需要在軟件之后的進(jìn)一步修改和維護時進(jìn)行修改。第7章總結(jié)通過財務(wù)報賬管理系統(tǒng)的開發(fā),本人鞏固了之前學(xué)過的知識,平時所學(xué)到的知識不僅融合了,還獲得了許多其他學(xué)科上知識,本人深深體會到學(xué)科之間的關(guān)聯(lián)效應(yīng)。為了完成畢業(yè)設(shè)計,做了很多的準(zhǔn)備,首先,在數(shù)據(jù)庫系統(tǒng)的設(shè)計過程中,尤其是在數(shù)據(jù)庫的工作原理、工作特點,對其深刻的討論,與此同時,對于小型站點來說,最好服務(wù)器的選擇,其次,利用所學(xué)的知識點分析所做的系統(tǒng),并在此基礎(chǔ)上設(shè)計。目前本系統(tǒng)已經(jīng)上線,正在試運行階段,用戶反饋良好,基本完成用戶所需,試運行過程中沒有出現(xiàn)阻斷性問題,有一些不足和小問題也及時予以修正,系統(tǒng)上線后,為了保證數(shù)據(jù)的安全性,對系統(tǒng)進(jìn)行了備份操作,系統(tǒng)備份是每兩個月備份一次,數(shù)據(jù)庫備份為每周備份一次,系統(tǒng)部署在租賃的云平臺服務(wù)器中。本次系統(tǒng)上線成功后,得到了用戶的高度認(rèn)可,已經(jīng)完全能夠滿足用戶所需,接下來的工作,就是更好的完善整個系統(tǒng),根
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024中介行業(yè)人才招聘保密及競業(yè)限制服務(wù)合同3篇
- 糖尿病冬季保養(yǎng)
- 2024年保險業(yè)務(wù)員個人工作總結(jié)(34篇) (一)
- 《婦女問題研究》課件
- 工人拆房合同范例
- 小區(qū)院內(nèi)房屋轉(zhuǎn)讓合同范例
- 關(guān)聯(lián)合同范例
- 工廠工件配送合同范例
- 制定合同范例體系
- 雪松苗木售賣合同范例
- 《零售藥店實務(wù)》期末考試復(fù)習(xí)題及答案
- 培訓(xùn)中心商業(yè)計劃書
- 2025年上半年事業(yè)單位聯(lián)考內(nèi)蒙古自治區(qū)民政廳招聘3人準(zhǔn)考重點基礎(chǔ)提升(共500題)附帶答案詳解
- 2024年度云計算中心綜合布線合同5篇
- 2024-2025學(xué)年華東師大新版八年級上冊數(shù)學(xué)期末復(fù)習(xí)試卷(含詳解)
- 吉首大學(xué)《管理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《道路車輛 48V供電電壓的電氣及電子部件 電性能要求和試驗方法》文本以及編制說明
- 《病理科(中心)建設(shè)與配置標(biāo)準(zhǔn)》
- 測量應(yīng)急管理方案
- 克雅氏病的護理
- 2023年全國高中數(shù)學(xué)聯(lián)賽北京賽區(qū)預(yù)賽試題
評論
0/150
提交評論