cj《管理信息系统开发实践1》设计成果报告_第1页
cj《管理信息系统开发实践1》设计成果报告_第2页
cj《管理信息系统开发实践1》设计成果报告_第3页
cj《管理信息系统开发实践1》设计成果报告_第4页
cj《管理信息系统开发实践1》设计成果报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山东建筑大学课 程 设 计 成 果 报 告毕业设计管理系统题 目: 教师、教研室主任用户功能课 程: 管理信息系统开发实践1院 (部): 管理工程学院专 业: 信息管理与信息系统班 级: 信管112学生姓名:陈杰学 号: 2011021704指导教师: 佀同光完成日期: 2013年1月4日目 录1.系统功能简介32.系统组件关系33.源程序44.用户操作手册275.总结301. 系统功能简介本系统是毕业设计管理系统中教师、教研室主任用户的部分功能。系统向教师用户提供了查看、提交课题功能,向教研室主任提供了审评查看、提交课题功能。使用eclipse-jee-europa-winter-win32

2、 +Jdk1.6+Tomcat6开发、测试。2. 系统组件关系本系统使用构架进行开发,即使用JSP获得用户输入,由Servlet处理请求,将数据存入服务器对象(session或request)中。JSP使用EL表达式和JSTL标签将数据从服务器对象中取出数据,展示出来。2.1. 登录功能的处理流程:login.jsp收集用户的输入,点击“提交”按钮后,由LoginServlet的doPost方法获得jsp页面的username、password参数的值,如果是合法用户,则将userInfo存入session并转向welcome.jsp页面,否则将”用户名或密码错误”以“error”为名存入se

3、ssion,转回login.jsp,该页面显示error的内容。2.2. welcome.jsp页面功能2.2.1. 查看所有设计题目. 单击超链接“查看所有设计题目”,即请求GraduateProjectServlet的doGet方法,由于没有其它参数,会直接执行该类的list方法。在list方法中,通过GraduateProjectDao获得所有的设计题目对象的集合,以“graduateProjects”为名存入request,然后请求被转发到listGraduateProject.jsp。在该页面中,通过JSTL的forEach标签遍历graduateProjects的每个

4、题目对象,依次将它们的所有属性显示出来。如果某题目的指导教师与登录用户相同,且未被批准,则在后面列出“修改、删除”超链接。. 单击“修改”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=prepareEdit和id传入。doGet方法解析参数后,通过GraduateProjectDao获得参数id所代表的GraduateProject对象。. 单击“删除”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=delete和id传入。doGet方法解析参数后,通过Gradua

5、teProjectDao获得参数id所代表的GraduateProject对象。. 单击“增加设计题目”链接(参见2.2.2)2.2.2. 增加设计题目. 单击“增加设计题目”链接,即请求GraduateProjectServlet的doGet方法, 然后请求被转editGraduateProject.jsp。点修改按钮,会请求GraduateProjectServlet的GraduateProjectDao获得参数id所代表的GraduateProject对象,再存入doPost方法。2.2.3. 审批题目. 浏览所有题目 点击welcom.jsp页

6、面上的“审批题目”链接时(只有教研室主任有此权限),即请求GraduateProjectServlet4DepartmentLeader的list方法,然后请求转到listGraduateProjectServlet4DepartmentLeader.jsp页面。在该页面通过forEach标签遍历将所有题目列出,并且列出其审批状态。. 审批题目 在listlistGradua同时将参数action=add和id传入。doGet方法解析参数后,通过GraduateProjecDao中teProjectServlet4DepartmentLeader.jsp页面,单击操作中的“审批”

7、时(其状态为未审批才可点击),会请求GraduateProjectServlet4DepartmentLeader.java的doGet方法,list方法,跳转到approveGraduateProjectServlet4DepartmentLeader.jsp页面,然后主任进行审批,审批方法有三种“未审批”“批准”“退休”,在单击提交审批结果后,请求GraduateProjectServlet4DepartmentLeader.java的doPost方法,然后再跳转到listGraduateProjectServlet4DepartmentLeader.jsp页面。并且存入数据库Gradua

