版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. 前言每年畢業(yè)臨近,都有大量的畢業(yè)生需要進(jìn)行畢業(yè)設(shè)計,這其中的首要關(guān)節(jié)就是課題的選擇,以往指導(dǎo)老師都是采用人工手寫方式給學(xué)生們提供相關(guān)的課題供學(xué)生選擇,如果指導(dǎo)老師帶領(lǐng)的學(xué)生比較多,或者是當(dāng)年畢業(yè)的學(xué)生比較多,這樣就容易造成學(xué)生的課題選擇很混亂, 指導(dǎo)教師難于統(tǒng)計學(xué)生的課題選擇情況等一系列問題,基于這些傳統(tǒng)問題,我們需要一個能夠自動統(tǒng)計、實時分配課題的一個管理平臺來幫助學(xué)生、指導(dǎo)老師。此系統(tǒng)的開發(fā), 主要的目的是使老師能更好的管理課程設(shè)計,也能使學(xué)生能更好的把自己想要選的課程正確無誤的選出來。使處在選課時期的學(xué)生能有條不紊的進(jìn)行。2. 系統(tǒng)的需求分析2.1 功能需求畢業(yè)設(shè)計選題管理系統(tǒng)功能
2、要求:1. 畢業(yè)設(shè)計題目維護(hù)和查詢:畢業(yè)設(shè)計題目的添加、修改;按照項目類型、名稱、編號等查詢;畢業(yè)設(shè)計選題查詢、登記。2. 指導(dǎo)教師信息維護(hù)和查詢:指導(dǎo)教師信息的添加、修改、刪除,查詢;3. 畢業(yè)生選題管理:學(xué)生選題登記;選題情況查詢;4. 畢業(yè)生信息的維護(hù)和查詢。根據(jù)以上各功能模塊需求將系統(tǒng)的功能細(xì)化為以下幾點:( 1)前臺學(xué)生選題學(xué)生網(wǎng)上選題:學(xué)生登錄管理系統(tǒng)進(jìn)行選題( 2)前臺教師出題教師網(wǎng)上出題:教師進(jìn)入畢業(yè)選題出題。教師管理出題:教師進(jìn)入系統(tǒng)后對畢業(yè)設(shè)計題目進(jìn)行修改和刪除。選題確認(rèn):學(xué)生選好題目后,教師可以確認(rèn)該題由選擇該題的學(xué)生做。( 3)后臺管理出題及選題情況用戶管理模塊:管理員
3、可以對用戶進(jìn)行用戶管理,對已存在的用戶進(jìn)行修改,查看等。角色管理模塊: 管理員可以對用戶的角色進(jìn)行管理, 可以給用戶分配角色, 對角色分配權(quán)限。2.2 開發(fā)環(huán)境需求操作系統(tǒng): window7 或更高版本因為畢業(yè)設(shè)計課題管理系統(tǒng)針對的用戶是學(xué)生和教師,學(xué)生和教師普遍使用操作系統(tǒng),所以選著windows7 或更高版本的操作系統(tǒng)web服務(wù)器: apache-tomcat6windowsapache-tomcat6 是開源的免費的 web 服務(wù)器,節(jié)省開發(fā)成本數(shù)據(jù)庫: MySQLMySQL 是一款免費的數(shù)據(jù)庫,節(jié)省成本開發(fā)工具: myeclipse8.5myeclipse8.5 功能強大的JavaEE
4、 開發(fā)工具,該管理系統(tǒng)選用JavaEE 開發(fā)。3. 系統(tǒng)設(shè)計3.1 基本設(shè)計概念和處理流程本系統(tǒng)采用結(jié)構(gòu)化分析,設(shè)計順序為自頂向下,層層逐步細(xì)化。圖 13.2 軟件功能設(shè)計選題管理用戶登錄指指導(dǎo)學(xué)教導(dǎo)老學(xué)生師老師生信信師上選息息選傳題管管學(xué)題理理生目圖 23.2 數(shù)據(jù)庫設(shè)計圖年齡姓名roleId性別用戶用戶 Id密碼1選擇1Flag課程 ID1擁有n課程課題內(nèi)容課題名圖 3角色 ID角色名角色1擁有n功能功能編碼功能指標(biāo)父級功能編碼功能地址功能類型功能文本說明圖 4數(shù)據(jù)庫表用戶表 (user)字段類型備注useridVarchar(20) primary key用戶 IDPwdvarchar(
5、32)用戶密碼roleIdInt外鍵tnameVarchar(20)姓名sexVarchar(5)性別AgeInt年齡表 1課題表 (task)字段類型備注taskIdInt primary key課題 IDtasknamevarchar(20)課題名sflagint狀態(tài)(是否被選)taskTextvarchar(50)課題內(nèi)容表 2選擇課題 (chosetask)字段類型備注ctIdint primary key學(xué)生選課題 iduIdvarchar(10)外鍵taskIdInt課題 ID表 3上傳課題 (puttask)字段類型備注ptIdint primary key教師上傳課題 iduI
6、dvarchar(10)外鍵taskIdInt課題 ID表 4角色表 (roleinfo)字段類型備注roleIdIntprimary key角色 IDrolenamevarchar(10)角色名表 5權(quán)限表 (rightinfo)字段類型備注rightCodevarchar(20)primary key權(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_idIntprim
7、ary key主鍵rr_roleidInt外鍵 role 表rr_rightCodevarchar(20)外鍵 rightinfo 表表 74. 典型功能模塊的詳細(xì)設(shè)計和實現(xiàn)過程用戶模塊登錄功能代碼:publicString doLogin()Userinfo uu=userService.checkUser(user);if(uu!=null)ServletActionContext.getRequest().getSession().setAttribute("USER" , uu);introleId=uu.getRoleinfo().getRoleId();Role
8、info r=roleService.getRoleWithRights(roleId);String menuString=buildDTreeMenuString(r);ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING", menuString);return"main"elsereturn"input"publicUserinfo checkUser(Userinfo u) Userinfo uu=null;String hql=&q
9、uot;from Userinfo where userid=? and pwd=?"Object args =new Objectu.getUserid(),u.getPwd();List<Userinfo> list =commonDao .list(hql, args);if(list!=null&& list.size()>0);uu = list.get(0);returnuu;publicList list(String hql, Object args) List list=this.getHibernateTemplate().fin
10、d(hql,args);returnlist;查詢信息功能代碼:publicString toList()SPageBean spb =new SPageBean();HttpServletRequestrequest= ServletActionContext.getRequest();intoffset = 0;if(request.getParameter("pager.offset") =null ) offset = 0;elseoffset =Integer.parseInt(request.getParameter("pager.offset&quo
11、t;);intmaxPageItems;if (request.getAttribute("maxPageItems")= null) maxPageItems = 5;elsemaxPageItems =Integer.parseInt(request.getParameter("maxPageItems");spb.setOffset(offset);spb.setPageSize(maxPageItems);infoService.getList(spb);request.setAttribute("SPB", spb);ret
12、urn"list"publicvoid getList(SPageBean spb) String hql="from Userinfo"commonDao .listByPage(hql, spb);publicvoidlistByPage(String hql, SPageBean spb) finalString hql1=hql;finalSPageBean spb1=spb;if(hql!=null)inttotal=(Integer)this.getHibernateTemplate().execute(newHibernateCallbac
13、k() publicObject doInHibernate(Session sess)throwsHibernateException,SQLException String qString="" ;if(hql1.toLowerCase().indexOf("select ")!=-1)intidx=hql1.toLowerCase().indexOf(qString="select count(*)" +hql1.substring(idx,hql1.length();elseqString="select count
14、(*) "+hql1;"from");cQuery.setCacheable(true);longo= (Long)cQuery.uniqueResult();intii=(int)o;returnii;);spb.setTotal(total);List data=(List)this.getHibernateTemplate().execute(newHibernateCallback() publicObject doInHibernate(Session sess)throwsHibernateException,SQLException Query qu
15、ery= sess.createQuery(hql1);query.setFirstResult(spb1.getOffset();query.setMaxResults(spb1.getPageSize();returnquery.list(););spb.setDatas(data);publicclass SPageBean privateintoffset;privateintpageSize;privateinttotal;privateListdatas ;publicintgetTotal() returntotal;publicvoidsetTotal(int total) t
16、his. total= total;publicList getDatas() returndatas;publicvoidsetDatas(List datas) this. datas= datas;publicintgetOffset() returnoffset;publicvoidsetOffset(intoffset) this. offset= offset;publicintgetPageSize() returnpageSize;publicthisvoidsetPageSize(int. pageSize= pageSize;pageSize) 上傳課題功能代碼:publi
17、cString toadd()return"add"publicString doadd()if( taskService.doAdd(task)=true)SPageBean spb =new SPageBean();HttpServletRequest request =ServletActionContext.getRequest();intoffset = 0;if(request.getParameter("pager.offset"offset = 0;) =null) else offset =Integer.parseInt(reques
18、t.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);Servle
19、tActionContext.getRequest().setAttribute();"SPB1",spb);return"list"elsereturn"add"publicbooleandoAdd(TaskInfo t) Serializable ret =commonDao .add(t);returnret!=null;管理員模塊管理員對角色管理功能:publicclassRoleActionextendsActionSupportprivateIRoleServiceroleService;privateIRightServ
20、icerightService;privateRoleinforole ;publicvoid setRoleService(IRoleService roleService) this. roleService= roleService;publicthisvoidsetRightService(IRightService rightService) . rightService= rightService;publicRoleinfo getRole() returnrole;publicthisvoid. rolesetRole(Roleinfo role) = role;publicS
21、tring toList()List<Roleinfo> roles=roleService.getList();ServletActionContext.getRequest().setAttribute("ROLES" ,roles);return"list"publicString toAssign()List<Rightinfo> rights= Roleinfo r = roleServicerightService .getAllRights(); .getRoleWithRights( role.getRoleId(
22、);for(Rightinfo right:rights)if(r.getRights().contains(right)right.setChecked("checked");ServletActionContext.getRequest().setAttribute("ROLE" , r);ServletActionContext.getRequest().setAttribute("RIGHTS",rights);return"assign"publicString doAssign()throwsExcep
23、tionHttpServletRequest request=ServletActionContext.getRequest();StringnewRights=request.getParameterValues("CheckBox_Rights");roleService.updateRoleRights(role.getRoleId(),newRights);HttpServletResponseresponse=ServletActionContext.getResponse();response.sendRedirect("role!toAssign.a
24、ction?role.roldId="+ role.getRoleId()+"&message=ok");returnnull;publicclassRightServiceImpl_HimplementsIRightServiceprivateICommonDAOcommonDao ;publicthisvoidsetCommonDao(ICommonDAO commonDao) . commonDao= commonDao;publicList<Rightinfo> getAllRights() String hql="from
25、Rightinfo"List<Rightinfo> list =returnlist;commonDao .list(hql);管理員對用戶管理功能: (增、刪、改、查)publicString delete()I uid = parseInt(ServletActionContext.getRequest().getParameter("userid");booleanflag =userService.delete(uid);if(flag)return"list1"elsereturn"list&
26、quot;/ 編輯用戶publicString toedit()intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid");Userinfo uu =userService.detail(uid);ServletActionContext.getRequest().setAttribute("USER2", uu);return"edit"publicString edit()booleanflag =userService.upda
27、te(user);if(flag)return"list"elsereturn"edit_error"publicString detail()intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter(userid");Userinfo uu =userService.detail(uid);ServletActionContext.getRequest().setAttribute(return"detail""USER1&quo
28、t;, uu);"publicString add()if( userService.addUser(user)=true)List<Userinfo> user =userService.list();ServletActionContext.getRequest().setAttribute("USERS",user);return"list"elsereturn"add"publicString toadd()return"add"publicString doLogin()Userin
29、fo uu=userService.checkUser(user);if(uu!=null)ServletActionContext.getRequest().getSession().setAttribute( " , uu);"USERintroleId=uu.getRoleinfo().getRoleId();Roleinfo r=roleService.getRoleWithRights(roleId);String menuString=buildDTreeMenuString(r);ServletActionContext.getRequest().getSes
30、sion().setAttribute(_STRING", menuString);return"main""MENUelsereturn"input"publicbooleanaddUser(Userinfo u) Serializable ret =commonDao .add(u);returnret!=null;publicList list() String hql =List<Userinfo> list =returnlist;"from Userinfo"commonDao .list(hql);publicUserinfo detail(intuserid) Userinfo uu=null;String hql="from Userinfo u left ou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復(fù)習(xí)第三部分區(qū)域可持續(xù)發(fā)展-重在綜合第三章區(qū)域自然資源的開發(fā)利用第31講流域的綜合開發(fā)學(xué)案新人教版
- DB42-T 2353-2024 公路隧道巖溶水文地質(zhì)勘察規(guī)程
- 集體倉庫租賃合同(5篇)
- 二零二五年度餐廳后廚裝修設(shè)計與施工合同2篇
- 二零二五年度車輛質(zhì)押車輛保險代理及租賃服務(wù)協(xié)議2篇
- 第8課《城鄉(xiāng)改革不斷深入》課件
- 2024年浙江金融職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 醫(yī)療行業(yè)供需現(xiàn)狀與發(fā)展戰(zhàn)略規(guī)劃
- 2024年陽泉市第二人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年河南檢察職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 廣東大灣區(qū)2024-2025學(xué)年度高一上學(xué)期期末統(tǒng)一測試英語試題(無答案)
- 《胃癌靶向治療》課件
- 2024-2025學(xué)年遼寧省沈陽市高一上學(xué)期1月期末質(zhì)量監(jiān)測數(shù)學(xué)試題(含解析)
- 《少兒主持人》課件
- 北京市朝陽區(qū)2024-2025學(xué)年高二上學(xué)期期末考試生物試卷(含答案)
- 2025年西藏拉薩市柳梧新區(qū)城市投資建設(shè)發(fā)展集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年部編版一年級語文上冊期末復(fù)習(xí)計劃
- 儲罐維護(hù)檢修施工方案
- 地理2024-2025學(xué)年人教版七年級上冊地理知識點
- 2024 消化內(nèi)科專業(yè) 藥物臨床試驗GCP管理制度操作規(guī)程設(shè)計規(guī)范應(yīng)急預(yù)案
- 2024-2030年中國電子郵箱行業(yè)市場運營模式及投資前景預(yù)測報告
評論
0/150
提交評論