1.前言每年毕业临近,都有大量的毕业生需要进行毕业设计,这其中的首要关节就是课题的选择,以往指导老师都是采用人工手写方式给学生们提供相关的课题供学生选择,如果指导老师带领的学生比较多,或者是当年毕业的学生比较多,这样就容易造成学生的课题选择很混乱,指导教师难于统计学生的课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计、实时分配课题的一个管理平台来帮助学生、指导老师。
此系统的开发,主要的目的是使老师能更好的管理课程设计,也能使学生能更好的把自己想要选的课程正确无误的选出来。
使处在选课时期的学生能有条不紊的进行。
2.1.2.3.4.(1(2(32.2开发环境需求操作系统:window7或更高版本因为毕业设计课题管理系统针对的用户是学生和教师,学生和教师普遍使用windows操作系统,所以选着windows7或更高版本的操作系统web服务器:apache-tomcat6apache-tomcat6是开源的免费的web服务器,节省开发成本数据库:MySQLMySQL是一款免费的数据库,节省成本开发工具:myeclipse8.5myeclipse8.5功能强大的JavaEE开发工具,该管理系统选用JavaEE开发。
3.系统设计3.1基本设计概念和处理流程本系统采用结构化分析,设计顺序为自顶向下,层层逐步细化。
图1表1课题表(task)表2选择课题(chosetask)表3上传课题(puttask)表4角色表(roleinfo)用户模块登录功能代码: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{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);}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;}}上传课题功能代码: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) {管理员对角色管理功能: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););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"));)) ;{return"list";}else{return"edit_error";}}public String detail(){intuid=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().getSession().setAttribute(, 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 erid=?";Object[] args=new Object[]{userid};List<Userinfo> list= commonDao.list(hql, args);;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)主页测试6.软件实习总结通过实习,更加深入了解掌握了开发平台的配置,对编程有了进一步的掌握。