畢業(yè)設(shè)計(jì)選題管理系統(tǒng)_第1頁(yè)
畢業(yè)設(shè)計(jì)選題管理系統(tǒng)_第2頁(yè)
畢業(yè)設(shè)計(jì)選題管理系統(tǒng)_第3頁(yè)
畢業(yè)設(shè)計(jì)選題管理系統(tǒng)_第4頁(yè)
畢業(yè)設(shè)計(jì)選題管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. 前言每年畢業(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)行。2. 系統(tǒng)的需求分析2.1 功能需求2.

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)后對(duì)畢業(yè)設(shè)計(jì)題目進(jìn)行修改和刪除。 選題確認(rèn):學(xué)生選好題目后,教師可以確認(rèn)該題由選擇該題的學(xué)生做。(3)后臺(tái)管

3、理出題及選題情況 用戶管理模塊:管理員可以對(duì)用戶進(jìn)行用戶管理,對(duì)已存在的用戶進(jìn)行修改,查看等。 角色管理模塊:管理員可以對(duì)用戶的角色進(jìn)行管理,可以給用戶分配角色,對(duì)角色分配權(quán)限。2.2 開發(fā)環(huán)境需求操作系統(tǒng): window7 或更高版本 因?yàn)楫厴I(yè)設(shè)計(jì)課題管理系統(tǒng)針對(duì)的用戶是學(xué)生和教師, 學(xué)生和教師普遍使用 windows 操作系統(tǒng), 所 以選著 windows7 或更高版本的操作系統(tǒng) web 服務(wù)器: apache-tomcat6apache-tomcat6是開源的免費(fèi)的 web服務(wù)器,節(jié)省開發(fā)成本數(shù)據(jù)庫(kù): MySQLMySQL 是一款免費(fèi)的數(shù)據(jù)庫(kù),節(jié)省成本開發(fā)工具: myeclipse8.5

4、myeclipse8.5功能強(qiáng)大的JavaEE開發(fā)工具,該管理系統(tǒng)選用JavaEE開發(fā)。3. 系統(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ù)庫(kù)設(shè)計(jì)3.2.1 E-R 圖圖3圖43.2.2數(shù)據(jù)庫(kù)表用戶表(user)字段類型備注useridVarchar (20) primary key用戶IDPwdvarchar(32)用戶密碼roleIdInt外鍵tn ameVarchar(20)姓名sexVarchar(5)性別AgeInt年齡表1課題表(task)字段類型備注taskIdInt primary key課題ID

5、task namevarchar(20)課題名sflagint狀態(tài)(是否被選)taskTextvarchar(50)課題內(nèi)容表2選擇課題(chosetask)字段類型備注ctIdint primary key學(xué)生選課題iduIdvarchar(10)外鍵taskIdInt課題ID表3上傳課題(puttask)字段類型備注ptIdint primary key教師上傳課題iduIdvarchar(10)外鍵taskIdInt課題ID表4角色表(roleinfo)字段類型備注roleIdInt primary key角色I(xiàn)Drole namevarchar(10)角色名表5權(quán)限表(rightinf

6、o)字段類型備注rightCodevarchar(20)primary key權(quán)限r(nóng)ightPare ntCodevarchar(30)父權(quán)限r(nóng)ightTypevarchar(20)rightTextvarchar(50)RightUrlvarchar(30)url地址RightTipvarchar(50)表6角色權(quán)限表(roleright )rr idInt primary key主鍵rr roleidInt外鍵role表rr rightCodevarchar(20)外鍵rightinfo表表74. 典型功能模塊的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)過程用戶模塊登錄功能代碼:publicStr ing doLog

7、i n()Userinfo uu= userService .checkUser( user );if (uu!= null )uu);int roleld=uu.getRole in fo().getRoleld();Rolei nfo r= roleService .getRoleWithRights(roleld);Stri ng men uStri ng=buildDTreeMe nuStr in g(r);MENU_STRINGServletActio nCon text.getRequest().getSessio n().setAttribute(men uStri ng);re

8、turnmai n;elseretur n in put ;public Useri nfo checkUser(User info u) Useri nfo uu=n ull;String hql= from Useri nfo where userid=? and pwd=?Object args =new Objectu.getUserid(),u.getPwd();List list =com mon Dao .list(hql, args);if (list!= null & list.size()0)uu = list.get(0);return uu;public List li

