基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)說(shuō)明_第1頁(yè)
基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)說(shuō)明_第2頁(yè)
基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)說(shuō)明_第3頁(yè)
基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)說(shuō)明_第4頁(yè)
基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

./《Java程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告書(shū)課題名稱基于Java的教師檔案管理系統(tǒng)的設(shè)計(jì)姓名學(xué)號(hào)學(xué)院專業(yè)指導(dǎo)教師2016年6月28日一、設(shè)計(jì)任務(wù)及要求:1.采用B/S模式進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是后臺(tái)與前臺(tái)處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁(yè)方式的用戶。2.采用面向?qū)ο蟮拈_(kāi)發(fā)與設(shè)計(jì)理念。運(yùn)用面向?qū)ο蠹夹g(shù)的前提是對(duì)整體系統(tǒng)的高度和準(zhǔn)確抽象,通過(guò)它可以保證系統(tǒng)良好的框架,進(jìn)而帶來(lái)產(chǎn)品較強(qiáng)的穩(wěn)定性和運(yùn)行效率。3.采用模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡(jiǎn)化設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。4.簡(jiǎn)單方便的系統(tǒng)界面。設(shè)計(jì)簡(jiǎn)單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。5.速度優(yōu)先原則。由于此工具最重要的評(píng)測(cè)標(biāo)準(zhǔn)就是速度,因此在設(shè)計(jì)過(guò)程中,具體過(guò)程盡量做到資源占用少,速度快。6.設(shè)計(jì)既要突出重點(diǎn),又要細(xì)致周到。要符合設(shè)計(jì)需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。指導(dǎo)教師簽名:年月日二、指導(dǎo)教師評(píng)語(yǔ):指導(dǎo)教師簽名:年月日三、成績(jī)驗(yàn)收蓋章年月日基于Java的教師檔案管理系統(tǒng)系統(tǒng)設(shè)計(jì)譚維雋1設(shè)計(jì)目的長(zhǎng)久以來(lái),教職工的管理工作大多數(shù)都采用的是傳統(tǒng)的手工方式來(lái)記錄相關(guān)信息,這種管理方式存在很多缺點(diǎn),比如說(shuō),教職工信息、工資信息的錄入,查詢,更新,分析都要完全依賴管理人員的手工記錄和人工分析,人工記錄是相當(dāng)麻煩的。為滿足需求,決定采用各種編程語(yǔ)言JSP開(kāi)發(fā)了基于B/S架構(gòu)的教師檔案管理系統(tǒng),教師檔案管理系統(tǒng)是涉及信息科學(xué)、數(shù)據(jù)計(jì)算和計(jì)算機(jī)技術(shù)的復(fù)雜的人機(jī)交互系統(tǒng)。通過(guò)這些系統(tǒng),可以對(duì)教職工和管理進(jìn)行智能化管理,有效地記錄并查詢教職工的各項(xiàng)情況,為管理者提供了諸多方便。2設(shè)計(jì)的主要容和要求2.1數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)我們知道,數(shù)據(jù)庫(kù)概念模型獨(dú)立于任何特定的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫(kù)模型轉(zhuǎn)換應(yīng)遵循下列原則:*每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系*所有的主鍵必須定義非空〔NOTNULL*對(duì)于二元聯(lián)系應(yīng)按照一對(duì)多、弱對(duì)實(shí)、一對(duì)一、多對(duì)多等聯(lián)系來(lái)定義外鍵。根據(jù)E-R模型,教師檔案管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說(shuō)明?!?教師信息表主要是記錄了教師的基本信息。表結(jié)構(gòu)如表2.1所示。表2.1教師信息表<t_jaoshi>列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是IDgonghaovarchar50否否教師號(hào)xingmingvarchar50否否xingbievarchar50否否性別nianlingvarchar20否否年齡shengrivarchar20否否出生日期gongzuovarchar50否否工作時(shí)間zhuanyevarchar50否否專業(yè)zhaopianvarchar50否否照片beizhuvarchar50否否備注信息<2>工資信息表主要是記錄了教職工工資的基本信息。表結(jié)構(gòu)如表2.2所示。表2.2工資信息表<t_gongzi>列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是IDjsidvarchar50否否教師IDriqivarchar50否否工資月份gongzivarchar50否否工資數(shù)jiangjinvarchar20否否獎(jiǎng)金<3>管理員信息表主要記錄的管理員的賬號(hào)信息,包括用戶名和密碼,表結(jié)構(gòu)如表2.3所示。表2.3管理員信息表<t_admin>列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明userIdint4否是編號(hào)userNamevarchar50否否用戶名userPwvarchar50否否密碼2.2數(shù)據(jù)庫(kù)的連接原理采用JDBC連接數(shù)據(jù)庫(kù)的方式,只需在工程中導(dǎo)入對(duì)應(yīng)數(shù)據(jù)庫(kù)的jar包,就可以方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,在程序中,用Class.forName<>方法來(lái)加載驅(qū)動(dòng)程序,在用DriverManager的getConnection〔方法就可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接。程序采用的是DAO模式來(lái)操作數(shù)據(jù)庫(kù),DAO<DataAccessObject,數(shù)據(jù)訪問(wèn)對(duì)象>,是Java編程中的一種經(jīng)典模式,已被廣泛應(yīng)用,也是J2EE架構(gòu)中持久層框架的基礎(chǔ)知識(shí),基于分層次式的軟件架構(gòu)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)操作。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫(kù)的物理位置,已經(jīng)是何種數(shù)據(jù)庫(kù),只需使用封裝數(shù)據(jù)庫(kù)中表示記錄的數(shù)據(jù)對(duì)象即可。其思想如圖2.4所示:封裝使用封裝使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject創(chuàng)建/使用獲取/修改創(chuàng)建/使用獲取/修改DataTransferObjectDataTransferObject圖2.4DAO模式類圖圖中BussinessObject是業(yè)務(wù)對(duì)象,是使用DAO模式的客戶端;DataTransferObject數(shù)據(jù)傳輸對(duì)象,在應(yīng)用程序不同層次之間傳輸對(duì)象,在一個(gè)分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅?;DataObjectAcces數(shù)據(jù)輸入/輸出對(duì)象封裝了對(duì)數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源??梢詮膱D中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)羅即將,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫(kù)的操作,主要使用DBContent的對(duì)象來(lái)接一個(gè)數(shù)據(jù)庫(kù)〔建立一個(gè)類DBContent,代碼如代碼1。2.3系統(tǒng)功能實(shí)現(xiàn)在管理信息系統(tǒng)的生命周期中,僅過(guò)了需求分析、系統(tǒng)設(shè)計(jì)等階段之后,便開(kāi)始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開(kāi)發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,系統(tǒng)實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶。2.3.1系統(tǒng)登陸頁(yè)1.描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中。2.在登陸頁(yè)面輸入用戶名和密碼以,選擇登陸身份后,點(diǎn)擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會(huì)對(duì)用戶名,密碼,驗(yàn)證碼進(jìn)行判斷,并根據(jù)相應(yīng)的用戶角色進(jìn)入對(duì)應(yīng)的頁(yè)面,代碼如代碼2。2.3.2系統(tǒng)主頁(yè)面1.描述:管理員主頁(yè)面:左方頁(yè)面展示了管理員可操作的七大功能,進(jìn)入相關(guān)的管理頁(yè)面可以到子菜單,并且高亮顯示,每個(gè)管理模塊下面都有相應(yīng)的子菜單。2.在每個(gè)jsp頁(yè)面將會(huì)對(duì)相關(guān)用戶進(jìn)行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過(guò)登陸頁(yè)面而進(jìn)入任何子菜單頁(yè)面,如代碼3:2.3.3教職工信息管理〔1教職工錄入1.描述:管理員輸入教職工相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒(méi)有輸入完整的信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過(guò)form表單中定義的方法onsubmit="returncheckForm<>"來(lái)檢查,checkForm<>函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。2.流程圖如下圖4所示:〔2教職工管理1.描述:管理員點(diǎn)擊左側(cè)的菜單"教職工管理",頁(yè)面跳轉(zhuǎn)到做教職工界面,調(diào)用后臺(tái)的servlet類查詢所有教職工的信息。2.教職工管理關(guān)鍵代碼如代碼4:2.3.4工資信息管理〔1工資錄入1.描述:在此頁(yè)面主要是輸入工資數(shù)、獎(jiǎng)金等信息,然后選擇教職工,所有信息都不能夠?yàn)榭?是否為空也是通過(guò)form表單中的onsubmit="returncheckForm<>來(lái)檢查。〔2工資信息管理1.描述:管理員點(diǎn)擊左側(cè)的菜單"工資管理",頁(yè)面跳轉(zhuǎn)到工資管理界面,調(diào)用后臺(tái)的gongziServlet類查詢出所有的工資信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出來(lái)。2.工資管理關(guān)鍵代碼代碼5:〔3修改個(gè)人密碼1.描述:輸入用戶名和用戶的原有密碼,輸入新密碼以后點(diǎn)擊修改按鈕即可修改密碼成功。〔4安全退出系統(tǒng)1.描述:點(diǎn)此按鈕回到系統(tǒng)的主頁(yè)面。2.關(guān)鍵代碼如代碼6。3整體設(shè)計(jì)方案4流程圖設(shè)計(jì)登陸系統(tǒng)登陸系統(tǒng)管理員錄入教職工信息管理員錄入教職工信息系統(tǒng)驗(yàn)證教職工信息錄入成功結(jié)束通過(guò)未通過(guò)圖4教職工錄入流程圖5程序設(shè)計(jì)代碼1:publicDBContent<>{ StringCLASSFORNAME=".SqlServer.jdbc.Driver";//連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng) Stringurl="jdbc:SqlServer://localhost:3306/jzggl"; Stringuser="root";//連接數(shù)據(jù)庫(kù)的用戶名 Stringpassword="root";//連接數(shù)據(jù)庫(kù)的密碼 try{ Class.forName<CLASSFORNAME>; con=DriverManager.getConnection<url,user,password>;//加載數(shù)據(jù)庫(kù)的驅(qū)動(dòng) stmt=con.createStatement<ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE>; } catch<Exceptionex>{ ex.printStackTrace<>; } } 代碼2publicStringlogin<StringuserName,StringuserPw,intuserType>{ try { Thread.sleep<700>; }catch<InterruptedExceptione> { //TODOAuto-generatedcatchblock e.printStackTrace<>; } Stringresult="no"; if<userType==0>//系統(tǒng)管理員登陸 { Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate<>.find<sql,con>; if<adminList.size<>==0> { result="no"; } else { WebContextctx=WebContextFactory.get<>; HttpSessionsession=ctx.getSession<>; TAdminadmin=<TAdmin>adminList.get<0>; session.setAttribute<"userType",0>; session.setAttribute<"admin",admin>; result="yes"; } } if<userType==1> { } if<userType==2> { } returnresult; }代碼3if<session.getAttribute<"user">==null>{out.print<"<script>alert<'請(qǐng)先登錄!'>;window.open<'../index.jsp','_self'></script>">; }代碼4publicvoidjihuayuanAdd<HttpServletRequestreq,HttpServletResponseres>publicvoidjiaoshiDel<HttpServletRequestreq,HttpServletResponseres> { intid=Integer.parseInt<req.getParameter<"id">>; Stringdel="yes"; Stringsql="updatet_jiaoshisetdel=?whereid=?"; Object[]params={del,id}; DBmydb=newDB<>; mydb.doPstm<sql,params>; mydb.closed<>; req.setAttribute<"message","教師信息刪除成功!">; req.setAttribute<"path","jiaoshi?type=jiaoshiMana">;StringtargetURL="/common/success.jsp"; dispatch<targetURL,req,res>; } publicvoidjiaoshiUpd<HttpServletRequestreq,HttpServletResponseres> { intid=Integer.parseInt<req.getParameter<"id">>; Stringgonghao=req.getParameter<"gonghao">; Stringxingming=req.getParameter<"xingming">; Stringxingbie=req.getParameter<"xingbie">; Stringnianling=req.getParameter<"nianling">; Stringshengri=req.getParameter<"shengri">; Stringgongzuo=req.getParameter<"gongzuo">; Stringzhuanye=req.getParameter<"zhuanye">; Stringzhaopian=req.getParameter<"zhaopian">; Stringbeizhu=req.getParameter<"beizhu">; Stringsql="updatet_jiaoshisetgonghao=?,xingming=?,xingbie=?,nianling=?,shengri=?,gongzuo=?,zhuanye=?,zhaopian=?,beizhu=?whereid=?"; Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,id}; DBmydb=newDB<>; mydb.doPstm<sql,params>; mydb.closed<>; req.setAttribute<"message","教師信息修改成功!">; req.setAttribute<"path","jiaoshi?type=jiaoshiMana">;StringtargetURL="/common/success.jsp"; dispatch<targetURL,req,res>; } publicvoidjiaoshiAdd<HttpServletRequestreq,HttpServletResponseres> { Stringgonghao=req.getParameter<"gonghao">; Stringxingming=req.getParameter<"xingming">; Stringxingbie=req.getParameter<"xingbie">; Stringnianling=req.getParameter<"nianling">; Stringshengri=req.getParameter<"shengri">; Stringgongzuo=req.getParameter<"gongzuo">; Stringzhuanye=req.getParameter<"zhuanye">; Stringzhaopian=req.getParameter<"zhaopian">; Stringbeizhu=req.getParameter<"beizhu">; Stringdel="no"; Stringsql="insertintot_jiaoshi<gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del>"+ "values<?,?,?,?,?,?,?,?,?,?>"; Object[]params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del}; DBmydb=newDB<>; mydb.doPstm<sql,params>; mydb.closed<>; req.setAttribute<"message","教師信息添加成功!">; req.setAttribute<"path","jiaoshi?type=jiaoshiMana">;StringtargetURL="/common/success.jsp"; dispatch<targetURL,req,res>; } publicvoidjiaoshiMana<HttpServletRequestreq,HttpServletResponseres>throwsServletException,IOException { ListjiaoshiList=newArrayList<>; Stringsql="select*fromt_jiaoshiwheredel='no'"; Object[]params={}; DBmydb=newDB<>; try { mydb.doPstm<sql,params>; ResultSetrs=mydb.getRs<>; while<rs.next<>> { TJiaoshijiaoshi=newTJiaoshi<>; jiaoshi.setId<rs.getInt<"id">>; jiaoshi.setGonghao<rs.getString<"gonghao">>; jiaoshi.setXingming<rs.getString<"xingming">>; jiaoshi.setXingbie<rs.getString<"xingbie">>; jiaoshi.setNianling<rs.getString<"nianling">>; jiaoshi.setShengri<rs.getString<"shengri">>; jiaoshi.setGongzuo<rs.getString<"gongzuo">>; jiaoshi.setZhuanye<rs.getString<"zhuanye">>; jiaoshi.setZhaopian<rs.getString<"zhaopian">>; jiaoshi.setBeizhu<rs.getString<"beizhu">>; jiaoshiList.add<jiaoshi>; } rs.close<>; } catch<Exceptione> { e.printStackTrace<>; } mydb.closed<>; req.setAttribute<"jiaoshiList",jiaoshiList>; req.getRequestDispatcher<"admin/jiaoshi/jiaoshiMana.jsp">.forward<req,res>; }代碼5publicvoidgongziAdd<HttpServletRequestreq,HttpServletResponseres>{ intjsid=Integer.parseInt<req.getParameter<"jsid">>; Stringriqi=req.getParameter<"riqi">; Stringgongzi=req.getParameter<"gongzi">; Stringjiangjin=req.getParameter<"jiangjin">; Stringsql="insertintot_gongzi<jsid,riqi,gongzi,jiangjin>values<?,?,?,?>"; Object[]params={jsid,riqi,gongzi,jiangjin}; DBmydb=newDB<>; mydb.doPstm<sql,params>; mydb.closed<>; req.setAttribute<"message","教師工資添加成功">; req.setAttribute<"path","gongzi?type=gongziMana">;StringtargetURL="/common/success.jsp"; dispatch<targetURL,req,res>; } publicvoidjsList<HttpServletRequestreq,HttpServletResponseres>throwsServletException,IOException { ListjiaoshiList=newArrayList<>; Stringsql="select*fromt_jiaoshiwheredel='no'"; Object[]params={}; DBmydb=newDB<>; try { mydb.doPstm<sql,params>; ResultSetrs=mydb.getRs<>; while<rs.next<>> { TJiaoshijiaoshi=newTJiaoshi<>; jiaoshi.setId<rs.getInt<"id">>; jiaoshi.setGonghao<rs.getString<"gonghao">>; jiaoshi.setXingming<rs.getString<"xingming">>; jiaoshi.setXingbie<rs.getString<"xingbie">>; jiaoshi.setNianling<rs.getString<"nianling">>; jiaoshi.setShengri<rs.getString<"shengri">>; jiaoshi.setGongzuo<rs.getString<"gongzuo">>; jiaoshi.setZhuanye<rs.getString<"zhuanye">>; jiaoshi.setZhaopian<rs.getString<"zhaopian">>; jiaoshi.setBeizhu<rs.getString<"beizhu">>; jiaoshiList.add<jiaoshi>; } rs.close<>; } catch<Exceptione> { e.printStackTrace<>; } mydb.closed<>; req.setAttribute<"jiaoshiList",jiaoshiList>; req.getRequestDispatcher<"admin/gongzi/jsList.jsp">.forward<req,res>; } publicvoidtoAddGz<HttpServletRequestreq,HttpServletResponseres>throwsServletException,IOException { TJiaoshijiaoshi=newTJiaoshi<>; intjsid=Integer.parseInt<req.getParameter<"jsid">>; Stringsql="select*fromt_jiaoshiwhereid=?"; Object[]params={jsid}; DBmydb=newDB<>; try { mydb.doPstm<sql,params>; ResultSetrs=mydb.getRs<>; while<rs.next<>> { jiaoshi.setId<rs.getInt<"id">>; jiaoshi.setGonghao<rs.getString<"gonghao">>; jiaoshi.setXingming<rs.getString<"xingming">>; jiaoshi.setXingbie<rs.getString<"xingbie">>; jiaoshi.setNianling<rs.getString<"nianling">>; jiaoshi.setShengri<rs.getString<"shengri">>; jiaoshi.setGongzuo<rs.getString<"gongzuo">>; jiaoshi.setZhuanye<rs.getString<"zhuanye">>; jiaoshi.setZhaopian<rs.getString<"zhaopian">>; jiaoshi.setBeizhu<rs.getString<"beizhu">>; } rs.close<>; } catch<Exceptione> { e.printStackTrace<>; } mydb.closed<>; GregorianCalendargc=newGregorianCalendar<>; StringstrDate=DateUtils.formatDate2Str<gc.getTime<>,"yyyy-MM">; req.setAttribute<"strDate",strDate>; req.setAttribute<"jiaoshi",jiaoshi>; req.getRequestDispatcher<"admin/gongzi/gzAdd.jsp">.forward<req,res>; } publicvoidgongziMana<HttpServletRequestreq,HttpServletResponseres>throwsServletException,IOException { ListgongziList=newArrayList<>; Stringriqi=req.getParameter<"riqi">==null?"":req.getParameter<"riqi">; Stringsql="selecttb.xingming,ta.*fromt_gongzita,t_jiaoshitbwhereta.jsid=tb.id"; if<!<"".equals<riqi>>>{ sql+="andta.riqi='"+riqi+"'"; } Object[]params={}; DBmydb=newDB<>; try { mydb.doPstm<sql,params>; ResultSetrs=mydb.getRs<>; while<rs.next<>> { TGongzigongzi=newTGongzi<>; gongzi.setId<rs.getInt<"id">>; gongzi.setJsxm<rs.getString<"xingming">>; gongzi.setRiqi<rs.getString<"riqi">>; gongzi.setGongzi<rs.getString<"gongzi">>; gongzi.setJiangjin<rs.getString<"jiangjin">>; gongziList.add<gongzi>; } rs.close<>; } catch<Exceptione> { e.printStackTrace<>; } mydb.closed<>; req.setAttribute<"riqi",riqi>; req.setAttribute<"gongziList",gongziList>; req.getRequestDispatcher<"admin/gongzi/gongziMana.jsp">.forward<req,res>; }代碼6主要是通過(guò)javascript語(yǔ)句來(lái)實(shí)現(xiàn),item_word[8][4]="退出系統(tǒng)";item_link[8][4]="javascript:window.open<'../index.jsp','_self'>";代碼76系統(tǒng)測(cè)試6.1系統(tǒng)測(cè)試目的與意義系統(tǒng)測(cè)試是管理信息系統(tǒng)開(kāi)發(fā)周期中一個(gè)十分重要而漫長(zhǎng)的的階段。其重要性體現(xiàn)在他是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,是對(duì)整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程包括系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)的最終審查。系統(tǒng)測(cè)試的任務(wù)是盡可能徹底的檢查出程序中的錯(cuò)誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng)"做得怎樣"。這這階段又可以分為三個(gè)步驟:模塊測(cè)試,測(cè)試每個(gè)模塊的程序是否正確;組裝測(cè)試,測(cè)試模塊之間的接口是否正確;確認(rèn)測(cè)試,測(cè)試整個(gè)軟件系統(tǒng)是否滿足用戶功能和性能的要求。測(cè)試發(fā)現(xiàn)問(wèn)題之后要經(jīng)過(guò)調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說(shuō)明書(shū)的黑盒測(cè)試,應(yīng)覆蓋系統(tǒng)隨偶聯(lián)合的部件,系統(tǒng)測(cè)試是正對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出需求規(guī)格不符合或與之矛盾的地方。6.2主頁(yè)面的登錄模塊測(cè)試測(cè)試流程:1.打開(kāi)系統(tǒng)首頁(yè),輸入錯(cuò)誤的登錄信息2.登錄3.輸入正確的登錄信息4.登錄5.測(cè)試結(jié)果模塊名稱測(cè)試用例預(yù)期結(jié)果實(shí)際結(jié)果是否通過(guò)登錄模塊用戶名:null密碼:null彈出錯(cuò)誤提示,請(qǐng)輸入用戶名登陸失敗,提示請(qǐng)輸入用戶名通過(guò)登錄模塊用戶名:m1密碼:null彈出錯(cuò)誤提示,請(qǐng)輸入密碼失敗,提示輸入密碼通過(guò)登錄模塊用戶名:m1密碼:1彈出錯(cuò)誤提示,用戶名或者密碼錯(cuò)誤登陸失敗,提示用戶名或者密碼錯(cuò)誤通過(guò)7設(shè)計(jì)總結(jié)本次課程設(shè)計(jì)將我大學(xué)所學(xué)的軟件工程理論知識(shí)用到了具體的實(shí)踐中去,深化了理論知識(shí),同時(shí)也鍛煉了動(dòng)手實(shí)踐能力。在這段日子里,我查閱了許多有關(guān)教師檔案管理信息系統(tǒng)的資料,翻閱了許多JSP的書(shū)籍,結(jié)合自己的經(jīng)驗(yàn),詳細(xì)調(diào)查了教職工管理的工作容與細(xì)節(jié),開(kāi)發(fā)設(shè)計(jì)了這個(gè)教師檔案管理系統(tǒng),雖然企業(yè)每個(gè)學(xué)期都會(huì)有相應(yīng)課程的課程設(shè)計(jì)和實(shí)訓(xùn)來(lái)作為動(dòng)手練習(xí)訓(xùn)練,不過(guò)在本次畢業(yè)設(shè)計(jì)具體的實(shí)踐的時(shí)候還是遇到了很多小問(wèn)題,比如說(shuō)在jsp頁(yè)面將輸入框設(shè)為不可用是添加屬性re

溫馨提示

  • 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. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論