畢業(yè)設(shè)計(jì)(論文)JAVA+SQL學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
《畢業(yè)設(shè)計(jì)(論文)JAVA+SQL學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)JAVA+SQL學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、江蘇大學(xué) 畢業(yè)設(shè)計(jì)論文 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) THE DESIGN AND REALIZATION OF THE RESULT OF STUDENT ADMINISTRATION MANAGEMENT SYSTEM 學(xué)生姓名: 學(xué) 號(hào): 年級(jí)專業(yè):2004 級(jí)計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)老師: 學(xué) 院:應(yīng)用科學(xué)技術(shù)學(xué)院 提 交 日 期 : 年 月 2 目 錄 摘 要 .3 一、 開發(fā)平臺(tái)及工具簡(jiǎn)介 .5 二、系統(tǒng)分析 .7 (一)學(xué)生成績(jī)管理系統(tǒng)概述 .7 (二) 需求分析 .8 1) 功能需求分析 .8 2) 性能需 求分析 .9 3)數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)流圖 .9 4) 數(shù)據(jù)結(jié)構(gòu)分析數(shù)據(jù)流
2、圖 .10 (三)系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì) .12 三、 系統(tǒng)設(shè)計(jì) .13 (一)設(shè)計(jì)目標(biāo) .13 (二)開發(fā)及運(yùn)行環(huán)境 .13 (三) 數(shù)據(jù)庫(kù)設(shè)計(jì) .14 四、系統(tǒng)的實(shí)現(xiàn) .17 (一)學(xué)生查詢成績(jī)部分 .17 (二)后臺(tái)管理成績(jī)部分 .19 登陸模塊 .19 年紀(jì)班級(jí)管理模塊 .20 課程管理模塊 .24 評(píng)分模塊 .24 學(xué)生信息管理模塊 .27 管理員模塊 .29 五、系統(tǒng)存在的問(wèn)題及前景展望 .30 (一)系統(tǒng)存在問(wèn)題 .30 (二)前景展望 .30 參考文獻(xiàn) .31 3 摘要 隨著現(xiàn)代計(jì)算機(jī)科學(xué)的發(fā)展,計(jì)算機(jī)信息系統(tǒng)越來(lái)越受到重視, 網(wǎng)絡(luò)已經(jīng)成為人們交流信息的重要方式,所以基于網(wǎng)絡(luò)平臺(tái)的各
3、種 系統(tǒng)不斷出現(xiàn),B/S 結(jié)構(gòu)的軟件已經(jīng)成為人們生活工作的一種重要 工具。本文將介紹如何使用 java 后臺(tái)結(jié)合 RIA 富客戶端技術(shù)制作學(xué) 生管理系統(tǒng),其中涉及到數(shù)據(jù)庫(kù)的建立和系統(tǒng)模塊功能的實(shí)現(xiàn),并 在最后說(shuō)明了系統(tǒng)存在問(wèn)題和前景展望。 關(guān)鍵詞:java,SQL ,TOMCAT,學(xué)生成績(jī)管理 4 Abstract Along with the modern computer science development, the computer information system is more and more important, the network already became th
4、e people to exchange the information important way, therefore appeared systems that based on network platform, the B/S system already became one kind of important tool which the people exchanged. Now we will introduce how to use java and RIA to develop a student score management system. This part in
5、cluding database creation and the system function realization. Finally expound the matter and shortage of the system, in order to ameliorate better in the future. Keywords: java, SQL, TOMCAT,Student score management 5 一、開發(fā)平臺(tái)及工具簡(jiǎn)介 1、Java 概述 Java 包括 Java 編程語(yǔ)言、開發(fā)工具和環(huán)境、Java 類庫(kù)等。 Java 語(yǔ)言是美國(guó) SUN 公司開發(fā)的一種完全
6、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 Java 語(yǔ)言由 C+語(yǔ)言發(fā)展而來(lái),但比 C+語(yǔ)言簡(jiǎn)單。Java 語(yǔ)言具有簡(jiǎn)單、與 平臺(tái)無(wú)關(guān)、高效、健壯、安全、多線程等特點(diǎn),它是當(dāng)前網(wǎng)絡(luò)編程中的首選 語(yǔ)言。 JDK 提供了 Java 程序的編譯和運(yùn)行方式,并且編譯和運(yùn)行都是命令行方 式。JDK 本身沒(méi)有提供源程序編輯環(huán)境,沒(méi)有提供可視化的集成開發(fā)環(huán)境 (Integrated Development Environment,IDE) 。有一些其他 Java 開發(fā)工具提供集 成開發(fā)環(huán)境,如 Eclipse、 JCreator、JBuilder 等,它們都是建立在 JDK 的運(yùn)行 時(shí)環(huán)境之上的。 Java 是一門編譯語(yǔ)言
7、(compiled language),但它不直接生成硬件處理器 指令,而是生成一種字節(jié)碼(bytecodes)這種字節(jié)碼由 Java 虛擬機(jī)解釋執(zhí)行。 Java 虛擬機(jī)(Java Virtual Machine,JVM)實(shí)際上是一個(gè)程序,它定義了 指令集、寄存器集、類文件結(jié)構(gòu)棧、垃圾收集堆、內(nèi)存區(qū)域等,提供了跨平 臺(tái)能力的基礎(chǔ)框架。 Java 虛擬機(jī)實(shí)現(xiàn)了一臺(tái)理想的計(jì)算機(jī),并可以優(yōu)化運(yùn)行 Java 程序。因此, 一個(gè) Java 程序其實(shí)是被 Java 虛擬機(jī)執(zhí)行的,而 Java 虛擬機(jī)運(yùn)行于實(shí)際的處理 器之上。 Java 虛擬機(jī)執(zhí)行應(yīng)用程序具有以下三個(gè)典型特點(diǎn): 1)JavaJava 2、S
8、QL Server 2000 SQL Server 2000 是 Microsoft 公司推出的 SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng) 的最新版本該版本繼承了 SQL Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多 更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)可跨越 從運(yùn)行 Microsoft Windows 98 的膝上型電腦到運(yùn)行 Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。它的優(yōu)點(diǎn)有: 1)上手容易,學(xué)習(xí) SQL Server 是掌握其他平臺(tái)及大型數(shù)據(jù),如 Oracle,Sybase,DB/2 的基礎(chǔ)。因?yàn)檫@些大型數(shù)據(jù)庫(kù)對(duì)于設(shè)
9、備、平臺(tái)、人員知識(shí) 的要求往往較高,而并不是每個(gè)人都具備這樣的條件,且有機(jī)會(huì)去接觸它們。 但有了 SQL Server 的基礎(chǔ),再去學(xué)習(xí)和使用它們就容易多了。IT 行業(yè)的實(shí)踐 經(jīng)驗(yàn)充分證明了這一點(diǎn)。 2)兼容性良好,由于今天 Windows 操作系統(tǒng)占領(lǐng)著主導(dǎo)地的位,選擇 SQL Server 一定會(huì)在兼容性方面取得一些優(yōu)勢(shì)。另外,SQL Server 2000 除了 具有擴(kuò)展性,可靠性以外,還具有可以迅速開發(fā)新的因特網(wǎng)系統(tǒng)的功能。尤 其是它可以直接存貯 XML 數(shù)據(jù),可以將搜索結(jié)果以 XML 格式輸出等特點(diǎn), 有利于構(gòu)建了異構(gòu)系統(tǒng)的互操作性,奠定了面向互聯(lián)網(wǎng)的企業(yè)應(yīng)用和服務(wù)的 基石。這些特點(diǎn)
10、在.NET 戰(zhàn)略中發(fā)揮著重要的作用。 3)相對(duì)于 7.0 的憂越性,Microsoft SQL Server 2000 是在 SQL Server 7.0 的 基礎(chǔ)上對(duì)性能、可靠性、質(zhì)量以及易用性進(jìn)行了擴(kuò)展。SQL Server 2000 中包 6 含許多新特性,這些特性使其成為針對(duì)電子商務(wù)、數(shù)據(jù)倉(cāng)庫(kù)和在線商務(wù)解決 方案的卓越的數(shù)據(jù)庫(kù)平臺(tái)。其增強(qiáng)的特性包括對(duì)豐富的擴(kuò)展標(biāo)記語(yǔ)言 (XML)的支持、綜合分析服務(wù)以及便捷的數(shù)據(jù)庫(kù)管理。 4)電子商務(wù),在使用由 Microsoft SQL Server 2000 關(guān)系數(shù)據(jù)庫(kù)引擎的情況 下,XML 數(shù)據(jù)可在關(guān)系表中進(jìn)行存儲(chǔ),而查詢則能以 XML 格式將有
11、關(guān)結(jié)果 返回。此外,XML 支持還簡(jiǎn)化了后端系統(tǒng)集成,并實(shí)現(xiàn)了跨防火墻的無(wú)縫數(shù) 據(jù)傳輸。你還可以使用 Hypertext Transfer Protocol(超文本傳輸協(xié)議, HTTP)來(lái)訪問(wèn) SQL Server 2000,以實(shí)現(xiàn)面向 SQL Server 2000 數(shù)據(jù)庫(kù)的安全 Web 連接和無(wú)須額外編程的聯(lián)機(jī)分析處理( OLAP)多維數(shù)據(jù)集。 5)數(shù)據(jù)倉(cāng)庫(kù),Microsoft SQL Server 2000 非常明顯的改進(jìn)就是增加了 OLAP(聯(lián)機(jī)分析處理)功能,這可以讓很多中小企業(yè)用戶也可以使用數(shù)據(jù)倉(cāng)庫(kù)的 一些特性進(jìn)行分析。OLAP 可以通過(guò)多維存儲(chǔ)技術(shù)對(duì)大型、復(fù)雜數(shù)據(jù)集執(zhí)行快 速、高
12、級(jí)的分析工作。數(shù)據(jù)挖掘功能能夠揭示出隱藏在大量數(shù)據(jù)中的傾向及 趨勢(shì),它允許組織或機(jī)構(gòu)最大 限度的從數(shù)據(jù)中獲取價(jià)值。通過(guò)對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行有效分析,這一功能可以對(duì) 未來(lái)的趨勢(shì)進(jìn)行預(yù)測(cè)。 6)增強(qiáng)的在線商務(wù),Microsoft SQL Server 2000 簡(jiǎn)化了管理、優(yōu)化工作, 并且增強(qiáng)了迅速、成功的部署在線商務(wù)應(yīng)用程序所需的可靠性和伸縮性。其 中,用以提高可靠性的特性包括日志傳送、在線備份和故障切換群集。在伸 縮性方面的改進(jìn)包括對(duì)多達(dá) 32 顆 CPU 和 64 GB RAM 的支持。通過(guò)自動(dòng)優(yōu)化 和改進(jìn)后的管理特性-諸如數(shù)據(jù)文件尺寸的自動(dòng)管理、基于向?qū)У臄?shù)據(jù)庫(kù)拷貝、 自動(dòng)內(nèi)存管理和簡(jiǎn)化的故障切
13、換群集安裝與管理,在線商務(wù)應(yīng)用程序能夠被 迅速部署并有效管理。 7)利于構(gòu)筑敏捷性商務(wù) ,所謂敏捷性商務(wù) 就是能夠打破內(nèi)部和外部 的商業(yè)界限,對(duì)迅速改變的環(huán)境做出快速反應(yīng)。 。微軟已經(jīng)與關(guān)鍵的合作伙伴 建立起了戰(zhàn)略關(guān)系,創(chuàng)造出了能夠與許多供應(yīng)商的產(chǎn)品實(shí)現(xiàn)整合的解決方案, 因而企業(yè)用戶并不需要做出要么完全接受,要么全部不要 的承諾。在部署解 決方案的過(guò)程中,企業(yè)用戶不一定要拆除原有的設(shè)備從頭。敏捷商務(wù)讓企業(yè) 用戶能夠充分利用現(xiàn)有的系統(tǒng),自主決定所需的硬件和軟件解決方案以及由 誰(shuí)來(lái)提供,伸縮自如、游刃有余。 3、TOMCAT 簡(jiǎn)介 Tomcat 是一個(gè)帶有 jsp 環(huán)境的 servlet 容器.s
14、ervlet 容器是一個(gè)根據(jù)用戶的行 為可以管理和激活 servlet 的運(yùn)行時(shí)的 shell. 啟動(dòng)與關(guān)閉 Tomcat,使用”bin” 目錄中的腳本啟動(dòng)與關(guān)閉 Tomcat. 啟動(dòng): uinx:bin/startup.sh , win32:binstartup 。關(guān)閉: unix:bin/shutdown.sh ,win32:binshutdown 。 Tomcat 目錄結(jié)構(gòu) ,目錄名- 描述: bin 包含啟動(dòng)/關(guān)閉腳本 ;conf 包含不 同的配置文件, 包括 server.xml(Tomcat 的主要配置文件 )和為不同的 Tomcat 配置的 web 應(yīng)用設(shè)置缺省值的文件 web.
15、xml ; doc 包含各種 Tomcat 文檔 ;lib 包含 Tomcat 使用的 jar 文件.unix 平臺(tái)此目錄下的任何文件都被加到 Tomcat 的 classpath 中 ; logs Tomcat 擺放日志文件的地方 ;src ServletAPI 源 文件.先別高興,這些只有些必須在 Servlet 容器內(nèi)實(shí)現(xiàn)的空接口和抽象類 ;webapps 包含 web 項(xiàng)目示例 ,此外 Tomcat 會(huì)創(chuàng)建如下目錄: work 7 ,Tomcat 自動(dòng)生成,放置 Tomcat 運(yùn)行時(shí)的臨時(shí)文件(如編譯后的 JSP 文件).如 在 Tomcat 運(yùn)行時(shí)刪除此目錄.JSP 頁(yè)面將不能運(yùn)行;
16、classes 可以創(chuàng)建此目錄來(lái) 添加一些附加的類到類路徑中.任何加到此目錄中的類都可在 Tomcat 的類路徑 中找到自身. Tomcat 的腳本 ,Tomcat 是一個(gè) Java 程序,因此在設(shè)置好幾個(gè)環(huán)境變量后即 可用命令行的方式運(yùn)行.然而設(shè)置 Tomcat 使用的每個(gè)環(huán)境變量和如下的命令行 參數(shù)乏味且易錯(cuò).因此,Tomcat 開發(fā)組提供了一些腳本使啟動(dòng)和關(guān)閉 Tomcat 變 得輕松. 二、系統(tǒng)分析 (一) 學(xué)生成績(jī)管理系統(tǒng)概述 1)學(xué)生成績(jī)管理系統(tǒng)的發(fā)展背景 學(xué)生成績(jī)管理是各大學(xué)的主要日常管理工作之一,涉及到校、系、師、生 的諸多方面,隨著教學(xué)體制的不斷改革,尤其是學(xué)分制、選課制的展
17、開和深入, 學(xué)生成績(jī)?nèi)粘9芾砉ぷ骷氨4婀芾砣遮叿敝?、?fù)雜。迫切需要研制開發(fā)一款功 能強(qiáng)大,操作簡(jiǎn)單,具有人性化的學(xué)生成績(jī)管理系統(tǒng)。 目前研究的現(xiàn)狀在安全性和信息更新化方面存在有一定的不足,各現(xiàn)有系統(tǒng)資 料單獨(dú)建立,共享性差;在以管理者為主體的方式中,信息取舍依賴管理者對(duì) 于信息的認(rèn)知與喜好,較不容易掌握用戶真正的需求,也因此無(wú)法完全滿足用 戶的需求。因此,教務(wù)管理軟件應(yīng)充分依托校園網(wǎng),實(shí)現(xiàn)教務(wù)信息的集中管理、 分散操作、信息共享,使傳統(tǒng)的教務(wù)管理朝數(shù)字化、無(wú)紙化、智能化、綜合化 的方向發(fā)展,并為進(jìn)一步實(shí)現(xiàn)完善的計(jì)算機(jī)教務(wù)管理系統(tǒng)和全校信息系統(tǒng)打下 良好的基礎(chǔ)。 隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,
18、Internet/Intranet 應(yīng)用在全球范圍內(nèi)日 益普及,在眾多的網(wǎng)絡(luò)服務(wù)中,Web 給人耳目一新的感覺(jué),而在這其中,網(wǎng)絡(luò) 已經(jīng)日漸普及,任何人可以在網(wǎng)絡(luò)所提供的平臺(tái)上進(jìn)行自由的交流,通過(guò)網(wǎng)絡(luò), 學(xué)生可以通過(guò)在線的網(wǎng)絡(luò)直接查詢程序,而學(xué)校教師也可在網(wǎng)上在線管理學(xué)生 的成績(jī),不需要再去張貼成績(jī)單,使用了在線電子系統(tǒng),既便于數(shù)據(jù)查詢不容 易使數(shù)據(jù)丟失,又省去了印刷張貼的麻煩,可謂一舉兩得。 B/S 系統(tǒng)得益于網(wǎng)絡(luò)的興起,采用瀏覽器作為前端用戶操作的平臺(tái),所有 的操作系統(tǒng)都預(yù)裝了網(wǎng)絡(luò)瀏覽器,比如 IE,用戶不用再去費(fèi)心安裝每個(gè)系統(tǒng)的 客戶端就可以通過(guò)瀏覽器訪問(wèn)服務(wù)器上架設(shè)的系統(tǒng) 只是隨著網(wǎng)絡(luò)的
19、發(fā)展,人們不再局限于只查看文字信息圖片這些靜態(tài)信息, 對(duì) B/S 系統(tǒng)的互操作性有了進(jìn)一步的需求,這才興起了 RIA 富客戶端的風(fēng)潮, 使用各種技術(shù)對(duì)瀏覽器進(jìn)行功能上的增強(qiáng),讓它可以滿足現(xiàn)代用戶的需要。 這套學(xué)生成績(jī)管理系統(tǒng),就是基于 java 平臺(tái)和 ajax 實(shí)現(xiàn)的 RIA 富客戶端開發(fā)的, 它包括學(xué)生查詢平臺(tái)和后臺(tái)管理平臺(tái)兩部分,分別為學(xué)生提供成績(jī)查詢功能, 8 為老師提供管理學(xué)生成績(jī)的功能。 2)方案論證 成績(jī)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建 立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性 和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后
20、者則要求應(yīng)用程序功能完備,易使用 等特點(diǎn)。 本系統(tǒng)主要完成對(duì)學(xué)生成績(jī)的管理,包括數(shù)據(jù)庫(kù)中表的添加、修改、刪除等。 系統(tǒng)還可以完成對(duì)各類信息的瀏覽、查詢、添加、刪除、修改等功能。 3) 開發(fā)工具的選擇 本系統(tǒng)開發(fā)工具:JDK Version1.5+ SQL SERVER 2000 (二) 需求分析 1) 功能需求分析 該學(xué)生成績(jī)管理系統(tǒng)具備三方面的功能:一方面是學(xué)生用戶,學(xué)生通過(guò)輸入 學(xué)號(hào)和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行一些基礎(chǔ)查詢(學(xué)生信息查詢、班級(jí)信息 查詢、課程信息查詢) 、成績(jī)管理(成績(jī)查詢、計(jì)算平均分)重新登陸系統(tǒng);一 方面老師進(jìn)入該系統(tǒng)則比學(xué)生多一些權(quán)限:成績(jī)輸入、成績(jī)查詢。 具體功能的
21、詳細(xì)描述如下 1 選擇學(xué)生基本維護(hù)菜單命令,即可進(jìn)入 學(xué)生基本維護(hù) 功能窗體,在其中 輸入學(xué)生的相關(guān)信息,如果需要添加或修改學(xué)生信息,則單擊相應(yīng)的按紐,輸 入新信息后單擊添加 就可以了。需要?jiǎng)h除一條信息,則只要選擇這條信息再 點(diǎn)擊 刪除 。在搜索條件中輸入相關(guān)的條件,單擊 查詢就可查找信息。 2 選擇學(xué)生信息查詢菜單命令,即可進(jìn)入學(xué)生信息查詢 功能窗體,在其中的 下拉列表中選擇你要看的信息,則在下面的表格中顯示你要的信息。 3 選擇成績(jī)管理 添加成績(jī)菜單命令,即可進(jìn)入 添加成績(jī)功能窗體,此功 能權(quán)限只有管理員和教師。 4 選擇成績(jī)管理 輸入成績(jī) 菜單命令,即可進(jìn)入 輸入成績(jī)功能窗體, 此功能權(quán)
22、限只有管理員和教師。 5 選擇成績(jī)管理 修改成績(jī) 界面,此功能規(guī)管理員所有。 6 選擇成績(jī)管理 查詢成績(jī)界面此界面對(duì)學(xué)生也是可見的,它的權(quán)限規(guī)所 有用戶所有。 9 7 選擇登陸 重新登陸 則會(huì)返回登陸界面,為用戶提供方便。 8 選擇退出將退出整個(gè)系統(tǒng)。 2) 性能需求分析 時(shí)間特性要求:在軟件方面,響應(yīng)時(shí)間有點(diǎn)慢,因?yàn)槭怯?JBuilder 做的, 它占用內(nèi)存比較大,更新處理時(shí)間比較快而且迅速。 安全性:設(shè)立口令號(hào)和密碼驗(yàn)證方式,防止非法用戶登錄進(jìn)行操作。也就 是用戶只有管理員、學(xué)生和教師才能進(jìn)入這個(gè)系統(tǒng),用戶憑口令號(hào)和密碼進(jìn)入 此系統(tǒng),系統(tǒng)會(huì)自動(dòng)判斷用戶是那種類型,分別擁有不同的權(quán)限。 3)
23、 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)流圖 在教務(wù)系統(tǒng)中功能模塊主要牽涉到的信息包括:是學(xué)生信息(base_info) 、 班級(jí)信息(class_info) 、課程信息 (class_info)、成績(jī)表 (chengjibiao)、選課表 (xuankebiao)、登陸表(stu) 。 學(xué)生信息:包含學(xué)號(hào)(id) 、姓名 (name)、班級(jí)(class)、班級(jí)(grade) 、性別(sex) 課程信息:包括課程編號(hào)(course_id)、課程名稱(coursename) 姓名(name)、成績(jī) (result) 成績(jī)表:編號(hào)(number) 、學(xué)號(hào) (id)、課程名稱(coursename)、成績(jī)(result
24、) 班級(jí)信息:班級(jí)編號(hào)(bjbh)、學(xué)號(hào)(id) 、姓名(name) 、班級(jí)名稱(bjmc)。 登陸表:口令號(hào)(id) 、密碼 (password)。 根據(jù)以上劃分的具體數(shù)據(jù)信息,得到數(shù)據(jù)流圖如 1.1 所示: 1.1 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)流圖 4)數(shù)據(jù)結(jié)構(gòu)分析 學(xué)生信息=組成: 學(xué)號(hào)(id)、姓名(name)、班級(jí) (class)、性別(sex) 、地址 (address) 課程信息=組成: 編號(hào)(course_id)、課程名稱(coursename)、教師(teacher) 選課信息=組成:編號(hào)(select_id) 課程名稱(coursename)、課程編號(hào)(course_id) 、 用
25、戶 登 錄 操 作 登陸信息 錯(cuò)誤信息 賬號(hào)信 息 2 開 發(fā)環(huán)境 與工具 介紹 前端 客戶端我 用的是 Macromedi a Dreamweav er 8 來(lái)編 寫 JSP 文 件。中間 業(yè)務(wù)邏輯 層的 JavaBeans 用的是 JBuilderX Enterpris eX 版。數(shù) 據(jù)庫(kù)的編 寫是采用 MYSQL 數(shù)據(jù) 庫(kù)。 2.1 開發(fā) 環(huán)境 由于 我用的 是 JBuilde rX Enterpri se 版開 發(fā)的這 個(gè)系統(tǒng), 這個(gè)開 發(fā)軟件 功能十 分強(qiáng)大, 所以自然 對(duì)開發(fā)環(huán) 境要求相 對(duì)來(lái)說(shuō)比 較高。 1對(duì) 系統(tǒng)硬件 的要求: 最小 512M RAM,推薦 786MB RAM。
26、 2. 對(duì) 系統(tǒng)平臺(tái) 的要求: Windo ws 平臺(tái) CPU:Intel PentiumIII 及以上兼 容系列 500MHz 以上。 操作 系 統(tǒng): M i c r o s o f t W i n d o w s 2 0 0 0 ( S P 4 )、 W i n d o w X P 或 者 W i n d o w s S e r v e r 2 0 0 3 。 Linux 平臺(tái) C P U : I n t e l P e n t i u m I I I 及 以 上 兼 容 系 列 5 0 0 M H z 以 上。 操作 系 統(tǒng): S u n J a v a D e s k t o p S
27、y s t e m R e l e a s e 2 或 者 R e d H a t E n t e r p r i s e L i n u x 3 . 0 2.2 運(yùn)行 環(huán) 境: 硬件: 適用于數(shù) 據(jù)吞吐量 較大的不 同服務(wù)器; 軟件 :服務(wù)器 端: WINDOWS XP+MySQL 用 戶端: WindowXP+ IE 返回信息 尋找信息 數(shù) 據(jù) 庫(kù) 10 學(xué)號(hào)(xh)、姓名 (name)、成績(jī) (result) 、教師(teacher) 成績(jī)表包括=組成:編號(hào) (number)、學(xué)號(hào)(id)、課程名稱(coursename)、成績(jī) (result)、教師(teacher) 課程信息包括=組
28、成:課程編號(hào) (course_id)、課程名稱(coursename)、教師 (teacher) 班級(jí)信息=組成:班級(jí)編號(hào) (bjbh)、年級(jí)(nj)、班級(jí)名稱 (bjmc)、人數(shù)(rs)、班主 任(bzr) 登陸表=組成:口令號(hào)(id)、密碼(password)、權(quán)限(rightlimit) 1、對(duì)圖 1.1 中所涉及的數(shù)據(jù)流描述如下: 1) 數(shù)據(jù)流名:口令號(hào) 說(shuō)明:根據(jù)這個(gè)口令號(hào)定位到用戶管理數(shù)據(jù)庫(kù),以便進(jìn)行身份驗(yàn)證。 數(shù)據(jù)流來(lái)源:登陸界面輸入的口令號(hào)和密碼。 數(shù)據(jù)流去向:其中用戶口令信息將存在于整個(gè)操作過(guò)程中,防止非法登陸。 數(shù)據(jù)流組成:口令號(hào)(文本) ;密碼(文本) 2) 數(shù)據(jù)流名:尋
29、找信息 說(shuō)明:根據(jù)用戶在學(xué)生信息維護(hù)的時(shí)候所填寫的信息。 數(shù)據(jù)流來(lái)源:學(xué)生信息維護(hù)界面學(xué)生輸入包含學(xué)號(hào)、班級(jí)編號(hào)、名稱等。 數(shù)據(jù)流去向:學(xué)號(hào)將存在整個(gè)操作,其它的存入數(shù)據(jù)庫(kù)。 數(shù)據(jù)流組成:學(xué)號(hào)(文本) ;姓名(文本)等 3) 數(shù)據(jù)流名:尋找信息 說(shuō)明:根據(jù)用戶在成績(jī)管理的時(shí)候所填寫的信息。 數(shù)據(jù)流來(lái)源:成績(jī)輸入、修改、添加等界面用戶輸入包含課程編號(hào)、課程 名稱、成績(jī)、教師。 數(shù)據(jù)流去向:學(xué)號(hào)、班級(jí)編號(hào)、課程編號(hào)將存在整個(gè)操作,其它的存入數(shù) 據(jù)庫(kù)。 數(shù)據(jù)流組成:課程編號(hào)(文本) 、課程名稱(文本) 、教師(文本)等。 4) 數(shù)據(jù)流名:返回信息 說(shuō)明:根據(jù)用戶在學(xué)生信息維護(hù)的時(shí)候所填寫的信息存入了
30、數(shù)據(jù)庫(kù)之后。 數(shù)據(jù)流來(lái)源:由學(xué)生信息維護(hù)界面學(xué)生輸入的包含學(xué)號(hào)、姓名、性別等存 11 入數(shù)據(jù)庫(kù)的。 數(shù)據(jù)流去向:學(xué)生信息維護(hù)界面。 數(shù)據(jù)流組成:學(xué)號(hào)(文本) 、姓名(文本) 、班級(jí)名稱(文本) 、性別(文本) 等。 5) 數(shù)據(jù)流名:返回信息 說(shuō)明:根據(jù)用戶在成績(jī)管理的時(shí)候所填寫的信息存入數(shù)據(jù)庫(kù)后。 數(shù)據(jù)流來(lái)源:由成績(jī)管理輸入的包含班級(jí)名稱、教師、課程名、成績(jī)存入 數(shù)據(jù)庫(kù)的。 數(shù)據(jù)流去向:成績(jī)管理的各子界面。 數(shù)據(jù)流組成:班級(jí)編號(hào)(文本) ;班級(jí)名稱(文本) ;教師(文本)等 2. 對(duì)圖 1.1 中所涉及的處理過(guò)程描述如下: 1) 處理過(guò)程名:登陸 輸入數(shù)據(jù)流:口令號(hào)、密碼 輸出數(shù)據(jù)流:不符合輸
31、入條件的錯(cuò)誤信息 處理過(guò)程邏輯:用 IF 條件進(jìn)行判斷。 2) 處理過(guò)程名:班級(jí)信息維護(hù) 輸入數(shù)據(jù)流:班級(jí)編號(hào)、班級(jí)名稱、教師等 輸出數(shù)據(jù)流:班級(jí)編號(hào)、班級(jí)名稱等 ,其中班級(jí)編號(hào)將存在整個(gè)操作。 處理過(guò)程號(hào):班級(jí)編號(hào),其中班級(jí)編號(hào)將存在整個(gè)操作。 3) 處理過(guò)程名:學(xué)生信息維護(hù) 輸入數(shù)據(jù)流:學(xué)號(hào)、姓名、班級(jí)編號(hào)、性別等。 輸出數(shù)據(jù)流:學(xué)號(hào)、姓名、班級(jí)編號(hào)、性別等。其中學(xué)號(hào)將存在整個(gè)操作。 4) 處理過(guò)程名:課程查詢 輸入數(shù)據(jù)流:學(xué)號(hào)、姓名 輸出數(shù)據(jù)流:學(xué)號(hào)、班級(jí)名稱、課程名稱、上課時(shí)間節(jié)、上課時(shí)間天、上 課地點(diǎn)、其中課程編號(hào)將存在整個(gè)操作。 12 5) 處理過(guò)程名:成績(jī)輸入 輸入數(shù)據(jù)流:課程編
32、號(hào)、課程名稱 輸出數(shù)據(jù)流:編號(hào)、學(xué)號(hào)、課程名稱、成績(jī) 、其中編號(hào)和學(xué)號(hào)將存在整個(gè) 操作。 (三) 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì) 根據(jù)需求分析階段得到的功能需求,管理員、學(xué)生和教師用戶通過(guò)輸入口 令號(hào)和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行一些學(xué)生基礎(chǔ)信息查詢(學(xué)生信息查詢、 班級(jí)信息查詢、課程信息查詢) 、學(xué)生信息維護(hù)、成績(jī)管理(成績(jī)查詢、計(jì)算平 均分)重新登陸系統(tǒng)、退出。 模塊功能大概可以分為如下 4 個(gè)方面:這幾個(gè)模塊學(xué)生基礎(chǔ)維護(hù)、成績(jī)管 理、登陸、退出。其中基礎(chǔ)維護(hù)還要包括學(xué)生信息維護(hù)、班級(jí)信息維護(hù)、課程 信息維護(hù)。成績(jī)管理包括成績(jī)查詢、添加成績(jī)、成績(jī)輸入等。綜上所述,得到 客戶端功能模塊圖如下 2.1 所示。
33、 學(xué)生成績(jī)管理系統(tǒng) 13 成績(jī)管理 重新登陸 三、系統(tǒng)設(shè)計(jì) (一)設(shè)計(jì)目標(biāo) 通過(guò)對(duì)學(xué)生管理工作的調(diào)查和研究,要求系統(tǒng)設(shè)計(jì)完成后將達(dá)到以下目標(biāo): 界面設(shè)計(jì)友好、美觀,方便管理員的日常操作。 基本信息的全面設(shè)置,數(shù)據(jù)錄入方便、快捷。 具有用戶維護(hù)功能。 最大限度地實(shí)現(xiàn)了易維護(hù)性和易操作性。 (二)開發(fā)及運(yùn)行環(huán)境 硬件平臺(tái): CPU:P41.8GHz; 內(nèi)存:256MB 以上。 軟件平臺(tái): 操作系統(tǒng):Windows2000 Server; 數(shù)據(jù)庫(kù):SQL Server 2000; 開發(fā)工具包:JDK Version1.5 建立環(huán)境,這個(gè)過(guò)程如下: 在 http:/ JDK(Java2SDK、Stan
34、dardEdition、v6.0)。JDK 的安裝是首先運(yùn)行下載得到的 jdk-6u5-windows-i586-p.exe,然后修改系統(tǒng)環(huán)境 管理員模塊 學(xué)生基本信息 登陸 退出 學(xué)生信息維護(hù) 學(xué)生信息查詢 成績(jī)查詢 成績(jī)修改 成績(jī)輸入 圖 2.1 客戶模塊系統(tǒng)功能模塊圖 退出成績(jī)添加 學(xué)生模塊 成績(jī) 查詢 14 變量,新建 JAVA_HOME=x:jdk6.0,并在 PATH 參數(shù)中加入% JAVA_HOME%bin;,其中x:是安裝 JDK 的硬盤符(c:、d:等) 。 在 http:/jakarta.apache.org/處下載 Tomcat6.0。tomcat 的安裝僅需將 apac
35、he- tomcat-5.5.26.zip 帶目錄釋放到硬盤根目錄下(c: 、d:等) ,然后就可以在硬盤 上找到 apache-tomcat-5.5.26 目錄。 啟動(dòng)則在 apache-tomcat-5.5.26/bin 目錄下執(zhí)行 startup.bat,就可啟動(dòng) tomcat 中 一個(gè)支持 JSP 網(wǎng)頁(yè)技術(shù)的 Web 服務(wù)器。為了不與現(xiàn)有的 Web 服務(wù)器(例如 IIS、PWS 等)沖突,tomcat 的 Web 服務(wù)器使用了 8080 端口。 在瀏覽器的地址欄中鍵入 http:/localhost:8080 或者 http:/127.0.0.1:8080 后,如 果能看到 tomca
36、t 的歡迎頁(yè)就說(shuō)明 JSP 實(shí)驗(yàn)環(huán)境已經(jīng)建成,可進(jìn)入下一步實(shí)驗(yàn)。 要關(guān)閉 Web 服務(wù)器則運(yùn)行 shutdown.bat。 (三)數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)連接對(duì)動(dòng)態(tài)網(wǎng)站來(lái)說(shuō)是最為重要的部分,從 JSP 中訪 問(wèn)數(shù)據(jù)通常是通過(guò) Java Bean 來(lái)實(shí)現(xiàn)的。Java 中連接數(shù)據(jù)庫(kù)的技術(shù)是 JDBC(Java Database Connectivity)。很多數(shù)據(jù)庫(kù)系統(tǒng)帶有 JDBC 驅(qū)動(dòng)程序,Java 程序就通過(guò) JDBC 驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢、提取數(shù)據(jù)等等操作。Sun 公司還開發(fā) 了 JDBC-ODBC bridge,用此技術(shù) Java 程序就可以訪問(wèn)帶有 ODBC 驅(qū)動(dòng)程序的
37、數(shù)據(jù)庫(kù),目前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有 ODBC 驅(qū)動(dòng)程序,所以 Java 程序能訪問(wèn) 諸如 Oracle、Sybase 、MSSQL Server 和 MS Access 等數(shù)據(jù)庫(kù)。 1 JavaBean JavaBeans 是基于 java 的組件模型,由屬性,方法和事件 3 個(gè)部分組成。 在該模型中,Javabeans 可以被修改或與其他組件結(jié)合生成新組件或完成的程序。 它是一種 Java 類,通過(guò)封裝成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對(duì)象。因此, 也可以通過(guò)嵌在 JSP 頁(yè)面內(nèi)的 Java 代碼訪問(wèn) Bean 及其方法。Bean 的含義是可 重復(fù)使用的 Java 組件。所謂組件就是一個(gè)由可
38、以自行進(jìn)行內(nèi)部管理的一個(gè)或幾 個(gè)類所組成,外界了解其內(nèi)部信息和運(yùn)行方式的群體。使用它的對(duì)象只能通過(guò) 接口來(lái)操作。 Bean 實(shí)際上是根據(jù) JavaBeans 技術(shù)標(biāo)準(zhǔn)所指定的 Bean 的命名和設(shè)計(jì)規(guī)范而 編寫的 Java 類。Bean 并不需要繼承特別的基類(base class)或事項(xiàng)特定的接口 (Interface) 。JavaBeans1.01-A 規(guī)范定義了該組件的 5 種重要的機(jī)制: 1) 內(nèi)省(Introspection) :組件可發(fā)表其支持的操作和屬性,同時(shí)也支持在其他 組件中發(fā)現(xiàn)重復(fù)利用的對(duì)象庫(kù),例如用戶權(quán)限和電子自動(dòng)回復(fù)等。 2) 通信(Communication ):生成
39、和收集組件的消息事件 3) 持續(xù)(Persistence ):存放組件的狀態(tài)。 4) 屬性(Properties):支持組件布局的控制,包括組件占用的空間和組件的相 對(duì)位置。 5) 定制(Customization):開發(fā)者可控制組件所需的改變機(jī)制。 6) Javabeans 可實(shí)現(xiàn)在設(shè)計(jì)平臺(tái)被規(guī)定的操作,一般可表示為簡(jiǎn)單的圖形界面, 如按鈕,光標(biāo)和菜單等,也可以是不可見的接受并處理事件的操作,如數(shù) 15 據(jù)庫(kù)連接 Bean。JSP 吸引人之處很大程度上在于它使用了 Javabeans 組件技 術(shù),但 JSP 中只支持不可見的 Javabeans。 2 jdbc 創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)連接 Be
40、an 需要 5 個(gè)步驟:導(dǎo)入 JDBC 標(biāo)準(zhǔn)類庫(kù),注 冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,建立數(shù)據(jù)庫(kù)連接,數(shù)據(jù)庫(kù)操作和關(guān)閉。 1)導(dǎo)入 JDBC 標(biāo)準(zhǔn)類庫(kù) JDBC(Java DataBase Connectivity, Java 數(shù)據(jù)庫(kù)連接)是一種可用于執(zhí)行 SQL(Structured Query Language ,結(jié)構(gòu)化查詢語(yǔ)言) 語(yǔ)句的應(yīng)用程序接口,為了將 服務(wù)器從客戶端接受信息存入數(shù)據(jù)庫(kù),需要使用 JDBC 標(biāo)準(zhǔn)類庫(kù),所以需要在 程序的開始加入以下 import 語(yǔ)句: Import java.sql.*; 2)注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 在一個(gè) JDBC 的驅(qū)動(dòng)程序被用來(lái)建立數(shù)據(jù)庫(kù)連接之前,必須向數(shù)據(jù)庫(kù)驅(qū)
41、動(dòng) 程序管理器注冊(cè)該驅(qū)動(dòng)程序。管理器的主要職責(zé)是保證所有的驅(qū)動(dòng)程序?qū)ο罂?被 JDBC 的用戶程序訪問(wèn)。當(dāng)一個(gè) JDBC 驅(qū)動(dòng)程序被載入時(shí),它將自動(dòng)地在驅(qū) 動(dòng)程序管理器上注冊(cè)。 可以調(diào)用 Class.forName()方法載入一個(gè) JDBC 驅(qū)動(dòng)程序: String strDBDriver=sun.jdbc.odbc.JdbcOdbcDriver; Class.forName(“strDBDriver ”); Class.forName()是 Java 的 Class 類的靜態(tài)方法,它使 Java 虛擬機(jī)動(dòng)態(tài)的尋找, 載入并連接指定的類。 一個(gè) JDBC 的驅(qū)動(dòng)程序就是一個(gè)可以通過(guò) class
42、path 找到一個(gè) Java 類。這里 載入的 JDBC_ODBC 橋驅(qū)動(dòng)程序就在 sun.jdbc.odbc 包中 3)建立數(shù)據(jù)庫(kù)連接 載入一個(gè)正確的驅(qū)動(dòng)程序后,就可以用它來(lái)建立與數(shù)據(jù)庫(kù)的連接了。一個(gè) JDBC 的數(shù)據(jù)庫(kù)連接是用數(shù)據(jù)庫(kù) URL 來(lái)標(biāo)記的。連接標(biāo)記將告訴驅(qū)動(dòng)程序管理 器使用哪個(gè)驅(qū)動(dòng)程序和連接哪個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù) URL 的基本形式: jdbc:: URL 的第一部分表示使用 JDBC 建立數(shù)據(jù)庫(kù)連接。第 2 部分表示所使用的 JDBC 驅(qū)動(dòng)程序名或網(wǎng)絡(luò)協(xié)議名。第 3 部分是數(shù)據(jù)源標(biāo)記,它映射所需連接的 數(shù)據(jù)庫(kù)。例如數(shù)據(jù)庫(kù)的數(shù)據(jù)源標(biāo)記是 firm 則同 JDBC-ODBC 橋連接該
43、數(shù)據(jù)庫(kù)所 用的數(shù)據(jù)庫(kù) URL 為 jdbc:odbc:firm. 可以通過(guò) DriverManager 類的靜態(tài)方法 getConnection()來(lái)建立一個(gè)數(shù)據(jù)庫(kù)連 接: String strDBUrl=jdbc:odbc:firm; conn=DriverManager.getConnection(strDBUrl,sa,); 一旦建立數(shù)據(jù)庫(kù)連接,就可以打開該目標(biāo)數(shù)據(jù)庫(kù),并通過(guò)該連接向目標(biāo)數(shù) 據(jù)庫(kù) SQL 指令。SQL 指令通常會(huì)執(zhí)行查詢,插入,更新和刪除等數(shù)據(jù)庫(kù)操作。 要執(zhí)行 SQL 指令,必須通過(guò) Connection 對(duì)象的 createStatement()方法來(lái)創(chuàng)建一 個(gè) STM
44、T 對(duì)象。STMT 對(duì)象提供了許動(dòng)方法來(lái)執(zhí)行不同的數(shù)據(jù)庫(kù)操作??梢?通 過(guò)以下方式創(chuàng)建 STMT 對(duì)象: 16 private Connection conn=null; private Statement stmt=null; ResultSet rs=null; stmt=conn.createStatement(); 4)數(shù)據(jù)操作 與數(shù)據(jù)庫(kù)建立了連接后,接著就要進(jìn)行數(shù)據(jù)操作了。數(shù)據(jù)操作包括查詢, 插入,更新和刪除等操作。要對(duì)數(shù)據(jù)庫(kù)精心操作可以使用 STMT 對(duì)象的 executeQuery()方法。executeQuery()方法接受一個(gè) SQL 指令字符串作為參數(shù), 返回結(jié)果信息是 R
45、esultSet 對(duì)象。具體如下: rs=stmt.executeQuery(sql); 5)關(guān)閉 因?yàn)閿?shù)據(jù)庫(kù)連接是寶貴和有限的資源,因此必須在數(shù)據(jù)庫(kù)操作完畢后即使 釋放數(shù)據(jù)庫(kù)連接。Connection 對(duì)象提供了一個(gè)簡(jiǎn)單的關(guān)閉數(shù)據(jù)庫(kù)連接的方法 close()。例如: conn.close(); stmt.close。 利用數(shù)據(jù)庫(kù)原理相關(guān)知識(shí),對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)和每個(gè)模塊、每個(gè)界面的具體設(shè) 計(jì)。此系統(tǒng)采用的數(shù)據(jù)庫(kù)軟件是 sqldb。 以下是系統(tǒng)需要的六張主要數(shù)據(jù)表的結(jié)構(gòu)。 字段名 字段類型 null default 描述 主鍵 外鍵 id bigint 主鍵 increment code varch
46、ar(100) 年級(jí)代碼 name varchar(200) 年級(jí)名稱 School_grade 年級(jí) 字段名 字段類型 null default 描述 主鍵 外鍵 id bigint 主鍵 increment code varchar(100) 班級(jí)代碼 name varchar(200) 班級(jí)名稱 school_grade bigint 所在年級(jí) school_grade School_class 班級(jí) 字段名 字段類型 null default 描述 主鍵 外鍵 id bigint 主鍵 increment code varchar(50) 課程編碼 name varchar(200)
47、課程名稱 credit_hour float 學(xué)分 pass float 及格線 school_grade bigint 所在學(xué)期 school_grade Lesson 課程 17 字段名 字段類型 null default 描述 主鍵 外鍵 id bigint 主鍵 increment username varchar(200) 用戶名 password varchar(200) 密碼 truename varchar(200) 真實(shí)姓名 sex integer 性別 school_class bigint 所在班級(jí) school_class Student 學(xué)生 字段名 字段類型 nul
48、l default 描述 主鍵 外鍵 id bigint 主鍵 increment score float 成績(jī) student bigint 用戶 student lesson bigint 課程 lesson Score 成績(jī) 字段名 字段類型 null default 描述 主鍵 外鍵 id bigint 主鍵 increment username varchar(200) 用戶名 password varchar(200) 密碼 Admin 管理員 四、 系統(tǒng)的實(shí)現(xiàn) (一) 學(xué)生查詢成績(jī)部分 訪問(wèn) http:/localhost:8080/ST/index.html。 測(cè)試用戶名:te
49、st 測(cè)試密碼:test 學(xué)生需要先登錄才能進(jìn)入查詢程序的界面, 進(jìn)入系統(tǒng)前要對(duì)用戶和密碼進(jìn)行 校驗(yàn),即用戶名和密碼正確才能進(jìn)入系統(tǒng)。并且若用戶連續(xù)三次密碼輸入錯(cuò)誤, 則不能再次輸入。 18 輸入用戶 ID 后,按鍵,系統(tǒng)校驗(yàn)該用戶是否存在 .在公共方法 jTuser_keyPressed()中,定義一個(gè) String 類型變量 sqlSelect 用來(lái)生成 SQL 查詢語(yǔ) 句,再定義一個(gè)公共類 PetrieveObject 類型變量 retrieve,然后調(diào)用 retrieve 的 getObjectRow()方法,其參數(shù)為 sqlSelect,用來(lái)判斷該用戶是否存在。 如果用戶名與密碼不正
50、確,就會(huì)彈出警告信息,要求用戶重新輸入。 19 登錄成功后就可以看到登錄學(xué)生的個(gè)人信息和相關(guān)學(xué)科的分?jǐn)?shù)。 (二) 后臺(tái)管理成績(jī)部分 訪問(wèn) http:/localhost:8080/st/admin.html,進(jìn)入后臺(tái)管理界面。 測(cè)試管理員帳號(hào):admin 測(cè)試密碼:admin 20 輸入用戶 ID 之后,按鍵,系統(tǒng)校驗(yàn)該用戶是否存在。在公共方法 jTuser_keyPressed()中,定義一個(gè) String 類型變量 sqlSelect 用來(lái)生成 SQL 查詢 語(yǔ)句,再定義一個(gè)公共類 RetrieveObject 類型變量 retrieve,然后調(diào)用 retrieve 的 getObject
51、Row()方法,其參數(shù)為 sqlSelect,用來(lái)判斷該用戶是否存在。該方法的 詳細(xì)代碼如下: Public void jTextField1_keyPressed(KeyEvent keyEvent) If(keyEvent.getKeyCode()=KeyEvent.VK_ENTER) String sqlSelect=null; Java.util.Vector vdata=null; sqlSelect=”select username from tb_user where userid=”+jTextField1.getText().trim()+”; appstu.util.Ret
52、rieveObject retrieve=new appstu.util.RetrieveObject(); vdata=retrieve.getObjectRow(sqlSelect); if (vdata.size()0) jPasswordField1.requestFocus(); else Javax.swing.JOptionPane.showMessageDialog(null,”該用戶不存在”,”錯(cuò)誤” ,javax.swing.JOptionPane.ERROR_MESSAGE); jTextField1.requestFocus(); 如果用戶存在,再輸入對(duì)應(yīng)的口令,輸入的
53、口令正確時(shí),單擊“登錄”按 鈕,進(jìn)入系統(tǒng)。公共方法 jTuser_keyPressed()的設(shè)計(jì)與 jTextField1_keyPressed 21 的設(shè)計(jì)方法相似,其關(guān)鍵代碼如下: Public void jBlogin_actionPerformed(ActionEvent e) String sqlSelect=null; sqlSelect=”select count(*)from tb_user where userid=”+jTextField1.getText().trim() +”and pass=”+pass+”; Java.util.Vector vdata=null;
54、appstu.util.RetrieveObject retrieve=new appstu.util.RetrieveObject(); vdata=retrieve.getObjectRow(sqlSelect); if(Integer.parseInt(String.valueOf(vdata.get(0)0) AppMain frame=new AppMain(); This.setVisible(false); else Javax.swing.JOptionPane.showMessageDialog(null,”密碼錯(cuò)誤”,” 錯(cuò)誤”, Javax.swing.JOptionPa
55、ne.ERROR_MESS AGE); jPasswordField1.requestFocus(); return; 登錄成功可以選擇功能模塊進(jìn)行操作。其中包括有年級(jí)班級(jí)管理模塊、課 程管理模塊、學(xué)生管理模塊、系統(tǒng)管理模塊。這些模塊都只有管理人員才能使 用。 22 管理年級(jí)信息,年級(jí)管理模塊可以添加、修改、刪除各年級(jí)的 ID、年級(jí)編 碼及年級(jí)名稱。 23 管理班級(jí)信息,班級(jí)信息設(shè)置用來(lái)維護(hù)班級(jí)的基本情況,包括對(duì)班級(jí)信息 的添加、修改和刪除等操作。 通過(guò)調(diào)用 Jdbcadapter,完成對(duì)班級(jí)表的相應(yīng)操作。執(zhí)行該模塊程序,首先從 數(shù)據(jù)表中檢索出班級(jí)的基本信息,如果存在數(shù)據(jù)用戶單擊某一條數(shù)據(jù)之后
56、可以 對(duì)其進(jìn)行修改、刪除等操作。單擊 jf_view_sysset_class.java 文件的 source 代碼, 編輯窗口首先導(dǎo)入 UTIL 公共包下的相應(yīng)類文件;定義一個(gè) BOOLEAN 實(shí)例變 量 INSERTFLAG,用來(lái)標(biāo)志操作數(shù)據(jù)庫(kù)的類型,然后定義一個(gè)私有方法 BUILDTABLE() ,用來(lái)檢索班級(jí)數(shù)據(jù)。代碼如下: private void buildTable() DefaultTableModel=null; String name =“班級(jí)編號(hào)”,” 年級(jí)編號(hào)”,”班級(jí)名稱”; String sqlstr=”select*from tb_classinfo”; Apps
57、tu.util.retrieveObject bdt=new appstu.util.RetrieveObject(); Tabemodel=bdt.getTableModel(name,sqlstr); jTable.setModel(tablemodel); jTable.setRowHeight(24); 單擊“新增”按鈕,用來(lái)增加一條新的數(shù)據(jù)信息。在公共方法 jBadd_actionPerformed()中定義局部字符串變量 sqlgrade,用來(lái)生成年級(jí) sql 的查 詢語(yǔ)句,然后調(diào)用公共類 RetrieveObject 的 getObjectRow()方法,其參數(shù)為 sqlgrad
58、e,將返回結(jié)果數(shù)據(jù)解析后添加到 jComboBox1 組件中。其 jBadd_actionPerformed()方法的代碼如下: Public void jBadd_actionPerformed(ActionEvent e) /獲得年級(jí)名稱 /if(jComboBox1.getItemCount()=0) Insertflag=true; RetrieveObject bdt=new RetrieveObject(); String sqlgrade=”select gradeName from tb_gradeinfo”; Java.util.Vector vdata=new java.u
59、til.Vector(); Vdata=bdt.getObjectRow(sqlgrade); jComboBox1.removeAllItems(); for (int i=0;ivdata.size();i+) jComboBox1.addItem(vdata.get(i); ItemEvent item=new ItemEvent(jComboBox1,0,jComboBox1, jComboBox1.getSelectedIndex(); jComboBox1_itemStateChanged(item); jTextField2.setText(“”); jTextField2.re
60、questFocus(); 24 用戶單擊表格上的某條數(shù)據(jù)后,程序會(huì)將這條數(shù)據(jù)填寫到 jPanel2 面板上的 相應(yīng)組件上,以方便用戶進(jìn)行相應(yīng)的操作,在公共方法 jTable1_mouseClicked() 中定義一個(gè) string 類型的局部變量 sqlStr,用來(lái)生成 sql 查詢語(yǔ)句,然后調(diào)用公共 類 RetrieveObject 的 getObjectPow()方法,進(jìn)行數(shù)據(jù)查詢,如果找到數(shù)據(jù)則將該 數(shù)據(jù)解析顯示給用戶,代碼如下: Public void jTable1_mouseClicked(MouseEvent e) Insertflag=false; String id=nul
61、l; String sqlStr=null; Int selectrow=0; Selectrow=jTable1.getSelectedRow(); If(selectrow0)return; Id=jTable1.getValueAt(selectrow,0).toSwing(); sqlStr=”SELECT c.classID,d.gradeName FROM tb_classinfo c INNER JOIN” +”tb_gradeinfo d ON c.gradeID=d.gradeID” + “where c.classID=”+id+”; Java.util.Vector vd
62、ata=null; RetrieveObject retrive=new RetrieveObject(); Vdata=retrive.getObjectRow(sqlStr); jComboBox1.removeAllItems(); jTextField1.setText(vdata.get(0).toString(); jComboBox1.addItem(vdata.get(1); jTextField2.setText(vdata.get(2).toString(); 25 管理課程信息,課程管理模塊可增加、修改、刪除學(xué)院各班級(jí)開設(shè)的課程 數(shù)據(jù),包括課程的 ID、課程代碼、課程名稱
63、、課程學(xué)分、該課程的及格分?jǐn)?shù)線 及開設(shè)該課程的年級(jí)信息。 26 評(píng)分模塊主要是給學(xué)習(xí)某一課程的學(xué)生評(píng)分,通過(guò)選擇課程的名稱,可錄 入、修改、刪除和查看學(xué)習(xí)該門課程所有學(xué)生的成績(jī)。 this.tbar = new Ext.Toolbar(選擇課程:, filter, -, id: addMenu, text: 添加, iconCls : add, tooltip : 添加, disabled: true, handler: function() if (this.filter.getValue() = ) Ext.Msg.alert(提示, 請(qǐng)先選擇課程 ); else var initValu
64、e = id: null, student.truename: null, student.id: null, score: 0 ; var p = new this.dataRecord(initValue); this.stopEditing(); this.store.insert(0, p); this.startEditing(0, 0); p.dirty = true; p.modified = initValue; if(this.store.modified.indexOf(p) = -1) this.store.modified.push(p); if (this.inser
65、tedRecords.indexOf(p) = -1) this.insertedRecords.push(p); .createDelegate(this) , id: deleteMenu, text: 刪除, iconCls : delete, tooltip : 刪除, disabled: true, handler: function() if (this.filter.getValue() = ) Ext.Msg.alert(提示, 請(qǐng)先選擇課程 ); 27 else Ext.Msg.confirm(信息, 確定要?jiǎng)h除?, function(btn) if (btn = yes)
66、var sm = this.getSelectionModel(); var cell = sm.getSelectedCell(); var record = this.store.getAt(cell0); if(this.store.modified.indexOf(record) != -1) this.store.modified.remove(record); / 記錄刪除了哪些 id var id = record.get(id); if (id = null else if (id != null this.store.remove(record); , this); .createDelegate(this) , id: saveMenu, text: 提交修改 , iconCls : edit, tooltip : 提交修改, disabled: true, handler: function() if (this.filter.getValue() = ) Ext.Msg.alert(提示, 請(qǐng)先選擇課程 ); else var m = this.store.mo
- 溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評(píng)估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功