




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要 隨著計(jì)算機(jī)技術(shù)的發(fā)展,信息化技術(shù)越發(fā)貼近人們的生活。傳統(tǒng)的記 事本管理方式由于過(guò)多的繁雜步驟、信息保存的不完整性,已經(jīng)滿足不了 當(dāng)今社會(huì)各公司及個(gè)人的需求。 日常費(fèi)用報(bào)銷管理系統(tǒng)在設(shè)計(jì)方面采用 b/s 模式,同時(shí)使用 jsp 技術(shù) 進(jìn)行基本頁(yè)面的設(shè)計(jì),使用 myeclipse 工具進(jìn)行項(xiàng)目編寫整合,利用 mvc 框架中的 servlet 完成功能實(shí)現(xiàn),后臺(tái)數(shù)據(jù)庫(kù)選用 mysql 數(shù)據(jù)庫(kù)。主要功能 包括登錄連接、員工信息錄入、報(bào)銷登記、報(bào)銷審批和查詢報(bào)表五大功能。 用戶通過(guò)登錄界面登錄到客戶端對(duì)報(bào)銷信息進(jìn)行增刪改查操作。 日常費(fèi)用報(bào)銷管理系統(tǒng)使得費(fèi)用管理輕松、快捷,并且使得信息能夠 長(zhǎng)時(shí)間
2、保存,提高企業(yè)的管理效率。 目目 錄錄 第一章 緒論 .1 1.1 論文背景及課題來(lái)源 .1 1.2 本課題在國(guó)內(nèi)外發(fā)展?fàn)顩r.1 1.3 應(yīng)解決的問(wèn)題及系統(tǒng)開發(fā)意義.1 第二章 開發(fā)工具及相關(guān)技術(shù)介紹 .3 2.1 java與 mvc 簡(jiǎn)介.3 2.2myeclipse介紹 .4 2.3b/s 模型介紹.4 2.4 用 java 實(shí)現(xiàn) mvc 模型.5 2.5 java中的 jsp 簡(jiǎn)介.6 2.6 mysql 簡(jiǎn)介 .6 第三章 系統(tǒng)需求分析 .7 3.1 系統(tǒng)任務(wù)描述 .7 3.2 系統(tǒng)功能分析 .7 3.2.1 系統(tǒng)的功能需求.7 3.2.2 系統(tǒng)數(shù)據(jù)流圖. .8 3.2.3 系統(tǒng)數(shù)據(jù)分
3、析 .8 3.3 系統(tǒng)可行性分析 .10 第四章 系統(tǒng)設(shè)計(jì) .12 4.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) .12 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì) .13 4.3 系統(tǒng)功能模塊詳細(xì)設(shè)計(jì) .14 第五章 編碼與實(shí)現(xiàn) .16 5.1 系統(tǒng)主要模塊代碼 .16 5.1.1 連接數(shù)據(jù)庫(kù) .16 5.1.2 登陸進(jìn)系統(tǒng) .17 5.1.3 增加新報(bào)銷信息.18 5.1.4 修改報(bào)銷信息.20 5.1.5 刪除報(bào)銷數(shù)據(jù).23 5.2 系統(tǒng)測(cè)試 .25 結(jié) 束 語(yǔ) .28 參考文獻(xiàn) .29 第一章第一章 緒論緒論 1.11.1 論文背景及課題來(lái)源論文背景及課題來(lái)源 隨著計(jì)算機(jī)技術(shù)的發(fā)展,信息化技術(shù)越發(fā)貼近人們的生活。傳統(tǒng)的記事本管理
4、方 式由于過(guò)多的繁雜步驟、信息保存的不完整性,已經(jīng)滿足不了當(dāng)今社會(huì)各公司及個(gè)人 的需求。日常費(fèi)用報(bào)銷管理系統(tǒng)使得費(fèi)用管理輕松、快捷,并且使得信息能夠長(zhǎng)時(shí)間 保存,提高企業(yè)的管理效率。 基于 b/s 模型的日常費(fèi)用報(bào)銷管理系統(tǒng)是應(yīng)用于管理公司的日常費(fèi)用報(bào)銷,它的 主要特點(diǎn)有: (1)通用性:日常費(fèi)用報(bào)銷管理系統(tǒng)在各種各樣的系統(tǒng)網(wǎng)絡(luò)中均可以運(yùn)行,系統(tǒng) 具有較高的可移植性和使用性; (2)實(shí)用性:系統(tǒng)具有良好的操作界面,簡(jiǎn)單易懂,便于工作人員利用來(lái)管理業(yè) 務(wù)。 (3)信息持久性:日常費(fèi)用報(bào)銷管理系統(tǒng)可以長(zhǎng)時(shí)間保存信息,這方便了公司長(zhǎng) 時(shí)間之后依然可以對(duì)公司消費(fèi)進(jìn)行查賬。 日常費(fèi)用報(bào)銷管理系統(tǒng)的實(shí)用性
5、和信息持久性是其最大的特點(diǎn)。一個(gè)良好的系統(tǒng) 必須達(dá)到操作簡(jiǎn)單的效果,這樣才使得用戶能夠快速地完成對(duì)信息的增刪改查工作。 信息的長(zhǎng)時(shí)間保存更是其重要性之一,有了信息的持久性,系統(tǒng)就有了更大的保障。 1.21.2 本課題在國(guó)內(nèi)外發(fā)展?fàn)顩r本課題在國(guó)內(nèi)外發(fā)展?fàn)顩r 隨著計(jì)算機(jī)技術(shù)的發(fā)展、普及,越來(lái)越多的手動(dòng)操作被計(jì)算機(jī)所替代,這一方面 解決了資源的浪費(fèi),另一方面方便了人們更簡(jiǎn)單地解決問(wèn)題,當(dāng)人們意識(shí)到計(jì)算機(jī)系 統(tǒng)的優(yōu)越性之后,系統(tǒng)開發(fā)隨之出現(xiàn)。信息技術(shù)的發(fā)展使得越來(lái)越多的公司都開始利 用系統(tǒng)來(lái)管理公司的日常業(yè)務(wù),像金牛、興元 x 是比較好的應(yīng)用比較廣泛的管理系統(tǒng), 很多國(guó)內(nèi)外公司都在使用,方便了公司對(duì)于
6、員工的消費(fèi)狀況進(jìn)行統(tǒng)計(jì)、管理。各方面 數(shù)據(jù)顯示反饋信息都是對(duì)其優(yōu)越性的贊同。 1.31.3 應(yīng)解決的問(wèn)題及系統(tǒng)開發(fā)意義應(yīng)解決的問(wèn)題及系統(tǒng)開發(fā)意義 本系統(tǒng)針對(duì)公司日常費(fèi)用報(bào)銷的需要,建立了客戶端、服務(wù)器端。主要解決的問(wèn) 題包括: (1)客戶端要實(shí)現(xiàn)界面化,并且界面盡量簡(jiǎn)約、美觀、人性化。 (2)服務(wù)器端能夠正確的啟動(dòng),時(shí)刻監(jiān)視客戶端,通過(guò) session 保持與客戶端的 連接。 (3)客戶端能夠準(zhǔn)確連接上服務(wù)器端,將輸入的信息及時(shí)處理并保存到數(shù)據(jù)庫(kù)中。 (4)異常處理,對(duì)于用戶的不正確操作系統(tǒng)應(yīng)該有對(duì)應(yīng)的提示。 基于 b/s 的日常費(fèi)用報(bào)銷管理系統(tǒng)它的開發(fā)意義在于為公司提供了一個(gè)方便快捷 的平臺(tái)
7、幫助公司處理日常費(fèi)用報(bào)銷業(yè)務(wù)。 第二章第二章 開發(fā)工具及相關(guān)技術(shù)介紹開發(fā)工具及相關(guān)技術(shù)介紹 2.12.1 javajava 與與 mvcmvc 簡(jiǎn)介簡(jiǎn)介 java 是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由 sun microsystems 公司推出的 java 程 序設(shè)計(jì)語(yǔ)言和 java 平臺(tái)(即 javase, javaee, javame)的總稱。java 技術(shù)具有卓越的 通用性、高效性、安全性,廣泛應(yīng)用于移動(dòng)電話、個(gè)人電腦、游戲控制臺(tái)、數(shù)據(jù)中心 和互聯(lián)網(wǎng)。在當(dāng)今社會(huì)移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,java 更具備了顯著的優(yōu)勢(shì)和廣闊的 前景1。 基于 mvc,m 是指模型,v 是指視圖,c 是指控制,使
8、用 mvc 的目的是將 m 和 v 的代碼實(shí)現(xiàn)分離,從而使得程序輕度耦合,獨(dú)立性更優(yōu)越。比如一批統(tǒng)計(jì)數(shù)據(jù)可以 分別用線形圖、柱狀圖來(lái)表示。c 確保了 m 和 v 的同步,一旦 m 改變,v 應(yīng)該同步 更新。 模型視圖控制器(mvc)是 xerox parc 為編程語(yǔ)言 smalltalk80 發(fā)明的一 種軟件設(shè)計(jì)模式,現(xiàn)已被廣泛使用。后來(lái)被推薦為 oracle 旗下 sun 公司 java ee 平臺(tái) 的設(shè)計(jì)模式,并且受到越來(lái)越多的使用 coldfusion 和 php 的開發(fā)者的歡迎。模型視 圖控制器模式是一個(gè)有用的工具箱2。 mvc 優(yōu)點(diǎn): (1)耦合性低 業(yè)務(wù)層和視圖層分離,這樣就可以更
9、改視圖層代碼而不用重新編譯模型和控制器 代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng) mvc 的模型層即可。 因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則3。 (2)生命周期成本低 mvc 使開發(fā)和維護(hù)客戶端的技術(shù)含量下降。 (3)部署快 使用 mvc 模式使開發(fā)時(shí)間大幅度減少,它使 java 開發(fā)人員更加專注于業(yè)務(wù)邏輯, 界面程序員(html 和 jsp 開發(fā)人員)更加專注于表現(xiàn)形式上。 (4)可維護(hù)性高 將 m 和 c 進(jìn)行分離使得 web 更容易得到修改與維護(hù)。 (5)有利軟件工程化管理 由于不同的層各司其職,每一層不同的應(yīng)用具有一定的相同的特征,
10、有利于通過(guò) 工程化、工具化管理程序代碼。控制器也提供了一個(gè)好處,就是可以使用控制器來(lái)聯(lián) 接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力 的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處 理,然后選擇視圖將處理結(jié)果顯示給用戶。 2.2myeclipse2.2myeclipse 介紹介紹 myeclipse(是 myeclipse enterprise workbench 的縮寫)是對(duì) eclipseide 的擴(kuò)展, 利用它我們可以在 javaee 的開發(fā)、發(fā)布和數(shù)據(jù)庫(kù)以及應(yīng)用程序服務(wù)器的整合方面進(jìn)一 步提高工作效率。它是功能豐富的 javae
11、e 集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、 測(cè)試和發(fā)布功能 html,struts,jsp,css,javascript,spring,sql,hibernate4。 myeclipse 是一個(gè)十分優(yōu)秀的用于開發(fā) java, j2ee 的 eclipse 插件集合, myeclipse 的功能非常強(qiáng)大,支持也十分廣泛。myeclipse 目前支持 java servlet,ajax, jsp, struts,spring, hibernate,jdbc 數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能。myeclipse 幾乎囊括了 目前所有主流開源產(chǎn)品的專屬 eclipse 開發(fā)工具。根據(jù)官方最新消息,myecli
12、pse 2013 已經(jīng)正式發(fā)布!myeclipse 2013 支持 html5、jquery 和主流的 javascript 庫(kù)。 隨著 myeclipse 2013 支持 html5 ,你可以添加音頻、視頻等新的元素到你的項(xiàng) 目,從而為移動(dòng)設(shè)備創(chuàng)建更多效果更好的 web 應(yīng)用程序。你甚至還可以通過(guò) html5 可視化設(shè)計(jì)器設(shè)計(jì)令人難以置信的用戶界面。同時(shí),隨著 myeclipse 2013 支持 jquery,你可以通過(guò)插件來(lái)提升性能,并添加動(dòng)畫效果到設(shè)計(jì)中5。 2.3b/s2.3b/s 模型介紹模型介紹 b/s 是 browser/server 的縮寫,即瀏覽器/服務(wù)器技術(shù),也可以稱為 b
13、/s 模型。很 顯然,b/s 技術(shù)有以下幾個(gè)基本特點(diǎn): (1)是 web 興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,它不同于 c/s 的一點(diǎn)就是 b/s 設(shè)計(jì)模 式是通過(guò)瀏覽器來(lái)實(shí)現(xiàn)的,web 瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了 客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使 用。客戶機(jī)上只需安裝一個(gè)瀏覽器,如 google 瀏覽器或 internet explorer,服務(wù)器安裝 oracle、sybase、informix 或 sql server 等數(shù)據(jù)庫(kù)。瀏覽器通過(guò) web server 同數(shù)據(jù)庫(kù) 進(jìn)行數(shù)據(jù)交互。 (2)維護(hù)和升級(jí)方式簡(jiǎn)單易行。目前,軟件系統(tǒng)的改
14、進(jìn)速度越來(lái)越快,b/s 架構(gòu) 的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對(duì)一個(gè)稍微大一點(diǎn)公司來(lái)說(shuō),系統(tǒng)管理人員如果 需要在幾百甚至上千臺(tái)電腦之間來(lái)回奔跑,效率和工作量是非常龐大的,b/s 架構(gòu)的軟 件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。 無(wú)論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的 操作只需要針對(duì)服務(wù)器進(jìn)行。因此,維護(hù)和升級(jí)革命的方式是給客戶機(jī)減負(fù),而給服 務(wù)器增壓。 (3)成本降低,選擇更多。大家都知道 windows 在桌面電腦上幾乎造成壟斷,瀏 覽器成為了標(biāo)準(zhǔn)配置,但在服務(wù)器操作系統(tǒng)上 windows 并不是處于絕對(duì)的統(tǒng)治地位。 現(xiàn)
15、在的趨勢(shì)是凡使用 b/s 架構(gòu)的應(yīng)用管理軟件,只需安裝在 linux 服務(wù)器上即可,而 且安全性高。所以服務(wù)器操作系統(tǒng)的選擇是很多的,不管選用哪種操作系統(tǒng)都可以讓 大部分人使用 windows 作為桌面操作系統(tǒng)電腦不受影響,這就使得最流行的 linux 操 作系統(tǒng)快速發(fā)展起來(lái),linux 除了操作系統(tǒng)是免費(fèi)的以外,連數(shù)據(jù)庫(kù)也是免費(fèi)的,這種 選擇非常盛行。 b/s 軟件技術(shù)是一種通用的,基于消息的技術(shù)。用圖形表示如圖 1 所示: 圖 1 b/s 技術(shù)模型 browser/server 結(jié)構(gòu)的主要優(yōu)點(diǎn)就是速度快。 2.42.4 用用 javajava 實(shí)現(xiàn)實(shí)現(xiàn) mvcmvc 模型模型 mvc 設(shè)計(jì)
16、模式是一個(gè)存在于服務(wù)器表達(dá)層的模型,它將應(yīng)用分開,使得應(yīng)用之間 輕度耦合,提高獨(dú)立性。其中 mvc 是 model-view-control 的簡(jiǎn)稱,即模型-視圖-控 制器。這個(gè)過(guò)程如圖2所示: 圖 2 mvc 實(shí)現(xiàn)信息交互圖 在 mvc 模式中,web 用戶向服務(wù)器提交的所有請(qǐng)求都由控制器接管。接受到請(qǐng) 求之后,控制器負(fù)責(zé)決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理;然后模型根據(jù)用戶請(qǐng)求進(jìn)行 相應(yīng)的業(yè)務(wù)邏輯處理,并返回?cái)?shù)據(jù);最后控制器調(diào)用相應(yīng)的視圖來(lái)格式化模型返回的 數(shù)據(jù),并通過(guò)視圖呈現(xiàn)給用戶6。 2.52.5 javajava 中的中的 jspjsp 簡(jiǎn)介簡(jiǎn)介 jsp 是由 sunmicrosystem
17、s 公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)的技術(shù)標(biāo) 準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè) html 文件中加入 jsp 標(biāo)簽,就構(gòu)成了 jsp 網(wǎng)頁(yè)。java 程序片段可 以操縱數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 e-mail 等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能7。 所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,這樣 大大降低了對(duì)客戶瀏覽器的要求,即使客戶瀏覽器不支持 java 語(yǔ)言,也可以訪問(wèn) jsp 網(wǎng)頁(yè)8。 2.62.6 mysqlmysql 簡(jiǎn)介簡(jiǎn)介 mysql 是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典 mysqlab 公司。目前 mysql 被廣泛地應(yīng)用在 internet
18、上的中小型網(wǎng)站中。由于體積小、速度快、 總體擁有成本低,特別是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有 成本而選擇了 mysql 作為網(wǎng)站數(shù)據(jù)庫(kù)9。 mysql 的重要管理工具: (1)服務(wù)管理器 可以通過(guò)服務(wù)管理器啟動(dòng)、停止、暫停 mysql 服務(wù)器的相關(guān)服務(wù)。當(dāng)操作服務(wù)器 中的數(shù)據(jù)時(shí),應(yīng)該首先確保該服務(wù)器正常啟動(dòng)了相應(yīng)的服務(wù)。 (2)企業(yè)管理器 企業(yè)管理器提供了一種圖形化界面來(lái)操作數(shù)據(jù)庫(kù)對(duì)象,在該界面中可以進(jìn)行數(shù)據(jù) 庫(kù)、表等數(shù)據(jù)對(duì)象的增加、修改、查詢、刪除等操作,可以完成 mysql 中絕大多數(shù)的 管理工作。 (3)查詢分析器 查詢分析器是運(yùn)行、測(cè)試用戶的 transact-s
19、ql 語(yǔ)句、批處理和腳本的場(chǎng)所。 transact-sql(又稱為 t-sql)是 mysql 在標(biāo)準(zhǔn)的 sql 語(yǔ)句上進(jìn)行了擴(kuò)充的語(yǔ)言,是交互 式的結(jié)構(gòu)化查詢語(yǔ)言,能夠完成對(duì) mysql 數(shù)據(jù)庫(kù)的所有操作。sql(結(jié)構(gòu)化查詢語(yǔ)言)起 源于 ibm 的實(shí)驗(yàn)室,目前 sql 語(yǔ)言已經(jīng)成為操作關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)的標(biāo)準(zhǔn)語(yǔ)言。在 asp 中,只要訪問(wèn)數(shù)據(jù)庫(kù),就必然會(huì)使用 sql 語(yǔ)言10。 第三章第三章 系統(tǒng)需求分析系統(tǒng)需求分析 3.13.1 系統(tǒng)任務(wù)描述系統(tǒng)任務(wù)描述 本系統(tǒng)是采用 java 基于 b/s 開發(fā)的日常費(fèi)用報(bào)銷管理系統(tǒng)。管理員在通過(guò)登陸界 面登陸進(jìn)系統(tǒng)后,對(duì)系統(tǒng)內(nèi)的信息進(jìn)行增加、修改、刪除
20、、查詢,其中包括員工登記 信息和報(bào)銷處理信息,處理完信息后必須經(jīng)由領(lǐng)導(dǎo)進(jìn)行審批方可通過(guò)。 用戶只需要在登錄界面中輸入正確的用戶名和密碼即可登錄,本系統(tǒng)用戶名已定, 已設(shè)置初始密碼,如要進(jìn)行修改必須先輸入原始密碼才可進(jìn)行修改。保證系統(tǒng)信息的 安全性。 3.23.2 系統(tǒng)功能分析系統(tǒng)功能分析 .1 系統(tǒng)的功能需求系統(tǒng)的功能需求 報(bào)銷系統(tǒng)通常需要完成以下一些基本功能: 登錄進(jìn)系統(tǒng); 登記公司員工信息; 登記報(bào)銷信息; 對(duì)報(bào)銷信息進(jìn)行修改; 對(duì)報(bào)銷信息進(jìn)行審批; 查詢報(bào)表; 本系統(tǒng)具體功能需求如下: (1)不論是管理員還是用戶都需要在登錄界面輸入正確的用戶名和密碼后才可以 登錄到各自的
21、界面中去。 (2)對(duì)公司員工的信息進(jìn)行對(duì)號(hào)登記,確定人員部門、聯(lián)系方式等以便隨時(shí)聯(lián)系 員工核對(duì)報(bào)銷信息。 (3)報(bào)銷信息登記,要知道報(bào)銷對(duì)象的報(bào)銷是由、費(fèi)用科目、報(bào)銷日期等。 (4)如果因工作上的疏忽導(dǎo)致第一次信息輸入錯(cuò)誤,可對(duì)信息進(jìn)行修改,確保信 息的正確性及完整性。 (5)當(dāng)報(bào)銷信息完整地確認(rèn)后,需交由領(lǐng)導(dǎo)進(jìn)行審批確認(rèn)通過(guò)報(bào)銷事件才可完成。 (6)當(dāng)報(bào)銷已處理,幾個(gè)月或幾年后需要進(jìn)行統(tǒng)計(jì)分析,依然可以進(jìn)行報(bào)銷查詢。 (7)顯著提高工作效率,減少人力、物力資源的投入。報(bào)銷管理系統(tǒng)運(yùn)行穩(wěn)定、 安全性高、性能可靠。 .2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖. . 系統(tǒng)的頂級(jí)數(shù)據(jù)流圖如圖 3
22、 所示: 圖 3 系統(tǒng)頂級(jí)數(shù)據(jù)流圖 用戶在界面進(jìn)行操作,數(shù)據(jù)通過(guò)控制層傳輸?shù)綌?shù)據(jù)庫(kù),然后進(jìn)行 sql 語(yǔ)句處理, 將數(shù)據(jù)進(jìn)行增刪改查操作,并傳輸?shù)斤@示界面。 .3 系統(tǒng)數(shù)據(jù)分析系統(tǒng)數(shù)據(jù)分析 在仔細(xì)調(diào)查費(fèi)用報(bào)銷系統(tǒng)過(guò)程的基礎(chǔ)上,總結(jié)出該系統(tǒng)需要滿足以下系統(tǒng)數(shù)據(jù)的 需求: (1)系統(tǒng)管理員用戶名和管理員密碼。 (2)員工信息記錄員工的資料。包括員工的姓名、性別、所屬部門、身份證號(hào)、 聯(lián)系方式。 (3)報(bào)銷對(duì)象信息記錄報(bào)銷對(duì)象報(bào)銷理由和信息。包括單據(jù)號(hào)、報(bào)銷對(duì)象、單據(jù) 狀態(tài)、是否付款、報(bào)銷日期、報(bào)銷是由、財(cái)務(wù)賬期、報(bào)銷金額及辦理人。 登陸:用戶 名密碼 員工信息的 增刪改查 報(bào)銷登記
23、數(shù) 據(jù)的增刪改 審批數(shù)據(jù)傳 遞 報(bào)表查詢 數(shù)據(jù)庫(kù) mysql (4)報(bào)銷審批主要是是否報(bào)銷狀態(tài)的改變。 日常費(fèi)用報(bào)銷管理系統(tǒng)總體 e-r 圖如圖 4 所示: 圖 4 日常費(fèi)用報(bào)銷管理系統(tǒng)總體 e-r 圖 在仔細(xì)調(diào)查企業(yè)項(xiàng)目管理過(guò)程的基礎(chǔ)上,總結(jié)出該系統(tǒng)需要滿足以下主要系統(tǒng)數(shù) 據(jù)的需求: 圖 5 用戶實(shí)體圖 姓名 報(bào)銷對(duì)象 性別聯(lián)系方式 身份證所屬部門 保存信息 終結(jié)報(bào)銷信息 管理員 審批 修改 刪除報(bào)銷信息 未通過(guò) 通過(guò) 增加 用戶 用戶名 密碼 圖 6 部門員工實(shí)體圖 圖 7 報(bào)銷信息實(shí)體圖 3.33.3 系統(tǒng)可行性分析系統(tǒng)可行性分析 從技術(shù)發(fā)面來(lái)看,java 語(yǔ)言的優(yōu)點(diǎn)主要表現(xiàn)在:簡(jiǎn)單、面
24、向?qū)ο蟆踩缘确矫妗?(1)簡(jiǎn)單性 java 與 c+語(yǔ)言非常相近,但 java 比 c+簡(jiǎn)單,它拋棄了 c+中的一些不是絕對(duì)必 要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運(yùn)算符重載、多重繼承以及自動(dòng)強(qiáng) 迫同型。java 實(shí)現(xiàn)了自動(dòng)的垃圾收集,簡(jiǎn)化了內(nèi)存管理的工作。這使程序設(shè)計(jì)更加簡(jiǎn) 便,同時(shí)減少了出錯(cuò)的可能。 (2)面向?qū)ο?java 將程序視為一個(gè)大的對(duì)象,再將各個(gè)子系統(tǒng)分為小的對(duì)象。對(duì)象中封裝了它 的狀態(tài)和方法,很好地實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,通 是否付款 報(bào)銷金額 財(cái)務(wù)賬期 辦理人 報(bào)銷日期 報(bào)銷事由 單據(jù)狀態(tài) 單據(jù)號(hào) 報(bào)銷對(duì)象 報(bào)銷信息 部門員工聯(lián)系方式
25、 身份證 所屬部門 性別 姓名 過(guò)繼承和重載機(jī)制,子類可以使用或重新定義父類或超類所提供的方法,從而既實(shí)現(xiàn) 了代碼的復(fù)用,又提供了一種動(dòng)態(tài)的解決方案。 java 是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它除了數(shù)組、布爾和字符三個(gè)基本數(shù) 據(jù)類型外的其它類都是對(duì)象,它不再支持全局變量。在 java 中,如果不創(chuàng)建新類就無(wú) 法創(chuàng)建程序,java 程序在運(yùn)行時(shí)必須先創(chuàng)建一個(gè)類的實(shí)例,然后才能提交運(yùn)行。 java 同樣支持繼承特性,java 的類可以從其它類中繼承行為,但 java 只支持類的 單重繼承,即每個(gè)類只能從一個(gè)類中繼承。 java 支持界面,界面允許程序員定義方法但又不立即實(shí)現(xiàn),一個(gè)類可以實(shí)現(xiàn)多個(gè)
26、 界面,利用界面可以得到多重繼承的許多優(yōu)點(diǎn)而又沒有多重繼承的問(wèn)題。 (3)安全性 用于網(wǎng)絡(luò)、分布環(huán)境下的 java 必須要防止病毒的入侵,java 不支持指針,一切對(duì) 內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止了程序員使用欺騙手段訪 問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。 從開發(fā)環(huán)境來(lái)看 ,jbuilder5 是一組全面高效率工具,使用 java 編程語(yǔ)言創(chuàng)建可 伸縮的,高性能的和具有不依賴于平臺(tái)性能的應(yīng)用程序。jbuilder5 新增幾個(gè)新功能, 并對(duì)已有的功能進(jìn)行了改造,包括一個(gè)單步產(chǎn)品安裝過(guò)程,以及自動(dòng)卸載功能。其他 功能還有:對(duì) java 的支持,web 應(yīng)
27、用開發(fā),enterprise javabeans(ejb),jms 和 ear 向?qū)В瑘F(tuán)隊(duì)開發(fā),編譯器的增強(qiáng)功能,工程屬性,配置 jdk,部署,ide 的增強(qiáng)功能, 語(yǔ)言的支持。 從自身能力來(lái)看,本人在實(shí)習(xí)期間對(duì) java 語(yǔ)言進(jìn)行過(guò)為期 4 個(gè)月的系統(tǒng)學(xué)習(xí),對(duì) java 有一定的了解和掌握。雖然對(duì) java 的網(wǎng)絡(luò)編程不是很熟悉,但是通過(guò)到圖書館查 閱書籍和網(wǎng)上收集資料,現(xiàn)在對(duì) java 網(wǎng)絡(luò)編程有了一定的了解。 第四章第四章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)是系統(tǒng)開發(fā)的重要階段,它直接影響到系統(tǒng)的質(zhì)量,是整個(gè)開發(fā)工作的 核心。系統(tǒng)設(shè)計(jì)階段的主要任務(wù)是:在對(duì)系統(tǒng)進(jìn)行分析的過(guò)程中,科學(xué)合理地進(jìn)行物
28、理模型設(shè)計(jì)。系統(tǒng)設(shè)計(jì)分為:總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。總體設(shè)計(jì)包括系統(tǒng)的整體流程和 子系統(tǒng)將要實(shí)現(xiàn)的功能。面向?qū)ο髮⑾到y(tǒng)分為若干個(gè)對(duì)象,然后對(duì)各對(duì)象進(jìn)行設(shè)計(jì)分 析。詳細(xì)設(shè)計(jì)包括各模塊的詳細(xì)描述、輸入輸出設(shè)計(jì)等。 系統(tǒng)設(shè)計(jì)遵循的原則是:經(jīng)濟(jì)性、穩(wěn)定性、適應(yīng)性、系統(tǒng)性。 4.14.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)是用 java 語(yǔ)言基于 b/s 開發(fā)設(shè)計(jì)的,其核心的 mvc 設(shè)計(jì)技術(shù)決定了該系 統(tǒng)的安全性和穩(wěn)定性,從而保證了本系統(tǒng)有較強(qiáng)的使用性。其最終要的功能就是實(shí)現(xiàn) 了對(duì)數(shù)據(jù)庫(kù)及前臺(tái)頁(yè)面的信息交互,實(shí)現(xiàn)了信息的增刪改查,保證信息能夠長(zhǎng)時(shí)間保存。 基于 b/s 的 java 日常費(fèi)用報(bào)銷管理系
29、統(tǒng)的作用是提供給公司一個(gè)平臺(tái),用來(lái)管理 公司的日常費(fèi)用報(bào)銷。系統(tǒng)主要是由前臺(tái)頁(yè)面 jsp 中間控制層 servler 及后臺(tái)數(shù)據(jù)庫(kù) mysql 組成。系統(tǒng)功能模塊圖如圖 8 所示: 審 批 操 作 報(bào) 銷 科 目 錄 入 頁(yè) 面 操 作 員 工 信 息 錄 入 認(rèn) 證 用 戶 名 密 碼 用 戶 登 錄 基于 java 實(shí)現(xiàn)報(bào)銷管理 報(bào) 銷 信 息 操 作 連 接 服 務(wù) 器 客戶端 圖 8 系統(tǒng)功能模塊圖 系統(tǒng)客戶端介紹: 本系統(tǒng)客戶端分為用戶登錄和頁(yè)面操作兩個(gè)子模塊。首先,用戶登錄是指用戶通過(guò) 輸入用戶名和密碼進(jìn)入到頁(yè)面操作,并且頁(yè)面操作自動(dòng)連接上服務(wù)器。頁(yè)面操作模塊 是指系統(tǒng)報(bào)銷管理所具
30、有的基本功能,如對(duì)信息進(jìn)行增刪改查操作,對(duì)數(shù)據(jù)進(jìn)行處理 保證數(shù)據(jù)的合理性。 4.24.2 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) 本次數(shù)據(jù)庫(kù)開發(fā)工具為 mysql,具體設(shè)計(jì)的表單如下: 表 1 管理員信息表 字段名類型大小允許空備注 usernamevarchar20 否用戶名 passwordvarchar20 否密碼 表 2 公司員工信息表 字段名類型大小允許空備注 namevarchar20 否姓名 sexvarchar10 否性別 departmentvarchar25 否部門 id_cardvarchar20 否 省份證號(hào) cellvarchar20 否 聯(lián)系電話 表 3 報(bào)銷員工信息表 字段名類型大
31、小允許空備注 do_numbervarchar20 否 單據(jù)號(hào) objectvarchar10 否 報(bào)銷對(duì)象 statevarchar25 否 單據(jù)狀態(tài) paymentvarchar20 否 是否付款 p_date date20 否 報(bào)銷日期 eventvarchar25 否 報(bào)銷是由 periodvarchar25 否 財(cái)務(wù)賬期 moneyvarchar25 否 總報(bào)銷金額 transactorvarchar20 否 辦理人 4.34.3 系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)系統(tǒng)功能模塊詳細(xì)設(shè)計(jì) 管理員登錄模塊流程圖如圖 9 所示: 開始 輸入用戶名與密碼 查詢數(shù)據(jù)庫(kù) 是否有這條 記錄? 進(jìn)入管理員界面 提
32、示用戶名 或密碼錯(cuò)誤 結(jié)束 圖 9 管理員登錄模塊流程圖 管理員信息操作模塊流程圖如圖 10 所示: 圖 10 管理員登錄模塊流程圖 進(jìn)入管理界面 審 批 操 作 報(bào) 表 查 詢 操 作 員 工 信 息 錄 入 報(bào) 銷 管 理 修 改 報(bào) 銷 單 查 詢 報(bào) 銷 單 增 加 報(bào) 銷 單 刪 除 報(bào) 銷 單 審 批 報(bào) 銷 單 結(jié)束 第五章第五章 編碼與實(shí)現(xiàn)編碼與實(shí)現(xiàn) 5.15.1 系統(tǒng)主要模塊代碼系統(tǒng)主要模塊代碼 .1 連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù) package unit; import java.sql.connection; import java.sql.drivermanag
33、er; import java.sql.sqlexception; public class jdbcutil private final string driver = com.mysql.jdbc.driver; private final string url = jdbc:mysql:/localhost:3306/bxgl?useunicode=truecharacterencoding=utf-8; private final string user = root; private final string password = 123; private connection co
34、nn; public connection getconnection() try class.forname(driver); try conn = drivermanager.getconnection(url, user, password); catch (sqlexception e) e.printstacktrace(); catch (classnotfoundexception e) e.printstacktrace(); return conn; public void close() if(conn != null) try conn.close(); catch (s
35、qlexception e) e.printstacktrace(); conn = null; .2 登陸進(jìn)系統(tǒng)登陸進(jìn)系統(tǒng) package controller; import java.io.ioexception; import java.util.list; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpserv
36、letresponse; import service.userservice; import vo.user; public class login extends httpservlet public void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception public void dopost(httpservletrequest request, httpservletresponse response) throws servlet
37、exception, ioexception request.setcharacterencoding(utf-8); string username = request.getparameter(username); string password = request.getparameter(password); user user = new user(username,password); userservice uerservice = new userservice(); if(uerservice.login(user) list users = uerservice.findu
38、serlist(); request.getsession().setattribute(username, username); system.out.println(users); request.setattribute(message, 登錄成功!歡迎使用日常費(fèi)用報(bào)銷管 理系統(tǒng)!); request.setattribute(users, users); request.getrequestdispatcher(/index.jsp).forward(request, response); else request.setattribute(message, 登錄失敗!請(qǐng)重新輸入密碼!
39、); system.out.println(333333); request.getrequestdispatcher(/login.jsp).forward(request, response); .3 增加新報(bào)銷信息增加新報(bào)銷信息 package controller; import java.io.ioexception; import java.io.printwriter; import java.util.arraylist; import java.util.list; import javax.servlet.servletexception; import j
40、avax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import service.new_messageservice; import vo.new_message; public class addnew_messageservlet extends httpservlet private new_messageservice nws = null; public void doget(httpse
41、rvletrequest request, httpservletresponse response) throws servletexception, ioexception this.dopost(request, response); public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception request.setcharacterencoding(utf-8); / 首先獲取輸入的值 string action = r
42、equest.getparameter(action); nws = new new_messageservice(); if (showall.equals(action) this.showall(request, response); else this.add(request, response); this.showall(request, response); private void add(httpservletrequest request, httpservletresponse response) string do_number = request.getparamet
43、er(djh); string object = request.getparameter(bxdx); string state = request.getparameter(djzt); string payment = request.getparameter(sffk); string p_date = request.getparameter(data); string event = request.getparameter(bxsy); string period = request.getparameter(cwzq); string money = request.getpa
44、rameter(bxze); string transactor = request.getparameter(blr); new_message nm = new new_message(do_number, object, state, payment, p_date, event, period, money, transactor); nws.addnew_message(nm); private void showall(httpservletrequest request, httpservletresponse response) throws servletexception,
45、 ioexception / todo auto-generated method stub list nmlist = null; nmlist = nws.finallnew_message(); request.setattribute(nmlist, nmlist); request.getrequestdispatcher(baoxiao.jsp).forward(request, response); .4 修改報(bào)銷信息修改報(bào)銷信息 package controller; import java.io.ioexception; import java.io.prin
46、twriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import service.new_messageservice; import vo.new_message; public class editnew_messageservlet extends httpservlet public
47、 void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception this.dopost(request, response); public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception request.setcharacterencoding(utf-8); int id = i
48、nteger.parseint(request.getparameter(id); string do_number = request.getparameter(djh); string object = request.getparameter(bxdx); string state = request.getparameter(djzt); string payment = request.getparameter(sffk); string p_date = request.getparameter(data); string event = request.getparameter(
49、bxsy); string period = request.getparameter(cwzq); string money = request.getparameter(bxze); string transactor = request.getparameter(blr); /封裝數(shù)據(jù) new_message nm = new new_message(id,do_number,object,state,payment,p_date,event,period,money,transactor); new_messageservice nms = new new_messageservice
50、(); boolean b = nms.updatenew_message(nm); if(b) request.getrequestdispatcher(new_messageservlet).forward(request, response); return; package controller; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax
51、.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; import service.new_messageservice; import vo.new_message; import vo.user; public class updatenew_messageservlet extends httpservlet public void doget(httpservletrequest request, ht
52、tpservletresponse response) throws servletexception, ioexception this.dopost(request, response); public void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception response.setcontenttype(text/html; charset=utf-8); request.setcharacterencoding(utf-8); r
53、esponse.setcharacterencoding(utf-8); /得到參數(shù) id string id = request.getparameter(id); system.out.println(id); /調(diào)用數(shù)據(jù)庫(kù),更新 狀態(tài) new_messageservice nms = new new_messageservice(); new_message nm = nms.findnew_messagebyid(integer.parseint(id); request.setattribute(nm, nm); request.getrequestdispatcher(updatenew_message.jsp).forward(request, response); 在此申明,修改涉及到的模塊有兩個(gè),首先要進(jìn)行一個(gè)查詢,查詢到之后將數(shù)據(jù) 顯示在頁(yè)面上,然后在進(jìn)行修改修改完返回主界面。 .5 刪除報(bào)銷數(shù)據(jù)刪除報(bào)銷數(shù)據(jù) package controller; import java.io.ioexception; import java.io.printwriter; import java.util.list;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外貿(mào)英語(yǔ)函電接受課件
- 探索工業(yè)機(jī)械行業(yè)
- 山西職業(yè)技術(shù)學(xué)院《互聯(lián)網(wǎng)中醫(yī)藥CDO實(shí)踐(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西南民族大學(xué)《動(dòng)物學(xué)(非生物類)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蒲江縣2025屆四年級(jí)數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 錫林郭勒職業(yè)學(xué)院《景觀效果圖表現(xiàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南通師范高等專科學(xué)校《化學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東司法警官職業(yè)學(xué)院《水文學(xué)與水文地質(zhì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安文理學(xué)院《大型活動(dòng)組織與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年職業(yè)安全與健康專業(yè)考試試卷及答案
- 流數(shù)據(jù)分析技術(shù)全套課件
- 3D打印圖二評(píng)分標(biāo)準(zhǔn)
- GB∕T 12237-2021 石油、石化及相關(guān)工業(yè)用的鋼制球閥
- 土壤分析技術(shù)規(guī)范(第二版)
- 全套電子課件:機(jī)械制造工藝基礎(chǔ)(第六版)
- T∕CAME 1-2019 家庭式產(chǎn)房建設(shè)標(biāo)準(zhǔn)
- 《現(xiàn)代漢語(yǔ)語(yǔ)音》PPT課件(完整版)
- 善意的謊言辯論賽正反方觀點(diǎn)
- QC新老7種工具表格
- 項(xiàng)目四:旅游電子商務(wù)支付與安全(教案)
- 學(xué)生社區(qū)實(shí)習(xí)評(píng)語(yǔ)
評(píng)論
0/150
提交評(píng)論