1、目录 1 设计时间12 设计目的13设计任务14 设计内容14.1需求分析14.2总体设计44.3详细设计54.4运行与测试105 总结与展望12参考文献13成绩评定131 设计时间2013年1月21日至2013年1月27日2 设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。3设计任务XX大学XX学院实验室设备管理系统(一)必备功能说明:(1)功能描述:用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限
2、和普通用户权限。管理员用户可以添加、查看、修改和删除设备信息,普通用户只能添加、查看和修改设备信息。(2)添加设备:合法用户可以添加设备信息(包括设备编号、名称、类别、领用人、实验室、是否在使用等等);其中类别分路由器、计算机、交换机等等。(3)查看设备信息:合法用户可以查看设备信息。(4)修改设备信息:合法用户可以修改设备信息。(5)删除设备信息:合法用户可以删除设备信息,必须记录删除操作。(6)对设备使用情况进行统计分析。(二)开发语言与开发环境:MyEclipse、Java、数据库mysql4 设计内容 4.1需求分析 4.1.1总体目标本系统主要是针对学校实验室的设备进行管理,目的是使
3、设备日常的管理更加方便以及统计设备使用、维修和报废的各种情况还有就是查询和生成报表的功能。通过详细的用户调查。在现行的业务处理流程和数据流图的基础上,就可以确定目标系统要达到的目标了。需求分析的任务是确定系统必须完成的工作也就是对目标系统提出完整、准确、清晰、具体的要求。在经过多方了解和调查后基本清楚了设备信息管理的功能需求。4.1.2 具体目标登录系统时,有两种权限:管理员权限和普通用户权限。管理员用户可以添加设备信息(包括设备编号、名称、类别、领用人、实验室、是否在使用等等),可以查看设备信息,修改设备信息和删除设备信息,普通用户只能添加设备信息,查看设备信息和修改设备信息。4.1.3系统
4、数据建模普通用户编号管理管理管理员设备账户类别名称密码编号是否领用编号实验室账户密码图4-1 系统E-R图4.1.4 系统功能建模管理员用户可以添加、查看、修改和删除设备信息,普通用户只能添加、查看和修改设备信息;普通用户管理员实验室设备管理系统添加添加修改查看删除查看修改图4-2 实验室设备管理系统的环境图普通用户管理员1验证2验证登录登录删除修改修改添加添加查看查看5保存信息6显示信息4保存信息3显示信息普通用户管理员图4-3 实验室设备管理系统数据流图4.1.5数据字典(1)数据项数据项名称:设备编号数据项编号:A1简述:某个设备的编号类型:字符型长度:100字节取值 范围:字符(2)
5、数据流数据流名称:设备添加信息表编号:F1简述:设备添加基本信息数据流来源:管理员和用户数据流去向:设备处理数据流组成:设备编号+设备名+设备类型+设备领用人+实验室+是否使用(3) 数据存储数据存储名称:设备信息表编号:D1简述:记录当前设备信息流入数据流:查询,删除,增加,修改,统计分析等操作流出数据流:设备信息反馈界面组成:设备编号+设备名+设备类型+设备领用人+实验室+是否使用存取方式:顺序存取4.2总体设计实验室设备管理系统普通用户操作模块管理员操作模块查看设备添加设备修改设备修改设备查看设备添加设备删除设备图4-4 系统结构图数据库表格如下:表4-1(用户表)列名数据类型长度允许空
6、文字描述useridint10NO用户标识usernamechar50NO用户名userpasschar50NO用户密码userclassint10NO用户类型表4-2 (设备表)列名数据类型长度允许空文字描述shebeiidint10NO设备标识shebeinumberchar50NO设备编号shebeinamechar50NO设备名shebeitypechar50NO设备类别usernamechar50NO领用人shiyanshichar50NO实验室useingint10NO是否使用4.3详细设计1)模块定义:(1)模块编号:按照命名规则,按照如下两种情况命名:A)公用模块,如打印驱动或
7、打印报表公用程序,则可按照S-XXX进行编号,其中,S(SHARE)表示公用,XXX为公用模块的编号。B)私有模块,一般而言属于某个子系统的专有模块,可按FX-SX-TX的方式进行编号。其中,FX,SX,TX分别表示第一、二、三级模块的编码。(2)模块名称:此公用模块的英文或中文名称。(3)模块功能:详细列出此公用模块的所有功能。2)输入项目:所有输入到该模块的数据。如设备编号,设备名,设备类型等。3)输出项目:所有从该模块输出的数据。如设备编号,设备名,设备类型等。4) 程序过程设计:主要代码: /allfunction/login.jsp /allfunction/login.jsp /a
8、llfunction/divce_manager_index.jsp /allfunction/log_all.jsp /allfunction/divce_all.jsp /allfunction/usr_divce_all.jsp /allfunction/divce_updata.jsp /allfunction/divce_manager_index.jsp /allfunction/divce_manager_index.jsp /allfunction/divce_manager_index.jsp Action的配置代码DivceAction.java:package kcsj.
9、action;import java.sql.Timestamp;import java.util.Date;import java.util.List;import javax.servlet.忽略.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.dao.DivceDAO;import com.dao.LogDAO;import com.opensymphony.xwork2.ActionContext;import com.po.Divce;import com.po.Log;impo
10、rt com.po.Usr;public class DivceAction private Divce divce;public Divce getDivce() return divce;public void setDivce(Divce divce) this.divce = divce;public String insertDivce()DivceDAO dao=new DivceDAO();Timestamp time=new Timestamp(new Date().getTime();divce.setOperator_date(time);dao.insertDivce(d
11、ivce);Log log=new Log();Timestamp date=new Timestamp(new Date().getTime();log.setOperator_date(date);log.setOperator_name(添加);String s=添加设备(编号:+divce.getDivce_no()+ 名字:+divce.getDivce_name()+ 类型:+divce.getDivce_type()+);log.setOperator(s);LogDAO dao1=new LogDAO();dao1.insertLog(log);return insert_su
12、ccess;public String allDivce()DivceDAO dao=new DivceDAO();List list=dao.allDivce();HttpServletRequest request =ServletActionContext.getRequest();request.setAttribute(list,list);Usr u=(Usr)ActionContext.getContext().getSession().get(Usr);if(u.getAuthority()=1)return manager_all_success;elsereturn usr
13、_all_success;public String updataDivceJSP()HttpServletRequest request =ServletActionContext.getRequest();int id=Integer.valueOf(request.getParameter(id);DivceDAO dao=new DivceDAO();divce=dao.selectById(id);request.setAttribute(divce,divce );return updata_divce_jsp;public String updataDivce()HttpServ
14、letRequest request =ServletActionContext.getRequest();Timestamp date=new Timestamp(new Date().getTime();divce.setOperator_date(date);DivceDAO dao=new DivceDAO();dao.updataDivce(divce);request.setAttribute(divce,divce );Log log=new Log();log.setOperator_date(date);log.setOperator_name(修改);String s=修改
15、设备(编号:+divce.getDivce_no()+ 名字:+divce.getDivce_name()+ 类型:+divce.getDivce_type()+);log.setOperator(s);LogDAO dao1=new LogDAO();dao1.insertLog(log);return updata_success;public String deleteDivce()HttpServletRequest request =ServletActionContext.getRequest();int id=Integer.valueOf(request.getParamete
16、r(id);DivceDAO dao=new DivceDAO();divce=dao.selectById(id);dao.deleteDivce(divce);Log log=new Log();Timestamp date=new Timestamp(new Date().getTime();log.setOperator_date(date);log.setOperator_name(删除);String s=删除设备(编号:+divce.getDivce_no()+ 名字:+divce.getDivce_name()+ 类型:+divce.getDivce_type()+);log.
17、setOperator(s);LogDAO dao1=new LogDAO();dao1.insertLog(log);return delete_success;4.4运行与测试在地址栏输入忽略:/localhost:8080/shebei/login.jsp数据库中的内容:图4-5 数据库图登录界面:图4-6 登录界面图没有输入用户名和密码:图4-7 登录出错图登录管理员,添加设备:图4-8 管理员添加设备信息图管理员进行查看:图4-9 管理员查看设备信息图管理员进行修改:图4-10 管理员修改设备信息图登录用户bb进行查看:图4-11 用户查看设备信息图5 总结与展望这次课程设计虽然很难
18、,费了我很长时间,但是却让我更加清楚的认识到了javaEE这门课程,使我更加熟悉了Myeclipse的功能。通过这一周的课程设计,我们对学过的javaEE知识有了进一步的认识,基本上了解了整个软件设计的过程,对数据流程图、ER图的应用更加熟练。在这次课程设计中遇到了问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维,进行程序设计时要从实际出发。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。并且在这次课程设计中我也发现了我的很多不足之处,我会不断努力改正自己的缺点,使自己能够更好的适应未来的挑战。参考文献1 范立峰,林果园 编著.Java Web 程序设计教程.北京:邮电出版社,20092 李艺兴,杨瑞龙 编著.java EE Web编程. 北京:机械工业出版社,20053 张海藩. 软件工程导论(第五版). 北京:清华大学出版社,20084 赵池龙、杨林、孙伟编著.实用软件工程M.电子工业出版社出版,2009成绩评定成绩 教师签字14