日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

基于jsp(java)高校学生考勤管理系统设计与实现

發(fā)布時(shí)間:2024/3/12 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于jsp(java)高校学生考勤管理系统设计与实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

獲取項(xiàng)目源文件,學(xué)習(xí)交流聯(lián)系Q:1415736481,可指導(dǎo)畢設(shè),課設(shè)

本系統(tǒng)主要針對(duì)目前高校學(xué)生在線請(qǐng)假以及學(xué)生上課出勤管理而設(shè)計(jì)的信息系統(tǒng)。本系統(tǒng)總體上由三大功能模塊:請(qǐng)假系統(tǒng)模塊、考勤系統(tǒng)模塊、后臺(tái)管理模塊組成。系統(tǒng)涉及到高校六大類用戶:學(xué)生、任課老師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)、系統(tǒng)管理員。

本高校學(xué)生考勤管理系統(tǒng)用JSP+SQL Server 2000開發(fā),開發(fā)過程中運(yùn)用了頁(yè)面模塊化、信息發(fā)布的動(dòng)態(tài)生成、靜態(tài)頁(yè)面顯示等技術(shù)開發(fā)。本論文重點(diǎn)介紹本系統(tǒng)的請(qǐng)假系統(tǒng)、考勤系統(tǒng)兩大功能模塊設(shè)計(jì),完成學(xué)生、任課老師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)五類用戶功能的設(shè)計(jì)與實(shí)現(xiàn)。

?

關(guān)鍵詞:考勤管理;在線請(qǐng)假;JSP

?

?

ABSTRACT

The system is an information system designed for asking for leave on line? for students and managing? attendance of undergraduate.It is generally divided into three main modules: the module for asking for on-line leave , the module for managing attendance of undergraduate and? the module? for backstage management. There are different customers? in the university? operating? the system,such as? student, teacher, ?a teacher in charge of a class,department leader, school leader, administrator.

The system is developed with the help of Jcreator,JSP(java、javascript、html)and SQL Server 2000. The key techniques used in the process of development are: the page modularization, dynamic generating and static page showing of information, etc. And the thesis focuses on the introduction of the system’s attendance management and the management of asking for leave online.And it develops the function of student, teacher, a teacher in charge of a class,department leader, school leader on the whole.

Key word: attendance management;online ask for leave; JSP

?

第1章 問題定義

1.1 引言

問題定義階段必須回答的關(guān)鍵問題是:“要解決的問題是什么?”, 在此階段中,主要是弄清本課題需要解決的問題根本所在,以及此課題所需的資源等。

1.2開發(fā)背景

目前高校校園信息化逐步完善,高校師生借助校園網(wǎng)有效的提高了辦事效率。各大高校針對(duì)師生的成績(jī)查詢系統(tǒng)、教務(wù)管理系統(tǒng)、招生就業(yè)系統(tǒng)、BBS、校園網(wǎng)站等系統(tǒng)在各大高校紛紛出現(xiàn),對(duì)全校師生的學(xué)習(xí)、生活、管理、辦公帶來(lái)了便利。

目前高校學(xué)生上課考勤管理都是以任課老師上課點(diǎn)名,記錄學(xué)生上課出勤情況,學(xué)期末根據(jù)上課出勤表及作業(yè)登記表對(duì)學(xué)生平時(shí)成績(jī)打分,然后把數(shù)據(jù)上交到各院系。學(xué)生請(qǐng)假以傳統(tǒng)的寫請(qǐng)假條的形式向各自班主任請(qǐng)假,時(shí)間長(zhǎng)的請(qǐng)假,要班主任、院系領(lǐng)導(dǎo)都批準(zhǔn)方能生效。這種的模式在目前高校管理中暴露出了許多弊端:一是學(xué)生請(qǐng)假不方便;二是學(xué)生請(qǐng)假對(duì)任課老師不透明,造成對(duì)學(xué)生上課出勤誤記的情況;三是學(xué)生上課出勤表對(duì)班主任不透明,班主任很難知道本班學(xué)生上課的出勤情況,不便于與學(xué)生及時(shí)有效的溝通;四是學(xué)生對(duì)自己整個(gè)學(xué)期的上課出勤情況沒有整體的統(tǒng)計(jì)信息。五是院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)更加把握不住學(xué)生上課的出勤情況。

1.3問題描述

上述所說(shuō)高校對(duì)學(xué)生考勤和請(qǐng)假面臨的問題涉及多類用戶,系統(tǒng)使用范圍是在全校校園網(wǎng)內(nèi),由于用戶分布廣泛,且存在很大差異,如:知識(shí)結(jié)構(gòu)的差異、計(jì)算機(jī)硬件配置的差異、操作系統(tǒng)的差異等。因此本系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)采用典型的B/S(瀏覽器/服務(wù)器)的構(gòu)架進(jìn)行設(shè)計(jì),操作簡(jiǎn)單直觀,對(duì)硬件要求低,最好能實(shí)現(xiàn)跨平臺(tái)。跨平臺(tái)一是指客戶端用戶操作的跨平臺(tái),二是指服務(wù)器端的跨平臺(tái),即可以將服務(wù)器部署在所有操作平臺(tái)上。系統(tǒng)應(yīng)當(dāng)有很好的擴(kuò)展性,與當(dāng)前高校中現(xiàn)有的系統(tǒng)很好集成。

目前隨著IT技術(shù)的不斷創(chuàng)新與發(fā)展,新的技術(shù)不斷推出,各種企業(yè)實(shí)現(xiàn)信息化的解決方案不斷成熟。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的廣泛使用,各種成熟關(guān)系數(shù)據(jù)庫(kù)的不斷完善與推出,再加上面向?qū)ο蟮能浖_發(fā)過程廣泛應(yīng)用,軟件開發(fā)過程變得越來(lái)越容易,開發(fā)出的系統(tǒng)變得越來(lái)越實(shí)用,許多企業(yè)使用信息系統(tǒng)后,明顯提高了辦事效率,帶來(lái)了很大的經(jīng)濟(jì)收入。目前流行的基于B/S結(jié)構(gòu)的解決方案主要有ASP,JSP,PHP等技術(shù)。本系統(tǒng)選用JSP技術(shù)開發(fā),使用當(dāng)前流行的SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)存儲(chǔ)數(shù)據(jù),主要解決學(xué)生在線請(qǐng)假、在線考勤管理以及后臺(tái)數(shù)據(jù)的維護(hù)與更新。

?

?

第2章? 可行性分析

2.1 引言

這個(gè)階段要回答的關(guān)鍵問題是:“對(duì)于上一個(gè)階段所確定的問題有行得通的解決方法嗎?”為了回答這個(gè)問題,需要一次大大壓縮和簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較抽象的高層次上進(jìn)行的分析和設(shè)計(jì)的過程。可行性研究應(yīng)該比較簡(jiǎn)短,這個(gè)階段的任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個(gè)問題是否值得去解,是否有可行的解決方法。

2.2 目的和意義

開發(fā)本系統(tǒng)的目的,就是要解決目前高校中關(guān)于學(xué)生請(qǐng)假與上課出勤管理中所面臨的一系列問題。

開發(fā)出高校學(xué)生考勤管理系統(tǒng)能有效地提高高校辦事效率,解決目前高校學(xué)生請(qǐng)假及上課出勤管理問題,實(shí)現(xiàn)學(xué)生請(qǐng)假及上課出勤信息對(duì)任課教師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)透明,使班主任、院系領(lǐng)導(dǎo)及時(shí)把握學(xué)生的學(xué)習(xí)情況,及時(shí)與學(xué)生溝通,提高教學(xué)質(zhì)量。

2.3 可行性分析

技術(shù)可行性:高校學(xué)生考勤管理系統(tǒng)在目前的高校中使用還不普遍,但也有許多類似的成功案例:如教務(wù)管理系統(tǒng)、排課系統(tǒng)等。本系統(tǒng)采用JSP,JavaScript腳本語(yǔ)言、html標(biāo)識(shí)語(yǔ)言及SQL Server 2000數(shù)據(jù)庫(kù)技術(shù)綜合開發(fā)。JSP是一種安全穩(wěn)定的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),目前國(guó)內(nèi)各企業(yè)的電子商務(wù)系統(tǒng),ERP系統(tǒng),銀行信息系統(tǒng)等基本上都用JSP開發(fā)的。Microsoft SQL Server(基于結(jié)構(gòu)化查詢語(yǔ)言的數(shù)據(jù)庫(kù)服務(wù)器)是基于客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)管理系統(tǒng),用戶通過使用客戶系統(tǒng)從服務(wù)器檢索信息并進(jìn)行本地操作,服務(wù)器關(guān)注數(shù)據(jù)庫(kù)進(jìn)程,而客戶則關(guān)注信息的表示。為了使客戶端能夠從服務(wù)器中訪問數(shù)據(jù),服務(wù)器必須具備以下兩個(gè)關(guān)鍵特征:一、對(duì)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供單點(diǎn)訪問。二、將處理和操作在客戶端和服務(wù)器間進(jìn)行分配。SQL Server使用Transact-SQL語(yǔ)言來(lái)維護(hù)、實(shí)現(xiàn)和訪問數(shù)據(jù)庫(kù),Transact-SQL是SQL(Structured Query Language)的一個(gè)子集標(biāo)準(zhǔn)。SQL Server有多種實(shí)用程序允許用戶來(lái)訪問它的服務(wù),用戶可用這些實(shí)用程序?qū)QL Server進(jìn)行本地管理或遠(yuǎn)程管理。

經(jīng)濟(jì)可行性:本系統(tǒng)使用B/S架構(gòu)設(shè)計(jì),使用市場(chǎng)上流行的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),開發(fā)簡(jiǎn)單,使用度方便,不需要耗費(fèi)大量的人力物力就能很快的開發(fā)出來(lái),系統(tǒng)部署對(duì)軟硬件要求不高,用戶操作簡(jiǎn)單,幾乎不需要對(duì)用戶進(jìn)行專業(yè)培訓(xùn)就可使用本系統(tǒng),所以從經(jīng)濟(jì)上講是可行的。

法律可行性:本系統(tǒng)擁有自主知識(shí)產(chǎn)權(quán),沒有使用任何違法的軟件也沒有交易任何非法的商品,所以在法律上是可行的。

操作可行性:本系統(tǒng)操作簡(jiǎn)單方便,只要懂得上網(wǎng)都能方便操作本系統(tǒng),所以在操作上也是可行的。

分析結(jié)果從以上的分析可知,高校學(xué)生考勤管理系統(tǒng)的解決方案無(wú)論在技術(shù),經(jīng)濟(jì)還是法律以及操作上都是可行的,且開發(fā)本系統(tǒng)具有一定的經(jīng)濟(jì)價(jià)值和實(shí)用價(jià)值。

?

?

第3章? 需求分析

3.1 引言

這個(gè)階段的任務(wù)仍然不是具體地解決問題,而是準(zhǔn)確地確定“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”,主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。

3.2 用戶需求描述

用戶是系統(tǒng)的最終使用者,開發(fā)系統(tǒng)的目的是要用戶最終很好的使用系統(tǒng),最終為用戶帶來(lái)各種便利。本系統(tǒng)要解決高校學(xué)在線請(qǐng)假以及上課考勤管理兩大問題,通過對(duì)高校的實(shí)際調(diào)查分析,本系統(tǒng)應(yīng)當(dāng)包括學(xué)生、班主任、任課老師、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)、系統(tǒng)管理員六類用戶,這六類用戶對(duì)系統(tǒng)的需求簡(jiǎn)要概括如下:

3.2.1學(xué)生用戶需求描述

學(xué)生對(duì)本系統(tǒng)的主要需求是:在線請(qǐng)假以及查看在校期間所有的上課出勤信息。

在線請(qǐng)假需求:學(xué)生在網(wǎng)上填寫好請(qǐng)假的起止日期,請(qǐng)假原因后,就可以向本學(xué)期本班班主任提出請(qǐng)假申請(qǐng),超過三天的請(qǐng)假,由班主任審批后,再由院系領(lǐng)導(dǎo)審批。在在線請(qǐng)假的全過程當(dāng)中,學(xué)生可以隨時(shí)查看請(qǐng)假的詳細(xì)進(jìn)展情況。

查看出勤信息需求:學(xué)生可以查看在校期間所有學(xué)期上課出勤的詳細(xì)信息,如:查看“高等數(shù)學(xué)”這門課程在整個(gè)學(xué)期請(qǐng)假、曠課、遲到、早退了多少次,以及具體的時(shí)間、任課老師姓名、第幾節(jié)課等詳細(xì)信息。

其它需求:查看本人的基本信息,如本人的所屬的院系、年級(jí)、專業(yè)、班級(jí)、學(xué)號(hào)、姓名、性別等,以及修改個(gè)人用戶密碼,查看本班課表安排。

3.2.2任課老師用戶需求描述

任課老師對(duì)系統(tǒng)的主要需求是:管理所教班級(jí)學(xué)生的上課出勤信息以及查看所教班級(jí)學(xué)生的上課出勤信息。

管理學(xué)生上課出勤需求:根據(jù)學(xué)校安排的課表,隨著時(shí)間的變化,自動(dòng)列出還沒有在網(wǎng)上公布的學(xué)生上課出勤信息,系統(tǒng)自動(dòng)根據(jù)學(xué)生請(qǐng)假系統(tǒng),決定學(xué)生上課出勤的最終結(jié)果。

查看學(xué)生出勤信息需求:查看所教班級(jí)學(xué)生整個(gè)學(xué)期上出勤統(tǒng)計(jì)信息及詳細(xì)信息。

其它需求:查看上課課表,本人基本信息以及修改個(gè)人用戶密碼。

3.2.3班主任用戶需求描述

班主任對(duì)本系統(tǒng)的主要需求是:審批本班學(xué)生本學(xué)期的在線請(qǐng)假以及查看本班學(xué)生本學(xué)期所有課程的上課出勤信息。

審批學(xué)生請(qǐng)假需求:本班學(xué)生本學(xué)期在線請(qǐng)假申請(qǐng)后,自動(dòng)提示班主任有等待審批的請(qǐng)假信息,班主任針對(duì)請(qǐng)假申請(qǐng)信息進(jìn)行學(xué)生請(qǐng)假審批,以及對(duì)請(qǐng)假信息回復(fù)。

查看學(xué)生上課出勤信息需求:查看本班學(xué)生整個(gè)學(xué)期有關(guān)課程的上出勤統(tǒng)計(jì)信息及詳細(xì)信息。

其它需求:查看本班學(xué)生的基本信息、修改個(gè)人用戶密碼等。

3.2.4院(系)領(lǐng)導(dǎo)用戶需求描述

院系領(lǐng)導(dǎo)對(duì)系統(tǒng)的主要需求是:審批本院系學(xué)生超過三天的請(qǐng)假以及查看本院系學(xué)生上課出勤信息。

審批請(qǐng)假需求:當(dāng)學(xué)生請(qǐng)超過三天的假,經(jīng)班主任審批同意后,系統(tǒng)自動(dòng)提交給任何一個(gè)最先進(jìn)入系統(tǒng)的院系領(lǐng)導(dǎo)審批請(qǐng)假,以及針對(duì)請(qǐng)假回復(fù)。

查看本院系學(xué)生出勤信息需求:輸入查詢條件后,系統(tǒng)根據(jù)查詢條件列出本院系學(xué)生相關(guān)的上課出勤信息。

