1、软 件 学 院课程设计汇报书课程名称 Java高级框架应用开发 设计题目 试验室设备管理系统 专业班级 软件工程10-6班 学 号 100627 姓 名 萧翎 指导老师 郭鹏飞 年 1 月目录1 设计时间22 设计目标23设计任务24 设计内容24.1需求分析24.1.1总体目标24.1.2具体目标34.1.3系统数据建模44.1.4系统功效建模64.1.5数据字典74.2总体设计114.3具体设计114.4运行和测试135 总结和展望20附:系统程序关键代码20参考文件24成绩评定241 设计时间1月21日-1月25日2 设计目标JavaEE课程设计是对所学JavaEE和中间件课程小结,是提
2、升学生对所学知识综合应用能力一个方法,是集中实践性步骤之一。要求同学们对课程中所学习到知识综合利用,开发有一定规模Java Web程序。3设计任务此次课程设计课题为试验室设备管理系统,目标在于设计一款系统帮助试验室管理员管理试验室设备。只要求实现功效有以下几条:(1)用户以正当身份登录系统后才能进行全部操作。且用户有两种权限:管理员权限和一般用户权限。管理员用户能够添加、查看、修改和删除设备信息,一般用户只能添加、查看和修改设备信息;(2)正当用户能够添加设备信息(包含设备编号、名称、类别、领用人、试验室、是否在使用等等);其中类别分路由器、计算机、交换机等;(3)正当用户能够查看、修改设备信
3、息;(4)正当用户(管理员等级)能够删除设备信息,不过必需统计删除操作。(5)对设备使用设备使用情况进行统计分析。4 设计内容4.1需求分析4.1.1总体目标因不一样学生试验不一样需求,试验室中设备种类繁杂、数量较多,假如采取人工管理,则任务量大、信息轻易犯错,显得很不方便。所以,需要开发试验室管理系统来帮助管理人员管理试验室中设备,不仅能够减轻管理人员负担、提升管理效率,而且还能够有效降低日常工作中犯错率。具体来说,试验管理系统应该能够避免和克服人工管理信息滞后,计算量大和犯错和统计不正确不立即等缺点和弊端,使得管理愈加规范化、自动化。管理人员经过系统能够统计设备使用情况,和对设备操作统计,
4、方便有错或设备损坏时可查。也能够为学院管理层提供必需信息。4.1.2具体目标(1)实现用户权限控制试验室管理人员分为两个等级:管理员和一般用户。其中,管理员能够查看、更新、添加、删除设备,而一般用户只能查看、更新、添加,不能删除。(2)实现设备添加试验室中设备会有损坏、报废等情况,所以需要购进新设备添加。系统中需要能够为用户提供添加设备功效,具体信息包含设备编号、所属试验室、使用人、名称、类别、目前使用情况等。其中设备种类包含交换机、计算机、路由器等。(3)实现设备更新设备信息会常常变更,如被领用、更换试验室等,这些信息全部需要立即更新到数据库中,方便以后用户查询。(4)实现设备删除当设备损坏
5、、报废无法使用后,需要将系统中该设备信息删除。(5)实现设备信息查看用户在申请使用设备之前需要查询目前全部设备使用情况,方便决定申请哪些设备使用。(6)统计设备操作信息系统中统计下用户每一次对设备操作,方便处理突发情况。4.1.3系统数据建模(1)系统ER图系统ER以下所表示:用户设备试验室管理mnp图1 试验室设备管理系统总ER图用户试验室用户名密码等级编号编号试验室名图2 实体用户属性 图3 实体试验室属性设备编号领用人设备名称试验室种类使用情况图4 实体设备属性(2)数据表设计数据库表格设计以下:表1 试验室属性表列名数据类型长度许可空文字描述lidInt4N试验室编号locationv
6、achar50试验室具体位置表2 用户属性表列名数据类型长度许可空文字描述uidint4N用户编号usernamevarchar50N用户名passwordvachar50N用户密码gradeint4N用户等级标志表3 设备属性表列名数据类型长度许可空文字描述fidint4N设备编号lidint4N所属试验室编号uidint4N领用用户编号fnamevarchar50N设备名称sortvarchar50N设备种类appliedint4N使用标志表4 操作属性表列名数据类型长度许可空文字描述idint4N操作统计编号fidint4N操作设备编号uidint4N操作用户编号operatevarch
7、ar50N操作名4.1.4系统功效建模试验室设备管理系统顶层数据步骤图图5所表示,一层数据步骤图图6所表示:用户试验室设备管理系统设备信息设备使用情况操作统计图5 试验室设备管理系统顶层数据步骤图查看设备添加设备更新设备删除设备查看操作设备信息表设备操作统计表用户用户用户F1F2F3F4图6 试验室设备管理系统一层数据步骤图F1:设备具体信息 F2:更新后设备信息F3:添加设备信息 F4:设备操作统计信息4.1.5数据字典(1)数据元素用户等级名字:用户等级标志描述:用于标志用户等级(区分管理员和一般用户)数据类型:字符长度:50试验室地点名字:试验室地点描述:用于描述试验室具体地点数据类型:
8、字符长度:50设备种类名字:设备种类描述:用于描述设备种类数据类型:字符长度:50设备使用情况名字:设备是否使用描述:用于标识设备目前是否被使用数据类型:数值长度:4操作项名字:操作描述:用于统计设备操作统计数据类型:字符长度:50(2)数据存放设备信息名字:设备信息描述:每一个设备具体信息编号:D1组成:设备编号、所属试验室、使用人、名称、类别、目前使用情况用户信息名字:用户信息描述:每一个用户具体信息编号:D2组成:用户编号、用户名、用户密码、用户等级操作统计名字:操作统计描述:用户对设备操作统计编号:D3组成:设备编号、用户编号、操作项(3)数据流设备具体信息名字:设备具体信息描述:数据
9、库中存放设备具体信息编号:F1组成:设备编号、所属试验室、使用人、名称、类别、目前使用情况更新后设备信息名字:更新后设备信息描述:用户对某一设备更新后具体信息编号:F2组成:所属试验室、使用人、名称、类别、目前使用情况添加设备信息名字:添加设备信息描述:用户新添加设备信息编号:F3组成:所属试验室、使用人、名称、类别、目前使用情况设备操作统计信息名字:设备操作统计描述:用户操作过程被统计下来信息编号:F4组成:设备编号、用户编号、操作项(4)数据处理查看设备名字:查看设备描述:用户申请查询设备信息编号:P1输入/输出数据流:设备具体信息、操作统计添加设备名字:添加设备描述:管理员添加新增设备信
10、息编号:P2输入/输出数据流:添加设备信息、操作统计更新设备名字:更新设备描述:管理员对某一变更了设备信息进行更新编号:P3输入/输出数据流:更新后设备信息、操作统计删除设备名字:删除设备描述:管理员删除某一设备信息编号:P4输入/输出数据流:操作统计查看操作名字:查看操作描述:用户申请查看设备操作统计编号:P5输入/输出数据流:设备操作统计信息4.2总体设计依据对系统需求分析中总体目标和具体目标分析,能够得到系统功效图图7所表示:试验室设备管理系统设备信息维护操作统计维护查看设备信息添加设备信息更新设备信息删除设备信息查看操作统计用户信息维护试验室信息维护信息维护数据处理系统维护图7 试验室
11、设备管理系统功效树4.3具体设计总体来看,系统功效比较简单,能够看作是一个模块来设计。(1)模块定义模块名称:试验室设备管理系统模块功效:正当用户登录系统后,能够实现查看设备信息、添加设备、更新设备和删除设备(仅管理员等级用户)。每一次操作全部要被统计下来,方便管理过程中使用。(2)输入项目用户注册时用户信息;正当用户添加设备时设备信息;用户更新设备信息时输入设备信息;用户每一次操作时统计下来操作统计信息。(3)输出项目用户查看设备信息时输出设备具体信息;用户查看操作统计时输出操作统计信息。(4)程序逻辑类设计表5 系统类设计结构表包名类名类描述包描述com.actionFCLCrudActi
12、on控制设备信息系统中action类集合,是系统关键类LoginAction控制用户登录OPRCrudAction控制操作统计RegisteAction控制用户注册com.beanUser读取页面上用户信息获取页面上信息com.daoFacilityDAOI系统连接数据库所用全部接口OperateDAOIUserDAOIcom.dao.implFacilityDAOImpl系统连接数据库所用类,实现com.dao包中接口OperateDAOImplUserDAOImplcom.mapFacility表facility映射类Hibernate从数据库中映射过来类Lab表lab映射类Users表u
13、sers映射类Operates表operates映射类JSP页面设计表6 系统JSP页面设计结构表jsp文件名页面描述login用户登录页面registe用户注册页面success登录提醒和主菜单页面flist设备信息展示页面update用于更新选中设备信息add用于添加设备信息mlist用于展示操作统计信息页面(5)测试关键点测试用户登录、注册和用户分级是否成功;测试用户对设备查看、更新、添加、删除是否成功;测试能否统计下用户全部操作统计并供用户查看4.4运行和测试针对4.3中测试关键点,依次对系统进行测试。(1)测试用户登录、注册和用户分级是否成功用户登录图8 用户表初始数据图9 用户登录
14、界面登录用户名为admin账号,测试登录功效。若登录成功,进入success.jsp页面,若不成功,进入错误提醒页面。图10 登录成功后页面用户注册图11 用户注册界面注册用户名为“wjj”、用户密码为“123456”账号,若注册成功,则数据库表users中会多出一条统计。图12 注册成功后users表数据比较图12和图8,可见用户表中多出一个用户名为“wjj”、用户密码为“123456”账号,即注册成功。用户分级先使用管理员等级账号“admin”登录,在使用刚刚注册一般账号“wjj”,查看区分。观察是否拥有删除功效,若“admin”用户拥有,而“wjj”用户不拥有,则分级成功。图13 “ad
15、min”用户注册后进入信息展示页面图14 “wjj”用户注册后进入信息展示页面比较图13和图14,可见不一样等级用户登录成功后,得到展示页面时不一样。管理员用户能够对设备进行删除操作,而一般用户不能够。即,用户分级成功。(2)测试用户对设备查看、更新、添加、删除是否成功查看设备信息在(1)中,对用户分级进行测试过程中,已经对此功效进行了变相测试,参见其结果(图13、图14),可发觉此功效已经实现。添加设备信息图15 设备表初始数据进入设备添加界面,添加一设备,具体信息为(耘慧414,3号用户领用,设备名为计算机101,设备种类为计算机,未被使用)。图16 设备添加界面图17 设备添加成功后fa
16、cility表数据比较图15和图17,可见设备添加成功。即,此功效已经实现。设备更新图18 设备信息更新页面更新编号为1设备,搬到试验室2(耘慧414),而且已使用。图19 更新后设备表数据比较图17和图19,可见编号为1设备信息已被改变。即,设备信息更新功效已经实现。删除设备登录“admin”用户,进入查看页面删除刚添加设备信息。图20 删除后设备表信息比较图19和图20,可见删除功效已经实现。(3)测试能否统计下用户全部操作统计并供用户查看图21 设备操作统计表初始数据图22 测试后操作统计表数据经过之前测试过程,已经统计下来操作统计信息图22所表示,和图21进行比较,可见均已经成功统计下
17、来。图23 操作统计信息展示页面图23,在操作统计信息展示页面成功展示了数据库中(图22)全部操作统计。即,操作统计信息供用户查看功效已经实现。5 总结和展望在经过一周时间努力后,最终完成了“试验室设备管理系统”实现。习惯了平日里跟随老师学习模式,在自己动手实现一个实际应用过程中,碰到了很多困难、许数次失败,不过学习到更多。首先是数据库设计方面,一开始只是根据自己臆想简单地设计了数据库结构和表,在实现系统功效时发觉极难进行下去,所以不得不重新认真地依据需求分析来设计更完善数据库结构和表。其次是对JavaEE课程学习了,自己动手来做确实得到了很好地学习效果。经过了一周课程设计后,对于struts
18、2、hibernate了解愈加深刻、使用愈加熟练。当然,我愈加清楚这还仅仅只是一个开始,后续学习还有很多,愈加值得我去努力。附:系统程序关键代码1.用户登录代码/LoginAction.javaUserDAOImpl userdao = new UserDAOImpl();HttpServletRequest request = ServletActionContext.getRequest();HttpSession session = request.getSession();boolean b = userdao.search(user.getUsername(), user.getPa
19、ssword();if (b) List list = userdao.find(user.getUsername(), user.getPassword();Users u = (Users)list.get(0);session.setAttribute(login, user);session.setAttribute(u, u);return success; else return error;2.用户注册代码/UserDAOImpl.javaSession session = HibernateSessionFactory.getSession();Transaction tc =
20、 session.beginTransaction();try session.save(user);mit(); catch (Exception e) tc.rollback();e.printStackTrace();session.close();/RegisteAction.javauserdao.save(user);return success;3.设备信息操作/FacilityDAOImpl.java/查找public List find() Session session = HibernateSessionFactory.getSession();Query query =
21、 session.createQuery(from Facility);List list = query.list();return list;/添加public void save(Facility facility) Session session = HibernateSessionFactory.getSession();Transaction tc = session.beginTransaction();try session.save(facility);mit(); catch (Exception e) tc.rollback();e.printStackTrace();s
22、ession.close();/更新public boolean update(Facility facility) Session session = HibernateSessionFactory.getSession();Transaction tc = session.beginTransaction();try session.update(facility);mit(); catch (Exception e) tc.rollback();e.printStackTrace();return false;return true;/删除public boolean delete(in
23、t fid) Session session = HibernateSessionFactory.getSession();Facility temp = (Facility) session.load(Facility.class, fid);Transaction tc = session.beginTransaction();try session.delete(temp);mit(); catch (Exception e) tc.rollback();e.printStackTrace();return false;return true;public boolean delete(
24、Facility facility) / TODO Auto-generated method stubSession session = HibernateSessionFactory.getSession();session.delete(facility);return true;4操作统计/查询public List search()Session session = HibernateSessionFactory.getSession();Query query = session.createQuery(from Operates);List list = query.list()
25、;return list;/存放public void save(Operates operate) Session session = HibernateSessionFactory.getSession();Transaction tc = session.beginTransaction();try session.save(operate);mit(); catch (Exception e) tc.rollback();e.printStackTrace();session.close();5配置文件/struts.xml/success.jsp/error.jsp/login.jsp/flist.jsp/update.jsp/updates.jsp/save.jsp/delete.jsp/mlist.jsp参考文件1 郑人杰,马素霞,麻志毅.软件工程,北京:人民邮电出版社,2 王珊,萨师煊.数据库系统概论.第4版,北京:高等教育出版社,3 骆斌,丁二玉.需求工程软件建模和分析.北京:高等教育出版社, 4 王永贵,郭伟,冯永安,焦学理.Java高级框架应用开发案例教程,北京:清华大学出版社,成绩评定成绩 老师签字