




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
年4月19日畢業(yè)設(shè)計(jì)選題管理系統(tǒng)文檔僅供參考前言每年畢業(yè)臨近,都有大量的畢業(yè)生需要進(jìn)行畢業(yè)設(shè)計(jì),這其中的首要關(guān)節(jié)就是課題的選擇,以往指導(dǎo)老師都是采用人工手寫方式給學(xué)生們提供相關(guān)的課題供學(xué)生選擇,如果指導(dǎo)老師帶領(lǐng)的學(xué)生比較多,或者是當(dāng)年畢業(yè)的學(xué)生比較多,這樣就容易造成學(xué)生的課題選擇很混亂,指導(dǎo)教師難于統(tǒng)計(jì)學(xué)生的課題選擇情況等一系列問題,基于這些傳統(tǒng)問題,我們需要一個(gè)能夠自動(dòng)統(tǒng)計(jì)、實(shí)時(shí)分配課題的一個(gè)管理平臺(tái)來幫助學(xué)生、指導(dǎo)老師。此系統(tǒng)的開發(fā),主要的目的是使老師能更好的管理課程設(shè)計(jì),也能使學(xué)生能更好的把自己想要選的課程正確無誤的選出來。使處在選課時(shí)期的學(xué)生能有條不紊的進(jìn)行。系統(tǒng)的需求分析2.1功能需求2.1.1畢業(yè)設(shè)計(jì)選題管理系統(tǒng)功能要求:1.畢業(yè)設(shè)計(jì)題目維護(hù)和查詢:畢業(yè)設(shè)計(jì)題目的添加、修改;按照項(xiàng)目類型、名稱、編號(hào)等查詢;畢業(yè)設(shè)計(jì)選題查詢、登記。2.指導(dǎo)教師信息維護(hù)和查詢:指導(dǎo)教師信息的添加、修改、刪除,查詢;3.畢業(yè)生選題管理:學(xué)生選題登記;選題情況查詢;4.畢業(yè)生信息的維護(hù)和查詢。根據(jù)以上各功能模塊需求將系統(tǒng)的功能細(xì)化為以下幾點(diǎn):(1)前臺(tái)學(xué)生選題學(xué)生網(wǎng)上選題:學(xué)生登錄管理系統(tǒng)進(jìn)行選題(2)前臺(tái)教師出題教師網(wǎng)上出題:教師進(jìn)入畢業(yè)選題出題。教師管理出題:教師進(jìn)入系統(tǒng)后對畢業(yè)設(shè)計(jì)題目進(jìn)行修改和刪除。選題確認(rèn):學(xué)生選好題目后,教師能夠確認(rèn)該題由選擇該題的學(xué)生做。(3)后臺(tái)管理出題及選題情況用戶管理模塊:管理員能夠?qū)τ脩暨M(jìn)行用戶管理,對已存在的用戶進(jìn)行修改,查看等。角色管理模塊:管理員能夠?qū)τ脩舻慕巧M(jìn)行管理,能夠給用戶分配角色,對角色分配權(quán)限。2.2開發(fā)環(huán)境需求操作系統(tǒng):windowXP或更高版本因?yàn)楫厴I(yè)設(shè)計(jì)課題管理系統(tǒng)針正確用戶是學(xué)生和教師,學(xué)生和教師普遍使用windows操作系統(tǒng),因此選著windowsXP或更高版本的操作系統(tǒng)web服務(wù)器:apache-tomcat6apache-tomcat6是開源的免費(fèi)的web服務(wù)器,節(jié)省開發(fā)成本數(shù)據(jù)庫:MySQLMySQL是一款免費(fèi)的數(shù)據(jù)庫,節(jié)省成本開發(fā)工具:myeclipse8.5myeclipse8.5功能強(qiáng)大的JavaEE開發(fā)工具,該管理系統(tǒng)選用JavaEE開發(fā)。系統(tǒng)設(shè)計(jì)3.1基本設(shè)計(jì)概念和處理流程本系統(tǒng)采用結(jié)構(gòu)化分析,設(shè)計(jì)順序?yàn)樽皂斚蛳?,層層逐步?xì)化。圖13.2軟件功能設(shè)計(jì)圖23.2數(shù)據(jù)庫設(shè)計(jì)3.2.1E-R圖圖3圖43.2.2數(shù)據(jù)庫表用戶表(user)字段類型備注useridVarchar(20)primarykey用戶IDPwdvarchar(32)用戶密碼roleIdInt外鍵tnameVarchar(20)姓名sexVarchar(5)性別AgeInt年齡表1課題表(task)字段類型備注taskIdIntprimarykey課題IDtasknamevarchar(20)課題名sflagint狀態(tài)(是否被選)taskTextvarchar(50)課題內(nèi)容表2選擇課題(chosetask)字段類型備注ctIdintprimarykey學(xué)生選課題iduIdvarchar(10)外鍵taskIdInt課題ID表3上傳課題(puttask)字段類型備注ptIdintprimarykey教師上傳課題iduIdvarchar(10)外鍵taskIdInt課題ID表4角色表(roleinfo)字段類型備注roleIdIntprimarykey角色I(xiàn)Drolenamevarchar(10)角色名表5權(quán)限表(rightinfo)字段類型備注rightCodevarchar(20)primarykey權(quán)限r(nóng)ightParentCodevarchar(30)父權(quán)限r(nóng)ightTypevarchar(20)rightTextvarchar(50)RightUrlvarchar(30)url地址RightTipvarchar(50)表6角色權(quán)限表(roleright)rr_idIntprimarykey主鍵rr_roleidInt外鍵role表rr_rightCodevarchar(20)外鍵rightinfo表表7典型功能模塊的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)過程用戶模塊登錄功能代碼:publicStringdoLogin() { Userinfouu=userService.checkUser(user); if(uu!=null) { ServletActionContext.getRequest().getSession().setAttribute("USER",uu); introleId=uu.getRoleinfo().getRoleId(); Roleinfor=roleService.getRoleWithRights(roleId); StringmenuString=buildDTreeMenuString(r); ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING",menuString); return"main"; } else { return"input"; } }publicUserinfocheckUser(Userinfou){ Userinfouu=null; Stringhql="fromUserinfowhereuserid=?andpwd=?"; Object[]args=newObject[]{u.getUserid(),u.getPwd()}; List<Userinfo>list=commonDao.list(hql,args); if(list!=null&&list.size()>0) { uu=list.get(0); } returnuu; }publicListlist(Stringhql,Object[]args){ Listlist=this.getHibernateTemplate().find(hql,args); returnlist; }查詢信息功能代碼:publicStringtoList() { SPageBeanspb=newSPageBean(); HttpServletRequestrequest=ServletActionContext.getRequest(); intoffset=0; if(request.getParameter("pager.offset")==null){ offset=0; }else{ offset=Integer.parseInt(request.getParameter("pager.offset")); } intmaxPageItems; if(request.getAttribute("maxPageItems")==null){ maxPageItems=5; }else{ maxPageItems=Integer.parseInt(request.getParameter("maxPageItems")); } spb.setOffset(offset); spb.setPageSize(maxPageItems); infoService.getList(spb); request.setAttribute("SPB",spb); return"list"; }publicvoidgetList(SPageBeanspb){ Stringhql="fromUserinfo"; commonDao.listByPage(hql,spb); }publicvoidlistByPage(Stringhql,SPageBeanspb){ finalStringhql1=hql; finalSPageBeanspb1=spb; if(hql!=null) { inttotal=(Integer)this.getHibernateTemplate().execute(newHibernateCallback(){ publicObjectdoInHibernate(Sessionsess)throwsHibernateException, SQLException{ StringqString=""; if(hql1.toLowerCase().indexOf("select")!=-1) { intidx=hql1.toLowerCase().indexOf("from"); qString="selectcount(*)"+hql1.substring(idx,hql1.length()); } else{ qString="selectcount(*)"+hql1; } QuerycQuery=sess.createQuery(qString); cQuery.setCacheable(true); longo=(Long)cQuery.uniqueResult(); intii=(int)o; returnii; } }); spb.setTotal(total); Listdata=(List)this.getHibernateTemplate().execute(newHibernateCallback(){ publicObjectdoInHibernate(Sessionsess)throwsHibernateException, SQLException{ Queryquery=sess.createQuery(hql1); query.setFirstResult(spb1.getOffset()); query.setMaxResults(spb1.getPageSize()); returnquery.list(); } }); spb.setDatas(data); } }publicclassSPageBean{ privateintoffset; privateintpageSize; privateinttotal; privateListdatas; publicintgetTotal(){ returntotal; } publicvoidsetTotal(inttotal){ this.total=total; } publicListgetDatas(){ returndatas; } publicvoidsetDatas(Listdatas){ this.datas=datas; } publicintgetOffset(){ returnoffset; } publicvoidsetOffset(intoffset){ this.offset=offset; } publicintgetPageSize(){ returnpageSize; } publicvoidsetPageSize(intpageSize){ this.pageSize=pageSize; } }上傳課題功能代碼:publicStringtoadd() { return"add"; } publicStringdoadd() { if(taskService.doAdd(task)==true) { SPageBeanspb=newSPageBean(); HttpServletRequestrequest=ServletActionContext.getRequest(); intoffset=0; if(request.getParameter("pager.offset")==null){ offset=0; }else{ offset=Integer.parseInt(request.getParameter("pager.offset")); } intmaxPageItems; if(request.getAttribute("maxPageItems")==null){ maxPageItems=5; }else{ maxPageItems=Integer.parseInt(request.getParameter("maxPageItems")); } spb.setOffset(offset); spb.setPageSize(maxPageItems); taskService.getTaskinfo(spb); ServletActionContext.getRequest().setAttribute("SPB1",spb); return"list"; } else { return"add"; } }publicbooleandoAdd(TaskInfot){ Serializableret=commonDao.add(t); returnret!=null; }管理員模塊管理員對角色管理功能:publicclassRoleActionextendsActionSupport{ privateIRoleServiceroleService; privateIRightServicerightService; privateRoleinforole; publicvoidsetRoleService(IRoleServiceroleService){ this.roleService=roleService; } publicvoidsetRightService(IRightServicerightService){ this.rightService=rightService; } publicRoleinfogetRole(){ returnrole; } publicvoidsetRole(Roleinforole){ this.role=role; } publicStringtoList() { List<Roleinfo>roles=roleService.getList(); ServletActionContext.getRequest().setAttribute("ROLES",roles); return"list"; } publicStringtoAssign() { List<Rightinfo>rights=rightService.getAllRights(); Roleinfor=roleService.getRoleWithRights(role.getRoleId()); for(Rightinforight:rights) { if(r.getRights().contains(right)) { right.setChecked("checked"); } } ServletActionContext.getRequest().setAttribute("ROLE",r); ServletActionContext.getRequest().setAttribute("RIGHTS",rights); return"assign"; } publicStringdoAssign()throwsException { HttpServletRequestrequest=ServletActionContext.getRequest(); String[]newRights=request.getParameterValues("CheckBox_Rights"); roleService.updateRoleRights(role.getRoleId(),newRights); HttpServletResponseresponse=ServletActionContext.getResponse(); response.sendRedirect("role!toAssign.action?role.roldId="+role.getRoleId()+"&message=ok"); returnnull; }}publicclassRightServiceImpl_HimplementsIRightService{ privateICommonDAOcommonDao; publicvoidsetCommonDao(ICommonDAOcommonDao){ monDao=commonDao; } publicList<Rightinfo>getAllRights(){ Stringhql="fromRightinfo"; List<Rightinfo>list=commonDao.list(hql); returnlist; } }管理員對用戶管理功能:(增、刪、改、查)publicStringdelete() { intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); booleanflag=userService.delete(uid); if(flag) { return"list1"; } else { return"list"; } } //編輯用戶 publicStringtoedit() { intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); Userinfouu=userService.detail(uid); ServletActionContext.getRequest().setAttribute("USER2",uu); return"edit"; } publicStringedit() { booleanflag=userService.update(user); if(flag) { return"list"; } else { return"edit_error"; } } publicStringdetail() { intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); Userinfouu=userService.detail(uid); ServletActionContext.getRequest().setAttribute("USER1",uu); return"detail"; } publicStringadd() { if(userService.addUser(user)==true) { List<Userinfo>user=userService.list(); ServletActionContext.getRequest().setAttribute("USERS",user); return"list"; } else { return"add"; } } publicStringtoadd() { return"add"; } publicStringdoLogin() { Userinfouu=userService.checkUser(user); if(uu!=null) { ServletActionContext.getRequest().getSession().setAttribute("USER",uu); introleId=uu.getRoleinfo().getRoleId(); Roleinfor=roleService.getRoleWithRights(roleId); StringmenuString=buildDTreeMenuString(r); ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING",menuString); return"main"; } else { return"input"; } }publicbooleanaddUser(Userinfou){ Serializableret=commonDao.add(u); returnret!=null; } publicListlist(){ Stringhql="fromUserinfo"; List<Userinfo>list=commonDao.list(hql); returnlist; } publicUserinfodetail(intuserid){ Userinfouu=null; Stringhql="fromUserinfouleftouterjoinfetchu.role
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水泥購銷合同協(xié)議
- 環(huán)保水處理項(xiàng)目合作框架協(xié)議
- 學(xué)校食堂蔬菜采購合同
- 股份制企業(yè)的合同文書規(guī)范與管理
- 蔬菜種植合作的協(xié)議書(3篇)
- 兩人合作合同
- 環(huán)保產(chǎn)業(yè)技術(shù)創(chuàng)新與應(yīng)用合同
- 公司股權(quán)分配合同協(xié)議年
- 派遣合同就業(yè)協(xié)議書
- 人才委托協(xié)議
- 2023-2024人教版小學(xué)2二年級(jí)數(shù)學(xué)下冊(全冊)教案【新教材】
- 浙江省炮制規(guī)范2015版電子版
- 小學(xué)《體育與健康》體育基礎(chǔ)理論知識(shí)
- JJG 144-2007標(biāo)準(zhǔn)測力儀
- GB/T 740-2003紙漿試樣的采取
- GB/T 7324-2010通用鋰基潤滑脂
- GB/T 5916-2020產(chǎn)蛋雞和肉雞配合飼料
- 婦產(chǎn)科急診患者院前急救
- 急性會(huì)厭炎診療常規(guī)
- 醫(yī)院內(nèi)靜脈血栓栓塞癥防治質(zhì)量評(píng)價(jià)與管理指南(2022版)
- 冷藏車的制冷原理、發(fā)展進(jìn)程及前景課件
評(píng)論
0/150
提交評(píng)論