其它需求:查看本院系有關(guān)基本信息以及修改個(gè)人用戶密碼等。

3.2.5學(xué)校領(lǐng)導(dǎo)用戶需求描述

學(xué)校領(lǐng)導(dǎo)對(duì)系統(tǒng)的主要需求是:查看全校學(xué)生上課出勤信息。

查看出勤信息需求:輸入查詢條件后,系統(tǒng)根據(jù)查詢條件列出本校學(xué)生相關(guān)的上課出勤信息。

其它需求:查看有關(guān)全校的基本信息以信修改個(gè)人用戶密碼等。

3.2.6系統(tǒng)管理員用戶需求描述

系統(tǒng)管理員有系統(tǒng)的最高權(quán)限,負(fù)責(zé)系統(tǒng)所需所有數(shù)據(jù)的動(dòng)態(tài)同步更新以及維護(hù),根據(jù)系統(tǒng)針對(duì)各用戶的設(shè)計(jì),基本功能需求如下:

1、管理學(xué)校各院系、年級(jí)、專業(yè)、班級(jí)的添加、刪除、修改等。

2、管理每個(gè)學(xué)期每個(gè)班級(jí)的課程安排及指定班主任和任課老師。

3、管理系統(tǒng)所有用戶。

4、管理全校課表安排。

5、管理全校每學(xué)年開學(xué)的起止時(shí)間。

6、管理系統(tǒng)的請(qǐng)假、考勤信息。

3.3功能需求描述

根據(jù)各類用戶的需求描述,系統(tǒng)應(yīng)當(dāng)具備請(qǐng)假系統(tǒng)、考勤管理系統(tǒng)、后臺(tái)管理系統(tǒng)這三大主要功能。

請(qǐng)假系統(tǒng)功能需求:通過實(shí)際調(diào)查分析得出,目前高校中的請(qǐng)假流程是學(xué)生若要請(qǐng)假,必須先寫好請(qǐng)假條先由本學(xué)年班主任審批,超過四天的請(qǐng)假,還要等待院系領(lǐng)導(dǎo)審批通過后才能生效。請(qǐng)假最長(zhǎng)時(shí)間不能超過1個(gè)月,特殊情況除外。

考勤管理功能需求:任課老師通過考勤管理系統(tǒng),對(duì)學(xué)生上課出勤信息進(jìn)行公開,但由于任課老師忙于教學(xué),為了能及時(shí)準(zhǔn)確無(wú)誤的對(duì)學(xué)生出勤情況公開,要求系統(tǒng)能自動(dòng)提示任課老師對(duì)上完課了,但還沒公布的出勤信息進(jìn)行網(wǎng)上公布。

后臺(tái)管理功能需求:后來(lái)管理主要是用來(lái)管理系統(tǒng)操作的數(shù)據(jù),因?yàn)楦咝C繉W(xué)年的學(xué)生都在變化,有新生入學(xué),也有學(xué)生畢業(yè)。請(qǐng)假系統(tǒng)要借助班主任安排才能完成,考勤管理系統(tǒng)要借助請(qǐng)假系統(tǒng)、班級(jí)課表安排才能完成,然而每學(xué)年課表都在變化,班主任安排也有在變化,學(xué)生也在變化,因此必須要求后臺(tái)管理系統(tǒng)能根據(jù)系統(tǒng)需求,動(dòng)態(tài)的、準(zhǔn)確的更新系統(tǒng)數(shù)據(jù)。

3.4系統(tǒng)開發(fā)工具

根據(jù)各用戶的需求,以及系統(tǒng)各大功能的需求,經(jīng)過大量的調(diào)查分析,針對(duì)本高校學(xué)生考勤管理系統(tǒng)選擇以下開發(fā)工具進(jìn)行開發(fā):

系統(tǒng)結(jié)構(gòu):B/S (瀏覽器/服務(wù)器)

開發(fā)語(yǔ)言:JAVA/JSP

數(shù)據(jù)庫(kù):SQL Server 2000

開發(fā)工具:JDK 1.5? Dreamweaver?? Jcreator

服務(wù)器端容器:Tomcat 5.5

3.5相關(guān)開發(fā)工具簡(jiǎn)介

3.5.1 B/S(瀏覽器/服務(wù)器)簡(jiǎn)介

B/S(Browser/Server,瀏覽器/服務(wù)器)模式又稱B/S結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S模式應(yīng)用的擴(kuò)展。在這種結(jié)構(gòu)下,用戶工作界面是通過IE瀏覽器來(lái)實(shí)現(xiàn)的。B/S模式最大的好處是運(yùn)行維護(hù)比較簡(jiǎn)便,能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù);最大的缺點(diǎn)是對(duì)網(wǎng)絡(luò)環(huán)境依賴性太強(qiáng),由于各種原因引起網(wǎng)絡(luò)中斷都會(huì)造成系統(tǒng)癱瘓。

3.5.2 JAVA/JSP簡(jiǎn)介

JAVA是SUN公司推出的完全面向?qū)ο蟮恼Z(yǔ)言,它有很好的跨平臺(tái)性、安全性、重用性等特點(diǎn)。

JSP的全稱是Java Servlet Pages,它是SUN推出的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的靜態(tài)頁(yè)面文件(*.html,*htm)中加入Java程序片段和JSP標(biāo)記,就構(gòu)成了JSP頁(yè)面。由Web服務(wù)器上的JSP引擎來(lái)處理JSP元素,生成調(diào)用Bean,并用JDBC訪問數(shù)據(jù)庫(kù)(或文件),最后以HTML或XML的形式返回瀏覽器。JSP在Servlet類中編譯,編譯一次后存入內(nèi)存,以后再調(diào)用時(shí),不用再編譯,所以速度很快。

3.6 系統(tǒng)功能劃分

