毕业设计选题管理系统 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#1.前言每年毕业临近,都有大量的毕业生需要进行毕业设计,这其中的首要关节就是课题的选择,以往指导老师都是采用人工手写方式给学生们提供相关的课题供学生选择,如果指导老师带领的学生比较多,或者是当年毕业的学生比较多,这样就容易造成学生的课题选择很混乱,指导教师难于统计学生的课题选择情况等一系列问题,基于这些传统问题,我们需要一个能够自动统计、实时分配课题的一个管理平台来帮助学生、指导老师。
此系统的开发,主要的目的是使老师能更好的管理课程设计,也能使学生能更好的把自己想要选的课程正确无误的选出来。
使处在选课时期的学生能有条不紊的进行。
2.系统的需求分析功能需求2.1.1 毕业设计选题管理系统功能要求:1.毕业设计题目维护和查询:毕业设计题目的添加、修改;按照项目类型、名称、编号等查询;毕业设计选题查询、登记。
2.指导教师信息维护和查询:指导教师信息的添加、修改、删除,查询;3.毕业生选题管理:学生选题登记;选题情况查询;4.毕业生信息的维护和查询。
根据以上各功能模块需求将系统的功能细化为以下几点:(1)前台学生选题学生网上选题:学生登录管理系统进行选题(2)前台教师出题教师网上出题:教师进入毕业选题出题。
教师管理出题:教师进入系统后对毕业设计题目进行修改和删除。
选题确认:学生选好题目后,教师可以确认该题由选择该题的学生做。
(3)后台管理出题及选题情况用户管理模块:管理员可以对用户进行用户管理,对已存在的用户进行修改,查看等。
角色管理模块:管理员可以对用户的角色进行管理,可以给用户分配角色,对角色分配权限。
开发环境需求操作系统:window7或更高版本因为毕业设计课题管理系统针对的用户是学生和教师,学生和教师普遍使用windows操作系统,所以选着windows7或更高版本的操作系统web服务器:apache-tomcat6apache-tomcat6是开源的免费的web服务器,节省开发成本数据库:MySQLMySQL是一款免费的数据库,节省成本开发工具:功能强大的JavaEE开发工具,该管理系统选用JavaEE开发。
3.系统设计基本设计概念和处理流程本系统采用结构化分析,设计顺序为自顶向下,层层逐步细化。
图1软件功能设计图2数据库设计3.2.1 E-R图图3图43.2.2数据库表用户表(user)表1 课题表(task)表2 选择课题(chosetask)表3 上传课题(puttask)表4 角色表(roleinfo)表5权限表(rightinfo)表6表74.典型功能模块的详细设计和实现过程用户模块登录功能代码:public String doLogin(){Userinfo uu= (user);if(uu!=null){().getSession().setAttribute("USER", uu);int roleId=().getRoleId();Roleinfo r= (roleId);String menuString=buildDTreeMenuString(r);().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[]{(),()};List<Userinfo> list = (hql, args);if(list!=null && ()>0){uu = (0);}return uu;}public List list(String hql, Object[] args) {List list= ().find(hql,args);return list;}查询信息功能代码:public String toList(){SPageBean spb = new SPageBean();HttpServletRequest request = ();int offset = 0;if ("") == null) {offset = 0;} else {offset = (""));}int maxPageItems; if ("maxPageItems") == null) {maxPageItems = 5;} else {maxPageItems = ("maxPageItems"));}(offset);(maxPageItems);(spb);("SPB", spb);return"list";}public void getList(SPageBean spb) {String hql="from Userinfo";(hql, spb);}public void listByPage(String hql, SPageBean spb) {final String hql1=hql;final SPageBean spb1=spb;if(hql!=null){int total=(Integer) ().execute(new HibernateCallback() {public Object doInHibernate(Session sess) throws HibernateException,SQLException {String qString="";if().indexOf("select ")!=-1){int idx=().indexOf("from");qString="select count(*) "+(idx,());}else{qString="select count(*) "+hql1;}Query cQuery=(qString);(true);long o= (Long)();int ii=(int)o;return ii;}});(total);List data=(List)().execute(new HibernateCallback() {public Object doInHibernate(Session sess) throws HibernateException,SQLException {Query query= (hql1);());());return ();}});(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) {= total;}public List getDatas() {return datas;}public void setDatas(List datas) {= datas;}public int getOffset() {return offset;}public void setOffset(int offset) {= offset;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {= pageSize;}}上传课题功能代码:public String toadd(){return"add";}public String doadd(){if(task)== true){SPageBean spb = new SPageBean();HttpServletRequest request = ();int offset = 0;if ("") == null) {offset = 0;} else {offset = (""));}int maxPageItems; if ("maxPageItems") == null) {maxPageItems = 5;} else {maxPageItems = ("maxPageItems"));}(offset);(maxPageItems);(spb);().setAttribute("SPB1", spb);return"list";}else{return"add";}}public boolean doAdd(TaskInfo t) {Serializable ret = (t);return ret!=null;}管理员模块管理员对角色管理功能:public class RoleAction extends ActionSupport{private IRoleService roleService;private IRightService rightService;private Roleinfo role;public void setRoleService(IRoleService roleService) { = roleService;}public void setRightService(IRightService rightService) { = rightService;}public Roleinfo getRole() {return role;}public void setRole(Roleinfo role) {= role;}public String toList(){List<Roleinfo> roles= ();().setAttribute("ROLES", roles);return"list";}public String toAssign(){List<Rightinfo> rights= ();Roleinfo r = ());for(Rightinfo right:rights){if().contains(right)){("checked");}}().setAttribute("ROLE", r);().setAttribute("RIGHTS",rights);return"assign";}public String doAssign() throws Exception{HttpServletRequest request=();String[] newRights=("CheckBox_Rights");(),newRights);HttpServletResponse response=();("role!="+()+"&message=ok");return null;}}public class RightServiceImpl_H implements IRightService{ private ICommonDAO commonDao;public void setCommonDao(ICommonDAO commonDao) {= commonDao;}public List<Rightinfo> getAllRights() {String hql="from Rightinfo";List<Rightinfo> list = (hql);return list;}}管理员对用户管理功能:(增、删、改、查)public String delete(){int uid = ().getParameter("userid"));boolean flag = (uid);if(flag){return"list1";}else{return"list";}}etParameter("userid"));Userinfo uu = (uid);().setAttribute("USER2", uu);return"edit";}public String edit(){boolean flag = (user);if(flag){return"list";}else{return"edit_error";}}public String detail(){int uid=().getParameter("userid"));Userinfo uu = (uid);().setAttribute("USER1", uu);return"detail";}public String add(){if(user)== true){List<Userinfo> user = ();().setAttribute("USERS", user);return"list";}else{return"add";}}public String toadd(){return"add";}public String doLogin(){Userinfo uu= (user);if(uu!=null){().getSession().setAttribute("USER", uu);int roleId=().getRoleId();Roleinfo r= (roleId);String menuString=buildDTreeMenuString(r);().getSession().setAttribute("MENU_STRING", menuString);return"main";}else{return"input";}}public boolean addUser(Userinfo u) {Serializable ret = (u);return ret!=null;}public List list() {String hql = "from Userinfo";List<Userinfo> list = (hql);return list;}public Userinfo detail(int userid) {Userinfo uu=null;String hql="from Userinfo u left outer join fetch where =";Object[] args=new Object[]{userid};List<Userinfo> list= (hql, args);if(list!=null && ()>0){uu=(0);}return uu;}public Userinfo toedit(int userid) {Userinfo uu=null;String hql="from Userinfo u left outer join fetch where =";Object[] args=new Object[]{userid};List<Userinfo> list= (hql, args);if(list!=null && ()>0){uu=(0);}return uu;}public boolean update(Userinfo u) {try{(u);return true;}catch(Exception ex){return false;}}public boolean delete(int uid) {try{Userinfo u = (Userinfo),uid);(0);return true;}catch(Exception ex){return false;}}5.软件测试及运行评价测试步骤(1)主页测试(2)用户登录测试(3)用户信息管理测试(4)角色权限管理测试(5)课题上传测试模块测试6.软件实习总结通过实习,更加深入了解掌握了开发平台的配置,对编程有了进一步的掌握。