【選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第1頁
【選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第2頁
【選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第3頁
【選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第4頁
【選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)10000字(論文)】_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

選課信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,科技慢慢走進(jìn)家家戶戶,各種企業(yè)更是將精力都轉(zhuǎn)向科技研發(fā),高校對(duì)互聯(lián)網(wǎng)技術(shù)的需求也是迫在眉睫。教務(wù)管理一直是各高校比較頭疼的一個(gè)問題,學(xué)生的數(shù)量大而教師的群體遠(yuǎn)比學(xué)生少,管理起來出現(xiàn)各種差錯(cuò),使用原始的管理辦法已經(jīng)不能解決問題,該系統(tǒng)致力于解決高校在管理學(xué)生中遇到的各種困難。高校教務(wù)管理在學(xué)生選課這一塊顯得比較困難,課程和學(xué)生的數(shù)量都很大,雙重難度的情況下自然很難做到十全十美。在老師排課的時(shí)候因?yàn)闀r(shí)間的沖突很難做到一致,學(xué)生在選課時(shí)候遇到困難不能及時(shí)溝通學(xué)校管理者,導(dǎo)致選課的進(jìn)度進(jìn)展的很慢。這時(shí)候就需要一個(gè)關(guān)于管理學(xué)生選課的系統(tǒng)來輔助,利用Java技術(shù)和JSP技術(shù)作為基礎(chǔ),在MySQL數(shù)據(jù)庫的協(xié)助下該系統(tǒng)能夠適應(yīng)平臺(tái)的使用。設(shè)計(jì)該系統(tǒng)的目的就是為了使學(xué)生在選課的時(shí)候能夠?qū)崿F(xiàn)自由選擇,遇見問題可以及時(shí)反饋,學(xué)校的管理者和教師能合理的排課和解決學(xué)生遇到的問題。關(guān)鍵詞:選課,JSP技術(shù),JAVA技術(shù),MYSQL數(shù)據(jù)庫目錄TOC\o"1-3"\h\u29019第1章概述 XV第4章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1開發(fā)需求與系統(tǒng)架構(gòu)4.1.1開發(fā)需求根據(jù)本次的實(shí)際情況,系統(tǒng)開發(fā)環(huán)境如下:操作系統(tǒng):Windows7開發(fā)軟件:Myeclipse10數(shù)據(jù)庫:Mysql5.0開發(fā)語言:Java服務(wù)器:Tomcat6.0處理器:intelcorei7內(nèi)存:8g4.1.2系統(tǒng)架構(gòu)系統(tǒng)基于B/S模式,主要由jsp前端界面、java后端代碼和mysql數(shù)據(jù)組成。主要運(yùn)行流程:jsp界面通過HTTP協(xié)議訪問服務(wù)器,服務(wù)器使用HttpServletRequest接收客戶端請(qǐng)求,隨后進(jìn)行相應(yīng)的邏輯處理與數(shù)據(jù)校驗(yàn),請(qǐng)求參數(shù)通過myBatis框架中的Mapper與數(shù)據(jù)庫進(jìn)行交互,實(shí)現(xiàn)相應(yīng)的增刪改查操作。交互結(jié)束后,結(jié)果封裝到HttpServletResponse當(dāng)中返回給jsp界面。jsp通過html標(biāo)簽、jQuery組件、easyUI組件等進(jìn)行數(shù)據(jù)展示。通過perties配置數(shù)據(jù)庫信息(在cgm0xuanke\conf文件夾下邊)jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc\:mysql\://localhost\:3306/db_cgm0xuankejdbc.username=adminjdbc.password=admin數(shù)據(jù)庫信息配置到sqlMapConfig.xml文件當(dāng)中,系統(tǒng)啟動(dòng)時(shí)通過讀取該文件與數(shù)據(jù)庫建立連接。進(jìn)入前端頁面時(shí),jsp頁面給后臺(tái)服務(wù)發(fā)送請(qǐng)求,后臺(tái)通過Controller接口接收請(qǐng)求,并進(jìn)行相應(yīng)的邏輯處理,通過mybatis框架與數(shù)據(jù)庫進(jìn)行交互,并對(duì)其進(jìn)行相應(yīng)的增刪改查操作,得到的結(jié)果封裝后返回到j(luò)sp界面,進(jìn)行數(shù)據(jù)展示,如圖4-1。圖4-1系統(tǒng)總架構(gòu)4.2系統(tǒng)主要功能其主要功能是可以修改每個(gè)角色用戶的信息和課程信息,分配課程,留言能及時(shí)反饋等功能。4.2.1主界面功能實(shí)現(xiàn)每個(gè)角色用戶需要先選擇自己的角色類型,輸入正確的賬號(hào)密碼才能登陸,其界面如圖4-2,4-3所示。圖4-2登錄界面流程圖 intguanliyuanxiugaimima(HttpServletRequesthttpreque, HttpServletResponsehttprespon){ try{ Stringglpwd2=httpreque.getAttribute("mima").toString(); JSONObjectjsonreusl=newJSONObject(); intz=0; Guanliguanliyuam=newGuanli(); guanliyuam.setAdminName(newString("admin")); Stringglpwd=(String)httpreque.getParameter("mima1"); guanliyuam.setGuanliPassword(glpwd); if(adsev.findGuanli(guanliyuam,z,z).size()==1){ guanliyuam=(Guanli)(adsev.findGuanli(guanliyuam,z,z)).get(z); guanliyuam.setAdminPassword(glpwd2); adsev.updateguanli(guanliyuam); 圖4-3主界面功能實(shí)現(xiàn)4.2.2管理員登錄功能模塊管理員是權(quán)限最大的一個(gè)角色,把管理員的角色類型放在第一位,輸入賬號(hào)密碼即可登錄,登錄后進(jìn)入專屬界面,查看所有的功能權(quán)限。其界面如圖4-4,4-5所示。圖4-4管理員登錄流程圖登錄功能實(shí)現(xiàn)如下 intdenglu(HttpServletRequesthttpreqss, HttpServletResponsehttpresp)throwsThrowable{ dengluleixing=httpreqss.getAttribute("dengluleixing").toString(); yonhu111=httpreqss.getAttribute("yonhu111").toString(); mimade111=httpreqss.getAttribute("mimade111").toString(); LogBiaologb=newLogBiao(); logb.setRizhiName(yonhu111); logb.setDate(dddd); logb.setDengluIp(ip); Stringip=httpreqss.getRoIps(); Datedddd=Calendar.getInstance().getTime(); rizhiService.save(logb); if(yonhu111==null||mimade111.equals(“”)){ httpreqss.setAttribute("emsg",newString("usernameorpasswoorderror!")); httpreqss.getRequestDispatcher((new String("error/indexs.jsp")).forward(httpreqss, httpresp);圖4-5管理員主界面4.2.3老師信息管理模塊管理員可以管理老師各種信息,根據(jù)合理的具體情況能做出修改,可以根據(jù)用戶名以及姓名進(jìn)行篩選。其界面如圖4-6,4-7所示。圖4-6老師信息管理流程圖 publicListgetYonhuList(Yonhurecord){ List<Yonhu>list= yonghuDao.selectAllUser(record,Yonhuname,page,rows,sdate,edate,sdate1,edate1); returnlist; } publicvoidupdateYonhu(YonhuYonhu){ yonghuDao.updateByID(Yonhu); } publicYonhugetYonhuById(intid){ YonhuYonhu=yonghuDao.selectUserByID(id); returnYonhu; } publicvoiddeleteYonghu(Integerid){ yonghuDao.deleteByPrimaryKey(id);}圖4-7教師信息管理界面4.2.4課程類型信息管理模塊課程類型的修改者來自管理員,它可以師生的實(shí)際需求設(shè)立課程,也可以對(duì)備注進(jìn)行查看和修改。其界面如圖4-8,4-9所示。圖4-8課程類型管理流程圖管理員輸入課程類型信息的名稱和備注,系統(tǒng)首先判斷內(nèi)容是否為空,如果不為空則向數(shù)據(jù)庫插入一條數(shù)據(jù),如果為空則提示用戶信息輸入有誤。intaddSjleixing(HttpServletRequestrequest,HttpServletResponseresponse) throwsThrowable{ try{ StringsjleixingName=request.getAttribute("zijlxName").toString(); StringzijlxPhone=request.getAttribute("zijlxPhone").toString(); JSONObjectfrett=newJSONObject(); StringzijlxMark=request.getAttribute("zijlxMark").toString(); StringzijlxMark1=request.getAttribute("zijlxMark1").toString(); StringzijlxMark2=request.getAttribute("zijlxMark2").toString(); StringzijlxDizhi=request.getAttribute("zijlxDizhi").toString(); StringzijlxDate=request.getAttribute("zijlxDate").toString(); StringzijlxDate1=request.getAttribute("zijlxDate1").toString(); StringzijlxType=request.getAttribute("zijlxType").toString(); StringzijlxType1=request.getAttribute("zijlxType1").toString(); StringzijlxDouble=request.getAttribute("zijlxDouble").toString(); StringzijlxDouble1=request.getAttribute("zijlxDouble1").toString(); StringzijlxId=request.getAttribute("zijlxId").toString(); zijlxzijlx=newzijlx(); if(null!=zijlxId){ zijlx=zijlxService.getzijlx(Integer.parseInt(zijlxId); } if(null!=zijlxName){ zijlx.setzijlxName(zijlxName); } if(null!=zijlxPhone){ zijlx.setzijlxPhone(zijlxPhone); } if(null!=zijlxMark){ zijlx.setzijlxMark(zijlxMark); } if(null!=zijlxMark1){ zijlx.setzijlxMark1(zijlxMark1); } if(null!=zijlxMark2){ zijlx.setzijlxMark2(zijlxMark2); } if(null!=zijlxDizhi){ zijlx.setzijlxDizhi(zijlxDizhi); } if(null!=zijlxDate){ zijlx.setzijlxDate(DateUtil.formatString(zijlxDate, "yyyy-MM-ddhh:mm:ss"); } if(null!=zijlxDate1){ zijlx.setzijlxDate1(DateUtil.formatString(zijlxDate1, "yyyy-MM-ddhh:mm:ss"); } if(null!=zijlxType){ zijlx.setzijlxType(Integer.parseInt(zijlxType); } if(null!=zijlxType1){ zijlx.setzijlxType1(Integer.parseInt(zijlxType1); } if(null!=zijlxDouble){ zijlx.setzijlxDouble(Double.parseDouble(zijlxDouble); } if(null!=zijlxDouble1){ zijlx.setzijlxDouble1(Double.parseDouble(zijlxDouble1); } if(null!=zijlxId){ Datedate=newDate(); zijlx.setzijlxDate(date); zijlxService.modifyzijlx(zijlx); frett.put("失敗了","true"); RespUtils.print(response,frett); }else{ zijlxService.save(zijlx); frett.put("成功了","true"); RespUtils.print(response,frett);圖4-9課程類型信息管理界面4.2.5課程信息管理模塊管理員決定課程信息,根據(jù)名稱、類型以及老師信息進(jìn)行查詢,列表展示名稱,類型,老師以及待選課程的數(shù)量等信息。其界面如圖4-8,4-9所示。圖4-10課程信息管理流程圖管理員輸入課程名稱或類型或教師信息,如果不為空則,指令到達(dá)數(shù)據(jù)庫根據(jù)條件搜索,查詢出相關(guān)數(shù)據(jù)并返回展示;如果信息為空則提示用戶信息輸入錯(cuò)誤。 publicvoidpartcomArr(HttpServletRequesthtreqs,HttpServletResponsehtrps) { intz=0; deptStr=htreqs.getAttribute("deptStr").toString(); empid=htreqs.getAttribute("empid").toString(); Deptdept=newDept(); if(null!=deptStr){ dept.setDeptType(Integer.parseInt(deptStr)); } if(empid.equals("")){ dept.setEmpId(Integer.parseInt(empid)); } try{ JSONObjectjobj=newJSONObject(); jobj.put("emid",""); jobj.put("deptName","pleasechoose..."); JSONArrayjarr=newJSONArray(); jarr.add(jobj); jarr.addAll(JSONArray.fromObject(deptService.queryDept(dept,z,z))); RespUtils.print(htrps,frett);圖4-11課程信息管理界面4.2.6選課信息管理模塊學(xué)生用戶可以在選課界面進(jìn)行選課或是取消選課的操作。其界面如圖4-10,4-11,4-12所示。圖4-12學(xué)生查詢選課信息流程圖學(xué)生輸入需要查詢的課程名稱,如果不為空則系統(tǒng)從數(shù)據(jù)庫中根據(jù)課程名稱進(jìn)行條件查詢,查詢出相關(guān)數(shù)據(jù)并返回展示;如果信息為空則提示查詢的課程名稱不可為空。圖4-13學(xué)生取消選課流程圖學(xué)生選擇需要取消的選課,學(xué)生的操作行為會(huì)提交到系統(tǒng),系統(tǒng)首先校驗(yàn)信息是否正確,如果正確,從數(shù)據(jù)庫中刪除這條選課記錄,返回取消成功。如果不正確,則提示學(xué)生本次課程非所選課程,取消選課失敗。publicvoidqueryOthers(HttpServletRequesthtrqs, HttpServletResponsehtrps)throwsThrowable{ StringotherId=htrqs.getAttribute("otherId").toString(); StringotherType1=htrqs.getAttribute("otherType1").toString(); StringotherType=htrqs.getAttribute("otherType").toString();intz=0; Stringpg=htrqs.getAttribute("pg").toString(); Stringrws=htrqs.getAttribute("rws").toString(); StringotherName=htrqs.getAttribute("otherName").toString(); StringotherPhone=htrqs.getAttribute("otherPhone").toString(); Otherother=newOther(); PgBeanpgBean=null; if(pg!="null"){ pgBean=newPgBean(Integer.parseInt(pg),Integer.parseInt(rws)); }else{ pgBean=newpgBean(z,z); } JSONArrayjsArr=JSONArray.fromObject(otherService.queryothers( other,pgBean.getStart(),pgBean.getrws())); JSONObjectreJson=newJSONObject(); inttotal=otherService.queryothers(other,z,z).size(); reJson.put("all",total); reJson.put("rws",jsArr); RespUtils.print(htrps,reJson);圖4-14學(xué)生選課界面4.2.7學(xué)生留言模塊老師用戶們可以自己的系統(tǒng)界面查看到每個(gè)學(xué)生的留言信息,選中需要回復(fù)的學(xué)生選項(xiàng),輸入需要回復(fù)的內(nèi)容然后點(diǎn)擊回復(fù)按鈕,就可以進(jìn)行回復(fù)。其界面如圖4-13,4-14所示。圖4-15學(xué)生留言流程圖publicvoidqueryTips(HttpServletRequesthtprqs, HttpServletResponsehtprps){ intz=0; Stringpage=htprqs.getAttribute("page").toString(); Stringrows=htprqs.getAttribute("rows").toString(); StringtipName=htprqs.getAttribute("tipName").toString(); StringtipId=htprqs.getAttribute("tipId").toString(); StringtipTypeid=htprqs.getAttribute("tipTypeid").toString(); StringtipType=htprqs.getAttribute("tipType").toString(); StringtipType1=htprqs.getAttribute("tipType1").toString(); Stringsdtid=htprqs.getAttribute("sdtid").toString(); StringdeptId=htprqs.getAttribute("deptId").toString(); StringteaId=htprqs.getAttribute("teaid").toString(); StringstepId=htprqs.getAttribute("stepId").toString(); StringcreateDate=htprqs.getAttribute("createDate").toString(); Stringupdatetime=htprqs.getAttribute("updatetime").toString(); SdtTipstip=newSdtTips(); PgEntitypgentyi=null; if(page!=null)){ pgentyi=newPgEntity(Integer.parseInt(page),Integer.parseInt(rows)); }else{ pgentyi=newPgEntity(z,z); } try{ JSONObjectjobj=newJSONObject(); JSONArrayjArrs=JSONArray.fromObject(tipService.querytips( tip,pgentyi.getStart(),pgentyi.getRows(),creatupdatetime,updatetime)); intalltips=tipService.querytips(tip,z,z,creatupdatetime,updatetime).size(); jobj.put("jArrs",jArrs); jobj.put("alltips",alltips); ResponseUtil.write(htprps,jobj); }catch(Exceptionexception){ log.error(exception); }圖4-16學(xué)生留言界面第5章系統(tǒng)測試5.1測試的意義軟件測試的含義就是對(duì)整個(gè)系統(tǒng)的一次考驗(yàn),能否真正在實(shí)際中投入使用,在測試中能夠得出在設(shè)計(jì)時(shí)不容易發(fā)現(xiàn)的問題,畢竟使用和設(shè)計(jì)是兩個(gè)不同的概念。之所以需要測試就是想要在這個(gè)過程發(fā)現(xiàn)不足之處和問題,知道問題才能對(duì)癥下藥的去解決,所謂實(shí)踐才是真理。5.2測試方法對(duì)每個(gè)模塊進(jìn)性操作測試和內(nèi)容測試,使用正確的操作、錯(cuò)誤的操作和不作為操作對(duì)每個(gè)模塊進(jìn)行測試。采用這種多方面多角度的測試方法能夠檢測出系統(tǒng)在性能上是否能夠達(dá)標(biāo),測試的全面能夠體現(xiàn)系統(tǒng)在設(shè)計(jì)的準(zhǔn)確無誤,在功能的上經(jīng)得起不同程度和形勢的考驗(yàn)。5.3測試用例表5-1用戶登錄模塊測試用例用例編號(hào)測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果N001輸入正確的用戶名密碼輸入賬號(hào)(cjhwan),密碼(cjh519988)成功的跳轉(zhuǎn)到角色所在的主界面通過N002輸入錯(cuò)誤的用戶密碼輸入賬號(hào)(cjhwan),密碼(519988)系統(tǒng)界面沒有成功跳轉(zhuǎn),提示賬號(hào)密碼錯(cuò)誤通過N003空用戶名密碼輸入賬號(hào)(),密碼()系統(tǒng)界面不發(fā)生跳轉(zhuǎn),提示錯(cuò)誤通過表5-2課程管理模塊測試用例用例編號(hào)測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果F001錄入課程信息點(diǎn)擊添加按鈕,填寫課程信息,點(diǎn)擊確定按鈕添加的課程信息在系統(tǒng)中顯示通過F002修改課程信息點(diǎn)擊列表操作欄中的修改鏈接,改動(dòng)信息后,點(diǎn)擊確定按鈕課程信息發(fā)生變化,并顯示通過F003刪除課程信息選中要?jiǎng)h除的信息,點(diǎn)擊確定刪除的信息不顯示通過表5-3教師用戶管理模塊測試用例用例編號(hào)測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果測試結(jié)果T001點(diǎn)擊新增按鈕,輸入正確信息按照系統(tǒng)流程填寫教師用戶相關(guān)信息后點(diǎn)擊確定系統(tǒng)提示保存成功,教師用戶信息保存到數(shù)據(jù)庫通過T002點(diǎn)擊修改按鈕,輸入錯(cuò)誤信息按照系統(tǒng)流程將教師用戶的不可為空信息填寫為空后點(diǎn)擊確定系統(tǒng)報(bào)錯(cuò),跳轉(zhuǎn)到保存失敗界面通過T003點(diǎn)擊新增按鈕,不輸入任何信息在不填寫任何內(nèi)容的情況下下,點(diǎn)擊確定按鈕系統(tǒng)報(bào)錯(cuò),系統(tǒng)信息不做任何改變通過結(jié)論經(jīng)歷了好幾個(gè)月努力,在設(shè)計(jì)的管理系統(tǒng)呈現(xiàn)面前時(shí)標(biāo)志著這段時(shí)間沒有白白浪費(fèi),基于Java的選課信息管理系統(tǒng)在很大程度上減輕了高校在管理學(xué)生的工作量,它所擁有的學(xué)生留言功能能夠解決學(xué)生在選課時(shí)遇見問題不能及時(shí)反饋給校方的問題。系統(tǒng)能夠?qū)⒄n程有效的分為不同專業(yè)類型的模塊,讓學(xué)生在選課的時(shí)候能快速清晰的查詢到自己需要的課程在這兩個(gè)方面給學(xué)生的工作帶來了不同以往的便利。學(xué)生能夠隨意選擇和退選課程,這個(gè)功能實(shí)現(xiàn)了選擇自由,不在局限于以前不能概覽所有課程時(shí)所帶來的困擾。管理員能查看所有用戶的操作日志和改變用戶的基本信息,能夠分配課程給專業(yè)相關(guān)且適應(yīng)的老師,避免在排課時(shí)所產(chǎn)生不必要的沖突和矛盾。這種將權(quán)利固定簡單化的操作模式是管理員這個(gè)權(quán)限最大,工作最繁瑣的崗位在工作上能夠得心應(yīng)手。教師能夠及時(shí)查看學(xué)生選課時(shí)遇見困難的留言,知曉問題及時(shí),不用在不了解情況下胡亂猜測。這個(gè)功能還能讓教師一對(duì)一的給學(xué)生提供一些選課的建議。綜上所訴,系統(tǒng)設(shè)計(jì)的很成功達(dá)到了在設(shè)計(jì)之初所期望能夠達(dá)到的效果。系統(tǒng)在功能設(shè)計(jì)上的確是有一定的效果,但是個(gè)人的想法終究不能十全十美。還有很多東西需要更多科研者去研制和開發(fā),這個(gè)系統(tǒng)在界面結(jié)構(gòu)的設(shè)計(jì)上的選擇上比較簡單,其目的就是為了能夠適應(yīng)更加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論