


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.、/一前言每年毕业临近,都有大量的毕业生需要进行毕业设计,这其中的首要关节就是课题的选择,以往指导老师都是采用人工手写方式给学生们提供相关的课题供学生选择,如果指导老师带领的学生比较多,或者是当年毕业的学生比较多,这样就容易造成学生的课题选择很混乱,指导教师难于统计学生的课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计、实时分配课题的一个管理平台来帮助学生、指导老师。此系统的开发,主要的目的是使老师能更好的管理课程设计,也能使学生能更好的把自己想要选的课程正确无误的选出来。使处在选课时期的学生能有条不紊的进行。1. 系统的需求分析2.1功能需求毕业设计选题管理系统功能要求
2、:1. 毕业设计题目维护和查询:毕业设计题目的添加、修改;按照项目类型、名称、编号等查询;毕业设计选题查询、登记。2. 指导教师信息维护和查询:指导教师信息的添加、修改、删除,查询;3. 毕业生选题管理:学生选题登记;选题情况查询;4. 毕业生信息的维护和查询。根据以上各功能模块需求将系统的功能细化为以下几点:(1)前台学生选题学生网上选题:学生登录管理系统进行选题(2)前台教师出题教师网上出题:教师进入毕业选题出题。教师管理出题:教师进入系统后对毕业设计题目进行修改和删除。选题确认:学生选好题目后,教师可以确认该题由选择该题的学生做。(3)后台管理出题及选题情况用户管理模块:管理员可以对用户
3、进行用户管理,对已存在的用户进行修改,查看等。角色管理模块:管理员可以对用户的角色进行管理,可以给用户分配角色,对角色分配权限。2.2 开发环境需求操作系统:window7或更高版本因为毕业设计课题管理系统针对的用户是学生和教师,学生和教师普遍使用windows操作系统,所以选着windows7或更高版本的操作系统web服务器:apache-tomcat6apache-tomcat6是开源的免费的web服务器,节省开发成本数据库:MySQLMySQL是一款免费的数据库,节省成本开发工具:myeclipse8.5myeclipse8.5功能强大的JavaEE开发工具,该管理系统选用JavaEE开
4、发。2. 系统设计3.1基本设计概念和处理流程本系统采用结构化分析,设计顺序为自顶向下,层层逐步细化。图1软件功能设计图2数据库设计321E-R图322数据库表用户表(user)字段类型备注useridVarchar(20)primarykey用户IDPwdvarchar(32)用户密码roleIdInt外键tnameVarchar(20)姓名sexVarchar(5)性别AgeInt年龄表1课题表(task)表2字段类型备注taskIdIntprimarykey课题IDtasknamevarchar(20)课题名sflagint状态(是否被选)taskTextvarchar(50)课题内容选
5、择课题(chosetask)字段类型备注ctIdintprimarykey学生选课题iduIdvarchar(10)外键taskIdInt课题ID表3上传课题(puttask)表4字段类型备注ptIdintprimarykey教师上传课题iduIdvarchar(10)外键taskIdInt课题ID角色表(roleinfo)字段类型备注roleIdIntprimarykey角色IDrolenamevarchar(10)角色名表5权限表(rightinfo)表6字段类型备注rightCodevarchar(20)primarykey权限rightParentCodevarchar(30)父权限r
6、ightTypevarchar(20)rightTextvarchar(50)RightUrlvarchar(30)url地址RightTipvarchar(50)角色权限表(roleright)rr_idIntprimarykey主键rr_roleidInt夕卜键role表rr_rightCodevarchar(20)夕卜键rightinfo表表74.典型功能模块的详细设计和实现过程用户模块登录功能代码:publicStringdoLogin()Userinfouu=userService.checkUser(user);if(uu!=null)ServletActionContext.ge
7、tRequest().getSession().setAttribute("USER"uu);introleld=uu.getRoleinfo().getRoleld();Roleinfor=roleService.getRoleWithRights(roleld);StringmenuString=buildDTreeMenuString(r);ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING"menuString);return"main&quo
8、t;elsereturn"input"publicUserinfocheckUser(Userinfou)Userinfouu=null;Stringhql="fromUserinfowhereuserid=?andpwd=?"Objectargs=newObjectu.getUserid(),u.getPwd();List<Userinfo>list=commonDao.list(hql,args);if(list!=null&&list.size()>0)uu=list.get(0);returnuu;publicL
9、istlist(Stringhql,Objectargs)returnlist;查询信息功能代码:publicStringtoList()newSPageBean();SPageBeanspb=HttpServletRequestrequest=ServletActionContext.getRequest();intoffset=0;if(request.getParameter(offset=0;else"pager.offset")=null)offset=Integer.parseInt(request.getParameter("pager.offset
10、"intmaxPageItems;if(request.getAttribute("maxPageltems")=);null)maxPageItems=5;Integer.elsemaxPageItems=parseInt(request.getParameter("maxPageItems");spb.setOffset(offset);"SPB",spb);spb.setPageSize(maxPageltems);infoService.getList(spb);request.setAttribute(public
11、return"list"voidgetList(SPageBeanspb)Stringhql="fromUserinfo"commonDao.listByPage(hql,spb);publicvoidfinalfinallistByPage(Stringhql,SPageBeanspb)Stringhql1=hql;SPageBeanspb仁spb;if(hql!=null)inttotal=(Integer)HibernateCallback()this.getHibernateTemplate().execute(newpublicObjectdo
12、lnHibernate(Sessionsess)HibernateException.throwsSQLExceptionStringqString=if(hql1.toLowerCase().indexOf(III!"select")!=-1));intidx=hql1.toLowerCase().indexOf("from"qString="selectcount(*)"+hql1.substring(idx,hql1.length();elseqString="selectcount(*)"+hql1;Que
13、rycQuery=sess.createQuery(qString);cQuery.setCacheable(true);longo=(Long)cQuery.uniqueResult();intii=(int)o;returnii;);newnewspb.setTotal(total);Listdata=(List)this.getHibernateTemplate().execute(HibernateCallback()publicObjectdolnHibernate(Sessionsess)throwsHibernateException,SQLExceptionQueryquery
14、=sess.createQuery(hqll);query.setFirstResult(spb1.getOffset();query.setMaxResults(spb1.getPageSize();returnquery.list(););spb.setDatas(data);publicclassSPageBeanprivateintoffsetprivateintpageSizeprivateinttotal;privateListdataspublicintgetTotal()returntotalpublicvoidsetTotal(inttotal)this.total=tota
15、l;publicListgetDatas()returndatas;publicvoidsetDatas(Listdatas)this.datas=datas;publicintgetOffset()returnoffset;publicvoidsetOffset(intoffset)this.offset=offset;publicintgetPageSize()returnpageSize;publicvoidsetPageSize(intpageSize)this.pageSize=pageSize;上传课题功能代码:publicStringtoadd()return"add&
16、quot;publicStringdoadd()if(taskService.doAdd(task)=true)SPageBeanspb=newSPageBean();HttpServletRequestrequest=ServletActionContext.getRequest();intoffset=0;"pager.offset")=nullif(request.getParameter(offset=0;elseoffset=Integer.parseInt(request.getParameter(intmaxPageItems;=null)maxPageIte
17、ms=5;elsemaxPageItems=Integer.parseInt(request.getParameter(spb.setOffset(offset);spb.setPageSize(maxPageltems);taskService.getTaskinfo(spb);"pager.offset");if(request.getAttribute("maxPageItems");"maxPageItems")"SPB1",spb);ServletActionContext.getRequest().se
18、tAttribute(return"list"elsereturn"add"publicbooleandoAdd(Tasklnfot)Serializableret=commonDao.add(t);returnret!=null;管理员模块管理员对角色管理功能:publicclassRoleActionprivateIRoleServiceprivateIRightServiceextendsActionSupportroleService;rightService;privateRoleinforolepublicvoidsetRoleService
19、(IRoleServiceroleService)this.roleService=roleService;publicvoidsetRightService(IRightServicerightService)this.rightService=rightService;publicRoleinfogetRole()returnrolepublicvoidsetRole(Roleinforole)this.role=role;publicStringtoList()"ROLES",roles);"ROLES",roles);List<Rolein
20、fo>roles=roleService.getList();ServletActionContext.getRequest().setAttribute(return"list"publicStringtoAssign().getRoleld();.getRoleld();List<Rightinfo>rights=rightService.getAllRights();Roleinfor=roleService.getRoleWithRights(rolefor(Rightinforight:rights)if(r.getRights().contai
21、ns(right)right.setChecked("checked");ServletACtiOnConteXt.getReqUest()-setAttribute("ROLE",r);ServletActionContext.getRequest().setAttribute("RIGHTS",rights);return"assign"publicStringdoAssign()throwsExceptionHttpServletRequestrequest=ServletActionContext.getR
22、equest();StringnewRights=request.getParameterValues("CheckBox_Rights");roleService.updateRoleRights(role.getRoleld(),newRights);HttpServletResponseresponse=ServletActionContext.getResponse();response.sendRedirect("role!toAssign.action?role.roldld="+role.getRoleId()+"&mes
23、sage=ok");returnnull;publicclassRightServiceImpl_HimplementsIRightServiceprivateICommonDAOcommonDao;publicvoidsetCommonDao(ICommonDAOcommonDao)monDao=commonDao;publicListvRightinfo>getAllRights()Stringhql="fromRightinfo"List<Rightinfo>list=commonDaoist(hql);returnlist;管理员对用户管
24、理功能:(增、删、改、查)publicStringdelete()intuid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid");booleanflag=userService.delete(uid);if(flag)return"list1"elsereturn"list"/编辑用户publicStringtoedit()intuid=Integer.parseInt(ServletActionContext.getRequest().
25、getParameter();Userinfouu=userService.detail(uid);ServletActionContext.getRequest().setAttribute("USER2",uu);return"edit"publicStringedit()booleanflag=userService.update(user);if(flag)return"list"elsereturn"edit_error"publicStringdetail()intuid=Integer.parseIn
26、t(ServletActionContext.getRequest().getParameter();Userinfouu=userService.detail(uid);ServletActionContext.getRequest().setAttribute("USER1",uu);return"detail"publicStringadd()if(userService.addUser(user)=true)List<Userinfo>user=userServiceist();ServletActionContext.getRequ
27、est().setAttribute("USERS"return"list"elsereturn"add"publicStringtoadd()"userid""userid"user);return"add"publicStringdoLogin()Userinfouu=userService.checkUser(user);if(uu!=null)ServletActionContext.getRequest().getSession().setAttribute(uu)
28、;introleld=uu.getRoleinfo().getRoleld();Roleinfor=roleService.getRoleWithRights(roleId);StringmenuString=buildDTreeMenuString(r);ServletActionContext.getRequest().getSession().setAttribute(menuString);return"main"elsereturn"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.roleObjectar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小白雪试题及答案
- 2025年山东日语一模试卷及答案
- 关于工程的整改方案(3篇)
- 工业工程本科培养方案(3篇)
- 2025年城市垃圾分类处理合作协议
- 工程项目-整体方案(3篇)
- 工程物料搬运方案模板(3篇)
- 城市电网升级改造中微电网储能技术应用报告
- 工程施工过程方案(3篇)
- 3、S24昭君互通工程临时用电专项施工方案
- 材料作文点拨课件+2025-2026学年统编版语文九年级上册
- 无线wifi安装协议书
- 中国智能驾驶商业化发展白皮书(2025):平权时代智驾商业落地的破局之路
- 小学科学新教科版二年级上册全册教案(2025秋版)
- 婚内财产协议书2025
- 2025年国家卫生健康委医药卫生科技发展研究中心招聘考试笔试试题(含答案)
- 中华医学会肺癌临床诊疗指南2025版解读
- 2025年宿州市公安机关公开招聘警务辅助人员110名笔试备考试题及答案解析
- 新课标(水平一)体育与健康《非移动性技能》大单元教学计划及配套教案(18课时)
- 【历史】2025年新版3年高考2年模拟:专题15-苏联社会主义建设
- 企业反恐怖安全风险评估报告
评论
0/150
提交评论