8、teProjectStatusDao集合中。此时审批状态为“审批”时,则不可以进去再审批,其他状态才可更改。3. 源程序3.1. 实体类(省略方法),共17个。GraduateProject/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;import java.util.Collection;public final class GraduateProject implements Comparable<GraduateProject>,Serializableprivate sta

9、tic Integer nextID = 11;private Integer id;private String title;/限选专业private Collection<Major> limitedToMajor;/类别private ProjectCategory projectCategory;/类型private ProjectType projectType;/性质/来源/审批状态private GraduateProjectStatus graduateProjectStatus;private Teacher teacher;GraduateProjectStat

10、us.java/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;public final class GraduateProjectStatus implements Comparable<GraduateProjectStatus>,Serializableprivate Integer id;private String description;private String no;private String remarks;Degree.java/2011021704陈杰pack

11、age .sdjzu.xg11.domain;import java.io.Serializable;public final class Degree implements Comparable<Degree>,Serializableprivate Integer id;private String description;private String no;private String remarks;public Degree(Integer id, String description, String no, String remarks) super();t

12、his.id = id;this.description = description;this.no = no;this.remarks = remarks;/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;public final class Department implements Comparable<Department>,Serializableprivate Integer id;private String description;private String no;p

13、rivate String remarks;private School school;public Department(Integer id, String description, String no,String remarks, School school) super();this.id = id;this.description = description;this.no = no;this.remarks = remarks;this.school = school;/2011021704陈杰package .sdjzu.xg11.domain;import jav

14、a.io.Serializable;public final class Major implements Comparable<Major>,Serializableprivate Integer id;private String description;private String no;private String remarks;private Department department;public Major(Integer id, String description, String no, String remarks,Department department)

15、 super();this.id = id;this.description = description;this.no = no;this.remarks = remarks;this.department = department;/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;public final class ProjectCategory implements Comparable<ProjectCategory>,Serializableprivate Integer

16、id;private String description;private String no;private String remarks;public ProjectCategory(Integer id, String description, String no,String remarks) super();this.id = id;this.description = description;this.no = no;this.remarks = remarks;/2011021704陈杰package .sdjzu.xg11.domain;import java.io

17、.Serializable;public final class ProjectType implements Comparable<ProjectType>,Serializable private Integer id;private String description;private String no;private String remarks;public ProjectType(Integer id, String description, String no, String remarks) super();this.id = id;this.descriptio

18、n = description;this.no = no;this.remarks = remarks;/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;public final class School implements Comparable<School>,Serializableprivate Integer id;private String description;private String no;private String remarks;public School

19、(Integer id, String description, String no, String remarks) super();this.id = id;this.description = description;this.no = no;this.remarks = remarks;/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;import java.util.Set;import .sdjzu.xg11.domain.authority.Actor;public fi

20、nal class Teacher extends Actor implements Comparable<Teacher>,Serializable /* * */private static final long serialVersionUID = 1L;private Integer id;private String name;private Title title;private Degree degree;private Department department;private Set<GraduateProject> projects;public T

21、eacher(Integer id, String name, Title title, Degree degree,Department department) super();this.id = id; = name;this.title = title;this.degree = degree;this.department = department;/2011021704陈杰package .sdjzu.xg11.domain;import java.io.Serializable;public final class Title implements C

22、omparable<Title>,Serializableprivate Integer id;private String description;private String no;private String remarks;public Title(Integer id, String description, String no, String remarks) super();this.id = id;this.description = description;this.no = no;this.remarks = remarks;/2011021704陈杰packa

23、ge .sdjzu.xg11.domain;import java.io.Serializable;import java.util.Date;public class UserInfo implements Comparable<UserInfo>,Serializableprivate Integer id;private String username;private String password;private Date loginTime;private Teacher teacher;public UserInfo(Integer id, String u

24、sername, String password, Date loginTime,Teacher teacher) super();this.id = id;this.username = username;this.password = password;this.loginTime = loginTime;this.teacher = teacher;/2011021704陈杰package .sdjzu.xg11.domain.authority;import java.util.Collection;public abstract class Actor private C

25、ollection<ActorAssRole> actorAssRoles;public Collection<ActorAssRole> getActorAssRoles() return actorAssRoles;public void setActorAssRoles(Collection<ActorAssRole> actorAssRoles) this.actorAssRoles = actorAssRoles;public abstract String getName();/2011021704陈杰package .sdjzu.x