根據(jù)系統(tǒng)用戶的需求,將本系統(tǒng)按功能劃分成三大功能模塊:請(qǐng)假系統(tǒng)、考勤系統(tǒng)、后臺(tái)管理模塊,涉及到六大類用戶:學(xué)生、任課教師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)、系統(tǒng)管理員。

  • 請(qǐng)假系統(tǒng)模塊
  • 本模塊的功能是在線請(qǐng)假的實(shí)現(xiàn)及管理,主要涉及三大類用戶:學(xué)生、班主任及院系領(lǐng)導(dǎo)用戶,學(xué)生通過此功能模塊進(jìn)行在線請(qǐng)假及查看請(qǐng)假記錄信息;班主任在線審批學(xué)生請(qǐng)假及查看請(qǐng)假記錄信息;院系領(lǐng)導(dǎo)在線審批學(xué)生長(zhǎng)時(shí)間的請(qǐng)假及查看請(qǐng)假記錄信息。

  • 考勤系統(tǒng)模塊
  • 本模塊的功能是學(xué)生考勤信息統(tǒng)計(jì)的實(shí)現(xiàn)、查看及管理,涉及六大類用戶中的所有用戶。學(xué)生在線查看自己所有學(xué)年的出勤信息;任課老師在線管理學(xué)生出勤信息;班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)查看不同的范圍的學(xué)生出勤信息。

  • 后臺(tái)管理管理
  • 本模塊的功能實(shí)現(xiàn)整個(gè)系統(tǒng)數(shù)據(jù)的同步更新及維護(hù),只涉及系統(tǒng)管理員用戶。系統(tǒng)管理員動(dòng)態(tài)的管理學(xué)生信息、課表安排、學(xué)年安排等信息,是整個(gè)系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)。

    3.7 數(shù)據(jù)字典

    數(shù)據(jù)詞典,既用于描述數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的詳細(xì)邏輯內(nèi)容,也可用于描述外部項(xiàng)和處理邏輯的某些數(shù)據(jù)特性。數(shù)據(jù)詞典把數(shù)據(jù)的最小組成單位看作數(shù)據(jù)元素,若干個(gè)數(shù)據(jù)元素組成數(shù)據(jù)結(jié)構(gòu)。它通過對(duì)數(shù)據(jù)元素和數(shù)據(jù)結(jié)構(gòu)的定義,來(lái)描述數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。它相當(dāng)于字典的作用,當(dāng)用戶或軟件人員想了解某一數(shù)據(jù)的含義時(shí),查查字典就可以了。

    ?

    ??
    ?

    名字:學(xué)生信息表

    別名:學(xué)生

    定義:學(xué)生基本詳細(xì)信息

    描述:學(xué)生=stu_number+stu_name+stu_sex+stu_password+class_id

    位置:用戶登錄

    ?
    ?

    名字:任課老師信息表

    別名:任課老師

    定義:任課老師基本詳細(xì)信息

    描述:任課老師=teacher_id+teacher_name+teacher_password+college_id

    位置:用戶登錄

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ???
    ?

    名字:班主任信息表

    別名:班主任

    定義:班主任基本詳細(xì)信息

    描述:班主任=class_teacher_id+class_teacher_name+class_teacher_password+

    college_id

    位置:用戶登錄

    ?
    ?

    名字:院系領(lǐng)導(dǎo)信息表

    別名:院系領(lǐng)導(dǎo)

    定義:院系領(lǐng)導(dǎo)基本詳細(xì)信息

    描述:院系領(lǐng)導(dǎo)=college_leader_id+college_leader_name+

    college_leader_password+college_id

    位置:用戶登錄

    ?
    ?

    名字:學(xué)校領(lǐng)導(dǎo)信息表

    別名:學(xué)校領(lǐng)導(dǎo)

    定義:學(xué)校領(lǐng)導(dǎo)基本詳細(xì)信息

    描述:學(xué)校領(lǐng)導(dǎo)=school_id+school_name+school_password

    位置:用戶登錄

    ?
    ?

    名字:上課考勤登記信息表

    別名:考勤登記

    定義:任課老師對(duì)所教課程的登記情況

    描述:考勤登記= id+record_time+sk_time

    位置:任課老師考勤管理頁(yè)面

    ?
    ?

    名字:請(qǐng)假信息表

    別名:請(qǐng)假

    定義:學(xué)生請(qǐng)假詳細(xì)信息

    描述:請(qǐng)假= class_id+year_id+stu_number+qingjia_yuanyin+start_time+

    end_time+day_number+qingjia_time+class_teacher_status+class_teacher_sp_time+class_teacher_restore+college_leader_status+college_leader_id+

    college_leader_sp_time+college_leader_restore

    位置:學(xué)生、班主任、院系領(lǐng)導(dǎo)請(qǐng)假系統(tǒng)

    ?
    ?

    名字:學(xué)生上課出勤息表

    別名:出勤

    定義:學(xué)生上課的出勤情況。

    描述:出勤= id+sk_time+stu_number+stu_status

    位置:學(xué)生、任課老師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)考勤系統(tǒng)

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    3.8 數(shù)據(jù)流圖

    數(shù)據(jù)流程圖是結(jié)構(gòu)化系統(tǒng)分析的工具。它既可以表達(dá)數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向及存儲(chǔ),又可以表達(dá)系統(tǒng)的邏輯功能和數(shù)據(jù)的邏輯變換。數(shù)據(jù)流程圖既能表達(dá)現(xiàn)行人工系統(tǒng)的數(shù)據(jù)流程和邏輯處理功能,也能表達(dá)自動(dòng)化系統(tǒng)的數(shù)據(jù)流程和邏輯處理功能。

    ?

    圖3-1請(qǐng)假系統(tǒng)數(shù)據(jù)流圖

    Fig3-1 the system’s of asking for leave dataflow pursueing

    學(xué)生請(qǐng)假

    班主任審批

    院系領(lǐng)導(dǎo)審批

    請(qǐng)假成功

    請(qǐng)假失敗

    請(qǐng)假記錄

    同意

    同意

    不同意

    同意

    不同意

    圖3-2考勤系統(tǒng)數(shù)據(jù)流圖

    Fig3-2 attendance system’s dataflow pursueing

    ?

    任課老師

    請(qǐng)假系統(tǒng)

    數(shù)據(jù)處理

    請(qǐng)假

    曠課

    遲到

    早退

    出勤記錄

    請(qǐng)假記錄

    ?

    ????
    ?
    ?
    ??

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    3.9運(yùn)行需求

    3.9.1 最低配置

    服務(wù)器端

    1)硬件需求:處理器? Intel Pentium III ?內(nèi)存 128M? 硬盤? 40G

    2)軟件需求:Windows 98? Microsoft Internet Explorer 4.01? JDK 1.5

    SQL Server 2000 數(shù)據(jù)庫(kù)??? Tomcat 5.0

    客戶端

    1)硬件需求: 處理器? Intel奔騰133或相當(dāng)?shù)奶幚砥?strong> 內(nèi)存 64M 硬盤 10G

    2)軟件需求: Windows 98? Microsoft Internet Explorer 4.01

    3.9.2 建議配置

    服務(wù)器端

    1)硬件需求:處理器? Intel Pentium IV 2.8G 內(nèi)存 256M 硬盤? 80G

    2)軟件需求:Microsoft Windows 2000/XP? JDK 1.5?? Tomcat 5.5

    SQL Server2000 數(shù)據(jù)庫(kù) Microsoft Internet Explorer 6.0

    客戶端

    1)硬件需求:處理器? Intel Pentium IV 1.8或相當(dāng)?shù)奶幚?/p>

    ??????????? 內(nèi)存128M 硬盤 20G

    2)軟件需求: Windows 2000/XP? Microsoft Internet Explorer 6.0

    ?

    ?

    第4章? 總體設(shè)計(jì)

    4.1 引言

    經(jīng)過需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時(shí)候。

    4.2 系統(tǒng)布局設(shè)計(jì)

    系統(tǒng)頁(yè)面采用框架來(lái)設(shè)計(jì),不同的用戶有不同的功能菜單,但都有統(tǒng)一的風(fēng)格,這給頁(yè)面的使用和維護(hù)都帶來(lái)了很大的便利,特別是在代碼重用方面起了很大作用。本系統(tǒng)各用戶的頁(yè)面設(shè)計(jì)如圖4-1所示:

    ?

    頁(yè)面主體

    功能菜單

    Banner

    Bottom

    圖4-1 系統(tǒng)布局圖

    Fig4-1 System’s layout map

    ?

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    1.Banner區(qū)——可以在此展示系統(tǒng)標(biāo)識(shí)、頁(yè)面歸屬等信息。

    2.功能菜單區(qū)——提供系統(tǒng)可供操作的功能列表。

    4.頁(yè)面主體區(qū)——顯示頁(yè)面格式化數(shù)據(jù)頁(yè)面主體區(qū)顯示的內(nèi)容,將依據(jù)頁(yè)面在系統(tǒng)中的作用而定。

    5.Bottom區(qū)——可設(shè)計(jì)為顯示系統(tǒng)所有權(quán)等信息。

    4.3 總體結(jié)構(gòu)圖

    根據(jù)系統(tǒng)功能的要求,高校學(xué)生考勤管理系統(tǒng)各個(gè)模塊之間的層次結(jié)構(gòu)如圖4-2所示:

    ?

    高校學(xué)生考勤管理系統(tǒng)

    請(qǐng)假系統(tǒng)

    考勤系統(tǒng)

    后臺(tái)管理

    圖4-2? 系統(tǒng)功能結(jié)構(gòu)示意圖

    Fig.4-2? Structure sketch map of the system’s function

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    按用戶劃分,系統(tǒng)結(jié)構(gòu)圖如圖4-3所示:

    ?

    高校學(xué)生考勤管理系統(tǒng)

    學(xué)生

    班主任

    任課老師

    院系領(lǐng)導(dǎo)

    學(xué)校領(lǐng)導(dǎo)

    管理員

    圖4-3? 系統(tǒng)用戶結(jié)構(gòu)示意圖

    Fig.4-3 Structure sketch map of the System’s user

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    請(qǐng)假系統(tǒng)子功能模塊層次結(jié)構(gòu)圖如圖4-4所示:

    ?

    請(qǐng)假系統(tǒng)子模塊

    學(xué)生在線請(qǐng)假模塊

    班主任審批模塊

    院系領(lǐng)導(dǎo)審批模塊

    圖4-4? 請(qǐng)假系統(tǒng)結(jié)構(gòu)示意圖

    Fig.4-4 Structure sketch map of the system asking for leave

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    考勤系統(tǒng)子功能模塊的層次結(jié)構(gòu)如圖4-5所示:

    ?

    ?

    考勤管理子模塊

    任課老師提交數(shù)據(jù)

    各用戶查詢考勤數(shù)據(jù)

    圖4-5? 考勤系統(tǒng)結(jié)構(gòu)示意圖

    Fig.4-5 Structure sketch map of the system checking attendance

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    4.4 本人主要工作任務(wù)

    本高校學(xué)生考勤管理系統(tǒng)分成三大功能模塊來(lái)實(shí)現(xiàn),本人主要負(fù)責(zé):請(qǐng)假系統(tǒng)、考勤系統(tǒng)兩大功能模塊,涉及前五大類用戶:學(xué)生、班主任、任課老師、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)。后臺(tái)管理功能模塊,即系統(tǒng)管理員的功能由同組的同學(xué)來(lái)實(shí)現(xiàn)。

    ?

    ?

    第5章? 詳細(xì)設(shè)計(jì)

    5.1 引言

    總體設(shè)計(jì)階段以比較抽象概括的方式提出了解決問題的辦法。詳細(xì)設(shè)計(jì)是軟件開發(fā)時(shí)期的第三個(gè)階段,也是軟件設(shè)計(jì)的第二步。其任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵的問題:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”,通過詳細(xì)設(shè)計(jì)應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,給出各個(gè)模塊的詳細(xì)過程性描述。從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。

    5.2 系統(tǒng)功能流程圖

    1)主功能流程:

    ?

    圖5-1? 主界面流程圖

    Fig.5-1 main pages’s flow diagram

    開始

    用戶登陸

    學(xué)生

    班主任

    任課老師

    院系領(lǐng)導(dǎo)

    學(xué)校領(lǐng)導(dǎo)

    在線請(qǐng)假

    查看考勤信息

    查看考勤信息

    提交考勤信息

    查看考勤信息

    審批請(qǐng)假

    審批請(qǐng)假

    查看考勤信息

    查看考勤信息

    退出系統(tǒng)

    結(jié)束

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    5.3系統(tǒng)目錄結(jié)構(gòu)設(shè)計(jì)

    index.jsp????? 系統(tǒng)首頁(yè)

    WEB-INF??????? 系統(tǒng)配置目錄

    public???????? 公共目錄

    image????????? 圖片目錄

    student??????? 學(xué)生目錄

    teacher??????? 任課老師目錄

    class_teacher? 班主任目錄

    college_leader 院系領(lǐng)導(dǎo)目錄

    school_leader? 學(xué)校領(lǐng)導(dǎo)目錄

    admin????????? 系統(tǒng)管理員目錄

    account_manager?????? 賬號(hào)管理目錄

    class_teacher???????? 班主任指定目錄

    college_manager?????? 院系管理目錄

    admin子目錄???????? course_manager??????? 課表安排目錄

    ?????????????????????? kecheng_manager?????? 課程管理目錄

    ?????????????????????? kaoqin_manager??????? 考勤管理目錄

    qingjia?????????????? 請(qǐng)假管理目錄

    ??????????????????????? year_manager???????? 學(xué)年安排目錄

    5.4 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)

    5.4.1 實(shí)體模型

    ?

    老師提交記錄

    記錄ID

    提交時(shí)間

    上課時(shí)間

    圖5-1任課老師提交記錄實(shí)體圖

    Fig5-2 entity chart of the records submited to by teacher

    圖5-3 請(qǐng)假記錄屬性模型

    Fig5-3 attribute model of the record asking for leave

    院系領(lǐng)導(dǎo)姓名

    請(qǐng)假記錄

    班級(jí)代號(hào)

    學(xué)年代號(hào)

    學(xué)生學(xué)號(hào)

    請(qǐng)假原因

    請(qǐng)假天數(shù)

    開始時(shí)間

    結(jié)束時(shí)間

    申請(qǐng)時(shí)間

    班主任審批狀態(tài)

    班主任審批時(shí)間

    班主任回復(fù)

    院系回復(fù)

    院系審批狀態(tài)

    院系審批時(shí)間

    ?

    ????
    ??
    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    圖5-4學(xué)生出勤記錄屬性模型

    Fig5-4 attribute model of the record going on duty

    學(xué)生出勤記錄

    出勤ID

    上課時(shí)間

    學(xué)號(hào)

    出勤情況

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    5.4.2 E-R模型

    ?

    學(xué)生

    請(qǐng)假記錄

    1

    n

    請(qǐng)假

    圖5-5 學(xué)生-請(qǐng)假記錄E-R模型

    Fig5-5 the E-R model of the records asking for leave

    1

    1

    出勤記錄

    學(xué)生

    出勤

    圖5-6 學(xué)生—出勤記錄E-R模型

    Fig5-6 E-R model of the records going on duty

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    5.4.3 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)

    根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對(duì)于系統(tǒng)數(shù)據(jù)庫(kù),可以列出以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):

    考勤登記表:課程安排代號(hào)、記載時(shí)間、上課時(shí)間。

    學(xué)生上課出勤信息表:上課時(shí)間代號(hào)、上課時(shí)間、學(xué)號(hào)、出勤狀態(tài)。

    請(qǐng)假信息表:請(qǐng)假代號(hào)、班級(jí)代號(hào)、學(xué)年代號(hào)、學(xué)號(hào)、請(qǐng)假原因、開始時(shí)間、結(jié)束時(shí)間、請(qǐng)假天數(shù)、申請(qǐng)時(shí)間、班主任審批狀態(tài)、班主任審批時(shí)間、班主任回復(fù)、院系領(lǐng)導(dǎo)審批狀態(tài)、院系領(lǐng)導(dǎo)代號(hào)、院系領(lǐng)導(dǎo)審批時(shí)間、院系領(lǐng)導(dǎo)回復(fù)

    5.4.4 數(shù)據(jù)庫(kù)表的創(chuàng)建

    根據(jù)數(shù)據(jù)庫(kù)需求的分析,建立如下3個(gè)基本數(shù)據(jù)表。

    表5-1 請(qǐng)假信息表(qingjia)

    列名

    數(shù)據(jù)類型

    是否為空

    說(shuō)明

    id

    Int(4)

    否(主鍵)(自動(dòng)生成)

    請(qǐng)假代號(hào)

    class_id

    varchar(10)

    班級(jí)代號(hào)

    year_id

    varchar(20)

    學(xué)期代號(hào)

    stu_number

    varchar(20)

    學(xué)生學(xué)號(hào)

    qingjia_yuanyin

    varchar(200)

    請(qǐng)假原因

    start_time

    datetime

    開始時(shí)間

    end_time

    datetime

    結(jié)束時(shí)間

    day_number

    Int(4)

    否(默認(rèn)0)

    請(qǐng)假天數(shù)

    qingjia_time

    datetime

    申請(qǐng)請(qǐng)假時(shí)間

    class_teacher_status

    Int(4)

    否(默認(rèn)值:0)

    班主任審批狀態(tài)

    class_teacher_sp_time

    datetime

    班主任審批時(shí)間

    class_teacher_restore

    varchar(200)

    班主任回復(fù)

    college_leader_status

    Int(4)

    否(默認(rèn)值:0)

    院系領(lǐng)導(dǎo)審批狀態(tài)

    college_leader_id

    varchar(20)

    院系領(lǐng)導(dǎo)代號(hào)

    college_leader_sp_time

    datetime

    院系領(lǐng)導(dǎo)審批時(shí)間

    college_leader_restore

    varchar(200)

    院系領(lǐng)導(dǎo)回復(fù)

    備注:status 表示審批狀態(tài):0為等待審批,1為同意請(qǐng)假,2為不同意請(qǐng)假。

    表5-2 任課老師提交出勤信息記錄表(record)

    列名

    數(shù)據(jù)類型

    是否為空

    說(shuō)明

    record_id

    Int(4)

    否(自動(dòng)生成)

    代號(hào)

    id

    Int(4)

    與表course_time中id關(guān)聯(lián)

    record_time

    datetime

    老師考勤記載時(shí)間

    sk_time

    datetime

    上課時(shí)間

    表5-3 學(xué)生上課出勤記錄表(kaoqin_record)

    列名

    數(shù)據(jù)類型

    是否為空

    說(shuō)明

    kaoqin_id

    Int(4)

    否(自動(dòng)生成)

    代號(hào)

    id

    Int(4)

    與表course_time中id關(guān)聯(lián)

    sk_time

    datetime

    上課時(shí)間

    Stu_number

    Varchar(20)

    學(xué)生學(xué)號(hào)

    Stu_status

    Varchar(1)

    學(xué)生上課考勤狀態(tài)

    說(shuō)明:stu_status的值為:“2”表示曠課。“3”表示遲到。“4”表示早退。“5”表示請(qǐng)假。

    5.4.5 數(shù)據(jù)庫(kù)的建立

    打開SQL Server2000下面的[企業(yè)管理器],登錄之后,選擇[新建數(shù)據(jù)庫(kù)]命令,給數(shù)據(jù)庫(kù)起名為kaoqin。然后通過設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表,剛才已經(jīng)說(shuō)明了需要不同的數(shù)據(jù)表來(lái)分管,它們分別是“qingjia”,“kaoqin_record”,“record”等,有關(guān)這些數(shù)據(jù)表的信息見上圖。

    5.5 前端操作頁(yè)面設(shè)計(jì)

    5.5.1 系統(tǒng)登陸設(shè)計(jì)

    當(dāng)不同的用戶使用系統(tǒng)時(shí),都要事先進(jìn)行身份驗(yàn)證。用戶在“用戶名”處輸入系統(tǒng)管理員分配的用戶,選擇正確的用戶類型,最后輸入正確密碼后方能進(jìn)行系統(tǒng),用戶名、用戶類型、密碼任一一個(gè)輸入有誤,系統(tǒng)都將拒絕用戶使用此系統(tǒng),若用戶忘記了用戶名或密碼,請(qǐng)與管理員聯(lián)系,本系統(tǒng)不支持在線找回密碼功能。學(xué)生用戶的用戶名為學(xué)生本人的學(xué)號(hào),密碼也是學(xué)號(hào),其它用戶的用戶名、密碼由系統(tǒng)管理員指定。

    本系統(tǒng)在設(shè)計(jì)時(shí),嚴(yán)格考慮好了系統(tǒng)的安全性,不允許用戶不經(jīng)登陸直接使用系統(tǒng)的任何一個(gè)網(wǎng)頁(yè),用戶也不能繞過身份驗(yàn)證,即:假如一個(gè)學(xué)生用戶用正確的用戶名和密碼進(jìn)行系統(tǒng)后,就算他知道管理用戶或其它用戶的某個(gè)網(wǎng)頁(yè)地址,也是不能打開,進(jìn)行操作的,系統(tǒng)將自動(dòng)提示沒權(quán)限的錯(cuò)誤信息。

    5.5.2 學(xué)生用戶功能設(shè)計(jì)

    根據(jù)學(xué)生用戶的需求,系統(tǒng)實(shí)現(xiàn)了在線請(qǐng)假、查看上課出勤信息、查看個(gè)人基本信息這三大主要功能。系統(tǒng)針對(duì)學(xué)生用戶設(shè)計(jì)如下功能菜單:基本信息、請(qǐng)假系統(tǒng)、考勤信息、查看課表、修改密碼、安全退出、幫助。在基本信息功能菜單中,學(xué)生可以查看自己的學(xué)號(hào)、姓名、性別、院系、年級(jí)、專業(yè)、班級(jí)號(hào)信息。在請(qǐng)假系統(tǒng)功能菜單中,實(shí)現(xiàn)了在線請(qǐng)假申請(qǐng)功能,以及查看等待審批的請(qǐng)假信息、請(qǐng)假成功的請(qǐng)假信息、請(qǐng)假失敗的請(qǐng)假信息。在考勤信息菜單下,學(xué)生可以查看本學(xué)年以及歷史學(xué)年上課出勤的統(tǒng)計(jì)信息及詳細(xì)信息。在查看課表功能菜單中,學(xué)生可以查看當(dāng)前學(xué)期的課表安排,以及歷年的課表安排。修改密碼功能菜單,學(xué)生可以修改自己的密碼。本系統(tǒng)還自帶幫助文件,方便用戶在使用過程中隨時(shí)查閱。

    學(xué)生用戶的在線請(qǐng)假,在班主任或院系領(lǐng)導(dǎo)還沒批假之前可以由學(xué)生自行刪除,若班主任審批了請(qǐng)假,則學(xué)生不能刪除申請(qǐng)記錄,學(xué)生不能重復(fù)請(qǐng)假,因此學(xué)生請(qǐng)假時(shí)應(yīng)當(dāng)慎重。

    根據(jù)學(xué)生用戶請(qǐng)假的需求,學(xué)生三天內(nèi)的請(qǐng)假(包括三天)只需班主任批準(zhǔn)后就可生效,四天(包括四天)以上的請(qǐng)假,必須先由班主任同意,然后學(xué)校同意,請(qǐng)假方能生效,超過30天的請(qǐng)假不能在線請(qǐng)假。請(qǐng)假開始時(shí)間必須在請(qǐng)假結(jié)束時(shí)間之前,否則系統(tǒng)自動(dòng)提示出錯(cuò)信息,且請(qǐng)假時(shí),必須指定請(qǐng)假開始時(shí)間,請(qǐng)假結(jié)束時(shí)間,以及請(qǐng)假原因,請(qǐng)假時(shí)不必要指定班主任,系統(tǒng)會(huì)自動(dòng)根據(jù)本學(xué)期的班級(jí)與班主任安排,找到班主任,并將信息自動(dòng)交給對(duì)應(yīng)班主任進(jìn)行審批處理,超過四天的請(qǐng)假還將自動(dòng)交給任何一個(gè)院系領(lǐng)導(dǎo)審批處理。系統(tǒng)還約定學(xué)生網(wǎng)上請(qǐng)假只能提前一個(gè)星期。

    請(qǐng)假開始時(shí)間與結(jié)束時(shí)間的約定:請(qǐng)假時(shí)間學(xué)生可自動(dòng)選擇,也可自己輸入日期,但是必須輸入正確的日期格式,否則系統(tǒng)將出錯(cuò),建議學(xué)生選擇日期還不手動(dòng)輸入,以免出錯(cuò)。假若學(xué)生只請(qǐng)一天假,則開始時(shí)間與結(jié)束時(shí)間都選擇要請(qǐng)假的那一天,如:一個(gè)學(xué)生2006年5月30日要請(qǐng)假,則開始時(shí)間、結(jié)束時(shí)間都選擇2006-05-30,系統(tǒng)在進(jìn)行處理時(shí),自動(dòng)把請(qǐng)假的時(shí)間設(shè)為從2006-05-30 00:00:00開始,2006-05-30 23:00:00結(jié)束。同樣,請(qǐng)超過一天的假也是以這種方式處理的。

    在請(qǐng)假的詳細(xì)記錄中,有學(xué)生請(qǐng)假有關(guān)所有詳細(xì)信息,包括學(xué)生請(qǐng)假的申請(qǐng)時(shí)間、開始時(shí)間、結(jié)束時(shí)間、天數(shù)、原因、審批時(shí)間、回復(fù)、請(qǐng)假成功與否等所有有關(guān)請(qǐng)假的信息,學(xué)生可以隨時(shí)查看請(qǐng)假進(jìn)展情況。

    5.5.3 任課老師用戶功能設(shè)計(jì)

    根據(jù)任課老師用戶需求,系統(tǒng)實(shí)現(xiàn)了任課老師在線公布學(xué)生上課出勤信息、查看學(xué)生考勤信息兩大基本功能。系統(tǒng)針任課老師用戶設(shè)計(jì)以下功能菜單:

    查看課表、考勤管理、考勤信息、修改密碼、安全退出、幫助。在查看課表功能菜單下,任課老師可以查看本學(xué)期自己所帶課程的上課時(shí)間以及所教班級(jí)的一些基本信息。在考勤管理功能菜單中,系統(tǒng)比較智能的根據(jù)當(dāng)前日期自動(dòng)提示當(dāng)前學(xué)年還沒登記的學(xué)生上課出勤表。在考勤信息功能菜單中,任課老師可以查看已經(jīng)記錄的學(xué)生上課出勤信息,既可以查看學(xué)生上課出勤統(tǒng)計(jì)信息,也可以考勤學(xué)生上課出勤統(tǒng)計(jì)信息,還可以做適當(dāng)?shù)男薷摹?/p>

    考勤管理功能是任課老師用戶最主要的功能,任課老師上完課后,將傳統(tǒng)的學(xué)生上課出勤情況在網(wǎng)上進(jìn)行公布,使學(xué)生上課出勤信息及時(shí)準(zhǔn)備對(duì)對(duì)班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)透明。根據(jù)任課老師用戶的需求,系統(tǒng)實(shí)現(xiàn)了自動(dòng)提示任課老師提交數(shù)據(jù)的功。根據(jù)課表安排,將本學(xué)期上完課的,還沒提交數(shù)據(jù)的學(xué)生出勤情況自動(dòng)提示任課老師提交數(shù)據(jù),實(shí)現(xiàn)了智能化管理。比如說(shuō)一個(gè)老師在2006-5-30進(jìn)入了系統(tǒng),那么這個(gè)老師在本學(xué)期,也就是2006-5-30之前上過的課,但還沒提交數(shù)據(jù)出勤登記信息自動(dòng)顯示出來(lái),等待任課老師提交數(shù)據(jù),且任課老師在提交數(shù)據(jù)時(shí),若學(xué)生在上課的那天請(qǐng)了假,且請(qǐng)假成功了,那么系統(tǒng)自動(dòng)將學(xué)生出勤記錄記為請(qǐng)假,任課老師無(wú)法記載學(xué)生為曠課等情況。

    任課老師在考勤信息當(dāng)中,可以查看所教過的學(xué)生上課出勤的詳細(xì)信息及統(tǒng)計(jì)信息,從而到了學(xué)期末,可以方便任課老師根據(jù)上課出勤情況對(duì)學(xué)生平時(shí)成績(jī)打分。

    5.5.4 班主任用戶功能設(shè)計(jì)

    根據(jù)班主任用戶功能的需求,系統(tǒng)實(shí)現(xiàn)了游覽班級(jí)信息、審批本班學(xué)生在線請(qǐng)假、及上課考勤信息三大基本功能。系統(tǒng)針對(duì)班主任用戶設(shè)計(jì)如下功能菜單:班級(jí)信息、請(qǐng)假系統(tǒng)、考勤信息、修改密碼、安全退出、幫助。在班級(jí)信息功能菜單中,班主任用戶可以查看本班學(xué)生的基本信息如:年級(jí)、專業(yè)、班級(jí)、學(xué)生學(xué)號(hào)、姓名、性別。在請(qǐng)假系統(tǒng)功能菜單中,班主任可以審批本班學(xué)生的在線請(qǐng)假,以及查看審批學(xué)生請(qǐng)假的歷史記錄,如:同意的請(qǐng)假記錄和不同意的請(qǐng)假記錄。在考勤信息功能菜單中,班主任用戶可以查看本班學(xué)生所有課程的上課出勤信息,包括出勤詳細(xì)信息及出勤統(tǒng)計(jì)信息。

    班主任用戶在整個(gè)系統(tǒng)中是學(xué)生請(qǐng)假的決策者,學(xué)生請(qǐng)假必須經(jīng)班主任同意后,才能提交給院系領(lǐng)導(dǎo)審批請(qǐng)假。班主任在審批學(xué)生請(qǐng)假時(shí),可以對(duì)學(xué)生的請(qǐng)假返回反饋意見,以對(duì)學(xué)生說(shuō)明不同意請(qǐng)假的原因,或向院系領(lǐng)導(dǎo)說(shuō)明情況的真實(shí)性以更好的方便學(xué)生請(qǐng)假。班主任另外一大功能是查看本班學(xué)生本學(xué)期的所有考勤信息,包括詳細(xì)信息和統(tǒng)計(jì)信息,這樣班主任可以及時(shí)有效的與本班同學(xué)溝通,提高辦事效率,提高學(xué)生的學(xué)習(xí)成績(jī)。

    5.5.5 院系領(lǐng)導(dǎo)用戶功能設(shè)計(jì)

    根據(jù)院系領(lǐng)導(dǎo)的用戶需求,系統(tǒng)實(shí)現(xiàn)了查看本院系信息、審批本院系學(xué)生請(qǐng)假、查看考勤信息三大基本功能。系統(tǒng)針對(duì)院系領(lǐng)導(dǎo)用戶設(shè)計(jì)如下功能菜單:院系信息、請(qǐng)假系統(tǒng)、考勤統(tǒng)計(jì)、班主任信息、任課老師信息、班主任安排信息、院系課表、修改密碼、安全退出、幫助。在院系信息功能菜單中,院系領(lǐng)導(dǎo)可以查看本院系的專業(yè)信息、班級(jí)信息、學(xué)生信息。在請(qǐng)假系統(tǒng)功能菜單中,院系領(lǐng)導(dǎo)可以審批經(jīng)班主任同意的長(zhǎng)時(shí)間請(qǐng)假,并可查看審批請(qǐng)假的歷史記錄。在考勤統(tǒng)計(jì)功能菜單中,院系領(lǐng)導(dǎo)可以查看本院系各班級(jí)考勤統(tǒng)計(jì)數(shù)據(jù)、查尋學(xué)生請(qǐng)假信息、考勤信息等。另外在班主任信息、任課老師信息中院系領(lǐng)導(dǎo)可以查看本院系班主任、任課老師的一些基本信息。在院系課表中可以查看本院系當(dāng)前學(xué)年或歷年課表安排。

    院系領(lǐng)導(dǎo)用戶的主要功能是查詢本院系學(xué)生上課的考勤信息及審批學(xué)生請(qǐng)假。院系領(lǐng)導(dǎo)可以查詢本院系某個(gè)班的考勤信息,也可以查詢本院系某個(gè)人的考勤信息,在查詢個(gè)人考勤統(tǒng)計(jì)信息時(shí),是一個(gè)模糊查詢,可以根據(jù)一個(gè)完整學(xué)號(hào),唯一的查出一個(gè)學(xué)生考勤信息,也可輸入部分學(xué)號(hào)、姓名列出所有相關(guān)的考勤記錄。院系領(lǐng)導(dǎo)還可查看本院系的一些基本信息,如:專業(yè)、班級(jí)、任課老師、班主任等一些基本信息。

    5.5.6 學(xué)校領(lǐng)導(dǎo)用戶功能設(shè)計(jì)

    根據(jù)學(xué)樣領(lǐng)導(dǎo)用戶的功能,本系統(tǒng)實(shí)現(xiàn)了查看全校基本信息及學(xué)生考勤信息這兩在基本功能。針對(duì)院系領(lǐng)導(dǎo)用戶設(shè)計(jì)如下功能菜單:學(xué)校信息、考勤信息、院系領(lǐng)導(dǎo)信息、班主任信息、任課老師信息、班主任安排信息、全校課表、修改密碼、安全退出、幫助。在學(xué)校信息功能菜單下,學(xué)校領(lǐng)導(dǎo)可以查看有關(guān)本校的一些基本信息,包括:院系信息、專業(yè)信息、班級(jí)信息、學(xué)生信息等。在考勤統(tǒng)計(jì)功能菜單下,學(xué)校領(lǐng)導(dǎo)可以分院系,班級(jí)查看學(xué)生考勤統(tǒng)計(jì)數(shù)據(jù)也可以查尋學(xué)生上課出勤信息。

    學(xué)校領(lǐng)導(dǎo)用戶的功能與院系領(lǐng)導(dǎo)用戶的功能基本上相同,只是查看信息的范圍不一樣,院系領(lǐng)導(dǎo)只能查看本院系的信息,而學(xué)校領(lǐng)導(dǎo)可以查看全校學(xué)生、任課老師、班主任等所有相關(guān)信息。由于與院系領(lǐng)導(dǎo)設(shè)計(jì)基本上一致,不再重復(fù)。

    ?

    ?

    第6章? 編碼

    6.1用戶操作頁(yè)面編碼

    6.1.1 系統(tǒng)登陸編碼

    用戶登陸時(shí)操作頁(yè)面如圖6-1所示:

    ?

    ?
    ?

    圖6-1 用戶登陸頁(yè)面

    Fig 6-1 the page of debarkation by user

    ?

    ?

    部分代號(hào):

    chuser.jsp

    ……

    <%

    request.setCharacterEncoding("GBK");

    username=request.getParameter("username");

    password=request.getParameter("password");

    Type=(String)request.getParameter("type");

    char userType=Type.charAt(0);

    if(username==null || password==null || username.equals("") ||password.equals("")){

    ?????? out.println("<center>");

    ?????? out.println("<h1>用戶名或密碼輸入非法!請(qǐng)返回重新輸入!</h1><br><br>");

    ?????? out.println("<a href=javascript:history.back()>返回</a>");

    ?????? out.println("</center>");

    ?????? return;

    ??? }

    switch(userType){

    ?case '1' : {sql="select * from stu_user where stu_id='"+username;

    ??????? ?sql+="' and stu_password='"+password+"'";

    ???????? rs=conn.executeQuery(sql);

    ???????? if(rs.next()){

    ?????????? session.setAttribute("userType",Type);

    ?????????? session.setAttribute("userName",username);

    ?????????? session.setMaxInactiveInterval(60*60*24);

    ?????????? response.sendRedirect("/kaoqin/student/student.jsp");

    ??????? }else{

    ?????????? out.println("<center>");

    ?????????? out.println("<h1>用戶名或密碼不正確</h1><br><br>");

    ?????????? out.println("<a href=javascript:history.back()>返回</a>");

    ?????????? out.println("</center>");

    ???????? }

    ???????? conn.close();

    ??????? break;

    ?????? }

    ?…………

    ?%>

    ?各頁(yè)面身份驗(yàn)證代碼:如check_stu.jsp

    <%

    ??? if(session.getAttribute("userType")!=null && !session.getAttribute("userType").equals("")){

    ?????? String userType=(String)session.getAttribute("userType");

    ?????? if(!userType.equals("1"))

    ????????? response.sendRedirect("/kaoqin/public/error_user.jsp");

    ??? }else{

    ???? response.sendRedirect("/kaoqin/public/error_log.jsp");

    ???? }

    ?%>

    只要在所有的學(xué)生用戶頁(yè)面中加入上面的代碼后,用戶必須先登陸后才能打開網(wǎng)頁(yè),且不能繞過身份驗(yàn)證。同樣的頁(yè)面對(duì)應(yīng)各用戶還有check_class_teacher.jsp等

    6.1.2 學(xué)生用戶功能編碼

    根據(jù)系統(tǒng)詳細(xì)設(shè)計(jì),學(xué)生用戶操作頁(yè)面如圖6-2所示:

    ?

    圖6-2 學(xué)生請(qǐng)假系統(tǒng)頁(yè)面

    Fig 6-2 The page of the system asking for leave

    ?

    ?

    請(qǐng)假功能的實(shí)現(xiàn)的程序流程圖如圖6-3所示:

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    圖6-3請(qǐng)假系統(tǒng)流程圖

    Fig 6-3the flow chart of the system asking for leave

    等待班主任審批

    學(xué)生請(qǐng)假記錄

    N

    班主任審批請(qǐng)假

    T=0 C=0 N=?

    T=1 C=0 N=?

    T=2 C=0 N=?

    N>=4等待院系審批

    請(qǐng)假失敗

    N<4 請(qǐng)假成功

    院系審批請(qǐng)假

    T=1 C=0 N>=4

    T=1 C=1 N>=4

    T=1 C=2 N>=4

    請(qǐng)假失敗

    請(qǐng)假成功

    T=0 C=0 N=?

    ?

    ?
    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    說(shuō)明:T 表示班主任對(duì)請(qǐng)假審批結(jié)果。默認(rèn)值:0

    C 表示院系領(lǐng)導(dǎo)對(duì)請(qǐng)假審批結(jié)果。默認(rèn)值:0

    N 表示學(xué)生請(qǐng)假天數(shù)。默認(rèn)值:0

    T、C的值為:0、等待審批。 1、同意請(qǐng)假。2、不同意請(qǐng)假。

    功能實(shí)現(xiàn)部分代碼:

    package qingjia;

    public class QJ_Record{

    ????????? public int day_number=0;

    ????????? public int class_teacher_status=0;

    ????????? public int college_leader_status=0;

    ????????? public QJ_Record(int T,int C,int N){

    ???????????? this.class_teacher_status=T;

    ???????????? this.college_leader_status=C;

    ???????????? this.day_number=N;

    ????????? }

    }

    package qingjia;

    public class QingJia{

    ????????? public int judge(QJ_Record record){?????? //對(duì)請(qǐng)假記錄進(jìn)行判斷,返回值為1:請(qǐng)假成功;

    ????????? ??? int T=record.class_teacher_status;??? //返回值為0:等審批的請(qǐng)假。返回值為-1:失敗的請(qǐng)假

    ????????? ??? int C=record.college_leader_status;

    ????????? ??? int N=record.day_number;

    ????????? ??? int result=0;

    ????????? ??? if(T==0&&C==0)

    ????????? ?????? result=0;

    ????????? ??? if(T==2&&C==0)

    ????????? ?????? result=-1;

    ????????? ??? if(T==1&&C==0)

    ????????? ??? ? if(N>=1&&N<4)

    ????????? ??? ? ???result=1;

    ????????? ??? if(T==1&&N>=4)

    ????????? ??????? if(C==0)

    ????????? ?????????? result=0;

    ????????? ??????? else if(C==1)

    ????????? ???????????????? result=1;

    ????????? ???????????? else

    ????????? ???????????????? result=-1;

    ????????? ??? return result;

    ????????? }

    }

    6.1.3 任課老師用戶功能編碼

    根據(jù)任課老師詳細(xì)設(shè)計(jì)的要求,設(shè)計(jì)任課老師操作頁(yè)面如圖6-4所示:

    ?

    ?
    ?

    圖6-4任課老師考勤管理頁(yè)面

    Fig 6-4 the page of attendance management of teacher

    ?

    ?

    部分代碼:

    kq_manager_m.jsp

    ??? ……

    <%

    ??? format=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    ??? String cur_time_2=format.format(cur_time);

    ??? String sql_t="select * from year where year_id='"+year_id+"'";

    ??? ResultSet rs_t=conn.executeQuery(sql_t);

    ??? if(rs_t.next()){

    ?????? year_id=rs_t.getString("year_id");

    ?????? year_name=rs_t.getString("year_name");

    ?????? year_start=rs_t.getTimestamp("year_start");

    ?????? year_end=rs_t.getTimestamp("year_end");

    ??? }

    ??? conn.close();

    ??? java.util.Calendar calendar=new java.util.GregorianCalendar();

    ??? calendar.setTime(cur_time);

    ?? calendar.set(calendar.DATE,calendar.get(calendar.DATE)-1); //限置任課老師不能管理當(dāng)天學(xué)生的出勤

    ??? java.util.Calendar calendar_1=new java.util.GregorianCalendar();

    ??? java.util.Calendar calendar_2=new java.util.GregorianCalendar();

    ??? calendar_1.setTime(year_start);

    ??? calendar_2.setTime(year_end);

    ??? ResultSet _rs=null;

    ??? String _sql="";

    ??? String week_name="";

    ?? ?format_1=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    ?? format_2=new java.text.SimpleDateFormat("yyyy/MM/dd");

    ??? format_3=new java.text.SimpleDateFormat("yyyy/MM/dd");

    ??? String grade_name="";

    ??? String sp_name="";

    ??? String class_number_name="";

    ??? String kecheng_name="";

    ??? _sql="select distinct kecheng_name,sp_name,grade_name,class_number_name from course_info where year_id='"+year_id+"' and teacher_id='"+teacher_id+"' and kecheng_id='"+kecheng_id+"' and class_id='"+class_id+"'";

    ??? _rs=conn.executeQuery(_sql);

    ??? if(_rs.next()){

    ?????? grade_name=_rs.getString("grade_name");

    ?????? sp_name=_rs.getString("sp_name");

    ?????? class_number_name=_rs.getString("class_number_name");

    ?????? kecheng_name=_rs.getString("kecheng_name");

    ??? }

    ??? conn.close();

    ??? %>

    ??? <center>

    ??? <h3><%= year_name %><%= kecheng_name %></h3>

    ??? <h3><%= grade_name %>級(jí) <%= sp_name %> <%= class_number_name %>班 等待登記的上課考勤信息</h3>

    ?????? <table width="60%" border="1" cellspacing="0">

    ?????? <tr bgcolor="#0099FF">

    ????????? <td>上課時(shí)間</td>

    ????????? <td>星期</td>

    ????????? <td>第幾周</td>

    ????????? <td>課時(shí)</td>

    ????????? <td><div align="center">登記</div></td>

    ?????? </tr>??????

    ?????? <%

    ?????? int subDate=date.subDate(calendar_1,calendar);

    ?????? do{

    ????????? String before_time=format_1.format(calendar.getTime());

    ????????? String before_time_2=format_2.format(calendar.getTime());

    ????????? String before_time_3=format_3.format(calendar.getTime());

    ????????? int zhou=subDate/7+1;

    ????????? int day_of_week=calendar.get(calendar_1.DAY_OF_WEEK);

    ????????? switch(day_of_week){

    ?????????????? case 1: week_name="星期日";break;

    ?????????????? case 2: week_name="星期一";break;

    ?????????????? case 3: week_name="星期二";break;

    ?????????????? case 4: week_name="星期三";break;

    ?????????????? case 5: week_name="星期四";break;

    ?????????????? case 6: week_name="星期五";break;

    ?????????????? case 7: week_name="星期六";break;

    ????????? }

    ????????? _sql="select * from course_info where class_id='"+class_id+"' and year_id='"+year_id+"' and teacher_id='"+teacher_id+"' and week_name='"+week_name+"' and kecheng_id='"+kecheng_id+"'";

    ????????? _rs=conn.executeQuery(_sql);

    ???????? if(_rs.next()){

    ?????????? do{

    ????????????? String status=_rs.getString("status");

    ???????????? int pd=zhou%2;

    ???????????? if(status.equals("1")&&pd==0)

    ???????????????? continue;

    ???????????? if(status.equals("2")&&pd==1)

    ???????????????? continue;

    ???????????? int id_2=_rs.getInt("id");????? //檢查是否以經(jīng)登記

    ???????????? String sql_2="select * from record where id='"+id_2+"' and sk_time='"+before_time_3+"'";

    ???????????? ResultSet rs_2=conn.executeQuery(sql_2);

    ???????????? if(rs_2.next())

    ?????????????? continue;

    ??????? %>

    ????? <tr>

    ???????? <td><%= before_time_2 %></td>

    ???????? <td><%= week_name %></td>

    ???????? <td>第<%= zhou %>周</td>

    ???????? <td><%=_rs.getString("lesson_name") %></td>

    ???????? <td><div align="center"><a href="record.jsp?id=<%=_rs.getInt("id")%>&time=<%=before_time_3%>">登記</a></div></td>

    ????? </tr>

    ?????? <%

    ???????????? conn.close();

    ???????????? }while(_rs.next());

    ?????????? conn.close();

    ???????? }

    ???????? calendar.set(calendar.DATE,calendar.get(calendar.DATE)-1);

    ???????? subDate--;

    ?????? }while(calendar.after(calendar_1)&&calendar.before(calendar_2));

    ?????? conn.close();

    %>

    ……

    6.1.4 班主任用戶功能編碼

    根據(jù)班主任用戶的詳細(xì)設(shè)計(jì)要求,設(shè)計(jì)班主任用戶操作頁(yè)面如圖6-5所示:

    ?

    圖6-5班主任審批請(qǐng)假操作頁(yè)面

    Fig 6-5 the page of the leave examined and approved by teacher in charge of a class

    ?

    ?

    部分代碼:

    ……

    <%

    format=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    ? String sp_time=format.format(cur_time);

    ? sql="update qingjia set class_teacher_status='"+qj_sp+"',class_teacher_restore='"+restore+"',class_teacher_sp_time='"+sp_time+"' where id='"+id+"'";

    ? conn.executeUpdate(sql);

    ? conn.close();

    ? response.sendRedirect("qingjia_manager.jsp");

    ?%>

    ……

    6.1.5 院系領(lǐng)導(dǎo)用戶功能編碼

    根據(jù)院系領(lǐng)導(dǎo)用戶詳細(xì)設(shè)計(jì)的需求,設(shè)計(jì)院系領(lǐng)導(dǎo)用戶操作頁(yè)面如圖6-6所示:

    ?

    ?
    ?

    圖6-6院系領(lǐng)導(dǎo)查詢學(xué)生考勤信息頁(yè)面

    Fig6-6 the page of attendance information checked by college leader

    ?

    ?

    部分代碼:

    select_stu.jsp

    ……

    <%

    ?? request.setCharacterEncoding("GBK");

    ?? sql="select * from student_c_s_c where college_id='"+college_id+"' and";

    ?? String sql_2="";

    ?? stu_number=request.getParameter("stu_number");

    ?? stu_name=request.getParameter("stu_name");

    ?? if(stu_number.equals("")&&!stu_name.equals("")){

    ????? sql_2=sql+"? stu_name like '%"+stu_name+"%'";

    ?? }else if(!stu_number.equals("")&&stu_name.equals("")){

    ????????????? sql_2=sql+" stu_number like '%"+stu_number+"%'";

    ???????? }else{

    ???????????????? sql_2=sql+" stu_name like '%"+stu_name+"%' and stu_number like '%"+stu_number+"%'";

    ????????????? }

    ?%>

    <html>

    ? <head>

    ??? <title>考勤統(tǒng)計(jì)首頁(yè)</title>

    ??? <link rel="stylesheet" href="../public/style.css">

    ? </head>

    ? <body class="ss">

    ? <a href="kq_tongji.jsp" class="a">全院考勤統(tǒng)計(jì)信息</a>&nbsp;&nbsp;

    ? <a href="kq_select.jsp" class="a">查詢</a>&nbsp;&nbsp;

    ? <a href="javascript:window.location.reload();" class="a">刷新</a>&nbsp;&nbsp;

    ? <a href="javascript:history.back();" class="a">返回</a>

    ? <hr></hr>

    ? <center>

    ??? <h3>查詢學(xué)生考勤統(tǒng)計(jì)信息</h3>

    ??? <form action="select_stu.jsp" method="post" οnsubmit="return formCheck(this)">

    ??? <table width="70%">

    ????? <tr>

    ???????? <td>學(xué)號(hào):</td>

    ???????? <td><input type="text" name="stu_number" size="20"></td>

    ???????? <td>姓名:</td>

    ???????? <td><input type="text" name="stu_name" size="20"></td>

    ???????? <td><input type="submit" value="查詢"></td>

    ????? </tr>

    ??? </table>

    ??? </form>

    ??? <hr width="70%"></hr>

    ??? <table width="70%" border="1" cellspacing="0">

    ?????? <tr bgcolor="#0099FF">

    ????????? <td>學(xué)號(hào)</td>

    ????????? <td>姓名</td>

    ????????? <td>性別</td>

    ????????? <td>年級(jí)</td>

    ????????? <td>專業(yè)</td>

    ????????? <td>班級(jí)</td>

    ????????? <td><div align="center">考勤詳細(xì)信息</div></td>

    ????? </tr>

    ?????? <%

    ?????????? ResultSet rs_stu=null;

    ?????????? rs_stu=conn.executeQuery(sql_2);

    ?????????? if(rs_stu.next()){

    ????????????? do{

    ??????? %>

    ??????? <tr>

    ?????????? <td><%= rs_stu.getString("stu_number") %></td>

    ?????????? <td><%= rs_stu.getString("stu_name") %></td>

    ?????????? <td><%= rs_stu.getString("stu_sex") %></td>

    ?????????? <td><%= rs_stu.getString("grade_name") %> 級(jí)</td>

    ?????????? <td><%= rs_stu.getString("sp_name") %></td>

    ?????????? <td><%= rs_stu.getString("class_number_name") %> 班</td>

    ?????????? <td><div align="center"><a href="stu_kq_info.jsp?stu_number=<%= rs_stu.getString("stu_number") %>">查看</a></div></td>

    ??????? </tr>

    ??????? <%

    ??????????????? }while(rs_stu.next());

    ?????????? }else{

    ???????? %>

    ??????? <tr>

    ?????????? <td colspan="7"><center>沒有此學(xué)生記錄!</center></td>

    ??????? </tr>

    ??????? <%

    ??????????? }

    ???????? %>

    ……

    6.2 數(shù)據(jù)庫(kù)連接池編碼

    6.2.1數(shù)據(jù)庫(kù)連接池程序編碼

    /*? SQL Server 2000 連接池對(duì)數(shù)據(jù)庫(kù)的所有操作? */

    package SQLBean;

    import javax.naming.*;

    import javax.sql.*;

    import java.sql.*;

    public class DBConn{

    ????????? public Context ctx=null;

    ????????? public Connection cnn=null;

    ????????? Statement stmt=null;

    ????????? ResultSet rs=null;

    ????????? DataSource ds=null;

    public DBConn(){??????????????? //構(gòu)造函數(shù),查找連接池資源

    ???????????? try{

    ??????????????? ctx=new InitialContext();

    ??????????????? if(ctx==null)

    ??????????????? ? throw new Exception("not environment");

    ????????? ?ds=(DataSource)ctx.lookup("java:comp/env/jdbc/kaoqin");

    ???????????? ??? if(ds==null)

    ???????????? ????? throw new Exception("not find dataBase");

    ???????????? }catch(Exception e){

    ??????????????? System.err.println(e.getMessage());

    ???????????? }

    ????????? }????

    //執(zhí)行所有的查尋操作

    ????????? public ResultSet executeQuery(String sql){

    ???????????? try{

    ????????? cnn=ds.getConnection();?????? stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

    ??????????? rs=stmt.executeQuery(sql);??????

    ???????????? }catch(SQLException e){

    ??????????????? System.err.println(e.getMessage());

    ???????????? }

    ???????????? return rs;

    ????????? }

    ?????? //執(zhí)行所有的刪除,修改、添加操作

    ????????? public int executeUpdate(String sql){??????

    ????????? int result=0;

    ???????????? try{

    ? ??????????? cnn=ds.getConnection();????????? stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

    ??????????? result=stmt.executeUpdate(sql);???????

    ???????????? }catch(SQLException e){

    ??????????????? System.err.println(e.getMessage());

    ???????????? }

    ???????????? return result;

    ????????? }

    //關(guān)閉與數(shù)據(jù)庫(kù)的連接

    ????????? public void close() throws SQLException{?????????? ?? ???try{

    ????????? if(rs!=null){

    ????????? ?? rs.close();

    ????????? }

    ????????? if(stmt!=null){

    ????????? ?? stmt.close();

    ????????? }

    ????????? if(cnn!=null){

    ????????? ?? stmt.close();

    ????????? }

    ????????? if(ctx!=null){

    ????????? ?? ctx.close();

    ????????? }

    ????????? ?? }catch(Exception e){

    ????????? ?? ?? ??System.err.println(e.getMessage());

    ????????? ?? }

    ????????? }

    }

    6.2.2 連接池配置文件

    server.xml配置文件:(注:針對(duì)Tomcat 5.5)

    ?? <Resource

    ??? name="jdbc/kaoqin"

    ??? type="javax.sql.DataSource"

    ??? removeAbandoned="true"

    ??? removeAbandonedTimeout="15"

    ??? maxActive="200"

    ??? maxIdle="40"

    ??? maxWait="5000"

    ??? username="sa"

    ??? password="8482134"

    ??? driverClassName="net.sourceforge.jtds.jdbc.Driver"

    ??? url="jdbc:jtds:sqlserver://127.0.0.1:1433/kaoqin"

    ??? />

    kaoqin.xml配置文件 (注:針對(duì)Tomcat 5.5)

    <?xml version="1.0" encoding="UTF-8"?>

    <Context>

    ?? <Resource

    ??? name="jdbc/kaoqin"

    ??? type="javax.sql.DataSource"

    ??? removeAbandoned="true"

    ??? removeAbandonedTimeout="15"

    ??? maxActive="200"

    ??? maxIdle="40"

    ??? maxWait="5000"

    ??? username="sa"

    ??? password="8482134"

    ??? driverClassName="net.sourceforge.jtds.jdbc.Driver"

    ??? url="jdbc:jtds:sqlserver://127.0.0.1:1433/kaoqin"

    ??? />

    </Context>

    ?

    第7章? 軟件測(cè)試

    7.1 引言

    在開發(fā)軟件的過程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計(jì)和實(shí)現(xiàn)軟件,但難免還會(huì)在工作中犯錯(cuò)誤。這樣,在軟件產(chǎn)品中就會(huì)隱藏許多錯(cuò)誤和缺陷,尤其是對(duì)規(guī)模大、復(fù)雜性高的軟件更是如此。所以,必須進(jìn)行認(rèn)真、計(jì)劃、徹底的軟件測(cè)試。

    7.2 測(cè)試方案

    7.2.1 黑盒測(cè)試

    黑盒測(cè)試,又稱為功能測(cè)試。對(duì)于軟件測(cè)試而言,黑盒測(cè)試把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。也就是說(shuō),黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。該測(cè)試方案的設(shè)計(jì)技術(shù)主要有:等價(jià)劃分、邊界值分析以及錯(cuò)誤推測(cè)法等。

    7.2.2 白盒測(cè)試

    白盒測(cè)試的前提是可以把程序看成裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否能按預(yù)定要求正確工作。故白盒測(cè)試又被稱為是結(jié)構(gòu)測(cè)試。該測(cè)試方案的設(shè)計(jì)技術(shù)主要有邏輯覆蓋法等。

    7.2.3 其它測(cè)試方案

    除了以上兩種測(cè)試方案外,還有其它的測(cè)試方案。包含所有可能情況的測(cè)試稱為窮盡測(cè)試。對(duì)于實(shí)際程序而言,窮盡測(cè)試通常是不可能做到的。因?yàn)椴豢赡軐?duì)每一種可能的情況都進(jìn)行測(cè)試。

    7.2.4 本系統(tǒng)所采用測(cè)試方案

    基于以上測(cè)試方法,本人選取的是模塊測(cè)試和系統(tǒng)測(cè)試,模塊測(cè)試部分由本人程序設(shè)計(jì)過程中自主完成,系統(tǒng)測(cè)試部分由同學(xué)模擬各種用戶登錄代為完成。

    7.3 測(cè)試過程

    7.3.1 用戶登陸測(cè)試

    用戶登陸測(cè)試是測(cè)試系統(tǒng)訪問的安全性,以及各個(gè)頁(yè)面的設(shè)計(jì)的安全性,測(cè)試方案如下(表6-1)所示:

    表 6-1

    用戶類型

    用戶名

    密碼

    空密碼

    錯(cuò)誤密碼/用戶名

    錯(cuò)誤類型

    學(xué)生

    2002162122

    2002162122

    任課老師

    041002

    123456

    班主任

    048001

    123456

    院系領(lǐng)導(dǎo)

    xinxi_02

    123456

    學(xué)校領(lǐng)導(dǎo)

    school

    123456

    說(shuō)明:上表中的“否”表示拒絕訪問,沒有通過系統(tǒng)的身份驗(yàn)證。“是” 表示可以訪問系統(tǒng)。

    通過上表反復(fù)測(cè)試黑盒測(cè)試可知,系統(tǒng)用戶在登陸安全方面不存在問題,用戶必須選擇正確的類型,使用正確的用戶名、密碼方能使用此系統(tǒng)。

    7.3.2 頁(yè)面使用安全測(cè)試

    此測(cè)試過程主要是測(cè)試系統(tǒng)各個(gè)頁(yè)面的安全性,即在用戶沒有登錄的情況直接在瀏覽器地址中輸入要打開的用戶頁(yè)面,或者用戶以正確的用戶名和密碼進(jìn)入系統(tǒng)后,直接在瀏覽器地址中輸入別的用戶的頁(yè)面,測(cè)試各頁(yè)面是否不需要用戶登錄就可使用,或者是否可以繞過身份驗(yàn)證。

    第一步:在用戶沒登陸系統(tǒng)的情況下,直接在瀏覽器中輸入http://127.0.0.1/kaoqin/student/student.jsp 此地址是學(xué)生用戶首頁(yè)的完全地址,看是否能打開操作。測(cè)試結(jié)果:提示用戶還沒登陸的錯(cuò)誤信息。依次測(cè)試別的頁(yè)面,別的用戶,測(cè)試結(jié)果都是:提示用戶還沒登陸的錯(cuò)誤信息。

    第二步:以學(xué)生正確的用戶我和密碼進(jìn)入學(xué)生系統(tǒng)后,在瀏覽器中輸入任課老師首頁(yè)地址:http://127.0.0.1/kaoqin/teacher/teacher.jsp 看是否能繞過身份驗(yàn)證,打開別的用戶的頁(yè)面。測(cè)試結(jié)果:提示沒有權(quán)限的錯(cuò)誤信息。用同樣的方法測(cè)試別的頁(yè)面,別的用戶都得到了同樣的測(cè)試結(jié)果:提示沒有權(quán)限的錯(cuò)誤信息。

    測(cè)試結(jié)果:通過以上測(cè)試可知,系統(tǒng)各個(gè)頁(yè)都有很好的安全性,每個(gè)頁(yè)面都不允許用戶在沒有登陸的前提下訪問,用戶在登陸后,也不充許用戶訪問別的用戶類型的頁(yè)面,即不能繞過身份驗(yàn)證。

    7.3.3學(xué)生用戶測(cè)試

    • 請(qǐng)假系統(tǒng)測(cè)試

    請(qǐng)假系統(tǒng)是學(xué)生用戶的核心功能,由于涉及的用戶比較多,此部分的測(cè)試是在幾個(gè)同學(xué)的配合下完成,主要完成以下幾個(gè)測(cè)試:

  • 空值測(cè)試:在請(qǐng)假開始時(shí)間、結(jié)束時(shí)間、請(qǐng)假原因都為空或部分為空的情況下,直接點(diǎn)提交數(shù)據(jù)在線請(qǐng)假。測(cè)試結(jié)果:系統(tǒng)拒絕提交數(shù)據(jù),并能正確的做出相應(yīng)的提示,如**不能為空的錯(cuò)誤信息。
  • 錯(cuò)誤的時(shí)間選擇測(cè)試:在開始時(shí)間與結(jié)束時(shí)間選擇的時(shí)間,把結(jié)束時(shí)間選擇一個(gè)開始時(shí)間以前的時(shí)間,然后提交數(shù)據(jù)。測(cè)試結(jié)果:提示時(shí)間選擇錯(cuò)誤的提示信息。
  • 超前請(qǐng)假測(cè)試:開始時(shí)間選擇一個(gè)與當(dāng)前時(shí)間相差一個(gè)大于7天的日期請(qǐng)假。測(cè)試結(jié)果:提示只能提前7天請(qǐng)假的錯(cuò)誤信息。
  • 超后請(qǐng)假測(cè)試:在開始時(shí)間中選擇一個(gè)當(dāng)前系統(tǒng)時(shí)間以前開始日期請(qǐng)假。測(cè)試結(jié)果:提示不能請(qǐng)過去時(shí)間的假的錯(cuò)誤信息。
  • 超長(zhǎng)時(shí)間請(qǐng)假測(cè)試:在開始時(shí)間與結(jié)束時(shí)間中,選擇一個(gè)相差30的日期請(qǐng)假。測(cè)試結(jié)果:提示不能請(qǐng)大于30天的請(qǐng)假。
  • 重復(fù)請(qǐng)假測(cè)試:先申請(qǐng)一條當(dāng)天日期的請(qǐng)假,申請(qǐng)成功后,再申請(qǐng)一條今天到明天兩天的請(qǐng)假。測(cè)試結(jié)果:提示不能重復(fù)請(qǐng)假的錯(cuò)誤信息。
  • 小于4天的請(qǐng)假測(cè)試:開始時(shí)間與結(jié)束時(shí)間之差小于四天的請(qǐng)假測(cè)試。測(cè)試結(jié)果:提交數(shù)據(jù)后,在等待審批的請(qǐng)假記錄中出現(xiàn)一條新的記錄,并顯示了申請(qǐng)時(shí)間,班主任審批處顯示了“等待批假”的提示信息,而院系審批處沒有顯示“等待批假”的提示信息。
  • 大于4天的請(qǐng)假測(cè)試:開始時(shí)間與結(jié)束時(shí)間之差大于四天的請(qǐng)假測(cè)試:測(cè)試結(jié)果:提交數(shù)據(jù)后,在等待審批的請(qǐng)假記錄中,班主任審批處以及院系領(lǐng)導(dǎo)審批處都提示“等待批假“的提示信息。
  • 班主任批假測(cè)試:班主任進(jìn)入系統(tǒng)后,測(cè)試審批學(xué)生請(qǐng)假。測(cè)試結(jié)果:小于四天的請(qǐng)假,班主任若同意了請(qǐng)假,則學(xué)生記錄成功記錄中出現(xiàn)了請(qǐng)假成功的記錄。班主任同意的請(qǐng)假中同時(shí)也出現(xiàn)了此條記錄。若不同意請(qǐng)假,則提示此學(xué)生請(qǐng)假失敗。大于四天的請(qǐng)假,班主任若同意了請(qǐng)假,則出現(xiàn)等待院系審批的提示信息。
  • 院系批假測(cè)試:院系領(lǐng)導(dǎo)進(jìn)入系統(tǒng)后,大于四天的記錄,且班主任同意請(qǐng)假的記錄出現(xiàn)在了等待審批的請(qǐng)假記錄中。測(cè)試結(jié)果:同意請(qǐng)假,則學(xué)生、班主任、院系領(lǐng)導(dǎo)用戶中同時(shí)出現(xiàn)請(qǐng)假成功信息,不同意請(qǐng)假,則學(xué)生、班主任、院系領(lǐng)導(dǎo)同時(shí)出現(xiàn)請(qǐng)假失敗的信息。
  • 二、修改密碼測(cè)試

  • 空值測(cè)試:在不輸入原始密碼、新密碼、確認(rèn)密碼或部分為空的情況下,直接點(diǎn)擊修改密碼。測(cè)試結(jié)果:提示請(qǐng)輸入原始密碼的錯(cuò)誤信息。
  • 錯(cuò)誤原始密碼測(cè)試:輸入錯(cuò)誤原始密碼,新密碼、確認(rèn)密碼一致的測(cè)試。測(cè)試結(jié)果:提示原始密碼不正確的錯(cuò)誤信息。
  • 確認(rèn)密碼不正確的測(cè)試:輸入正確的原始密碼,而確認(rèn)密碼不正確的測(cè)試。測(cè)試結(jié)果:提示確認(rèn)密碼不正確的錯(cuò)誤信息。
  • 7.3.4任課老師用戶測(cè)試

    一、考勤管理測(cè)試

  • 正確提示登記測(cè)試:進(jìn)入指定的登記頁(yè)面,修改系統(tǒng)日期看是否能根據(jù)系統(tǒng)日間的變化,顯示出上過課,但學(xué)沒登記的提示信息。測(cè)試結(jié)果:若當(dāng)前日期為2005-05-30,則本學(xué)期在2005-05-30前的所有不沒登記的考勤信息自動(dòng)列出來(lái),而且能自動(dòng)識(shí)別課表安排的單/雙周。更換時(shí)間,都能得到正確的結(jié)果。
  • 考勤登記測(cè)試:進(jìn)入指定頁(yè)面后,一個(gè)學(xué)生在當(dāng)天上課時(shí)已經(jīng)請(qǐng)假成功了,任課老師提交數(shù)據(jù)時(shí)選擇此學(xué)生曠課。測(cè)試結(jié)果:在考勤統(tǒng)計(jì)信息和詳細(xì)信息中,出現(xiàn)了此學(xué)生請(qǐng)假的出勤信息。
  • 7.3.5班主任用戶測(cè)試

    1.班級(jí)信息測(cè)試

    測(cè)試一個(gè)班主任是否可以同時(shí)帶多個(gè)班級(jí)、每個(gè)學(xué)期帶不同的班。測(cè)試結(jié)果:班主任能同時(shí)帶多個(gè)班級(jí),每學(xué)期可帶不同的班級(jí)。

    2.考勤信息測(cè)試:

    測(cè)試班主任是否可以查看本班學(xué)生本學(xué)期考勤統(tǒng)計(jì)信息及詳細(xì)信息。測(cè)試結(jié)果:班主任能查看本班學(xué)生本學(xué)期考勤統(tǒng)計(jì)信息及詳細(xì)信息。

    7.3.6院系領(lǐng)導(dǎo)/學(xué)校領(lǐng)導(dǎo)用戶測(cè)試

    一、考勤信息測(cè)試

  • 空值查詢測(cè)試:在查詢學(xué)生考勤信息頁(yè)面中,不輸入查詢條件進(jìn)行查詢測(cè)試。測(cè)試結(jié)果:提示必須有一個(gè)查詢件的錯(cuò)誤信息。
  • 單條件下查詢測(cè)試:查詢條件在只有學(xué)號(hào)或姓名的情況下進(jìn)行查詢。測(cè)試結(jié)果:系統(tǒng)列出了所有相關(guān)記錄,如姓名中只有一個(gè)“王”字,那么全院/全校所有姓名中有“王”字的學(xué)生信息都全部列出來(lái),并都可以查看詳細(xì)考勤信息
  • ?

    總? 結(jié)

    通過幾個(gè)月的努力,高校學(xué)生考勤管理系統(tǒng)中的兩大功能模塊:請(qǐng)假系統(tǒng)和考勤系統(tǒng)在指導(dǎo)老師的全心指導(dǎo)下,在同學(xué)的積極配合與幫助下,基本功能順利完成。在數(shù)據(jù)庫(kù)的開發(fā)方面,我學(xué)到了不少關(guān)于JSP和SQL Server 2000的知識(shí)。開發(fā)時(shí)遇到了許多的困難,但是通過自己的努力,還有老師同學(xué)們的幫助,最終還是迎刃而解了。

    這次畢業(yè)設(shè)計(jì)完全是按照軟件工程學(xué)的方法來(lái)進(jìn)行設(shè)計(jì)和開發(fā)的。在開發(fā)過程中,認(rèn)真調(diào)查分析了用戶的需求,及時(shí)準(zhǔn)備了詳細(xì)的文檔資料,這讓我在開發(fā)過程中少走了許多彎路。本次設(shè)計(jì)開發(fā)的系統(tǒng)較為龐大,涉及的用戶較多,數(shù)據(jù)庫(kù)設(shè)計(jì)比較復(fù)雜,使我深刻地體會(huì)到軟件開發(fā)是一項(xiàng)集體項(xiàng)目,單靠一個(gè)人就想解決所有的問題是不太實(shí)際的。在本次畢業(yè)設(shè)計(jì)中,我和同學(xué)共同實(shí)現(xiàn)了高校學(xué)生考勤管理系統(tǒng)的全部功能,很好的鍛煉了我的團(tuán)隊(duì)協(xié)作意識(shí),這對(duì)我以后的學(xué)習(xí)、工作有很大的幫助。

    同時(shí),在這次設(shè)計(jì)中,我也發(fā)現(xiàn)了自己的很多不足。首先,對(duì)JSP的掌握還不是很全面,對(duì)于數(shù)據(jù)庫(kù)管理系統(tǒng)的操作運(yùn)用也不夠熟練,以至于在系統(tǒng)開發(fā)過程中經(jīng)常碰到一些疑難問題不能快速的解決。其次,就是在準(zhǔn)備系統(tǒng)設(shè)計(jì)文檔時(shí),沒有反復(fù)推敲、驗(yàn)證,以至于在開發(fā)過程中出現(xiàn)幾次由于數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,修改數(shù)據(jù)庫(kù),而幾乎修改所有程序代碼的情況。再者,是對(duì)整個(gè)軟件開發(fā)的把握能力有待于進(jìn)一步提高,以及對(duì)網(wǎng)頁(yè)設(shè)計(jì)的諸多方面知識(shí)也待進(jìn)一步學(xué)習(xí),這些都是我今后應(yīng)該注意和提高的。

    ?

    ?

    參考文獻(xiàn)

    參考的資料有以下:

    [1] 肖金秀 JSP程序設(shè)計(jì)教程 北京:冶金工業(yè)出版社

    [2] 孫曉龍 JSP動(dòng)態(tài)網(wǎng)站技術(shù)入門與提高 北京:人民郵電出版社

    [3] 楊學(xué)瑜 JSP入門與提高 北京:清華大學(xué)出版社

    [4] 魯曉東 JSP軟件工程案例精解 北京:電子工業(yè)出版社

    [5] 印旻 Java 語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì) 北京:清華大學(xué)出版社

    [6] 皮德常 Java 2簡(jiǎn)明教程 北京:清華大學(xué)出版社

    [7] 薩師煊 王珊編著,《數(shù)據(jù)庫(kù)系統(tǒng)概論》,高等教育出版社

    [8] 張海藩 編著 《軟件工程導(dǎo)論》,清華大學(xué)出版社

    [9] 賽奎春 JSP工程應(yīng)用與項(xiàng)目實(shí)踐 北京:機(jī)械工業(yè)出版社

    [10] 汪孝宜 JSP數(shù)據(jù)庫(kù)開發(fā)實(shí)例精粹 北京:電子工業(yè)出版社

    [11] 魏茂軍 JSP案例開發(fā) 北京:中國(guó)水利水電出版社

    [12] 黃明 JSP信息系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例 北京:機(jī)械工業(yè)出版社

    [13] 屈輝立 JSP網(wǎng)站編程教程 北京:北京希望電子出版社

    [14] 孫衛(wèi)琴 Tomcat與Java Web開發(fā)技術(shù)詳解 北京:電子工業(yè)出版社

    [15] 張桂元 Struts開發(fā)入門與項(xiàng)日實(shí)踐 北京:人民郵電出版社

    參考網(wǎng)站:

    一、http://java.sun.com???? java官方網(wǎng)站

    二、http://www.apache.org? Tomcat官方網(wǎng)站

    ?

    致? 謝

    在這段日子里,指導(dǎo)教師黃華,以及身邊的同學(xué)給了我很多的幫助及耐心的教導(dǎo)。在此,對(duì)所有給我支持與幫助的老師與同學(xué)衷心的道一聲“謝謝”!如果沒有你們的幫助,我的課題肯定不能如此順利迅速的完成。

    ?

    附? 錄

    附錄一:文獻(xiàn)資料

    原文

    J2EE WEB應(yīng)用架構(gòu)分析

    1、架構(gòu)概述

    J2EE體系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技術(shù)。這些技術(shù)的出現(xiàn)給電子商務(wù)時(shí)代的WEB應(yīng)用程序的開發(fā)提供了一個(gè)非常有競(jìng)爭(zhēng)力的選擇。怎樣把這些技術(shù)組合起來(lái)形成一個(gè)適應(yīng)項(xiàng)目需要的穩(wěn)定架構(gòu)是項(xiàng)目開發(fā)過程中一個(gè)非常重要的步驟。完成這個(gè)步驟可以形成一個(gè)主要里程碑基線。形成這個(gè)基線有很多好處:

    各種因數(shù)初步確定:為了形成架構(gòu)基線,架構(gòu)設(shè)計(jì)師要對(duì)平臺(tái)(體系)中的技術(shù)進(jìn)行篩選,各種利弊的權(quán)衡。往往架構(gòu)設(shè)計(jì)師在這個(gè)過程中要閱讀大量的技術(shù)資料,聽取項(xiàng)目組成員的建議,考慮領(lǐng)域?qū)<业男枨?#xff0c;考慮贊助商成本(包括開發(fā)成本和運(yùn)行維護(hù)成本)限額。一旦架構(gòu)設(shè)計(jì)經(jīng)過評(píng)審,這些因數(shù)初步地就有了在整個(gè)項(xiàng)目過程中的對(duì)項(xiàng)目起多大作用的定位。

    定向技術(shù)培訓(xùn):一旦架構(gòu)師設(shè)計(jì)的架構(gòu)得到了批準(zhǔn)形成了基線,項(xiàng)目開發(fā)和運(yùn)行所采用的技術(shù)基本確定下來(lái)了。眾多的項(xiàng)目經(jīng)理都會(huì)對(duì)預(yù)備項(xiàng)目組成員的技術(shù)功底感到擔(dān)心;他們需要培訓(xùn)部門提供培訓(xùn),但就架構(gòu)師面對(duì)的技術(shù)海洋,項(xiàng)目經(jīng)理根本就提不出明確的技術(shù)培訓(xùn)需求。怎不能夠?qū)w系中所有技術(shù)都進(jìn)行培訓(xùn)吧!有了架構(gòu)里程碑基線,項(xiàng)目經(jīng)理能確定這個(gè)項(xiàng)目開發(fā)會(huì)采用什么技術(shù),這是提出培訓(xùn)需求應(yīng)該是最精確的。不過在實(shí)際項(xiàng)目開發(fā)中,技術(shù)培訓(xùn)可以在基線確定之前與架構(gòu)設(shè)計(jì)并發(fā)進(jìn)行。

    角色分工:有了一個(gè)好的架構(gòu)藍(lán)圖,我們就能準(zhǔn)確劃分工作。如網(wǎng)頁(yè)設(shè)計(jì),JSP 標(biāo)簽處理類設(shè)計(jì),SERVLET 設(shè)計(jì),session bean設(shè)計(jì),還有各種實(shí)現(xiàn)。這些任務(wù)在架構(gòu)藍(lán)圖上都可以清晰地標(biāo)出位置,使得項(xiàng)目組成員能很好地定位自己的任務(wù)。一個(gè)好的架構(gòu)藍(lán)圖同時(shí)也能規(guī)范化任務(wù),能很好地把任務(wù)劃分為幾類,在同一類中的任務(wù)的工作量和性質(zhì)相同或相似。這樣工作量估計(jì)起來(lái)有一個(gè)非常好的基礎(chǔ)。

    運(yùn)行維護(hù):前面說(shuō)過各個(gè)任務(wù)在架構(gòu)圖上都有比較好的定位。任何人能借助它很快地熟悉整個(gè)項(xiàng)目的運(yùn)行情況,錯(cuò)誤出現(xiàn)時(shí)能比較快速地定位錯(cuò)誤點(diǎn)。另外,有了清晰的架構(gòu)圖,項(xiàng)目版本管理也有很好的版本樹軀干。

    擴(kuò)展性:架構(gòu)猶如一顆參天大樹的軀干,只要軀干根系牢,樹干粗,長(zhǎng)一些旁支,加一些樹葉輕而易舉無(wú)疑。同樣,有一個(gè)穩(wěn)定的經(jīng)得起考驗(yàn)的架構(gòu),增加一兩個(gè)業(yè)務(wù)組件是非常快速和容易的。

    大家都知道這些好處,一心想形成一個(gè)這樣的J2EE應(yīng)用程序架構(gòu)(就像在windows平臺(tái)中的MFC)。在這個(gè)路程中經(jīng)歷了兩個(gè)大的階段:

    模型1

    模型1其實(shí)不是一個(gè)什么穩(wěn)定架構(gòu),甚至談不上形成了架構(gòu)。模型1的基礎(chǔ)是JSP文件。它從HTTP的請(qǐng)求中提取參數(shù),調(diào)用相應(yīng)的業(yè)務(wù)邏輯,處理HTTP會(huì)話,最后生成HTTP文檔。一系列這樣的JSP文件形成一個(gè)完整的模型1應(yīng)用,當(dāng)然可能會(huì)有其他輔助類或文件。早期的ASP 和 PHP 技術(shù)就屬于這個(gè)情況。

    總的看來(lái),這個(gè)模型的好處是簡(jiǎn)單,但是它把業(yè)務(wù)邏輯和表現(xiàn)混在一塊,對(duì)大應(yīng)用來(lái)說(shuō),這個(gè)缺點(diǎn)是令人容忍不了的。

    模型2

    在經(jīng)過一番實(shí)踐,并廣泛借鑒和總結(jié)經(jīng)驗(yàn)教訓(xùn)之后,J2EE應(yīng)用程序終于迎來(lái)了MVC(模型-視圖-控制)模式。MVC模式并不是J2EE行業(yè)人士標(biāo)新立異的,所以前面我談到廣發(fā)借鑒。MVC的核心就是做到三層甚至多層的松散耦合。這對(duì)基于組件的,所覆蓋的技術(shù)不斷膨脹的J2EE體系來(lái)說(shuō)真是福音和救星。

    它在瀏覽器(本文對(duì)客戶代理都稱瀏覽器)和JSP或SERVLET之間插入一個(gè)控制組件。這個(gè)控制組件集中了處理瀏覽器發(fā)過來(lái)的HTTP請(qǐng)求的分發(fā)邏輯,也就是說(shuō),它會(huì)根據(jù)HTTP請(qǐng)求的URL,輸入?yún)?shù),和目前應(yīng)用的內(nèi)部狀態(tài),把請(qǐng)求分發(fā)給相應(yīng)的WEB 層的JSP 或SERVLET。

    另外它也負(fù)責(zé)選擇下一個(gè)視圖(在J2EE中,JSP,SERVLET會(huì)生成回給瀏覽器的html從而形成視圖)。集中的控制組件也有利于安全驗(yàn)證,日志紀(jì)錄,有時(shí)也封裝請(qǐng)求數(shù)據(jù)給下面的WEB tier層。這一套邏輯的實(shí)現(xiàn)形成了一個(gè)像MFC的應(yīng)用框架。

    2、候選方案

    目前,實(shí)現(xiàn)模型2的框架也在不斷的涌現(xiàn),下面列出比較有名的框架。

    2.1、Apache Struts

    Struts是一個(gè)免費(fèi)的開源的WEB層的應(yīng)用框架,apache軟件基金致力于struts的開發(fā)。Struts具是高可配置的性,和有一個(gè)不斷增長(zhǎng)的特性列表。一個(gè)前端控制組件,一系列動(dòng)作類,動(dòng)作映射,處理XML的實(shí)用工具類,服務(wù)器端java bean 的自動(dòng)填充,支持驗(yàn)證的WEB 表單,國(guó)際化支持,生成HTML,實(shí)現(xiàn)表現(xiàn)邏輯和模版組成了struts的靈魂。

    模型:模型以一個(gè)或幾個(gè)java bean的形式存在。這些bean分為三種:Form beans(表單Beans),它保存了HTTP post請(qǐng)求傳來(lái)的數(shù)據(jù),在Struts里,所有的Form beans都是 ActionFrom 類的子類。業(yè)務(wù)邏輯beans,專門用來(lái)處理業(yè)務(wù)邏輯。系統(tǒng)狀態(tài)beans,它保存了跨越多個(gè)HTTP 請(qǐng)求的單個(gè)客戶的會(huì)話信息,還有系統(tǒng)狀態(tài)。

    視圖:控制組件續(xù)傳HTTP請(qǐng)求給實(shí)現(xiàn)了視圖的JSP文件。JSP能訪問beans 并生成結(jié)果文檔反饋到客戶。Struts提供JSP 標(biāo)簽庫(kù): Html,Bean,Logic,Template等來(lái)達(dá)到這個(gè)目的,并有利于分開表現(xiàn)邏輯和程序邏輯。

    2.2、JATO

    JATO應(yīng)用程序框架是iPlanet 應(yīng)用程序框架的舊名。它是一個(gè)成熟的、強(qiáng)大的,基于J2EE標(biāo)準(zhǔn)的面向于開發(fā)WEB應(yīng)用程序的應(yīng)用框架。結(jié)合了顯示字段、應(yīng)用程序事件、組件層次和以頁(yè)面為中心的開發(fā)方法、以及MVC和服務(wù)到工作者service-to-workers的設(shè)計(jì)模式等概念。

    JATO可適用于中、大、超大規(guī)模的WEB應(yīng)用。但是它也不是一個(gè)企業(yè)層的應(yīng)用框架,也就是說(shuō)它不會(huì)直接提供創(chuàng)建EJB, WEB services等企業(yè)層組件的方法,但用它可以構(gòu)造出訪問企業(yè)層組件的客戶應(yīng)用。

    這個(gè)框架功能主要有三部分組成:iPlanet應(yīng)用框架核心;iPlanet應(yīng)用框架組件;iPlanet應(yīng)用框架擴(kuò)展。

    譯文

    Analysis of J2EE WEB application? construction

    1、the? outline of the construction

    J2EE system includes many technologies such as ?java server pages (JSP), java SERVLET, enterprise bean, WEB service and so on. These technologies appeared have provided an extremely competitive choice to the development of WEB application of electronic commerce . How these technologies are combined to form the stable construction which an adaptabl project needs is an importable step in the project development. Completing this step may form a main milestone baseline. It is a advantage to form this baseline.

    Many factors determine it initially.In order to form the construction baseline, the construction designer must choose the center technology in the platform and measure each kind of advantages. Often the construction designer has to check the massive technical datas in this process, listen to the suggestion of members in the component project, consider the domain expert's demand and consider the sponsor’s cost quota (including development cost and movement maintenance cost). Once the construction designer appraises, these factors will initially be localizated to the project playing the major role in the entire project process.

    Directional technology training: Once the construction of the construction designer is approved to form the baseline, the technology which the project development and the movement use ?has basically determined. Multitudinous project managers may worry about basic skills of? the component members’ prepared in the project.They need to be trained in ?the department? providing training.But to the technical sea which the construction designer faces on, project manager cannot propose the explicit technical training demand. It is impossible to carry on training to all technologies in the system ! Having the construction milestone baseline, project manager is able to determine what this project development could use any technology.At the time proposing the training demand should be most precise. But in the actual project development, technical training may be carried on before the baseline determined concurrently.

    Division of labor: Having ?a good construction blueprint, we can accurately divide the work such as? homepage design, JSP label processing class design, SERVLET design, session bean design and? many kinds of realizations. These all duties may be located ?clearly? on the construction blueprint, enabling the project component member to locate own duty well. At the same time a good construction blueprint can also standardize the duty,? divide well the duty into several kinds in the same kind of which work load and the nature is identical or similar.Such work load estimated has an extremely good foundation.

    Movement maintenance: each duty has? quite good localization in a composition. Anyone can is familiar with the movement in the entire project with the help of it quickly and locate? fast where wrong is when the mistake appears. Moreover, having ?the clear frame composition, the project edition management also has? good edition tree torso.

    Extension: The construction? likes the torso of a towering big tree.so long as torso root system jail, bough thick, the long some collateral branches, add some leaves to be easy without doubt. Similarly, having stable construction standing ?the test, it is extremely fast and easy to increase 12 service modules.

    Everybody knows these advantage and wants to? form a such J2EE application construction as it ?(like MFC in windows platform). It has experienced two big stages in this process:

    model 1

    Actually model 1 is not? stable? construction, even? far from the construction formed. The foundation of model 1 is? JSP document. It withdraws the parameter from the HTTP request, transfers the corresponding service logic, processes the HTTP conversation and finally produces the HTTP documents. A series of such JSP document forms a complete model 1 application, certainly possibly having other assistances kind or the document. The earlier ASP and the PHP technology belongs to this situation.

    To the summary, the advantage of this model is simple, but it mixes the service logic with the performance in the same place. To the big application, this shortcoming is able to be tolerated.

    model 2

    Through practice, after summarying lesson, the J2EE application has finally welcomed the MVC (model - view pneumatic-control) pattern. The MVC pattern is not something new and different which the J2EE professioner proposes.Therefore in the front I talked about profiting widely. The core of the MVC is to achieve three or even multi-layered loose couplings. To the J2EE system which has ?to based on the module and which covered the technology inflates unceasingly,it really is the gospel and the liberator.

    It inserts a control module between in the browser ( in this article all the customer proxys are called browser) and JSP or SERVLET. This control module concentrates HTTP request distribution logic which is sent by the browser processed.In other words, it could ?input parameter according to HTTP request URL,with the present application internal condition, giving the request to distribute the JSP or SERVLET of the corresponding WEB level.

    Moreover, it also is responsible for? choicing next view (in J2EE, JSP and SERVLET can produce html for browser to form the view). The centralism control module is also advantageous to the safety certification, the diary record and sometimes also seals the request data to give the following WEB tier level. This set of logical realization forms one application frame like MFC.

    2、candidate plan

    At present, the realization frames of the model 2 also emerge unceasingly. list some famous frames as follows.

    2.1、Apache Struts

    Struts is a free and open application frame of the source WEB level.And the apache software fund devotes to the development of the struts. Struts has the nature which is highly disposed and ?has the characteristic tabulation which grows unceasingly. ?The front controlling? module, a series of movements class, the movement mapping, the practical tool class processing XML, the automatic packing of the server carries java bean, the WEB form supporting confirmation , the international support, the produced HTML , realization performance logic and the pattern plate has composed the soul of

    the struts.

    Model: Model exists as one or? several java beans. These beans are divided into three kinds. Form beans (form Beans), it has preserved the data which the HTTP post requests to transmit. In Struts, all of the Form beans are? the subclass of the ActionFrom class. Service logic beans is to be used to process the service logic specially. System mode beans preserve the conversation information of single customer who surmountes many HTTP requests and ?the system mode.

    View: Continue to pass the HTTP by the Controlled module request?? realizes the JSP document of view. JSP can visit beans and produce the result documents to feed back to the customer. Struts provides the JSP label storehouse to achieve this goal such as Html, Bean, Logic, Template and so on. And ?it is advantageous in separating the performance logic and procedure logic.

    2.2、JATO

    The JATO application frame is ?old name of the iPlanet application frame. It is one mature, formidable application frame which faces to? develope WEB application based on the J2EE standard. It unified the demonstration field, the application event, the module level ,the methods of exploitation taking the page as the center, as well as MVC and designing pattern with service-to-workers concepts and so on.

    JATO is suitable ?for ?big, ultra large-scale WEB application. But it is not application frame of the enterprise level.In other words, it cannot provide directly the methods of Enterprise level module such as founding EJB and WEB services. But it may struct the customer application which can visit the enterprise level module.

    The function of this frame is mainly composed of three parts:the core of iPlanet application frame; the module of iPlanet application frame; the expansion of iPlanet application frame.

    附錄二、系統(tǒng)部署及使用手冊(cè)

    開發(fā)工具的安裝與配置

    本系統(tǒng)是跨平臺(tái)的,可以在Windows、Linux、Unix等所有操作系統(tǒng)下,不需要做任何修改就能運(yùn)行,由于Windows平臺(tái)運(yùn)用最為廣泛,在這里只介紹系統(tǒng)在Windows平臺(tái)下的部署,別的平臺(tái)部署自己查閱相關(guān)資料。本系統(tǒng)采用B/S結(jié)構(gòu),因此客戶端幾乎不需要做任何安裝,以下主要介紹服務(wù)器端的部署。

    • JDK的安裝及配置

    1)簡(jiǎn)介

       JDK(Java Development Kit )是一切java應(yīng)用程序的基礎(chǔ),可以說(shuō),所有的java應(yīng)用程序是構(gòu)建在這個(gè)之上的。它是一組API,也可以說(shuō)是一些java Class。目前已經(jīng)正式發(fā)布的最新版本是JDK1.5。目前大多數(shù)都是在MS系統(tǒng)下,所以,在這里以在win2000下安裝為例進(jìn)行介紹。

    2)下載與安裝

       下載地址為JAVA官方站點(diǎn):http://java.sun.com 。 Windows下,直接運(yùn)行.exe文件,安裝到一個(gè)目錄,我這里用C:\ jdk1.5.0_06為例子。

    3)配置

    桌面上選擇“我的電腦”(右鍵) 選擇“高級(jí)”---> “環(huán)境變量”-->“用戶變量”-->“新建”在變量名中輸入:CLASSPATH,變量值中輸入:“.;C:\ jdk1.5.0_06\LIB\dt.JAR;C:\ jdk1.5.0_06\LIB\TOOLS.JAR;”然后確定;注意:“.;”不能少,代表當(dāng)前路徑。

    桌面上選擇“我的電腦”(右鍵) 選擇“高級(jí)”---> “環(huán)境變量”--->“系統(tǒng)變量”,選擇path選項(xiàng),點(diǎn)“編輯” 在變量值中增加“C:\jdk1.5.0_06\bin;”。

    配置完了,要重新啟動(dòng)計(jì)算機(jī)后,環(huán)境變量才能有效。

    • Tomcat的安裝及配置

    1)簡(jiǎn)介

    自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎(chǔ)上開發(fā)一個(gè)可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時(shí)也支持Servlet。Tomcat是完全免費(fèi)的軟件,任何人都可以從互聯(lián)網(wǎng)上自由地下載。目前最新版本是 tomcat-5.5.16。

    2)下載與安裝

    下載地址是官方網(wǎng)站http://jakarta.apache.org 。用戶可選擇下載原代碼或已經(jīng)編譯好的壓縮包。

    在安裝Tomcat前,你的Win2000下應(yīng)該已經(jīng)安裝了JDK,并且你應(yīng)該已經(jīng)能大致了解JDK、Tomcat在系統(tǒng)中的地位和相互關(guān)系。如果你還沒有安裝好JDK,你可以參閱JDK的安裝及配置。Tomcat不需要安裝,下載解壓后就可直接使用,且可在各種平臺(tái)下使用。

    3)配置

    在桌面上選擇“我的電腦”,右鍵點(diǎn)出菜單,選擇屬性,彈出對(duì)話框“系統(tǒng)特性”,選擇“高級(jí)”選項(xiàng)頁(yè),然后點(diǎn)“環(huán)境變量”,就可以編輯系統(tǒng)的環(huán)境變量。

    在用戶變量中選擇“新建”選項(xiàng),變量名為JAVA_HOME,值為:“C:\jdk1.5.0_06”,同樣新建另外一個(gè)變量名為:TOMCAT_HOME,變量值為:“C:\Tomcat 5.5”。

    接下來(lái)就可以執(zhí)行startup.bat。測(cè)試一下Tomcat是否運(yùn)行正常。當(dāng)Tomcat能正常啟動(dòng)后,打開瀏覽器,在瀏覽器中輸入“http://localhost:8080”,若能顯示Tomcat的歡迎首頁(yè),Tomcat已經(jīng)成功安裝好了。

    三、SQL Server 2000的安裝及配置

    1)簡(jiǎn)介

    SQL Server 2000是Microsoft 公司開發(fā)出來(lái)的大型關(guān)系數(shù)據(jù)系統(tǒng),其可靠性、高全性等卓越的性能得到用戶一致的好評(píng)。

    2)安裝

    將安裝光盤放入光驅(qū)就可根據(jù)提示自動(dòng)安裝,這里不再重述。

    3)配置

    安裝好SQL Server 2000后,幾乎不需要做什么配置,但有一個(gè)非常要注意的地方是,檢查一下默認(rèn)的端口1433是否打開了,若沒打開,應(yīng)用程序?qū)o(wú)法連接到數(shù)據(jù)庫(kù)。檢驗(yàn)方法:支命令提示下運(yùn)行:netstat –an 檢查端口是否打開。若沒打開,就要安裝SP3以上的補(bǔ)丁。

    系統(tǒng)部署

    高校學(xué)生考勤管理系統(tǒng)用JSP+SQL Server 2000設(shè)計(jì),數(shù)據(jù)庫(kù)連接使用當(dāng)前流行的連接池來(lái)實(shí)現(xiàn),在部署系統(tǒng)時(shí),請(qǐng)按以下步驟來(lái)完成。注意:前提是您以經(jīng)正確安裝好了JDK、Tomcat、SQL Server 2000,若還沒安裝好,請(qǐng)參考附錄一。

    • 將打包文件kaoqin.war 放到Tomact安裝目錄下的webapps子目錄中,在您重啟Tomcat的時(shí)候,Tomcat會(huì)自動(dòng)解壓。
    • 在SQL Server 2000中新名kaoqin的數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)備份kaoqin.bak還原到kaoqin數(shù)據(jù)庫(kù),并將sa用戶的密碼設(shè)為:8482134。
    • 將jtds-1.2.jar文件考%Tomcat_home%\common\lib目錄下。
    • 將server.xml文件覆蓋%Tomcat_home%\conf目錄下的server.xml文件。
    • 將kaoqin.xml文件拷貝到%Tomcat_home%\conf\Catalina\localhost目錄下。
    • 重新啟動(dòng)Tomact,在瀏覽器中輸入http://localhost:8080/kaoqin

    用戶操作手冊(cè)

    一、學(xué)生操作手冊(cè)

    1.在線請(qǐng)假

    學(xué)生“首頁(yè)”——“請(qǐng)假系統(tǒng)”——“在線請(qǐng)假” 進(jìn)入請(qǐng)假申請(qǐng)操作頁(yè)面,填寫好請(qǐng)假開始時(shí)間、結(jié)束時(shí)間、請(qǐng)假原因后,點(diǎn)擊“提交”按鈕就完成了請(qǐng)假申請(qǐng)。隨后您可以在“等待審批的請(qǐng)假”中看到請(qǐng)假審批的進(jìn)展情況,同時(shí)在“成功的請(qǐng)假記錄”和“失敗的請(qǐng)假記錄”中看到請(qǐng)假歷史記錄。注意:只請(qǐng)假一天的話,開始時(shí)間與結(jié)束時(shí)間填寫同一天,依此類推。

    2.查看考勤信息

    學(xué)生“首頁(yè)”——“考勤信息”進(jìn)入當(dāng)前學(xué)年本人所有課程的考勤統(tǒng)計(jì)信息,同時(shí)可以查看有關(guān)課程的詳細(xì)信息,學(xué)生在“歷年考勤信息”中可以查看歷年的考勤信息。

    二、班主任操作手冊(cè)

    1.審批學(xué)生請(qǐng)假

    班主任“首頁(yè)”——“請(qǐng)假系統(tǒng)”——“審批請(qǐng)假” 若有本班學(xué)生請(qǐng)假,則列出了相關(guān)鏈接,點(diǎn)擊相關(guān)“審批”鏈接,進(jìn)入審批學(xué)生請(qǐng)假頁(yè)面,此頁(yè)面列出了有關(guān)學(xué)生請(qǐng)假的詳細(xì)信息,班主任認(rèn)真審批后,選擇“同意”或“不同意”來(lái)審批學(xué)生請(qǐng)假。

    2.查看考勤信息

    班主任“首頁(yè)”——“考勤信息”頁(yè)面列出所帶班級(jí)的信息,點(diǎn)擊相關(guān)“查看”鏈接就可相關(guān)班級(jí)所有課程學(xué)生考勤的統(tǒng)計(jì)信息及詳細(xì)信息。

    三、任課老師操作手冊(cè)

    1.發(fā)布學(xué)生上課出勤信息

    任課老師“首頁(yè)”——“考勤管理”頁(yè)面列出了本學(xué)年所教班級(jí)以及所教課程的相關(guān)信息,點(diǎn)擊相關(guān)“管理“鏈接”就進(jìn)入相關(guān)的考勤管理頁(yè)面,頁(yè)面自動(dòng)提示到當(dāng)前日期為止,還沒有發(fā)布的出勤信息的鏈接。進(jìn)入相關(guān)鏈接就可以發(fā)布學(xué)生上課出勤信息。

    2.查看/修改學(xué)生出勤信息

    任課老師:“首頁(yè)”——“考勤信息”頁(yè)面中列出了所教班級(jí)所教課程的基本相關(guān)信息,點(diǎn)擊相關(guān)“查看”鏈接就可看到有關(guān)的學(xué)生出勤統(tǒng)計(jì)信息及詳細(xì)信息,在個(gè)人的出勤詳細(xì)中,可以適當(dāng)?shù)男薷?#xff0c;如刪除某條學(xué)生出勤記錄。

    四、院系領(lǐng)導(dǎo)操作手冊(cè)

    1.審批學(xué)生請(qǐng)假

    院系領(lǐng)導(dǎo)“首頁(yè)”——“請(qǐng)假系統(tǒng)”——“審批請(qǐng)假” 若有本班學(xué)生請(qǐng)假,則列出了相關(guān)鏈接,點(diǎn)擊相關(guān)“審批”鏈接,進(jìn)入審批學(xué)生請(qǐng)假頁(yè)面,此頁(yè)面列出了有關(guān)學(xué)生請(qǐng)假的詳細(xì)信息,班主任認(rèn)真審批后,選擇“同意”或“不同意”來(lái)審批學(xué)生請(qǐng)假。

    2.查看班級(jí)、學(xué)生上課出勤信息

    院系領(lǐng)導(dǎo)“首頁(yè)”——“考勤統(tǒng)計(jì)”頁(yè)面,在“全院考勤統(tǒng)計(jì)”頁(yè)面中可以分班級(jí)查看學(xué)生上課出勤的統(tǒng)計(jì)信息及詳細(xì)信息。在“查詢”頁(yè)面中,可以根據(jù)“學(xué)號(hào)”或“姓名”兩者或兩都之一對(duì)學(xué)生上課出勤信息進(jìn)行詳細(xì)查詢。

    3.查看本院系相關(guān)信息

    在“院系信息“、”班主任信息“、”教師信息“、”班主任安排“中可以查看本院系的一些相關(guān)信息。

    五、學(xué)校領(lǐng)導(dǎo)操作手冊(cè)

    1.查看全校班級(jí)、學(xué)生上課出勤信息

    學(xué)校領(lǐng)導(dǎo)“首頁(yè)”——“考勤統(tǒng)計(jì)”頁(yè)面,在“全校考勤統(tǒng)計(jì)”頁(yè)面中可以分班級(jí)查看學(xué)生上課出勤的統(tǒng)計(jì)信息及詳細(xì)信息。在“查詢”頁(yè)面中,可以根據(jù)“學(xué)號(hào)”或“姓名”兩者或兩都之一對(duì)學(xué)生上課出勤信息進(jìn)行詳細(xì)查詢。

    2.查看本校相關(guān)信息

    在“學(xué)校信息”、“院系信息“、”班主任信息“、”教師信息“、”班主任安排“、“全校課表”中可以查看本校的一些相關(guān)信息。

    總結(jié)

    以上是生活随笔為你收集整理的基于jsp(java)高校学生考勤管理系统设计与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。