021694孙延正《管理信息系统开发实践1》设计成果报告.docx
- 文档编号:12542316
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:43
- 大小:32.96KB
021694孙延正《管理信息系统开发实践1》设计成果报告.docx
《021694孙延正《管理信息系统开发实践1》设计成果报告.docx》由会员分享,可在线阅读,更多相关《021694孙延正《管理信息系统开发实践1》设计成果报告.docx(43页珍藏版)》请在冰点文库上搜索。
021694孙延正《管理信息系统开发实践1》设计成果报告
山东建筑大学
课程设计成果报告
题目:
课程:
院(部):
专业:
班级:
学生姓名:
学号:
指导教师:
完成日期:
1.系统功能简介
本系统是《毕业设计管理系统》中教师、教研室主任用户的部分功能。
系统向教师用户提供了查看已经提交的题目、提交题目并且可以进行修改和删除功能,向教研室主任提供了查询、审批的功能。
使用eclipse-jee-europa-winter-win32+Jdk1.6+Tomcat6开发、测试。
2.系统组件关系
本系统使用构架进行开发,即使用JSP获得用户输入,由Servlet处理请求,将数据存入服务器对象(session或request)中。
JSP使用EL表达式和JSTL标签将数据从服务器对象中取出数据,展示出来。
2.1.登录功能的处理流程:
login.jsp收集用户的输入,点击“提交”按钮后,由LoginServlet的doPost方法获得jsp页面的username、password参数的值,如果是合法用户,则将userInfo存入session并转向welcome.js页面,
否则将”用户名或密码错误”以“error”为名存入session,转回login.jsp,该页面显示error的内容。
2.2.welcome.jsp页面功能
2.2.1.查看所有设计题目
2.2.1.1.单击超链接“查看所有设计题目”,即请求GraduateProjectServlet的doGet方法,由于没有其它参数,会直接执行该类的list方法。
在list方法中,通过GraduateProjectDao获得所有的设计题目对象的集合,以“graduateProjects”为名存入request,然后请求被转发到listGraduateProject.jsp。
在该页面中,通过JSTL的forEach标签遍历graduateProjects的每个题目对象,依次将它们的所有属性显示出来。
如果某题目的指导教师与登录用户相同,且未被批准,则在后面列出“修改、删除”超链接。
2.2.1.2.单击“修改”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=prepareEdit和id传入。
doGet方法解析参数后,通过GraduateProjectDao获得参数id所代表的GraduateProject对象,以“prepareObjects”为名存入request,然后请求被送到editGraduateProject.jsp。
在该页面中,通过JSTL的forEach标签遍历prepareObjects的每个题目对象,同时一次将他们的属性显示出来。
然后老师根据自己的论文特点作相应的修改,最后有一个“提交”按钮,点击即可以实现对其的修改。
2.2.1.3.单击“删除”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=delete和id传入。
doGet方法解析参数后,由Integer重新定义并得到id,之后直接执行request的delete操作,即删除对应项目的id。
那么再次返回到listGraduateProject.jsp页面时,所删除的那个不会再次出现。
因为其id已经被delete掉了。
2.2.1.4.单击“增加设计题目”链接(参见2.2.2)
2.2.2.增加设计题目
2.2.2.1.浏览所有题
单击“提交题目”,会请求GraduateProjectServlet的doPost方法,将参数action=add和id传入。
doPost方法解析参数,通过GraduateProjectDao获得id所对应的所有的题目对象的集合。
之后返回到addGraduateProject.jsp页面,通过JSTL的forEach标签遍历graduateProjects的所有对象,依次将其属性显示出来。
之后用户就可以浏览所有的题目了。
2.2.2.2.审批题目
审批是教研室主任特有的功能。
单击“审批题目”时,会请求GraduateProjectServlet4DepartmentLeader的doPost方法。
3.源程序
3.1.实体类(省略方法),共XX个。
1、Degree.java
ackagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassDegreeimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
2、Department.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassDepartmentimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
privateSchoolschool;
}
3、GraduateProject.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Collection;
publicfinalclassGraduateProjectimplementsComparable
privatestaticIntegernextID=11;
privateIntegerid;
privateStringtitle;
//限选专业
privateCollection
//类别
privateProjectCategoryprojectCategory;
//类型
privateProjectTypeprojectType;
//性质
//来源
//状态
privateGraduateProjectStatusgraduateProjectStatus;
privateTeacherteacher;
//初始化块
{
this.id=nextID;
nextID++;
System.out.println("N");
}
}
4、GraduateProjectStatus.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassGraduateProjectStatusimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
5、Majors.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassMajorimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
privateDepartmentdepartment;
}
6、ProjectCategory.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassProjectCategoryimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
7、ProjectType.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassProjectTypeimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
8、School.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassSchoolimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
9、Teacher.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Set;
importcn.edu.sdjzu.xg11.domain.authority.Actor;
publicfinalclassTeacherextendsActorimplementsComparable
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privateIntegerid;
privateStringname;
privateTitletitle;
privateDegreedegree;
privateDepartmentdepartment;
privateSet
}
10、Title.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassTitleimplementsComparable
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
11、UserInfo.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Date;
publicclassUserInfoimplementsComparable
privateIntegerid;
privateStringusername;
privateStringpassword;
privateDateloginTime;
privateTeacherteacher;
}
12、Actory.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.util.Collection;
publicabstractclassActor{
privateCollection
}
13、ActorAssRole.java
//
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.io.Serializable;
importjava.util.Date;
importutil.IDService;
publicclassActorAssRoleimplementsComparable
privateIntegerid;
privateActoractor;
privateRolerole;
privateDatecreateTime;
{
this.id=IDService.getID();
}
}
14、AuthorityTest.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.util.Collection;
importjava.util.Date;
importjava.util.HashSet;
importcn.edu.sdjzu.xg11.dao.TeacherDao;
importcn.edu.sdjzu.xg11.dao.authority.ActorAssRoleDao;
importcn.edu.sdjzu.xg11.dao.authority.ResourceDao;
importcn.edu.sdjzu.xg11.dao.authority.RoleDao;
importcn.edu.sdjzu.xg11.domain.Teacher;
publicclassAuthorityTest{
publicstaticvoidmain(String[]args){
Teachert1=TeacherDao.getInstance().getTeacher
(1);
Teachert2=TeacherDao.getInstance().getTeacher
(2);
//
Roler1=RoleDao.getInstance().getRole
(1);
Roler2=RoleDao.getInstance().getRole
(2);
//
ActorAssRolear1=ActorAssRoleDao.getInstance().getActorAssRole
(1);
ActorAssRolear21=ActorAssRoleDao.getInstance().getActorAssRole
(2);
ActorAssRolear22=ActorAssRoleDao.getInstance().getActorAssRole(3);
Collection
t1R.add(ar1);
t1.setActorAssRoles(t1R);
Collection
t2R.add(ar21);
t2R.add(ar22);
t2.setActorAssRoles(t2R);
//打印角色
Collection
for(ActorAssRoleasr:
t1r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
}
Collection
for(ActorAssRoleasr:
t2r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
}
Resourcers11=ResourceDao.getInstance().getResource
(1);
Resourcers12=ResourceDao.getInstance().getResource
(2);
Resourcers21=ResourceDao.getInstance().getResource(3);;
RoleAssResourcerRs11=newRoleAssResource(r1,rs11,newDate());
RoleAssResourcerRs12=newRoleAssResource(r1,rs12,newDate());
RoleAssResourcerRs21=newRoleAssResource(r2,rs21,newDate());
//角色1
Collection
roleAssResource1.add(rRs11);
roleAssResource1.add(rRs12);
r1.setRoleAssResource(roleAssResource1);
//角色2
Collection
roleAssResource2.add(rRs21);
r2.setRoleAssResource(roleAssResource2);
System.out.println("//打印资源.......................");
for(ActorAssRoleasr:
t1r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
Collection
for(RoleAssResourceroleAssResource:
rRs){
System.out.print("\t");
System.out.println(roleAssResource.getResource().getDescription()+"="+roleAssResource.getResource().getUrl());
}
}
System.out.println("//打印资源22.......................");
for(ActorAssRoleasr:
t2r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
Collection
for(RoleAssResourceroleAssResource:
rRs){
System.out.print("\t");
System.out.println(roleAssResource.getResource().getDescription()+"="+roleAssResource.getResource().getUrl());
}
}
System.out.println("//打印资源3.......................");
Collection
System.out.println(t1);
for(ActorAssRoleactorAssRole:
t1ar){
System.out.println(actorAssRole.getRole());
Collection
for(RoleAssResourceroleAssResource:
rrs){
System.out.println(roleAssResource.getResource());
}
}
}
}
15、Resource.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.io.Serializable;
importutil.IDService;
publicclassResourceimplementsComparable
privatestaticintnextID=1;
privateIntegerid;
privateStringdescription;
privateStringurl;
privateS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理信息系统开发实践1 021694 孙延正 管理信息系统 开发 实践 设计 成果 报告