26、g11.domain.authority;import java.io.Serializable;import java.util.Date;import util.IDService;public class ActorAssRole implements Comparable<ActorAssRole>,Serializableprivate Integer id;private Actor actor;private Role role;private Date createTime;this.id = IDService.getID();public ActorAssRol

27、e(Actor actor, Role role, Date createTime) super();this.actor = actor;this.role = role;this.createTime = createTime;/2011021704陈杰package .sdjzu.xg11.domain.authority;import java.util.Collection;import java.util.Date;import java.util.HashSet;import .sdjzu.xg11.dao.TeacherDao;import

28、.sdjzu.xg11.dao.authority.ActorAssRoleDao;import .sdjzu.xg11.dao.authority.ResourceDao;import .sdjzu.xg11.dao.authority.RoleDao;import .sdjzu.xg11.domain.Teacher;public class AuthorityTest public static void main(String args) Teacher t1 = TeacherDao.getInstance().getTeacher(1);Teac

29、her t2 = TeacherDao.getInstance().getTeacher(2);/Role r1 = RoleDao.getInstance().getRole(1);Role r2 = RoleDao.getInstance().getRole(2);/ActorAssRole ar1 = ActorAssRoleDao.getInstance().getActorAssRole(1);ActorAssRole ar21 = ActorAssRoleDao.getInstance().getActorAssRole(2);ActorAssRole ar22 = ActorAs

30、sRoleDao.getInstance().getActorAssRole(3);/2011021704陈杰package .sdjzu.xg11.domain.authority;import java.io.Serializable;import util.IDService;public class Resource implements Comparable<Resource>,Serializable private static int nextID=1;private Integer id;private String description;priva

31、te String url;private String no;this.id=IDService.getID();/2011021704陈杰package .sdjzu.xg11.domain.authority;import java.io.Serializable;import java.util.Collection;import util.IDService;public final class Role implements Comparable<Role>,Serializable private static int nextID=1;private I

32、nteger id;private String description;private String no;private Collection<RoleAssResource> roleAssResource;public Role(String description, String no) super();this.description = description;this.no = no;this.id = nextID;nextID+;/2011021704陈杰package .sdjzu.xg11.domain.authority;import java

33、.io.Serializable;import java.util.Date;public class RoleAssResource implements Comparable<RoleAssResource>,Serializableprivate static int nextID=1;private Integer id;private Role role;private Resource resource;private Date createTime;this.id = nextID;nextID+;3.2. Dao类(略)3.3. Servlet类,共4个。/2011

34、021704陈杰package action;import java.io.IOException;import java.util.Collection;import java.util.HashSet;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import .sdjzu.xg11.dao.G

35、raduateProjectDao;import .sdjzu.xg11.dao.GraduateProjectStatusDao;import .sdjzu.xg11.dao.MajorDao;import .sdjzu.xg11.dao.ProjectCategoryDao;import .sdjzu.xg11.dao.ProjectTypeDao;import .sdjzu.xg11.domain.GraduateProject;import .sdjzu.xg11.domain.GraduateProjectSta

36、tus;import .sdjzu.xg11.domain.Major;import .sdjzu.xg11.domain.ProjectCategory;import .sdjzu.xg11.domain.ProjectType;import .sdjzu.xg11.domain.Teacher;import .sdjzu.xg11.domain.UserInfo;/* * Servlet implementation class for Servlet: GraduateProjectServlet * */public clas

37、s GraduateProjectServlet extends javax.servlet.http.HttpServletimplements javax.servlet.Servlet static final long serialVersionUID = 1L;private Collection<ProjectCategory> categories;private Collection<ProjectType> types;private Collection<Major> majors;/* * (non-Java-doc) * * see

38、javax.servlet.http.HttpServlet#HttpServlet() */public GraduateProjectServlet() super();Overrideprotected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession();UserInfo userInfo = (UserInfo) session.getAttr

