长沙学院课程设计说明书题目服装库存管理系统系(部) 计算机科学与技术系专业(班级) 2010软件工程(服务外包)1班姓名曾祥炫学号**********指导教师潘怡起止日期2012.3.12 — 2012.7.6课程设计任务书课程名称:基础编程能力考核设计题目:服装库存管理系统已知技术参数和设计要求:1.问题描述(功能要求):服装库存管理系统主要包括:(1)系统管理系统管理包括用户管理和货号管理,能进行增加、删除、修改和查找的操作。
(2)库存管理库存管理包括入库单管理和出库单管理。
入库单管理包括入库单基本信息管理和入库单明细管理,并能分别对入库单和入库单明细进行增加、删除、修改和查找的操作。
出库单管理包括出库单基本信息管理和出库单明细管理,并能分别对出库单和出库单明细进行增加、删除、修改和查找的操作。
(3)辅助管理辅助管理包括修改密码。
2. 运行环境要求:(1)客户端:Windows操作系统IE浏览器(2)服务器:windows server 版操作系统Tomcat web 服务器My SQL 数据库服务器3. 技术要求:强调软件工程过程文档的规范化。
●需求分析规格说明书与用例规约●系统数据库设计,时序图,类图,MVC架构●系统完整编码,采用JSP、Servlet技术设计工作量:40课时工作计划:(1) 2010级软件工程所有班级16课时: 1609理论讲座20课时:上机、调试。
计算机系机房4课时:答辩。
计算机系机房。
(具体时间地点老师先申请,机动安排)指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表项目实训(四)工作计划表目录第1章设计内容与要求 (1)1.1 设计内容 (1)1.2 设计要求 (1)第2章需求分析 (3)2.1 整体用例图 (3)2.2 用例规约 (4)2.3 需求描述 (5)第3章系统设计 (6)3.1 数据库设计 (6)3.1.1数据库对象命名规则 (6)3.1.2 数据项编码规则 (6)3.1.3 用户信息表结构 (6)3.2 类图设计 (7)3.3 时序图设计 (8)第4章系统实现 (10)4.1 登陆设计实现 (10)4.2 修改密码设计实现 (13)第5章总结 (18)参考文献 (19)附录 (20)第1章设计内容与要求1.1 设计内容服装库存管理系统主要的设计内容包括:(1)系统管理系统管理包括用户管理和货号管理。
在用户管理中要包括新建系统用户、删除系统用户、查看系统用户详细信息、更新系统用户、查询系统用户、系统用户登陆和修改密码。
在货号管理中包括新建货号、删除货号、查看货号详细信息、更新货号、查询货号(2)库存管理库存管理包括入库单管理和出库单管理。
入库单管理包括新建入库单、删除入库单、查看入库单详细信息、更新入库单、提交入库单、查询入库单、新增入库单明细、查看入库单明细的详细信息、更新入库单明细、删除入库单明细、查询入库单明细。
出库单管理包括新建出库单、删除出库单、查看出库单的详细信息、更新出库单、提交出库单、查询出库单、新增出库单明细、查看出库单明细的详细信息、更新出库单明细、删除出库单明细、查询出库单明细。
(3)辅助管理辅助管理包括修改密码。
1.2 设计要求(1)系统管理用户管理中在新建系统用户时用户登录号、用户姓名和用户密码为必选项,如果没有填写应该要能给出提示信息。
用户能够根据用户登录号和用户姓名来查询系统用户的详细信息。
系统用户能够根据用户登录号和密码来成功登陆系统。
用户在成功登陆后可以使用旧密码来设置新密码。
货号管理中在新建货号时货号、品名、色号、尺码、面料、里料、出厂价、零售价为必选项,若有一项没有填写应该要能给出提示信息。
用户可以根据货号、色号、尺码来查看货号详细信息。
(2)库存管理入库单管理中在新建入库单时入库日期、所入仓库、来源是必选项,如果有一项没有填写,系统要能够给出提示信息,备注为非必选项。
用户成功登陆系统后可以根据单据号来查看入库单的详细信息。
用户在更新入库单时要先查询到要更新的入库单,然后再进行入库单的更新。
用户在保存入库单信息后可以进行新增入库单详细信息的操作,新建时可以设定入库单明细的货号、色号、尺码和数量。
出库单管理中在新建出库单时出库日期、所出仓库、接收人、接收人电话为必选项,若有一项没有填写则给出提示信息,其中备注为非必选项。
用户成功登陆系统后可以根据单据号来查看出库单的详细信息。
用户在更新出库单时要先查询到要更新的出库单,然后再进行出库单的更新。
用户在保存出库单信息后可以进行新增出库单详细信息的操作,新建时可以设定出库单明细的货号、色号、尺码和数量。
(3)辅助管理用户在成功登陆系统后可以进行修改密码,修改密码时旧密码、新密码和确认密码为必选项,如果有一项没有填写,系统应该给出提示信息。
旧密码必须要与登录时使用的密码一致,否则无法修改密码,新密码和确认密码也必须保持一致方能成功修改。
第2章需求分析2.1 整体用例图图1 全局用例图2.2 用例规约2.3 需求描述1.用户登陆需求编号:CODEMN-1需求描述:用户使用登录号和密码来成功登陆系统。
CODEMN-1-1用户输入登录号和密码CODEMN-1-2 页面获取用户输入的登录号和密码,并且与数据库中的数据进行比较CODEMN-1-3 证成功则允许用户登陆,否则提醒用户输入正确的登录号和密码。
2.用户修改密码需求编号:CODEMN-2需求描述:用户修改密码CODEMN-2-1:用户输入旧密码、新密码、确认密码。
CODEMN-2-2:系统接收用户输入的旧密码,并且将旧密码与数据库中的密码进行验证,同时将获取到的新密码和确认密码进行比较。
CODEMN-2-3:若旧密码验证通过,且新密码与确认密码一致,则允许用户修改密码,否则给出错误提示信息,密码修改不成功。
第3章系统设计3.1 数据库设计3.1.1数据库对象命名规则表3 数据库对象命名规则3.1.2 数据项编码规则3.1.3 用户信息表结构sql脚本create table user(userLogin varchar(20) not null primary key,userName varchar(20) not null,Password int not null ,remark varchar(20),flag int not null);备注存储用户信息3.2 类图设计图2 系统登陆和修改密码的类图在登陆和修改密码中,主要运用到userImpl、UserServlet和Userinfo三个类。
userImpl 中实现了Userinterface中定义的方法,在userImpl中可以拼写sql语句来实现对数据库的操作,即可以修改Userinfo中的属性,BConnection起到了连接数据库的作用。
UserServlet根据用户在页面上操作来决定调用什么方法,doPost()可以判断用户在页面上JS页面上选择的操作的类型,根据操作类型来决定dologin()和doUpdatePwd()方法的调用。
3.3 时序图设计图3 用户登陆时序图如图3所示,用户首先在登陆界面的文本框中输入登录号和密码,UserServlet获取用户输入的登录号和密码,调用userImpl中的loginUser()方法将获取的登录号和密码作为参数传送至数据库中执行,并且返回执行结果,UserServlet根据返回结果来判断是否发生页面跳转和给出用户提示信息。
图4 修改密码时序图如图4所示,用户首先在修改密码页面内输入旧密码、新密码、确认密码,UserServlet获取用户输入的旧密码、新面貌、确认密码,并且调用userImpl中的updatePwd()函数,以获取的三个值作为参数,updatePwd()将旧密码发往数据库中进行验证,UserServlet根据验证结果来判断密码是否修改成功和传送提示信息。
修改密码界面还要验证新密码与确认密码是一致。
第4章系统实现4.1 登陆设计实现代码段1 声明接口:package com.csms.dao.inter;import java.sql.SQLException;import erInfo;import com.mysql.jdbc.ResultSet;public interface Userinterface {public ResultSet loginUser(String userLogin,String password) throws SQLException;//登陆验证}说明:此段代码的作用是定义接口声明相关的方法,public ResultSet loginUser(String userLogin,String password) throws SQLException;定义的是登陆验证方法,此方法声名了在实现登陆的方法中需要传进的两个参数String userLogin,String password,即登录号和登陆密码。
代码段2 接口实现:package com.csms.dao.interImpl;import java.sql.SQLException;import erinterface;import erInfo;import com.csms.db.DBconnection;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSet;import com.mysql.jdbc.Statement;public class Userimpl implements Userinterface {DBconnection db=null;Connection conn=null;Statement pst=null;private String password;public Userimpl() throws ClassNotFoundException, SQLException{db=new DBconnection();conn=db.getConn();pst=(Statement) conn.createStatement();}///////////////登陆验证////////////////////public ResultSet loginUser(String userLogin, String password) throws SQLException {// TODO Auto-generated method stubStringBuffer strsql=new StringBuffer();strsql.append(" select * from usertable where ");strsql.append(" userLogin='"+userLogin+"' and ");strsql.append(" password='"+password+"'");ResultSet rs=(ResultSet) pst.executeQuery(strsql.toString());return rs;}}说明:此段代码是先前定义的接口的实现部分,StringBuffer strsql=new StringBuffer();定义了一个字符串strsql。