基于 JavaEE 的校友錄管理系統(tǒng)
時(shí)間:2023-07-03 18:18:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-07-03 18:18:01 來源:網(wǎng)站運(yùn)營
基于 JavaEE 的校友錄管理系統(tǒng):[摘要] 隨著社會(huì)和經(jīng)濟(jì)的飛速發(fā)展,人們的生活節(jié)奏越來越快,生活壓力也隨著增加。為了提高自己的生活質(zhì)量和水平,人們把自己越來越多的時(shí)間投入到工作之上。用來有的人甚至連家庭都顧忌不上,更別說去跟以前的老同學(xué)聯(lián)系。
通過校友錄這種網(wǎng)絡(luò)聯(lián)系方式,可以加強(qiáng)很多因畢業(yè)而分離的同學(xué)們之間的聯(lián)系,互相噓寒問暖,了解各自的近況,增進(jìn)互相之間的感情。通過校友錄,人們可以對(duì)自己的當(dāng)前信息進(jìn)行管理,實(shí)時(shí)更新自己的信息,讓大家都能夠了解到自己的信息,方便大家的聯(lián)系。
本篇文章主要對(duì)系統(tǒng)的設(shè)計(jì)以及實(shí)現(xiàn)的過程進(jìn)行了闡述。主要介紹了課題的來源和背景。還有相關(guān)的技術(shù)和開發(fā)工具。主要進(jìn)行了可行性分析、需求分析。主要進(jìn)行了總體設(shè)計(jì)。主要進(jìn)行了系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)。主要進(jìn)行了詳細(xì)的設(shè)計(jì)和具體的實(shí)現(xiàn)。最后主要對(duì)系統(tǒng)進(jìn)行了測(cè)試。本系統(tǒng)操作簡單、方便,可以提供相當(dāng)大的便利。
[關(guān)鍵詞] 校友錄 管理系統(tǒng) Java B/S
Alumni address book management system based on JavaEE [Abstract] With the rapid development of society and economy, people's pace of life is faster and faster, and the pressure of life is increasing. In order to improve the quality of life and the level of their own, people put more and more time to work. Used to some people do not even have to worry about the family, let alone to contact with the previous old classmates. Through the alumni the network contact can strengthen links between many separated by the graduate students, care about each other, understand their situation, enhance mutual feelings. Through alumni records, people can manage their current information, real-time update their information, so that everyone can understand their own information, to facilitate the link. This paper mainly describes the design and implementation of the system. This paper mainly introduces the source and background of the project. There are related technologies and development tools. Mainly carries on the feasibility analysis, the demand analysis. Mainly carried out the overall design. The database design of the system is mainly carried out. The detailed design and implementation are mainly carried out. Finally, the system is tested. The system is simple and convenient, and can provide considerable convenience. [Keywords] Alumni management system B/S JAVA
一、系統(tǒng)背景
開發(fā)背景和意義
課題的來源
隨著社會(huì)和經(jīng)濟(jì)的飛速發(fā)展,人們的生活節(jié)奏越來越快,生活壓力也隨之增加。為了提高自己的生活水平和質(zhì)量,人們把自己越來越多的時(shí)間投入到工作之上。用來交際的時(shí)間越來越少,有的人甚至連家庭都顧及不上,更別說去跟以前的老同學(xué)聯(lián)系了。時(shí)間久了,聯(lián)系也就斷了,即使想要聯(lián)系上,也發(fā)現(xiàn)沒有了聯(lián)系方式。同時(shí),因?yàn)榫W(wǎng)絡(luò)的發(fā)達(dá),大多數(shù)的高校在校生都有很多個(gè)人的網(wǎng)絡(luò)聯(lián)系方式,但是都不統(tǒng)一。
所以一個(gè)優(yōu)秀的基于網(wǎng)絡(luò)的校友錄可以解決這些問題。通過校友錄管理系統(tǒng),我們不僅可以讓在校生有一個(gè)共同的交流平臺(tái),同時(shí)還可以讓很多畢業(yè)生可以找到想要聯(lián)系的同學(xué)和朋友。但是一個(gè)學(xué)校的在校生和畢業(yè)生的數(shù)量也還是很多的,怎么對(duì)這個(gè)校友錄進(jìn)行高效的管理,是很重要的。所以設(shè)計(jì)一個(gè)校友錄管理系統(tǒng)是極具可行性的。
課題的意義
通過校友錄這種網(wǎng)絡(luò)聯(lián)系方式,可以加強(qiáng)很多因畢業(yè)而分離的同學(xué)們之間的聯(lián)系,互相噓寒問暖,了解各自的近況,增進(jìn)互相之間的感情。讓這些已經(jīng)離校的同學(xué)能夠有一個(gè)關(guān)注母校和老同學(xué)動(dòng)態(tài)的平臺(tái)。同時(shí),還可以建立畢業(yè)生和在校生的溝通渠道,為還未畢業(yè)的學(xué)弟學(xué)妹們提供一些自己當(dāng)年的學(xué)習(xí)經(jīng)驗(yàn),還有步入社會(huì)的經(jīng)驗(yàn)等,為在校生提供了便利。這樣無形之間就增強(qiáng)了學(xué)校的凝聚力。通過校友錄,人們可以對(duì)自己的當(dāng)前信息進(jìn)行管理,實(shí)時(shí)更新自己的信息,讓大家都能夠了解到自己的信息,方便大家的聯(lián)系。在 B/S 架構(gòu)的 Web 開發(fā)模式中,客戶端就是簡單的處理瀏覽器程序,可以通過 HTTP 協(xié)議訪問服務(wù)器端的應(yīng)用。在服務(wù)器端,與與通信相關(guān)的處理都是有服務(wù)器軟件負(fù)責(zé)。業(yè)務(wù)的信息化是當(dāng)代管理業(yè)務(wù)現(xiàn)代化的標(biāo)志,因?yàn)檫@樣不僅能很杭州提高工作效率,而且工作質(zhì)量也能得到提高。更重要的是本項(xiàng)目的應(yīng)用將最大限度減少了信息的不足和冗余,以前由于無法及時(shí)了解個(gè)人的信息,所造成的信息更新的滯后和錯(cuò)誤都能夠得到很好的解決。在各種操作系統(tǒng)中都提供了瀏覽器工具,這些瀏覽器工具都是遵循相同的協(xié)議范圍,所以 B/S 機(jī)構(gòu)的客戶端在各種系統(tǒng)環(huán)境中都已實(shí)現(xiàn)。使用 B/S 架構(gòu),不僅減輕開發(fā)任務(wù)的成本,而且系統(tǒng)維護(hù)也變得十分簡單。
本課題是基于 Windows 環(huán)境的校友錄管理系統(tǒng)的設(shè)計(jì)和開發(fā),該系統(tǒng)前臺(tái)使用 JSP、Java 等相關(guān)語言,通過 MyEclipse 工具進(jìn)行開發(fā)。后臺(tái)數(shù)據(jù)庫采用 MySQL 數(shù)據(jù)庫,屬于 Web 數(shù)據(jù)庫開發(fā)、用于解決實(shí)際問題的實(shí)例,具有一定的深度,涉及到數(shù)據(jù)庫設(shè)計(jì)和前端開發(fā)工具的開發(fā)和設(shè)計(jì),與之相似的應(yīng)用很廣泛。
國內(nèi)外發(fā)展?fàn)顩r
國內(nèi)發(fā)展?fàn)顩r
目前世界上各種形式的同學(xué)錄網(wǎng)站大約有 28 萬個(gè)之多,它們?cè)诰W(wǎng)民心中占有重要地位。
目前國內(nèi)的校友錄系統(tǒng)數(shù)量眾多。有的是各高校自己建立的校友錄系統(tǒng),有的是專門獨(dú)立的校友錄系統(tǒng),也有綜合網(wǎng)站上的校友錄系統(tǒng)。當(dāng)前以第三種也就是綜合網(wǎng)站上的校友錄數(shù)量最多,知名度最高。主要的有 5460、搜狐的 Chinaren 和 QQ 的校友錄這三個(gè)。其中,ChinaRen 的人氣最高,應(yīng)用也是最多的[1]。這些校友錄系統(tǒng)雖然運(yùn)用技術(shù)不盡相同,但是他們的功能、目的都有著一些共同點(diǎn)。5460、chinaren、網(wǎng)易等校友錄系統(tǒng)運(yùn)用的是 JSP 技術(shù),這些服務(wù)對(duì)象比較廣泛、針對(duì)性較弱的校友錄系統(tǒng)提供的服務(wù)都是最普通的,他們能滿足絕大多數(shù)人的需求,使得分散于全國各地的校友們能找到這樣一個(gè)虛擬的集體組織,使得大家不用再為如何聯(lián)系自己長久未見的同學(xué)、朋友而發(fā)愁,校友錄提供的就是這樣一個(gè)方便聯(lián)系的平臺(tái)。某些高校校友錄系統(tǒng)可能創(chuàng)建時(shí)間比較早,他們運(yùn)用的技術(shù)也相對(duì)較早一些,比如杭州大學(xué)和華中科技大學(xué),他們的校友錄系統(tǒng)就是運(yùn)用 ASP 技術(shù)來開發(fā)的。用 PHP 開發(fā)的系統(tǒng)有中國同事錄,還有大家比較熟悉的 QQ 校友錄,它是運(yùn)用 Shtml 開發(fā)的。以上這些校友錄系統(tǒng)運(yùn)用到了很多不同的技術(shù),但是他們對(duì)社會(huì)的影響、給人們帶來的方便是一樣的。
國外發(fā)展?fàn)顩r
而在國外,各類各樣的校友錄也是眾多?,F(xiàn)在國外對(duì)此類校友錄網(wǎng)站的開發(fā)與研究也是很有實(shí)用性的。尤其是外國的一些著名高效和大學(xué),因?yàn)橛行畔⒒l(fā)展迅速及信息網(wǎng)范圍廣、互聯(lián)網(wǎng)更加普及等特點(diǎn),再加上外國人一直都追求校友會(huì)這樣一種形式,所以與國內(nèi)相比發(fā)展更為良好。同時(shí),此類校友錄管理系統(tǒng)又都在不斷地深入與發(fā)展,爭取在實(shí)現(xiàn)本來目的的基礎(chǔ)上完善用戶體驗(yàn),做到更加實(shí)用。
全文內(nèi)容概覽
本小節(jié)對(duì)以下章節(jié)進(jìn)行簡單概述,具體內(nèi)容如下:
第二章是對(duì)系統(tǒng)使用的技術(shù)和工具進(jìn)行了說明。第三章為完成本系統(tǒng)前的各種情況的分析,比如,可行性分析等,以及系統(tǒng)的需求分析。第三章為系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì),需求分析具體分析了華美賣場(chǎng)庫存信息管理系統(tǒng)的功能需求及總體結(jié)構(gòu)設(shè)計(jì)圖,對(duì)本系統(tǒng)后臺(tái)的數(shù)據(jù)庫進(jìn)行詳細(xì)的分析和所用到的表的說明。第四章為系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),舉例說明了前臺(tái)和后臺(tái)功能的實(shí)現(xiàn)目標(biāo)和實(shí)現(xiàn)過程。第五章為系統(tǒng)測(cè)試,使用幾個(gè)測(cè)試樣例來對(duì)本網(wǎng)站進(jìn)行功能測(cè)試。最后為本論文引用參考文獻(xiàn)的有關(guān)內(nèi)容及鳴謝。
二、主要開發(fā)工具和技術(shù)
開發(fā)技術(shù)
2.1 MVC 技術(shù)簡介
圖 1-1 MVC 模式
MVC 全程為 Model View Controller (模型-視圖-控制器),它是一種可以建立 Web 應(yīng)用程序的模式:
Model(模型)是應(yīng)用程序的核心,它是用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型負(fù)責(zé)存取數(shù)據(jù)庫中的數(shù)據(jù)[2]。
View(視圖)將模塊在用戶交互界面中呈現(xiàn)出來。
Controller(控制器)是應(yīng)用程序中處理用戶接受和發(fā)送請(qǐng)求的部分。通??刂破鞯墓ぷ鬟^程包括從視圖讀取數(shù)據(jù)、用戶輸入信息、向模型發(fā)送數(shù)據(jù)。
本系統(tǒng)是采用基于 JavaBean 的 MVC 設(shè)計(jì)模式設(shè)計(jì)實(shí)現(xiàn)的。
MVC 是 Model-View-Controller 的簡稱,即模型-視圖-控制器。它強(qiáng)制性地把應(yīng)用程序的輸入、處理和輸出分開,讓它們各自處理自己的任務(wù)。MVC 是 XeroxPARC 在 20 世紀(jì) 80 年代為編程語言 Smalltalk-80 發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用,最近幾年被推薦為 Sun 公司 J2EE 平臺(tái)的設(shè)計(jì)模式[3],受到越來越多的 Web 開發(fā)者的歡迎。
2.2 B/S 體系結(jié)構(gòu)
B/S 體系結(jié)構(gòu)系統(tǒng)是將普通用戶通過瀏覽器向網(wǎng)絡(luò)上某個(gè)服務(wù)器發(fā)出請(qǐng)求信息,服務(wù)器對(duì)用戶發(fā)送的請(qǐng)求進(jìn)行數(shù)據(jù)處理并將用戶所需信息反饋到瀏覽器上。B/S 結(jié)構(gòu) 的主要優(yōu)點(diǎn)就是極大地減少了客戶機(jī)所需處理的數(shù)據(jù),降低客戶機(jī)的配置要求,客戶只需安裝極小的客戶端軟件就可以正常使用[4]。
相對(duì)服務(wù)器來說,服務(wù)器將擔(dān)負(fù)大部分的數(shù)據(jù)處理工作,在接收到客戶端所發(fā)來的請(qǐng)求后,服務(wù)器將對(duì)數(shù)據(jù)庫進(jìn)行訪問,并將在數(shù)據(jù)庫提取的數(shù)據(jù)加以處理后輸送會(huì)客戶端。B/S 體系結(jié)構(gòu)在本質(zhì)上是將二層 C/S 結(jié)構(gòu)的數(shù)據(jù)處理邏輯模塊從客戶機(jī)中分離出來交給 Web 服務(wù)器來單獨(dú)負(fù)擔(dān)這項(xiàng)任務(wù)。如此來說,客戶機(jī)就會(huì)減輕很多性能要求,因?yàn)榘汛蟛糠值臄?shù)據(jù)處理工作都分配給了 Web serve[5]。這種三層體系結(jié)構(gòu)如圖 1-1 所示。
圖 1-2 B/S 構(gòu)建圖
開發(fā)工具
2.3 MySQL 數(shù)據(jù)庫
作為一種優(yōu)秀的數(shù)據(jù)庫,MySQL 做的都是為了能在表中有效地進(jìn)行數(shù)據(jù)存儲(chǔ)。MySQL 的核心為處理數(shù)據(jù)庫核心命令,MySQL 的引擎在 Windows 下運(yùn)行,對(duì)數(shù)據(jù)庫連接以及 SQL 命令進(jìn)行處理。MySQL 不僅具有強(qiáng)大而穩(wěn)定的發(fā)動(dòng)機(jī),還提供了一系列的管理工具和數(shù)據(jù)庫服務(wù)器,用于移動(dòng)數(shù)據(jù),數(shù)據(jù)倉庫,數(shù)據(jù)分析軟件。
數(shù)據(jù)庫至今雖然只有差不多不到 60 年的歷史(從 60 年代至今),但其它的技術(shù)都不及它及其快速的發(fā)展速度。
數(shù)據(jù)庫是一種倉庫,它按照一定的數(shù)據(jù)結(jié)構(gòu)來組織數(shù)據(jù),還能夠儲(chǔ)存和管理數(shù)據(jù),可以用來查詢大量的數(shù)據(jù),是一種存儲(chǔ)區(qū)域。數(shù)據(jù)庫的使用好處有很多:節(jié)約數(shù)據(jù)的存儲(chǔ)空間,削減數(shù)據(jù)的冗余度等等。此外,數(shù)據(jù)庫技術(shù)還為用戶提供了一個(gè)非常簡單的方法,用戶很容易寫數(shù)據(jù)庫的應(yīng)用程序[6]。特別是近年來,計(jì)算機(jī)關(guān)系數(shù)據(jù)庫的引入,更強(qiáng)大。例如,操作更直觀。使用更靈活。而且編程非常方便,功能更加強(qiáng)大。同時(shí)環(huán)境適應(yīng)也更加廣泛,處理數(shù)據(jù)的能力超強(qiáng)。
2.4 MyEclipse 開發(fā)平臺(tái)
MyEclipse 企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡稱 MyEclipse)是對(duì) Eclipse IDE 的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和 JavaEE 的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的 JavaEE 集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持 HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate[7]。簡單而言,MyEclipse 是 Eclipse 的插件,也是一款功能強(qiáng)大的 JavaEE 集成開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò)。
三、系統(tǒng)需求分析
背景說明
根據(jù)軟件相關(guān)方面的基本理論知識(shí)和操作技能等要求,開發(fā)一個(gè)校友錄管理系統(tǒng):該校友錄管理系統(tǒng)的設(shè)計(jì)與開發(fā),既能滿足畢業(yè)設(shè)計(jì)的需要,也能在一個(gè)逼真的環(huán)境中,為大家呈現(xiàn)一個(gè)校友錄管理系統(tǒng)的各種功能,可以通過該管理系統(tǒng)可方便、快捷地進(jìn)行校友錄各種功能的相關(guān)管理。
需求分析的基本任務(wù):確定系統(tǒng)的目標(biāo)和范圍,調(diào)查用戶的需求,分析系統(tǒng)必須做什么,編寫需求規(guī)格說明書等其它相關(guān)文檔,以及需求工程審查.同時(shí)還包括需求變更的控制、需求風(fēng)險(xiǎn)的控制、制定需求過程的基本計(jì)劃等工作。
需求分析包括兩個(gè)活動(dòng):需求開發(fā)和需求管理。
需求可分四類:業(yè)務(wù)需求是反映組織機(jī)構(gòu)或客戶對(duì)軟件高層次的目標(biāo)要求,這項(xiàng)需求是用戶高層領(lǐng)導(dǎo)機(jī)構(gòu)決定的,它確定了系統(tǒng)的目標(biāo)規(guī)模和范圍。用戶需求是用戶使用該軟件要完成的任務(wù)。功能需求是軟件開發(fā)人員必須實(shí)現(xiàn)的軟件功能。非功能需求是產(chǎn)品必須具備的屬性或品質(zhì) ,包括對(duì)用戶的重要屬性(有效性、效率、靈活性、完整性、互操作性、可靠性、健壯性、可用性)和對(duì)開發(fā)者的質(zhì)量屬性(可維護(hù)性、可移植性、可復(fù)用性、可測(cè)試性)。
可行性分析
技術(shù)可行性:
本系統(tǒng)基于瀏覽器/服務(wù)器體系即人們常說的 B/S 體系,采用這種方式,可以使系統(tǒng)安裝維護(hù)簡便。數(shù)據(jù)集中管理,便于分散用戶使用,適應(yīng)互連時(shí)代軟件的發(fā)展趨勢(shì)。它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。B/S 結(jié)構(gòu)最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。 開發(fā)技術(shù)主要包括 Jsp,Java,JavaBean,JDBC 以及 Web 應(yīng)用開發(fā)中常用的腳本語言 JavaScript 技術(shù)。Web 服務(wù)器采用 Tomcat,數(shù)據(jù)庫采用 MySQL 數(shù)據(jù)庫系統(tǒng)。對(duì)技術(shù)上提出了一定要求,但是憑現(xiàn)有的所學(xué)和掌握的知識(shí)情況已完全能滿足設(shè)計(jì)開發(fā)的需求,并且能從一定程度上加深自己對(duì)知識(shí)的理解與運(yùn)用。校友錄管理系統(tǒng)是基于 B/S 架構(gòu)的管理系統(tǒng)。本系統(tǒng)采用系統(tǒng)的開發(fā)方法,使用 Java 開發(fā)技術(shù)進(jìn)行系統(tǒng)代碼的編寫,同時(shí)使用 JSP 對(duì)前臺(tái)頁面進(jìn)行編寫。前臺(tái)開發(fā)工具選用 MyEclipse。MyEclipse 是一種可視化的、面向?qū)ο蟮拈_發(fā)工具,它具有易用通用且方便等特點(diǎn)[8]。后臺(tái)數(shù)據(jù)庫選用了 MySQL,它是一個(gè)快速、多線程、用戶的 SQL 數(shù)據(jù)庫服務(wù)器。這兩種開發(fā)工具功能很強(qiáng)大,且環(huán)境搭建起來比較容易,作為本系統(tǒng)開發(fā)工具是可行的。
目前,硬件、軟件的發(fā)展氛圍以及開發(fā)環(huán)境等各項(xiàng)技術(shù)都符合開發(fā)系統(tǒng)的要求。校友錄管理系統(tǒng)界面友好,使用方便,從技術(shù)上是可行的。
經(jīng)濟(jì)可行性:
由于本系統(tǒng)是為校友錄管理使用的系統(tǒng),裝上該應(yīng)用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后可以節(jié)約大量的人力,物力。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。
操作可行性:
界面設(shè)計(jì)時(shí)充分考慮管理人員的習(xí)慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠;統(tǒng)計(jì)準(zhǔn)確;制表靈活;適應(yīng)力強(qiáng);容易擴(kuò)充。所以操作性也沒問題。利用面向?qū)ο蟮臋C(jī)構(gòu)化方法,面向?qū)ο蠓椒ㄒ浴皩?duì)象為中心”,在分析、研究對(duì)象及其屬性的過程中,根據(jù)其內(nèi)在規(guī)律建立求解模型?;谶@種方法建立的軟件系統(tǒng),不管外部環(huán)境或功能需求如何變化,而對(duì)象內(nèi)在的規(guī)律不變,因而不會(huì)引起軟件結(jié)構(gòu)的整體變化,所以系統(tǒng)是穩(wěn)定的,利用此方法可以充分達(dá)到系統(tǒng)管理可行性的目的。而且本系統(tǒng)很容易被客戶接受,上手簡單,也極易推廣。
系統(tǒng)功能需求分析
本系統(tǒng)共分三個(gè)主要角色功能模塊:超級(jí)管理員功能模塊、班級(jí)管理員功能模塊和學(xué)生功能模塊。
本系統(tǒng)超級(jí)管理員功能模塊主要有以下三個(gè)功能:帳號(hào)管理功能、班級(jí)管理功能和網(wǎng)站信息管理功能。
帳號(hào)管理功能:超級(jí)管理員登錄后臺(tái)操作界面之后,能夠進(jìn)行相關(guān)帳號(hào)的管理功能操作。
班級(jí)管理功能:超級(jí)管理員能夠?qū)W(wǎng)站上已有的班級(jí)信息進(jìn)行管理。
網(wǎng)站信息管理功能:網(wǎng)站信息管理功能又包括系統(tǒng)新聞管理和留言板信息維護(hù)管理功能,還有登陸日志維護(hù)功能。
班級(jí)管理員功能模塊主要實(shí)現(xiàn)以下功能:帳號(hào)管理:注冊(cè)用戶帳號(hào)管理和個(gè)人帳號(hào)管理;班級(jí)信息管理:班級(jí)新聞管理和班級(jí)留言板管理。主要就是這四個(gè)功能。
帳號(hào)管理功能:班級(jí)管理員對(duì)校友錄上的各自的班級(jí)的注冊(cè)用戶的帳號(hào)進(jìn)行管
理,和對(duì)自己帳號(hào)的信息進(jìn)行管理。
班級(jí)信息管理功能:班級(jí)管理員可以對(duì)跟班級(jí)相關(guān)的信息進(jìn)行管理,包括班級(jí)
新聞管理和班級(jí)留言板管理。
學(xué)生功能模塊主要實(shí)現(xiàn)以下功能:個(gè)人帳號(hào)信息管理功能、通訊錄管理功能包括班級(jí)通訊錄和校友通訊錄、消息管理功能包括新聞查看功能和留言板功能。
個(gè)人信息管理功能:學(xué)生能夠?qū)ψ约簬ぬ?hào)的信息進(jìn)行管理。可以查看自己的賬戶信息,更改自己的信息等功能。
通訊錄管理功能:用戶可以對(duì)自己帳號(hào)的通訊錄的信息進(jìn)行管理,包括班級(jí)通
訊錄和校友通訊錄管理。
消息管理功能:消息管理又包括新聞管理和留言板管理。
運(yùn)行環(huán)境需求
硬件環(huán)境需求
處理器: 英特爾酷睿 i5
內(nèi)存: 4G
硬盤空間:500
顯卡: NVIDIA GT 740M 2G 獨(dú)顯
軟件環(huán)境需求
操作系統(tǒng):windows 7
軟件: MyEclipse
數(shù)據(jù)庫: MySQL
四、系統(tǒng)總體設(shè)計(jì)
總體設(shè)計(jì)概述
通過對(duì)校友錄管理系統(tǒng)的功能以及性能的需求分析,系統(tǒng)的大概功能結(jié)構(gòu)已經(jīng)基本的出來了。校友錄管理系統(tǒng)主要分為前臺(tái)信息瀏覽和后臺(tái)信息管理兩大部分。前臺(tái)主要活動(dòng)角色是普通校友用戶,后臺(tái)主要的活動(dòng)角色是系統(tǒng)管理員和班級(jí)管理員。所以系統(tǒng)功能根據(jù)前后臺(tái)的需求不同,對(duì)系統(tǒng)進(jìn)行分模塊設(shè)計(jì)。
本系統(tǒng)主要是基于 B/S 模式進(jìn)行開發(fā)。在服務(wù)器端,動(dòng)態(tài)網(wǎng)頁的開發(fā)主要利用了 JSP 語言。為了使校友錄管理系統(tǒng)適合相關(guān)操作人員的使用,系統(tǒng)的界面設(shè)計(jì)應(yīng)該盡可能地符合工作人員的操作習(xí)慣。做到操作友好、簡捷。系統(tǒng)功能也要更注重人性化。前臺(tái)界面方面,要更貼合學(xué)生的習(xí)慣和愛好。
系統(tǒng)功能總體設(shè)計(jì)
本系統(tǒng)共分三個(gè)主要角色功能模塊:超級(jí)管理員功能模塊、班級(jí)管理員功能模塊和學(xué)生功能模塊。
4.1 超級(jí)管理員功能模塊
本系統(tǒng)超級(jí)管理員功能模塊主要有以下三個(gè)功能:帳號(hào)管理功能、班級(jí)管理功能和網(wǎng)站信息管理功能。
帳號(hào)管理功能:
超級(jí)管理員登錄后臺(tái)操作界面之后,能夠進(jìn)行相關(guān)帳號(hào)的管理功能操作。主要包括對(duì)管理員帳號(hào)的管理,以及對(duì)校友錄注冊(cè)用戶的帳號(hào)管理。能夠?qū)@些帳號(hào)的信息進(jìn)行查看。
班級(jí)管理功能:
超級(jí)管理員能夠?qū)W(wǎng)站上已有的班級(jí)信息進(jìn)行管理??梢孕略霭嗉?jí),查看班級(jí)信息和刪除班級(jí)等功能。
網(wǎng)站信息管理功能:
網(wǎng)站信息管理功能又包括系統(tǒng)新聞管理、留言板信息維護(hù)管理功能和登陸日志維護(hù)功能。超級(jí)管理員可以對(duì)網(wǎng)站的系統(tǒng)新聞進(jìn)行相應(yīng)的操作,可以對(duì)留言板進(jìn)行相應(yīng)的操作,可以對(duì)系統(tǒng)登錄的信息進(jìn)行查看,可以對(duì)系統(tǒng)的人員登錄日志進(jìn)行查看。
4.2 班級(jí)管理員功能模塊
班級(jí)管理員功能模塊主要實(shí)現(xiàn)以下功能:帳號(hào)管理:注冊(cè)用戶帳號(hào)管理和個(gè)人帳號(hào)管理;班級(jí)信息管理:班級(jí)新聞管理和班級(jí)留言板管理。主要就是這四個(gè)功能。
帳號(hào)管理功能:
班級(jí)管理員對(duì)校友錄上的各自的班級(jí)的注冊(cè)用戶的帳號(hào)進(jìn)行管理,和對(duì)自己帳號(hào)的信息進(jìn)行管理。可以查看注冊(cè)用戶的信息,更改自己的信息等功能。
班級(jí)信息管理功能:
班級(jí)管理員可以對(duì)跟班級(jí)相關(guān)的信息進(jìn)行管理,包括班級(jí)新聞管理和班級(jí)留言板管理。能夠?qū)Π嗉?jí)內(nèi)的新聞信息進(jìn)行查看,對(duì)已有的新聞信息進(jìn)行修改,刪除過時(shí)的新聞信息等,還能夠?qū)α粞园迳系牧粞赃M(jìn)行查看,刪除違規(guī)留言等功能。
4.3 學(xué)生功能模塊
學(xué)生功能模塊主要實(shí)現(xiàn)以下功能:個(gè)人帳號(hào)信息管理功能、通訊錄管理功能包括班級(jí)通訊錄和校友通訊錄、消息管理功能包括新聞查看功能和留言板功能。
個(gè)人信息管理功能:
學(xué)生能夠?qū)ψ约簬ぬ?hào)的信息進(jìn)行管理??梢圆榭醋约旱馁~戶信息,更改自己的信息等功能。
通訊錄管理功能:
用戶可以對(duì)自己帳號(hào)的通訊錄的信息進(jìn)行管理,包括班級(jí)通訊錄和校友通訊錄管理。系統(tǒng)能夠根據(jù)用戶的信息進(jìn)行智能分組,自動(dòng)顯示自己班級(jí)已經(jīng)注冊(cè)帳號(hào)的同學(xué),用戶不用再手動(dòng)進(jìn)行添加。用戶可以對(duì)班級(jí)內(nèi)的通訊錄信息進(jìn)行查看,還可以根據(jù)學(xué)號(hào)或者姓名對(duì)用戶進(jìn)行模糊查找。
消息管理功能:
消息管理又包括新聞管理和留言板管理。用戶可以對(duì)系統(tǒng)新聞和班級(jí)新聞進(jìn)行查看,根據(jù)不同功能按鈕對(duì)新聞進(jìn)行分組查看。用戶可以在留言板上添加自己的留言,可以對(duì)已有的留言信息進(jìn)行查看。
系統(tǒng)功能模塊結(jié)構(gòu)圖
通過對(duì)校友錄管理系統(tǒng)的相關(guān)功能的系統(tǒng)設(shè)計(jì),本系統(tǒng)的系統(tǒng)功能模塊結(jié)構(gòu)圖如下:
圖 4-1 功能模塊結(jié)構(gòu)圖
以上就是系統(tǒng)的功能的總體設(shè)計(jì)。
五、系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫概要
在進(jìn)行校友錄管理系統(tǒng)的設(shè)計(jì)中,為了可以把用戶的數(shù)據(jù)要求表達(dá)出來,就需要建立一個(gè)概念性的數(shù)據(jù)模(也稱為信息模型)。這種模型是一種面向用戶的數(shù)據(jù)模型。是完全按用戶的需求和觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模。對(duì)從用戶角度看到的數(shù)據(jù)進(jìn)行了描述,反映了用戶的現(xiàn)實(shí)需求。跟在軟件開發(fā)的過程中實(shí)現(xiàn)的方法沒有關(guān)系。實(shí)體—聯(lián)系法是我們最常用的用來表示概念性數(shù)據(jù)模型的方法。這種方法用 E-R 圖描述現(xiàn)實(shí)世界中的實(shí)體。不涉及這些實(shí)體在系統(tǒng)中的實(shí)現(xiàn)方法[9]。用這種方法表示的概念性數(shù)據(jù)模型稱為 E-R 模型。ER 模型中包含“實(shí)體”,“聯(lián)系”和“屬性”[10]。
根據(jù)需求分析得出的結(jié)果,得出以下實(shí)體和實(shí)體之間的關(guān)系,即 E-R 圖。
校友錄管理系統(tǒng)實(shí)體圖如以下圖所示:
圖 5-1 校友錄管理系統(tǒng)管理員實(shí)體圖
圖 5-2 校友錄管理系統(tǒng)班級(jí)實(shí)體圖
圖 5-3 校友錄管理系統(tǒng)同學(xué)實(shí)體圖
圖 5-4 校友錄管理系統(tǒng)留言實(shí)體圖
圖 5-5 校友錄管理系統(tǒng)新聞實(shí)體圖
圖 5-6 校友錄管理系操作記錄施實(shí)體圖
根據(jù)以上實(shí)體圖,可以得到的信息如下:
系統(tǒng)管理員的各種信息,游樂場(chǎng)設(shè)施的信息,訂單的信息等;
-R 圖向關(guān)系模型的轉(zhuǎn)換:
將以上個(gè)實(shí)體圖所示的關(guān)系轉(zhuǎn)化成關(guān)系模型:
管理員(id,登錄名,密碼,姓名,角色)
班級(jí)(id,年級(jí),班級(jí)名)
同學(xué)(id,學(xué)號(hào),密碼,姓名,電話,性別,生日,QQ,郵箱,頭像,狀態(tài),昵稱,班級(jí) id)
留言(id,標(biāo)題,留言內(nèi)容,留言時(shí)間,狀態(tài),回復(fù),回復(fù)時(shí)間,留言人 id,留言人班級(jí) id)
新聞(id,標(biāo)題,內(nèi)容,時(shí)間,種類,班級(jí) id)
操作記錄(id,時(shí)間,記錄)
數(shù)據(jù)庫物理表的設(shè)計(jì)
在設(shè)計(jì)程序之前需要將本系統(tǒng)用到的數(shù)據(jù)存儲(chǔ)在表中,然后編寫相應(yīng)代碼進(jìn)行數(shù)據(jù)的控制操作。基于以上分析得出的 E-R 圖,本系統(tǒng)的數(shù)據(jù)庫表有六個(gè)。詳細(xì)設(shè)計(jì)如下:
管理員信息表(t_admin)用于記錄系統(tǒng)管理員的各種信息。管理員信息表包括的各個(gè)字段、類型、屬性和作用如下:
表 4-1 管理員信息表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
account | varchar | 20 | | 登錄名 |
pwd | varchar | 20 | | 密碼 |
name | varchar | 30 | | 姓名 |
role | int | 2 | | 角色 |
該表中“id“是該表的主鍵,該表主要用于保存系統(tǒng)管理員的基本信息。
班級(jí)表(t_class)用于保存班級(jí)的信息。班級(jí)表包括的各個(gè)字段,類型,屬性和作用如下:
表 4-2 班級(jí)表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
grade | varchar | 20 | | 年級(jí) |
name | varchar | 20 | | 班級(jí)名 |
該表中“id”作為主鍵,該表主要用于保存班級(jí)的基本信息。
同學(xué)表(t_stu)用于保存設(shè)施套票的信息。套票表包括的各個(gè)字段,類型,屬性和作用如下:
表 4-3 同學(xué)表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
stu_no | varchar | 20 | | 學(xué)號(hào) |
pwd | varchar | 20 | | 密碼 |
name | varchar | 20 | | 姓名 |
tel | varchar | 11 | | 電話 |
sex | varchar | 2 | | 性別 |
birthday | varchar | 10 | | 生日 |
QQ | varchar | 20 | | QQ |
email | varchar | 50 | | 郵箱 |
img | varchar | 50 | | 頭像 |
nickname | varchar | 50 | | 昵稱 |
state | int | 2 | | 狀態(tài) |
class_id | int | 8 | 外鍵 | 外鍵(班級(jí) id) |
該表中“id”作為主鍵,該表主要用于保存學(xué)生的基本信息。
留言表(t_message)用于保存系統(tǒng)和班級(jí)留言的信息。留言表包括的各個(gè)字段,類型,屬性和作用如下:
表 4-4 留言表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
title | varchar | 50 | | 標(biāo)題 |
text | varchar | 1024 | | 留言內(nèi)容 |
time | varchar | 20 | | 留言時(shí)間 |
state | int | 2 | | 狀態(tài) |
rtext | varchar | 1024 | | 回復(fù) |
rtime | varchar | 20 | | 回復(fù)時(shí)間 |
stu_id | int | 8 | 外鍵 | 留言人 id |
class_id | int | 8 | 外鍵 | 留言人班級(jí) id |
該表中“id”作為主鍵,該表主要用于保存留言的基本信息。
新聞表(t_news)用于保存新聞的信息。新聞表包括的各個(gè)字段,類型,屬性和作用如下:
表 4-5 新聞表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
title | varchar | 50 | | 標(biāo)題 |
text | varchar | 1024 | | 內(nèi)容 |
time | varchar | 20 | | 時(shí)間 |
type | int | 2 | | 種類 |
class_id | int | 8 | | 班級(jí) id |
該表中“id”作為主鍵,該表主要用于保存新聞的基本信息。
操作記錄表(t_role)用于保存操作記錄的信息。操作記錄表包括的各個(gè)字段,類型,屬性和作用如下:
表 4-5 操作記錄表
字段 | 類型 | 長度 | 是否主鍵 | 描述 |
---|
id | int | 8 | 主鍵 | 主鍵 |
time | varchar | 20 | | 時(shí)間 |
text | varchar | 1024 | | 操作記錄 |
該表中“id”作為主鍵,該表主要用于保存操作記錄的基本信息。
本系統(tǒng)采用的數(shù)據(jù)庫連接技術(shù)簡介
校友錄管理系統(tǒng)使用的是 MySQL 數(shù)據(jù)庫,系統(tǒng)在跟數(shù)據(jù)庫進(jìn)行連接的時(shí)候?qū)嵱玫氖?JDBC 數(shù)據(jù)庫連接技術(shù)。JDBC 是 Java Database Connectivity 技術(shù)的簡稱。JDBC 是一種 API,在 Java 進(jìn)行數(shù)據(jù)庫編程的時(shí)候用的。JDBC 為軟件開發(fā)人員提供了一套標(biāo)準(zhǔn)的編程接口。這套接口用于各種數(shù)據(jù)庫的訪問。這要實(shí)現(xiàn)以下功能:
與數(shù)據(jù)庫建立連接。
發(fā)送 SQL 語句到數(shù)據(jù)庫,由數(shù)據(jù)庫進(jìn)行執(zhí)行。
處理 SQL 執(zhí)行結(jié)果。
方式 1:
在 JSP 中創(chuàng)建 Java 片段,在 Java 片段中創(chuàng)建 Connection 類、Statement 類、ResultSet 類的對(duì)象 conn、stmt、rs,加載連接驅(qū)動(dòng)根據(jù)給定的 url、user、password 連接本地?cái)?shù)據(jù)庫。
例如在 jump.jsp 中,如上所述創(chuàng)建一段 Java 片段,通過 SQL 查詢語句訪問數(shù)據(jù)庫得到相應(yīng)的結(jié)果集。具體代碼如下:
<%Connection conn=null;Statement stmt=null;ResultSet rs=null;Class.forName("com.mysql.jdbc.Driver").newInstance();String url="jdbc:mysql://localhost:3306/huamei? unicode=true&characterEncoding=utf-8"; String user="root";String password="1";conn=DriverManager.getConnection(url,user,password);stmt=conn.createStatement();%>
方式 2:
創(chuàng)建 BaseDao 公共類在其中創(chuàng)建連接數(shù)據(jù)庫對(duì)應(yīng)的類和對(duì)象加載 jdbc.properties 文件獲取相應(yīng)的連接屬性連接數(shù)據(jù)庫。
創(chuàng)建連接
private static Connection connection;private static Properties properties;static { properties = BaseDao.jdbcProperties(); try { Class.forName(properties.getProperty("driverClassName")); } catch (ClassNotFoundException e) {// TODO Auto-generated catch block printStackTrace(); }}
加載指定文件
inStream = new BufferedInputStream(new FileInputStream(Constants.MY_PROPERTIES));
六、properties.load(inStream);
七、程序設(shè)計(jì)
根據(jù)前邊的需求分析和系統(tǒng)總體設(shè)計(jì)的內(nèi)容進(jìn)行程序的設(shè)計(jì)。本系統(tǒng)是以 Java 語言為基礎(chǔ)進(jìn)行開發(fā)的。主要是采用 JSP 技術(shù) +JavaBeans+ SQL 模式進(jìn)行模塊開發(fā)與實(shí)現(xiàn)的。全部都以面向?qū)ο蟮姆椒ㄟM(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。
- 系統(tǒng)超級(jí)管理員功能的設(shè)計(jì)與實(shí)現(xiàn)
- 后臺(tái)登陸界面的設(shè)計(jì)
- 后臺(tái)登陸頁面主要實(shí)現(xiàn)系統(tǒng)超級(jí)管理員和系統(tǒng)班級(jí)管理員的登錄。
- 后臺(tái)登陸界面的實(shí)際效果
后臺(tái)登陸界面如圖 6-1 所示:
圖 6-1 后臺(tái)登陸界面
7.1 帳號(hào)管理功能的設(shè)計(jì)與實(shí)現(xiàn)
- 賬號(hào)管理實(shí)現(xiàn)的功能
- 帳號(hào)管理功能主要實(shí)現(xiàn)超級(jí)管理員對(duì)管理員帳號(hào)的管理,以及對(duì)校友錄注冊(cè)用戶的帳號(hào)管理。超級(jí)管理員能夠?qū)ぬ?hào)進(jìn)行查看和刪除操作。
- 賬號(hào)管理功能的實(shí)現(xiàn)效果圖
圖 6-2 管理員帳號(hào)管理功能的效果圖
圖 6-3 注冊(cè)用戶帳號(hào)管理功能的效果圖
票價(jià)查看功能的詳細(xì)實(shí)現(xiàn)過程
public List viewAll() { sql = "select id,stu_no,pwd,name,tel,sex,birthday,qq,email,img,nickname,state,class_id from t_stu "; List list = null; List<Student> newList = new ArrayList(); try { list = super.select(sql); if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { ArrayList tempRow = (ArrayList) list.get(i); Student stu = new Student(); stu.setId(Integer.parseInt((String) tempRow.get(0))); stu.setStu_no((String) tempRow.get(1)); stu.setPwd((String) tempRow.get(2)); stu.setName((String) tempRow.get(3)); stu.setTel((String) tempRow.get(4)); stu.setSex((String) tempRow.get(5)); stu.setBirthday((String) tempRow.get(6)); stu.setQq((String) tempRow.get(7)); stu.setEmail((String) tempRow.get(8)); stu.setImg((String) tempRow.get(9)); stu.setNickname((String) tempRow.get(10)); stu.setState(Integer.parseInt((String) tempRow.get(11))); stu.setClass_id(Integer.parseInt((String) tempRow.get(12))); newList.add(stu); } } } catch (Exception e) { printStackTrace(); } return newList;}
7.2 班級(jí)管理功能的設(shè)計(jì)與實(shí)現(xiàn)
- 班級(jí)管理實(shí)現(xiàn)的功能
- 班級(jí)管理功能主要實(shí)現(xiàn)超級(jí)管理員能夠?qū)W(wǎng)站上已有的班級(jí)信息進(jìn)行管理。可以新增班級(jí),查看班級(jí)信息和刪除班級(jí)等功能。
- 班級(jí)管理功能的實(shí)現(xiàn)效果圖
圖 6-4 班級(jí)管理功能的效果圖
班級(jí)管理功能的詳細(xì)實(shí)現(xiàn)過程
public List viewAll() { sql = "select id,grade,name from t_class order by grade desc,name "; List list = null; List<Banji> newList = new ArrayList(); try { list = super.select(sql); if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { ArrayList tempRow = (ArrayList) list.get(i); Banji banji = new Banji(); banji.setId(Integer.parseInt((String) tempRow.get(0))); banji.setGrade((String) tempRow.get(1)); banji.setName((String) tempRow.get(2)); newList.add(banji); } } } catch (Exception e) { printStackTrace(); } return newList;}
7.3 網(wǎng)站信息管理功能的設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)站信息管理實(shí)現(xiàn)的功能
網(wǎng)站信息管理功能又包括系統(tǒng)新聞管理和留言板信息維護(hù)管理功能。超級(jí)管理員可以對(duì)網(wǎng)站的系統(tǒng)新聞進(jìn)行相應(yīng)的操作,可以對(duì)留言板進(jìn)行相應(yīng)的操作。
網(wǎng)站信息管理功能的實(shí)現(xiàn)效果圖
圖 6-5 網(wǎng)站信息管理功能的效果圖
網(wǎng)站信息管理功能的詳細(xì)實(shí)現(xiàn)過程
$(function() { datagrid4 = $('#datagrid4').datagrid({url : 'AdminViewNewsServlet',title : '系統(tǒng)新聞管理',pagination : true,pagePosition : 'bottom', pageSize : 10,pageList : [ 10, 20, 30, 40 ],fit : true,fitColumns:true,striped:true,idField : 'id',singleSelect:false,sortName : 'id',sortOrder : 'desc',checkOnSelect : true,selectOnCheck : true, scrollbarSize:0,toolbar : [ {text : '增加',iconCls : 'icon-add',handler : function() { NewEmployee(); } },'-', {text : '刪除',iconCls : 'icon-remove',handler : function() { DeleteEmployee(); } },'-', {text : '刷新',iconCls : 'icon-reload',handler : function() {$('#datagrid4').datagrid({ url:'AdminViewNewsServlet' }) ; $('#searchForm4').form('reset'); } }, '-'],columns : [ [ {checkbox:true, width : 120, },{title : '編號(hào)',field : 'id', width : 125,align:'center' },{title : '發(fā)布時(shí)間',field : 'time', width : 125,align:'center' },{title : '標(biāo)題',field : 'title', width : 125,align:'center' },{title : '種類',field : 'class_id', width : 125,align:'center',formatter:function(value) { if(value=="0") { return "系統(tǒng)新聞"; } else { return "班級(jí)新聞"; } },styler: function(index,row) { if(row.class_id==1) { return 'background-color:#E8FFC4;'; } } },{title : '操作',field : 'operate',align:'center', width : 150,formatter:function(value,rowData,rowIndex) { var pkV = rowData.evtrenewaid; var parentId = rowData.evtrenewacode; var opertorString='';// 判斷是否使用編輯 if(rowData.class_id=="0") { opertorString="<img style=/"cursor:pointer;/" title=/"修改/" sytle=/"cursor:pointer;/" src=/"themes/icons/pencil.png/" onclick=/"EditEmployee()/"/> "; } else { opertorString="<img style=/"cursor:pointer;/" title=/"修改/" sytle=/"cursor:pointer;/" src=/"themes/icons/pencil_cancel.png/" /> "; }//判斷是否使用查看 opertorString=opertorString+"<img style=/"cursor:pointer;/" title=/"查看詳情/" sytle=/"cursor:pointer;/" src=/"themes/icons/print.png/" onclick=/"CheckEmployeeDetails();/"/> "; return opertorString; }
班級(jí)管理員功能模塊的設(shè)計(jì)與實(shí)現(xiàn)
7.4 帳號(hào)管理功能的設(shè)計(jì)與實(shí)現(xiàn)
- 帳號(hào)管理功能實(shí)現(xiàn)的功能
- 班級(jí)管理員對(duì)校友錄上的各自的班級(jí)的注冊(cè)用戶的帳號(hào)進(jìn)行管理,和對(duì)自己帳號(hào)的信息進(jìn)行管理。可以查看注冊(cè)用戶的信息,更改自己的信息等功能。
- 帳號(hào)管理功能的實(shí)現(xiàn)效果圖
圖 6-6 注冊(cè)用戶帳號(hào)管理功能的效果圖
圖 6-7 個(gè)人帳號(hào)管理功能的效果圖
帳號(hào)管理功能的詳細(xì)實(shí)現(xiàn)過程
int id = Integer.valueOf(request.getParameter("id"));AdminDao adminDao = new AdminDao();List<Admin> list = adminDao.viewAdmin(id);Map<String, Object> map = new HashMap<String, Object>();map.put("rows", list);map.put("total", list.size());String dataJson = JSONObject.fromObject(map).toString();response.getWriter().write(dataJson);
7.5 班級(jí)信息管理功能的設(shè)計(jì)與實(shí)現(xiàn)
班級(jí)信息管理功能實(shí)現(xiàn)的功能
班級(jí)管理員可以對(duì)跟班級(jí)相關(guān)的信息進(jìn)行管理,包括班級(jí)新聞管理和班級(jí)留言板管理。能夠?qū)Π嗉?jí)內(nèi)的新聞信息進(jìn)行查看,對(duì)已有的新聞信息進(jìn)行修改,刪除過時(shí)的新聞信息等,還能夠?qū)α粞园迳系牧粞赃M(jìn)行查看,刪除違規(guī)留言等功能。
班級(jí)信息管理功能的實(shí)現(xiàn)效果圖
圖 6-8 班級(jí)信息管理功能的效果圖
班級(jí)信息管理功能的詳細(xì)實(shí)現(xiàn)過程
public List searchByCid(String class_id) { sql = "select t1.id,t1.title,t1.text,t1.time,t1.state,t1.rtext,t1.rtime,t1.stu_id,t1.class_id,t2.stu_no,t3.grade,t3.name from t_message t1,t_stu t2,t_class t3 where t1.stu_id=t2.id and t1.class_id=t3.id and t1.class_id=" + class_id + " order by time desc"; List list = null; List<Message> newList = new ArrayList(); try { list = super.select(sql); if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) { ArrayList tempRow = (ArrayList) list.get(i); Message message = new Message(); message.setId(Integer.parseInt((String) tempRow.get(0))); message.setTitle((String) tempRow.get(1)); message.setText((String) tempRow.get(2)); message.setTime((String) tempRow.get(3)); message.setState(Integer.parseInt((String) tempRow.get(4))); message.setRtext((String) tempRow.get(5)); message.setRtime((String) tempRow.get(6)); message .setStu_id(Integer .parseInt((String) tempRow.get(7))); message.setClass_id(Integer.parseInt((String) tempRow .get(8))); message.setStu_no((String) tempRow.get(9)); message.setClass_name((String) tempRow.get(10) + (String) tempRow.get(11)); newList.add(message); } } } catch (Exception e) { printStackTrace(); } return newList;}
用戶功能模塊的設(shè)計(jì)與實(shí)現(xiàn)
7.6 個(gè)人信息管理功能的設(shè)計(jì)與實(shí)現(xiàn)
個(gè)人信息管理功能實(shí)現(xiàn)的功能
學(xué)生能夠?qū)ψ约簬ぬ?hào)的信息進(jìn)行管理。可以查看自己的賬戶信息,更改自己的信息等功能。
個(gè)人信息管理功能的實(shí)現(xiàn)效果圖
圖 6-9 個(gè)人信息管理功能的效果圖
個(gè)人信息管理功能的詳細(xì)實(shí)現(xiàn)過程
var cardview = $.extend({}, $.fn.datagrid.defaults.view, {renderRow: function(target, fields, frozen, rowIndex, rowData) { var cc = []; cc.push('<td colspan=' + fields.length + ' style="padding:10px 100px;border:0;">'); if (!frozen) { cc.push('<img src="images/upload/' + rowData.img + '" style="height:150px;width:120px;float:left">'); cc.push('<div style="float:left;margin-left:250px;height:130px;width:200px;">'); for(var i=1; i<fields.length-1; i++) { var copts = $(target).datagrid('getColumnOption', fields[i]); cc.push('<p><span class="c-label">' + copts.title + ':</span> ' + rowData[fields[i]] + '</p>'); } cc.push('<img style=/"cursor:pointer;/" title=/"修改/" sytle=/"cursor:pointer;/" src=/"themes/icons/pencil.png/" onclick=/"EditEmployee2()/"/> '); cc.push('<img style=/"cursor:pointer;/" title=/"查看詳情/" sytle=/"cursor:pointer;/" src=/"themes/icons/print.png/" onclick=/"CheckEmployeeDetails2();/"/> '); cc.push('<img style=/"cursor:pointer;/" title=/"上傳圖片/" sytle=/"cursor:pointer;/" src=/"themes/icons/application_view_tile.png/" onclick=/"EditEmployeeS2()/"/> '); cc.push('</div>'); } cc.push('</td>'); return cc.join(''); }});
7.7 通訊錄管理功能的設(shè)計(jì)與實(shí)現(xiàn)
通訊錄管理功能實(shí)現(xiàn)的功能
用戶可以對(duì)自己帳號(hào)的通訊錄的信息進(jìn)行管理,包括班級(jí)通訊錄和校友通訊錄管理。系統(tǒng)能夠根據(jù)用戶的信息進(jìn)行智能分組,自動(dòng)顯示自己班級(jí)已經(jīng)注冊(cè)帳號(hào)的同學(xué),用戶不用再手動(dòng)進(jìn)行添加。用戶可以對(duì)班級(jí)內(nèi)的通訊錄信息進(jìn)行查看,還可以根據(jù)學(xué)號(hào)或者姓名對(duì)用戶進(jìn)行模糊查找。
通訊錄管理功能的實(shí)現(xiàn)效果圖
圖 6-10 通訊錄管理功能的效果圖
通訊錄管理功能的詳細(xì)實(shí)現(xiàn)過程
StuDao dao = new StuDao();String name=(String)request.getParameter("name");String stu_no=(String)request.getParameter("stu_no");List<Student> list = dao.searchAllScl(stu_no, name);Map<String, Object> map = new HashMap<String, Object>();map.put("rows", list);map.put("total", list.size());String dataJson = JSONObject.fromObject(map).toString();response.getWriter().write(dataJson);
7.8 消息管理功能的設(shè)計(jì)與實(shí)現(xiàn)
消息管理功能實(shí)現(xiàn)的功能
消息管理又包括新聞管理和留言板管理。用戶可以對(duì)系統(tǒng)新聞和班級(jí)新聞進(jìn)行查看,根據(jù)不同功能按鈕對(duì)新聞進(jìn)行分組查看。用戶可以在留言板上添加自己的留言,可以對(duì)已有的留言信息進(jìn)行查看。
消息管理功能的實(shí)現(xiàn)效果圖
圖 6-11 消息管理功能的效果圖
消息管理功能的詳細(xì)實(shí)現(xiàn)過程
int class_id = Integer.valueOf(request.getParameter("class_id"));NewsDao dao = new NewsDao();List<News> list = dao.viewNews(class_id);Map<String, Object> map = new HashMap<String, Object>();if(list.size()>0) { map.put("rows", list); map.put("total", list.size());} else { map.put("rows", list); map.put("total", 0); map.put("errorMsg", "現(xiàn)在沒有數(shù)據(jù)");}String dataJson = JSONObject.fromObject(map).toString();System.out.println(dataJson);response.getWriter().write(dataJson);
八、謝 辭
經(jīng)過了這段時(shí)間的緊張忙碌,我順利地完成了我的畢業(yè)設(shè)計(jì)。在這幾個(gè)多月的時(shí)間里,通過這次畢業(yè)設(shè)計(jì)的考核,我鞏固了以前學(xué)習(xí)的知識(shí),同時(shí)也學(xué)到了挺多新的知識(shí)。雖然學(xué)到了挺多知識(shí),但是我意識(shí)到自己在知識(shí)方面還差很多。需要繼續(xù)學(xué)習(xí)的知識(shí)如煙如海,這也是我繼續(xù)努力的動(dòng)力。
在本次畢業(yè)設(shè)計(jì)過程中,我首先要感謝我的指導(dǎo)老師。是她在我的畢業(yè)設(shè)計(jì)上給了我很多的幫助和指導(dǎo)。我也從指導(dǎo)老師身上我學(xué)到了很多在課堂上學(xué)不到的東西。在我的畢業(yè)設(shè)計(jì)的每一個(gè)階段,指導(dǎo)老師都進(jìn)行了詳細(xì)的指導(dǎo)。當(dāng)我遇到困難時(shí),老師也仔細(xì)為我講解,使我得到不少的提高。而且還不斷給我提出了很多寶貴的意見,讓我一步一步地完善我的程序和論文,使我能夠有條不紊的進(jìn)行畢業(yè)設(shè)計(jì)。最終完成我的畢業(yè)設(shè)計(jì),指導(dǎo)老師居功至偉。
在這里,我還要感謝在學(xué)校里的教學(xué)中辛苦忙碌的各位老師,是他們傳授給我了很多專業(yè)課程的知識(shí),讓我充實(shí)了自己。另外,在本次論文的完成過程中,也得到了許多同學(xué)的幫助。他們也幫助我解決了很多困難,教給我了挺多知識(shí)點(diǎn)。沒有他們的幫助,我也不會(huì)這么快完成我的畢業(yè)論文。在此以并表示感謝!
九、參考文獻(xiàn)
軟件工程導(dǎo)論.第五版,杭州:清華大學(xué)出版社,2012 年 5 月.44~45
周怡.Java 程序設(shè)計(jì)案例教程.杭州:清華大學(xué)出版社,2014 年 2 月.38~40
Cay S.Horstmann. Java Web 核心編程技術(shù). 機(jī)械工業(yè)出版社,2014 年 7 月.107~108
梁燕來.Java 面向?qū)ο蟪绦蛟O(shè)計(jì).杭州:人民郵電出版社,2013 年 5 月.30~32
王小寧,張廣彬.JSP 課程設(shè)計(jì)案例精編.杭州: 清華大學(xué)出版社,2011 年 7 月.60~61
明日科技.SQL Server 從入門到精通.杭州:清華大學(xué)出版社,2012 年 4 月.92
Sun Microsystems, Inc. Database Application Programming With Java Technology. 2013 年 7 月. 78~80.
鄭建德.軟件系統(tǒng)架構(gòu)與開發(fā)環(huán)境.杭州:機(jī)械工業(yè)出版社,2013 年 5 月.45
李學(xué)相.Java 軟件工程與項(xiàng)目案例教程.杭州:清華大學(xué)出版社,2012 年 5 月.34~35
李大卓,劉海.Eclipse 核心編程.杭州:人民郵電出版社,2013 年 11 月.158~159
孫衛(wèi)琴.Tomcat 與 Java Web 開發(fā)技術(shù)詳解.杭州:電子工業(yè)出版社,2014 年 8 月.112
Giulio Zambon.Beginning JSP, JSF and Tomcat:Java Web Development.美:Apress 出版社,2012 年 12 月.135~137
十、附 錄
$(function() { datagrid4 = $('#datagrid4').datagrid({url : 'AdminViewNewsServlet',title : '系統(tǒng)新聞管理',pagination : true,pagePosition : 'bottom', pageSize : 10,pageList : [ 10, 20, 30, 40 ],fit : true,fitColumns:true,striped:true,idField : 'id',singleSelect:false,sortName : 'id',sortOrder : 'desc',checkOnSelect : true,selectOnCheck : true, scrollbarSize:0,toolbar : [ {text : '增加',iconCls : 'icon-add',handler : function() { NewEmployee(); } },'-', {text : '刪除',iconCls : 'icon-remove',handler : function() { DeleteEmployee(); } },'-', {text : '刷新',iconCls : 'icon-reload',handler : function() {$('#datagrid4').datagrid({ url:'AdminViewNewsServlet' }) ; $('#searchForm4').form('reset'); } }, '-'],columns : [ [ {checkbox:true, width : 120, },{title : '編號(hào)',field : 'id', width : 125,align:'center' },{title : '發(fā)布時(shí)間',field : 'time', width : 125,align:'center' },{title : '標(biāo)題',field : 'title', width : 125,align:'center' },{title : '種類',field : 'class_id', width : 125,align:'center',formatter:function(value) { if(value=="0") { return "系統(tǒng)新聞"; } else { return "班級(jí)新聞"; } },styler: function(index,row) { if(row.class_id==1) { return 'background-color:#E8FFC4;'; } } },{title : '操作',field : 'operate',align:'center', width : 150,formatter:function(value,rowData,rowIndex) { var pkV = rowData.evtrenewaid; var parentId = rowData.evtrenewacode; var opertorString='';// 判斷是否使用編輯 if(rowData.class_id=="0") { opertorString="<img style=/"cursor:pointer;/" title=/"修改/" sytle=/"cursor:pointer;/" src=/"themes/icons/pencil.png/" onclick=/"EditEmployee()/"/> "; } else { opertorString="<img style=/"cursor:pointer;/" title=/"修改/" sytle=/"cursor:pointer;/" src=/"themes/icons/pencil_cancel.png/" /> "; }//判斷是否使用查看 opertorString=opertorString+"<img style=/"cursor:pointer;/" title=/"查看詳情/" sytle=/"cursor:pointer;/" src=/"themes/icons/print.png/" onclick=/"CheckEmployeeDetails();/"/> "; return opertorString; }