39、ibute("userInfo");Teacher teacher = userInfo.getTeacher();request.setCharacterEncoding("UTF-8");String action = request.getParameter("action");if ("add".equals(action) String projectTitle = request.getParameter("title");String category_id = request.g

40、etParameter("category");String type_id = request.getParameter("type");String majors_ids = request.getParameterValues("majors");System.out.println(majors_ids);ProjectCategory category = ProjectCategoryDao.getInstance().getProjectCategory(new Integer(category_id);ProjectT

41、ype type = new ProjectTypeDao().getProjectType(new Integer(type_id);Collection<Major> limitedmajors = new HashSet<Major>();if(majors_ids=null)MajorDao majorDao = MajorDao.getInstance();/如果用户未选择适用专业,则将该教师所属教研室的所有专业设置为“适用专业”Collection<Major> allMajors = MajorDao.getInstance().getMajo

42、rs();for (Major major : allMajors) if(major.getDepartment().equals(teacher.getDepartment()limitedmajors.add(major);elsefor (String majorId : majors_ids) Major major = MajorDao.getInstance().getMajor(new Integer(majorId);limitedmajors.add(major);System.out.println(teacher);GraduateProjectStatus suppe

43、ndStatus = GraduateProjectStatusDao.getInstance().getGraduateProjectStatus(1);GraduateProject projectCategory = new GraduateProject(projectTitle, limitedmajors, category, type,suppendStatus, teacher);GraduateProjectDao.getInstance().addGraduateProject(projectCategory);else if("update".equa

44、ls(action)System.out.println(action);String id_str = request.getParameter("id");GraduateProject project = GraduateProjectDao.getInstance().getGraduateProject(new Integer(id_str);String projectTitle = request.getParameter("title");String category_id = request.getParameter("ca

45、tegory");String type_id = request.getParameter("type");String majors_ids = request.getParameterValues("majors");ProjectCategory category = ProjectCategoryDao.getInstance().getProjectCategory(new Integer(category_id);ProjectType type = new ProjectTypeDao().getProjectType(new

46、Integer(type_id);Collection<Major> limitedmajors = new HashSet<Major>();for (String majorId : majors_ids) Major major = MajorDao.getInstance().getMajor(new Integer(majorId);limitedmajors.add(major);project.setTitle(projectTitle);project.setProjectCategory(category);project.setProjectType

47、(type);project.setLimitedToMajor(limitedmajors);GraduateProjectStatus graduateProjectStatus = GraduateProjectStatusDao.getInstance().getGraduateProjectStatus(1);project.setGraduateProjectStatus(graduateProjectStatus);GraduateProjectDao.getInstance().updateGraduateProject(project);this.list(request,

48、response);protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession();String action = request.getParameter("action");if ("delete".equals(action) / 刪除String id_s = request.getParamete

49、r("id");Integer id = new Integer(id_s);this.delete(request, response, id); else if ("prepareAdd".equals(action) prepareObjects(request);/ jsprequest.getRequestDispatcher("/dPages/addGraduateProject.jsp").forward(request, response);return;else if("prepareEdit".

50、equals(action)prepareObjects(request);String id = request.getParameter("id");GraduateProject graduateProject = GraduateProjectDao.getInstance().getGraduateProject(new Integer(id);request.setAttribute("graduateProject", graduateProject);/ jsprequest.getRequestDispatcher("/dPa

51、ges/editGraduateProject.jsp").forward(request, response);return;list(request, response);private void prepareObjects(HttpServletRequest request) categories = ProjectCategoryDao.getInstance().getProjectCategorys();types = new ProjectTypeDao().getProjectTypes();majors = MajorDao.getInstance().getM

52、ajors();/ 保存到session中request.setAttribute("categories", categories);request.setAttribute("types", types);request.setAttribute("majors", majors);private void delete(HttpServletRequest request,HttpServletResponse response, Integer id) throws ServletException,IOException S

53、ystem.out.println("delete id=" + id);Collection<GraduateProject> projects = GraduateProjectDao.getInstance().getGraduateProjects();projects.remove(new GraduateProject(id);private void list(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException C

54、ollection<GraduateProject> projects = GraduateProjectDao.getInstance().getGraduateProjects();System.out.println(projects.size();int counter=1;final String TAB="t"for (GraduateProject graduateProject : projects) System.out.print(counter+)+TAB);System.out.print(graduateProject.getTitle()+TAB);System.out.print(graduateProject.getProjectCategory().

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论