9、st(Stri ng hql, Object args) List list=this .getHibernateTemplate().fin d(hql,arqs);return list;查詢信息功能代碼:publicStri ng toList()SPageBea n spb =new SPageBea n();HttpServletRequest request = ServletActio nCon text.getRequest(); int offset = 0;if (request.getParameter( offset = 0; else offset = In tege

10、 maxPageltems; maxPageltems = 5; else maxPageltems =pager.offset)=n ull ) parse Int(request.getParameter(if (request.getAttribute(pager.offset);maxPageltems ) = null ) spb.setOffset(offset); spb.setPageSize(maxPageltems);in foService.getList(spb);request.setAttribute(SPB , spb);return list ;pub

11、lic void getList(SPageBea n spb) String hql= from Useri nfo com mon DaoistByPage(hql, spb);publicvoid listByPage(Stri ng hql, SPageBean spb) final Stri ng hql1=hql;finalSPageBea n spb1=spb;if (hql!= null )newint total=(I nteger)this .getHibern ateTemplate().execute(Hiber nateCallback() publicObject

12、dolnH iber nate(Sessi on sess)throwsHiber nateExceptio n, SQLException Stri ng qStri ng=”;if (hql1.toLowerCase().indexOf(select )!=-1)int idx=hql1.toLowerCase().i ndexOf(from);qStri ng=select cou nt(*)+hql1.substri ng(idx,hql1.le ngth();else qStri ng=select cou nt(*) +hql1;Query cQuery=sess.createQu

13、ery(qStri ng);cQuery.setCacheable(true );long o= (Lon g)cQuery.u ni queResult();int ii=( int )o;return ii;);spb.setTotal(total);List data=(List)this .getHibern ateTemplate().execute(newHiber nateCallback() publicObject dolnH iber nate(Sessi on sess)throwsHiber nateExcepti on,SQLException Query query

14、= sess.createQuery(hqll);query.setFirstResult(spb1.getOffset();query.setMaxResults(spb1.getPageSize(); return query.list(););spb.setDatas(data);public classSPageBea n privateintoffsetprivateintpageSizeprivateinttotal ;privateListdataspublicintgetTotal() return totalpublic void setTotal( int total) t

15、his . total = total;public List getDatas() return datas ;public void setDatas(List datas) this . datas = datas;public int getOffset() return offset ;public void setOffset( int offset) this . offset = offset;public int getPageSize() retur npageSize ;public void setPageSize( int pageSize) this . pageS

16、ize = pageSize;上傳課題功能代碼:publicStr ing toadd()return add;public String doadd()if (taskService .doAdd( task )= true )SPageBea n spb = new SPageBea n();HttpServletRequest request = ServletActio nCon text.getRequest();int offset = 0;null ) if (request.getParameter(offset = 0; else offset = In

17、maxPageItems;maxPageItems = 5; else maxPageItems =pager.offset) = n ullparse Int (request.getParameter(if (request.getAttribute()pager.offset);maxPageItems)=maxPageItems );In teger.parse Int (request.getParameter(spb.setOffset(offset); spb.setPageSize(maxPageltems); taskService.getTask in fo(spb);SP

18、B1 , spb);ServletActio nCon text.getRequest().setAttribute( return list ;elsereturnaddpublicboolea ndoAdd(Tasklnfo t) Serializable ret =com mon Dao .add(t);return ret!= n ull ;管理員模塊管理員對(duì)角色管理功能:publicclassRoleActio nexte ndsActi on SupportprivateIRoleServiceroleService;privateIRightServicerightService

19、;privateRolei nforole ;publicvoid setRoleService(IRoleService roleService) this.roleService=roleService;public void setRightService(IRightService rightService) this . rightService = rightService;public Rolei nfo getRole() return role ;public void setRole(Role info role) this . role = role;public Str

20、i ng toList()ListvRole info roles=roleService .getList();ROLES , roles);ServletActi onCon text.getRequest().setAttribute( return listpublic String toAssig n()List rights=roleServicerightService.getAllRights();Rolei nfo r =.getRoleWithRights(role.getRoleld();for(Rightinfo right:rights)if (r.getRights

21、().con tain s(right) right.setChecked(checked);ServletActio nCon text.getRequest().setAttribute(ServletActio nCon text.getRequest().setAttribute(ROLE , r);RIGHTS ,rights);retur nassig npublic String doAssig n()throws Excepti onHttpServletRequest request=ServletActionStri ng n ewRights=request.getPar

22、ameterValues(CheckBox_Rights );roleService .updateRoleRights(role .getRoleld(), newRights);HttpServletResp onse response=ServletActioresp on se.se ndRedirect(role!toAssig n. actio n?role.roldld=+ role .getRoleId()+&message=ok);return n ull ;public class RightServicelmpl_Himpleme ntsIRightServicepriv

23、ate ICom monDAOcom mon Dao ;public void setCom mon Dao(ICom monDAO com mon Dao) this . com mon Dao = com mon Dao;publicList getAllRights() String hql= from Righti nfo;ListvRighti nfo list =com mon Daoist(hql);return list;管理員對(duì)用戶管理功能:(增、刪、改、查)publicStr ing uid =In teger.parse Int(ServletAct

24、ionCon text.getRequest().getParameter(userid );boolea nflag = userService .delete(uid);if (flag)return list1 ;elsereturn list ;/編輯用戶public String toedit()intuid=In teger.parse Int(ServletActionCon text.getRequest().qetParameter(userid );Useri nfo uu =userService .detail(uid);ServletActionContext.get

25、Request().setAttribute(USER2 , uu);return edit ;public Stri ng edit()booleanflag = userService .update( user );if (flag)return list ;elsereturn edit_error ;public String detail()intuid=In teger.parse Int(ServletActi onCon text.getRequest().getParameter();Useri nfo uu =userService .detail(uid);Servle

26、tActi onCon text.getRequest().setAttribute(return detail ;public String add()if ( userService .addUser( user )= true )List user =userService .list();ServletActio nCon text.getRequest().setAttribute( return list ;elsereturn add;public String toadd()return add;public String doLogi n()Userinfo uu=userS

27、ervice .checkUser( user );if (uu!= null )ServletActio nCon text.getRequest().getSessi on( ).setAttribute(uu);int roleId=uu.getRole in fo().getRoleId();Rolei nfo r=roleService .getRoleWithRights(roleId);Stri ng men uStri ng=buildDTreeMe nuStr in g(r);ServletActionCon text.getRequest().getSessio n( ).

28、setAttribute( men uStri ng);return mai n;elseretur nin put;public boolea naddUser(Useri nfo u) Serializable ret =com mon Dao .add(u);userid )USER1 , uu);USERS , user);USERMENU_STRINGreturn ret!= n ull ;public List list() String hql =from Userinfo ;List list = commonDao .list(hql); return list;public Userinfo detail( int userid) Userinfo uu=null ;String hql= from Userinfo u left outer join fetch Object args= new

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論