版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)選題管理系統(tǒng)畢業(yè)設(shè)計(jì)課題管理系統(tǒng)PAGEPAGE16前言每年畢業(yè)臨近,都有大量的畢業(yè)生需要進(jìn)行畢業(yè)設(shè)計(jì),這其中的首要關(guān)節(jié)就是課題的選擇,以往指導(dǎo)老師都是采用人工手寫(xiě)方式給學(xué)生們提供相關(guān)的課題供學(xué)生選擇,如果指導(dǎo)老師帶領(lǐng)的學(xué)生比較多,或者是當(dāng)年畢業(yè)的學(xué)生比較多,這樣就容易造成學(xué)生的課題選擇很混亂,指導(dǎo)教師難于統(tǒng)計(jì)學(xué)生的課題選擇情況等一系列問(wèn)題,基于這些傳統(tǒng)問(wèn)題,我們需要一個(gè)能夠自動(dòng)統(tǒng)計(jì)、實(shí)時(shí)分配課題的一個(gè)管理平臺(tái)來(lái)幫助學(xué)生、指導(dǎo)老師。此系統(tǒng)的開(kāi)發(fā),主要的目的是使老師能更好的管理課程設(shè)計(jì),也能使學(xué)生能更好的把自己想要選的課程正確無(wú)誤的選出來(lái)。使處在選課時(shí)期的學(xué)生能有條不紊的進(jìn)行。系統(tǒng)的需求分析2.1功能需求2.1.1畢業(yè)設(shè)計(jì)選題管理系統(tǒng)功能要求:1.畢業(yè)設(shè)計(jì)題目維護(hù)和查詢(xún):畢業(yè)設(shè)計(jì)題目的添加、修改;按照項(xiàng)目類(lèi)型、名稱(chēng)、編號(hào)等查詢(xún);畢業(yè)設(shè)計(jì)選題查詢(xún)、登記。2.指導(dǎo)教師信息維護(hù)和查詢(xún):指導(dǎo)教師信息的添加、修改、刪除,查詢(xún);3.畢業(yè)生選題管理:學(xué)生選題登記;選題情況查詢(xún);4.畢業(yè)生信息的維護(hù)和查詢(xún)。根據(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)后對(duì)畢業(yè)設(shè)計(jì)題目進(jìn)行修改和刪除。選題確認(rèn):學(xué)生選好題目后,教師可以確認(rèn)該題由選擇該題的學(xué)生做。(3)后臺(tái)管理出題及選題情況用戶(hù)管理模塊:管理員可以對(duì)用戶(hù)進(jìn)行用戶(hù)管理,對(duì)已存在的用戶(hù)進(jìn)行修改,查看等。角色管理模塊:管理員可以對(duì)用戶(hù)的角色進(jìn)行管理,可以給用戶(hù)分配角色,對(duì)角色分配權(quán)限。2.2開(kāi)發(fā)環(huán)境需求操作系統(tǒng):windowXP或更高版本因?yàn)楫厴I(yè)設(shè)計(jì)課題管理系統(tǒng)針對(duì)的用戶(hù)是學(xué)生和教師,學(xué)生和教師普遍使用windows操作系統(tǒng),所以選著windowsXP或更高版本的操作系統(tǒng)web服務(wù)器:apache-tomcat6apache-tomcat6是開(kāi)源的免費(fèi)的web服務(wù)器,節(jié)省開(kāi)發(fā)成本數(shù)據(jù)庫(kù):MySQLMySQL是一款免費(fèi)的數(shù)據(jù)庫(kù),節(jié)省成本開(kāi)發(fā)工具:myeclipse8.5myeclipse8.5功能強(qiáng)大的JavaEE開(kāi)發(fā)工具,該管理系統(tǒng)選用JavaEE開(kāi)發(fā)。系統(tǒng)設(shè)計(jì)3.1基本設(shè)計(jì)概念和處理流程本系統(tǒng)采用結(jié)構(gòu)化分析,設(shè)計(jì)順序?yàn)樽皂斚蛳拢瑢訉又鸩郊?xì)化。圖13.2軟件功能設(shè)計(jì)圖3圖43.2.2數(shù)據(jù)庫(kù)表用戶(hù)表(user)字段類(lèi)型備注useridVarchar(20)primarykey用戶(hù)IDPwdvarchar(32)用戶(hù)密碼roleIdInt外鍵tnameVarchar(20)姓名sexVarchar(5)性別AgeInt年齡表1課題表(task)字段類(lèi)型備注taskIdIntprimarykey課題IDtasknamevarchar(20)課題名sflagint狀態(tài)(是否被選)taskTextvarchar(50)課題內(nèi)容表2選擇課題(chosetask)字段類(lèi)型備注ctIdintprimarykey學(xué)生選課題iduIdvarchar(10)外鍵taskIdInt課題ID表3上傳課題(puttask)字段類(lèi)型備注ptIdintprimarykey教師上傳課題iduIdvarchar(10)外鍵taskIdInt課題ID表4角色表(roleinfo)字段類(lèi)型備注roleIdIntprimarykey角色I(xiàn)Drolenamevarchar(10)角色名表5權(quán)限表(rightinfo)字段類(lèi)型備注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)過(guò)程用戶(hù)模塊登錄功能代碼: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; }查詢(xún)信息功能代碼: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; }管理員模塊管理員對(duì)角色管理功能: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; } }管理員對(duì)用戶(hù)管理功能:(增、刪、改、查)publicStringdelete() { intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); booleanflag=userService.delete(uid); if(flag) { return"list1"; } else { return"list"; } } //編輯用戶(hù) 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度能源產(chǎn)業(yè)合作協(xié)議書(shū)
- 《保鮮濕面品質(zhì)的研究》
- 《呼倫貝爾市飼草產(chǎn)業(yè)發(fā)展問(wèn)題研究》
- 《鉻污染地下水對(duì)當(dāng)?shù)鼐用窠】涤绊懙恼{(diào)查研究》
- 小學(xué)德育課堂的新技術(shù)與新工具
- 2025年度礦產(chǎn)資源現(xiàn)貨即期采礦合同3篇
- 商業(yè)策略的邏輯構(gòu)建與表達(dá)方式
- 2024年跨境集裝箱運(yùn)輸合作協(xié)議
- 《科學(xué)發(fā)展觀視閾下我國(guó)工業(yè)城市生態(tài)文化建設(shè)研究》
- 《海南YIC公司競(jìng)爭(zhēng)力提升策略研究》
- 微波治療技術(shù)的臨床應(yīng)用指南
- 安徽省合肥市廬陽(yáng)區(qū)部分學(xué)校2023-2024學(xué)年八年級(jí)上學(xué)期期末考試英語(yǔ)試題(含答案)
- JTG 3441-2024公路工程無(wú)機(jī)結(jié)合料穩(wěn)定材料試驗(yàn)規(guī)程
- 羊肉銷(xiāo)售人員工作匯報(bào)
- 律所標(biāo)書(shū)模板
- 安徽省合肥市包河區(qū)四十八中學(xué)2023-2024學(xué)年數(shù)學(xué)七年級(jí)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 美術(shù)概論-課件
- 危險(xiǎn)化學(xué)品安全監(jiān)管執(zhí)法培訓(xùn)課件
- 保潔供方管控要點(diǎn)
- 空氣源熱泵冷暖空調(diào)、熱水項(xiàng)目施工方案
- 《行政組織學(xué)》期末復(fù)習(xí)指導(dǎo)
評(píng)論
0/150
提交評(píng)論