优质毕业设计选题综合管理系统.doc
《优质毕业设计选题综合管理系统.doc》由会员分享,可在线阅读,更多相关《优质毕业设计选题综合管理系统.doc(23页珍藏版)》请在咨信网上搜索。
1. 序言 每十二个月毕业临近,全部有大量毕业生需要进行毕业设计,这其中首要关节就是课题选择,以往指导老师全部是采取人工手写方法给学生们提供相关课题供学生选择,假如指导老师率领学生比较多,或是当年毕业学生比较多,这么就轻易造成学生课题选择很混乱,指导老师难于统计学生课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计、实时分配课题一个管理平台来帮助学生、指导老师。 此系统开发,关键目标是使老师能愈加好管理课程设计,也能使学生能愈加好把自己想要选课程正确无误选出来。使处于选课时期学生能有条不紊进行。 2. 系统需求分析 2.1功效需求 2.1.1 毕业设计选题管理系统功效要求: 1.毕业设计题目维护和查询:毕业设计题目标添加、修改;根据项目类型、名称、编号等查询;毕业设计选题查询、登记。 2.指导老师信息维护和查询:指导老师信息添加、修改、删除,查询; 3.毕业生选题管理:学生选题登记;选题情况查询; 4.毕业生信息维护和查询。 依据以上各功效模块需求将系统功效细化为以下几点: (1)前台学生选题 学生网上选题:学生登录管理系统进行选题 (2)前台老师出题 老师网上出题:老师进入毕业选题出题。 老师管理出题:老师进入系统后对毕业设计题目进行修改和删除。 选题确定:学生选好题目后,老师能够确定该题由选择该题学生做。 (3)后台管理出题及选题情况 用户管理模块:管理员能够对用户进行用户管理,对已存在用户进行修改,查看等。 角色管理模块:管理员能够对用户角色进行管理,能够给用户分配角色,对角色分配权限。 2.2开发环境需求 操作系统:window7或更高版本 因为毕业设计课题管理系统针正确用户是学生和老师,学生和老师普遍使用windows操作系统,所以选着windows7或更高版本操作系统 web服务器:apache-tomcat6 apache-tomcat6是开源无偿web服务器,节省开发成本 数据库:MySQL MySQL是一款无偿数据库,节省成本 开发工具:myeclipse8.5 myeclipse8.5功效强大JavaEE开发工具,该管理系统选择JavaEE开发。 3. 系统设计 3.1基础设计概念和处理步骤 本系统采取结构化分析,设计次序为自顶向下,层层逐步细化。 图1 3.2软件功效设计 图2 3.2数据库设计 3.2.1 E-R图 图3 图4 3.2.2数据库表 用户表(user) 字段 类型 备注 userid Varchar(20) primary key 用户ID Pwd varchar(32) 用户密码 roleId Int 外键 tname Varchar(20) 姓名 sex Varchar(5) 性别 Age Int 年纪 表1 课题表(task) 字段 类型 备注 taskId Int primary key 课题ID taskname varchar(20) 课题名 sflag int 状态(是否被选) taskText varchar(50) 课题内容 表2 选择课题(chosetask) 字段 类型 备注 ctId int primary key 学生选课题id uId varchar(10) 外键 taskId Int 课题ID 表3 上传课题(puttask) 字段 类型 备注 ptId int primary key 老师上传课题id uId varchar(10) 外键 taskId Int 课题ID 表4 角色表(roleinfo) 字段 类型 备注 roleId Int primary key 角色ID rolename varchar(10) 角色名 表5 权限表(rightinfo) 字段 类型 备注 rightCode varchar(20)primary key 权限 rightParentCode varchar(30) 父权限 rightType varchar(20) rightText varchar(50) RightUrl varchar(30) url地址 RightTip varchar(50) 表6 角色权限表(roleright) rr_id Int primary key 主键 rr_roleid Int 外键 role表 rr_rightCode varchar(20) 外键 rightinfo表 表7 4. 经典功效模块具体设计和实现过程 用户模块 登录功效代码: public String doLogin() { Userinfo uu= userService.checkUser(user); if(uu!=null) { ServletActionContext.getRequest().getSession().setAttribute("USER", uu); int roleId=uu.getRoleinfo().getRoleId(); Roleinfo r= roleService.getRoleWithRights(roleId); String menuString=buildDTreeMenuString(r); ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING", menuString); return "main"; } else { return "input"; } } public Userinfo checkUser(Userinfo u) { Userinfo uu=null; String hql="from Userinfo where userid=? and pwd=?"; Object[] args = new Object[]{u.getUserid(),u.getPwd()}; List<Userinfo> list = commonDao.list(hql, args); if(list!=null && list.size()>0) { uu = list.get(0); } return uu; } public List list(String hql, Object[] args) { List list= this.getHibernateTemplate().find(hql,args); return list; } 查询信息功效代码: public String toList() { SPageBean spb = new SPageBean(); HttpServletRequest request = ServletActionContext.getRequest(); int offset = 0; if (request.getParameter("pager.offset") == null) { offset = 0; } else { offset = Integer.parseInt(request.getParameter("pager.offset")); } int maxPageItems; 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"; } public void getList(SPageBean spb) { String hql="from Userinfo"; commonDao.listByPage(hql, spb); } public void listByPage(String hql, SPageBean spb) { final String hql1=hql; final SPageBean spb1=spb; if(hql!=null) { int total=(Integer) this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session sess) throws HibernateException, SQLException { String qString=""; if(hql1.toLowerCase().indexOf("select ")!=-1) { int idx=hql1.toLowerCase().indexOf("from"); qString="select count(*) "+hql1.substring(idx,hql1.length()); } else{ qString="select count(*) "+hql1; } Query cQuery=sess.createQuery(qString); cQuery.setCacheable(true); long o= (Long)cQuery.uniqueResult(); int ii=(int)o; return ii; } }); spb.setTotal(total); List data=(List)this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session sess) throws HibernateException, SQLException { Query query= sess.createQuery(hql1); query.setFirstResult(spb1.getOffset()); query.setMaxResults(spb1.getPageSize()); return query.list(); } }); spb.setDatas(data); } } public class SPageBean { private int offset; private int pageSize; private int total; private List datas; public int getTotal() { return total; } public void setTotal(int total) { this.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() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } } 上传课题功效代码: public String toadd() { return "add"; } public String doadd() { if(taskService.doAdd(task)== true) { SPageBean spb = new SPageBean(); HttpServletRequest request = ServletActionContext.getRequest(); int offset = 0; if (request.getParameter("pager.offset") == null) { offset = 0; } else { offset = Integer.parseInt(request.getParameter("pager.offset")); } int maxPageItems; 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"; } } public boolean doAdd(TaskInfo t) { Serializable ret = commonDao.add(t); return ret!=null; } 管理员模块 管理员对角色管理功效: public class RoleAction extends ActionSupport{ private IRoleService roleService; private IRightService rightService; private Roleinfo role; public void setRoleService(IRoleService roleService) { this.roleService = roleService; } public void setRightService(IRightService rightService) { this.rightService = rightService; } public Roleinfo getRole() { return role; } public void setRole(Roleinfo role) { this.role = role; } public String toList() { List<Roleinfo> roles= roleService.getList(); ServletActionContext.getRequest().setAttribute("ROLES", roles); return "list"; } public String toAssign() { List<Rightinfo> rights= rightService.getAllRights(); Roleinfo r = roleService.getRoleWithRights(role.getRoleId()); for(Rightinfo right:rights) { if(r.getRights().contains(right)) { right.setChecked("checked"); } } ServletActionContext.getRequest().setAttribute("ROLE", r); ServletActionContext.getRequest().setAttribute("RIGHTS",rights); return "assign"; } public String doAssign() throws Exception { HttpServletRequest request=ServletActionContext.getRequest(); String[] newRights=request.getParameterValues("CheckBox_Rights"); roleService.updateRoleRights(role.getRoleId(),newRights); HttpServletResponse response=ServletActionContext.getResponse(); response.sendRedirect("role!toAssign.action?role.roldId="+role.getRoleId()+"&message=ok"); return null; } } public class RightServiceImpl_H implements IRightService{ private ICommonDAO commonDao; public void setCommonDao(ICommonDAO commonDao) { monDao = commonDao; } public List<Rightinfo> getAllRights() { String hql="from Rightinfo"; List<Rightinfo> list = commonDao.list(hql); return list; } } 管理员对用户管理功效:(增、删、改、查) public String delete() { int uid = Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); boolean flag = userService.delete(uid); if(flag) { return "list1"; } else { return "list"; } } //编辑用户 public String toedit() { int uid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); Userinfo uu = userService.detail(uid); ServletActionContext.getRequest().setAttribute("USER2", uu); return "edit"; } public String edit() { boolean flag = userService.update(user); if(flag) { return "list"; } else { return "edit_error"; } } public String detail() { int uid=Integer.parseInt(ServletActionContext.getRequest().getParameter("userid")); Userinfo uu = userService.detail(uid); ServletActionContext.getRequest().setAttribute("USER1", uu); return "detail"; } public String add() { if(userService.addUser(user)== true) { List<Userinfo> user = userService.list(); ServletActionContext.getRequest().setAttribute("USERS", user); return "list"; } else { return "add"; } } public String toadd() { return "add"; } public String doLogin() { Userinfo uu= userService.checkUser(user); if(uu!=null) { ServletActionContext.getRequest().getSession().setAttribute("USER", uu); int roleId=uu.getRoleinfo().getRoleId(); Roleinfo r= roleService.getRoleWithRights(roleId); String menuString=buildDTreeMenuString(r); ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING", menuString); return "main"; } else { return "input"; } } public boolean addUser(Userinfo u) { Serializable ret = commonDao.add(u); return ret!=null; } public List list() { String hql = "from Userinfo"; List<Userinfo> list = commonDao.list(hql); return list; } public Userinfo detail(int userid) { Userinfo uu=null; String hql="from Userinfo u left outer join fetch u.role where u.userid=?"; Object[] args=new Object[]{userid}; List<Userinfo> list= commonDao.list(hql, args); if(list!=null && list.size()>0) { uu=list.get(0); } return uu; } public Userinfo toedit(int userid) { Userinfo uu=null; String hql="from Userinfo u left outer join fetch u.role where u.userid=?"; Object[] args=new Object[]{userid}; List<Userinfo> list= commonDao.list(hql, args); if(list!=null && list.size()>0) { uu=list.get(0); } return uu; } public boolean update(Userinfo u) { try{ commonDao.update(u); return true; } catch(Exception ex) { return false; } } public boolean delete(int uid) { try{ Userinfo u = (Userinfo)commonDao.get(Userinfo.class,uid); u.setFlag(0); return true; } catch(Exception ex) { return false; } } 5. 软件测试及运行评价 测试步骤 (1) 主页测试 (2) 用户登录测试 (3) 用户信息管理测试 (4) 角色权限管理测试 (5) 课题上传测试 模块测试 模块 估计测试功效 输入、输出功效 造成差异原因 主页 正常显示,各个连接正常显示 一致 无 用户登陆、注册 验证用户名(ID,满足系统设定要求)和密码一致性 一致 无 用户信息管理 对用户进行增,删,改,查显示正确页面和数据 一致 无 角色权限管理 给用户分配角色权限 一致 无 课题上传 录入课题所用信息保留在数据库中 一致 无 6. 软件实习总结 经过实习,愈加深入了解掌握了开发平台配置,对编程有了深入掌握。明白了开发一个项目标工作次序。对项目标业务熟悉是开发项目标首要条件。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优质 毕业设计 选题 综合 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文