资源描述
软件工程项目实践 大作业
超市管理系统(员工信息管理模块)设计与实现(个人报告)
班级:
20112014
学号:
姓名:
教师:
王 宇 华
成绩:
教师评语:
合计
F1
F3
F5
F6
2
6
5
2
5
4
4
F7
F9
F10
18
2
2
教师签名:
2013年8月
程序模块名称
模块描述负责人
模块设计负责人
系统登录模块
人事管理模块
销售管理模块
仓库管理模块
进货管理模块
F3、需求分析(组内不重复, 描述多个功能点的需求,至少包含一个详细描述)
数据描述
静态数据
下面列出了六个表的具体静态数据:
1) 用户信息表
此表存放用户信息
字段名
数据类型
长度
id
Int
4
主键
username
Varchar
50
用户名
userpwd
Varchar
50
用户密码
AddTime
datetime
8
最后修改时间
email
varchar
30
用户邮箱地址
2) 员工档案表
此表存放超市员工的信息
字段名
数据类型
长度
s_id
int
4
主键
s_name
varchar
50
姓名
s_sex
char
10
性别
s_adress
varchar
100
住址
s_tel
varchar
30
联系电话
s_email
varchar
50
邮箱地址
3)超市供应商信息表
字段名
数据类型
长度
Cp_id
Int
4
主键
CompanyName
Varchar
50
供应商名
CompanyShort
Varchar
50
简称
CompanyAddress
Varchar
50
公司地址
Postalcode
Varchar
50
邮政编码
Tel
Varchar
50
联系电话
Fax
Varchar
50
传真
Linkman
Varchar
50
联系人
Email
Varchar
50
邮箱地址
Bank
Varchar
50
开户银行
BandAccounts
Varchar
50
银行账号
AddTime
varchar
50
最后修改时间
3.3数据流图
《超市管理系统》软件的数据流图是比较清晰的,对各功能模块来说都比较有规律。
超市管理员
超市管理系统
数据查询
登录信息
查询结果
顶层数据流图
查询条件
供应商
进货单
入库单
顾客
购买的商品
凭条
基础信息录入
1
商品入库
2
商品销售
3
基础数据
基础信息
库存信息
库存总量
商品进货单
商品入库单
购买的商品
销售凭条
业务查询
4
库存信息
库存总量
查询条件
结果输出
0层数据流图
员工信息录入
1.1
商品信息录入
1.2
供应商信息录入
1.3
库房信息录入
1.4
计量单位录入
1.5
员工名单
计量单位
库房清单
供应商清单
商品清单
管理员信息 商品信息 供应商信息 库房信息 单位信息
超市管理系统0层编号1的1层数据流图
员工信息查询
4.1
进货信息查询
4.2
商品销售信息查询
4.3
管理员信息 商品信息 商品信息 库存信息
显示员工信息
显示进货信息
显示销售信息
超市管理系统0层编号3的1层数据流图
数据字典:
3.4数据字典
1、数据流条目
(1)进货信息=进货单号+供应商号+商品号+进货价+进货数量+进货日期+进货员工
(2)销售信息=销售单号+供应商号+商品编号+销售数量+销售日期
2、文件条目
(1)文件名:职工清单
组成:{职工编号+姓名+性别+联系电话+联系地址+邮箱地址}
组织:按职工编号递增排列
(2)文件名:供货商清单
组成:{供货商号+名称+联系人+联系电话+联系地址+邮政地址+开户银行+邮箱地址+银行帐号+备注}
组织:按供货商编号递增排列
3、加工说明
(1)加工名:1:查询
加工逻辑:根据要查询的库存信息,检索出库存信息明细表
输入流:库存信息查询,发出库存信息请求
输出流:库存信息清单,进货信息请求
(2)加工名:1:更新
根据进货信息或销售信息更新库存信息
输入流:已进货信息,销售信息
输出流:发出库存检索请求
(3)加工名:2:查询
根据要查询的销售信息,检索出销售信息明细表
输入流:销售信息查询
输出流:销售清单,销售单
4功能描述
下面详细描述一下各个功能模块:
1)系统设置
(1) 添加删除用户:只限于管理员操作。管理员可以向里面添加和删除用户信息,也可修改用户密码。
(2) 退出登录:返回到登录界面,重新登录.
3)员工档案管理
实现员工档案的添加、删除、修改、查询的功能 。
性能需求
5.1数据精确度
A.要按照严格的数据格式输入,否则系统不给予响应进行处理。
B.查询时要保证查全率,所有相应域包含查询关键字的记录都应能查到。因为通常有文件的记录会很多,所以本系统采用直接查询。
5.2适应性
满足小型超市使用的需求(记录量控制在1000项内)。
对前面提到的运行环境要求不应存在困难。
6. 运行需求
6.1硬件接口
本软件不需要特定的硬件或硬件接口进行支撑。
6.2软件接口
运行于Windows Xp的操作系统之上。
7.其它要求
1)系统的功能实现情况: 用户可在本系统下实现各种用户要求的功能。
2)系统的安全性: 对于系统的重要数据都有密码保护,具有一定的安全性。
3)系统的容错性: 用户输错数据都有提示信息,具有较好的容错性能。
4)系统的封闭性: 用户的封闭性较好,用户基本上在提示信息下输数据。
F5、概要设计(组内不重复,一个功能或程序模块的概要描述)
2.3.1主要功能结构图:
用户登录
超市管理系统
数据库
账目管理
商品管理
人员管理
员工管理
会员管理
2.4 结构
No
模块名称
功能需求
程序ID
1
员工管理
创建修改删除查询员工信息
EmployeeManage
2
客户管理
创建修改删除查询一般用户和会员信息
CustomerManage
3
用户登录管理
在登录模块中,选择管理员登录或销售员登录
Login
逻辑结构设计
(2)管理员表(主键为管理员编号)
Column Name
Data Type
Width
Null
管理员编号
Varchar
20
姓名
Varchar
20
Yes
性别
Char
1
Yes
密码
Varchar
20
出生年月
Date
Yes
联系电话
Varchar
20
Yes
(3)员工表(主键为员工编号)
Column Name
Data Type
Width
Null
员工编号
Varchar
20
姓名
Varchar
20
Yes
性别
Char
1
Yes
密码
Varchar
20
出生年月
Date
Yes
联系电话
Varchar
50
Yes
(4)供应商表(主键为供应商编号)
Column Name
Data Type
Width
Null
供应商编号
Varchar
50
名称
Varchar
50
地址
Varchar
60
Yes
联系电话
Varchar
20
负责人
Varchar
20
Yes
(5)会员表(主键为会员编号即memberid)
Column Name
Data Type
Width
Null
Membered
Varchar
30
Name
Varchar
20
Yes
Sex
Char
1
Yes
Birthday
Date
Yes
tel
Varchar
20
Yes
Address
Varchar
50
Yes
Score
Varchar
50
Yes
F6、详细设计(组内不重复,包含一个功能或程序模块的详细设计文档)
3.5人事管理模块
在系统开发中,为解决超市人员流动问题,在系统中增添了员工管理子模块,用来对超市的人员进行信息化管理,以此来提高员工的办事效率,节约人力资源。
新员工录入:在超市招进新员工时,对其进行基本信息的存储,对员工信息进行基本的了解。
员工信息维护:当员工信息发生变化,或者是员工离职,换岗对相关信息发生变化时,利用此子模块对其进行信息变更。
(1)职工管理模块用例图,如图3-5-1所示:
图3-5-1 职工信息管理模块用例图
(2)职工管理模块活动图,如图3-5-2所示:
图3-5-2 职工管理模块活动图
(3)职工管理查询时序图,如图3-5-3所示:
图3-5-3职工管理查询时序图
(4)添加新职工时序图,如图3-5-4所示:
图3-5-4 新职工添加时序图
(5)职工信息修改时序图,如图3-5-5所示:
图3-5-5职工信息修改时序图
(6)职工信息删除时序图,如图3-5-6所示:
图3-5-6职工信息删除时序图
F7、代码开发(界面截图,功能操作说明,核心代码截图)
登录界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>客户关系系统</title>
</head>
<body background="qw.jpg">
<h1 align="center"><strong>
<em>超市客户管理系统 </em></strong></h1>
<p align="center"> 2013-12-7 20112014</p>
<br><br>
<center>
<form method="get" action="/Third/jsp/login.jsp">
用户名:
<input type="text" name="na"/>
<br><br>
密码:
<input type="password" name="pa"/>
<br><br><br>
<input type="submit" value="登录">
</form>
</center>
<br>
<center>
<form method="get" action="/Third/jsp/register.jsp">
<input type="submit" value="注册">
</form>
<p> </p>
<p> </p>
<p> 王云超 郭元绪 张劲达 钟宏屹</p>
</center>
</body>
</html>
新建客户信息
界面设计代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body background="dw2f_129.gif">
<h1 align="center">新建客历
</h1>
<form id="form1" name="form1" method="post" action="rg1.jsp">
<label for="Csytle"></label>
客户类型
<label for="Ctype"></label>
<select name="Ctype" id="Ctype">
<option value="散客">散客</option>
<option value="会员">会员</option>
<option value="VIP">VIP</option>
<option value="大客户">大客户</option>
</select>
客户ID
<label for="Cid"></label>
<input name="Cid" type="text" id="Cid" size="15" />
客户姓名
<label for="Cname"></label>
<input name="Cname" type="text" id="Cname" size="15" />
客户e-mail
<label for="Cmail"></label>
<input name="Cmail" type="text" id="Cmail" size="15" />
<p> 客户性别
<select name="Csex" size="1" id="select">
<option value="男">男</option>
<option value="女">女</option>
</select>
手机
<label for="Ctel"></label>
<input name="Ctel" type="text" id="Ctel" size="15" />
证件类型
<label for="Cardtype"></label>
<select name="Cardtype" id="Cardtype">
<option value="身份证">身份证</option>
<option value="军官证">军官证</option>
</select>
证件号码
<label for="Cardnum"></label>
<input name="Cardnum" type="text" id="Cardnum" size="15" />
</p>
<p> 职业
<label for="Cjob"></label>
<input name="Cjob" type="text" id="Cjob" size="15" />
</p>
<p> 生日
<label for="Cbirh"></label>
<input name="Cbirth" type="text" id="Cbirth" size="15" />
</p>
<p> 备注: 喜欢.忌讳</p>
<label for="Cremark"></label>
<textarea name="Cremark" id="Cremark" cols="45" rows="12"></textarea>
<label for="Clike"></label>
<textarea name="Clike" id="Clike" cols="45" rows="12"></textarea>
<p>
</p>
<p> </p>
<p>
<input type="submit" name="bt3" id="bt3" value="确认" />
<input type="submit" name="bt4" id="bt4" value="提交" />
</p>
<p> 欢迎使用本系统 </p>
</form>
<p> </p>
<p> </p>
<p>
<label for="x1"></label>
</p>
<a href="./test1.jsp">主页</a>
</body>
</html>
数据库连接代码
<%@ page language="java" contentType="text/html; "
pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>
<%@page import="java.io.*" %>
<%request.setCharacterEncoding("UTF-8");%>
<% String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body background="dw2f_70.gif">
<%
Connection conn=null;
Statement stmt=null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=CMS","sa","101");
String Ctype=request.getParameter("Ctype");
String Cid=request.getParameter("Cid");
String Cname=request.getParameter("Cname");
String Cmail=request.getParameter("Cmail");
String Ctel=request.getParameter("Ctel");
String Csex=request.getParameter("Csex");
String Cjob=request.getParameter("Cjob");
String Clike=request.getParameter("Clike");
String Cremark=request.getParameter("Cremark");
String Cbirth=request.getParameter("Cbirth");
String Cardtype=request.getParameter("Cardtype");
String Cardnum=request.getParameter("Cardnum");
String sql="INSERT INTO Client_info(Ctype,Cid,Cname,Cmail,Ctel,Csex,Cjob,Cremark,Clike,Cbirth,Cardtype,Cardnum) VALUES ('"+Ctype+"','"+Cid+"','"+Cname+"','"+Cmail+"','"+Ctel+"','"+Csex+"','"+Cjob+"','"+Cremark+"','"+Clike+"','"+Cbirth+"','"+Cardtype+"','"+Cardnum+"')";
stmt = (Statement) conn.createStatement();
int count = stmt.executeUpdate(sql);
if(count>0)
out.println("恭喜您,新客历建立成功");
else
out.println("失败");
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
%>
<br>
<a href="./test1.jsp">返回主页</a>
<br><br><br><br><br><br><br><br><br>
<center>
<form method="get" action="/Third/jsp/rg.jsp">
<input type="submit" value="继续添加">
</form>
<br>
</center>
</body>
</html>
界面设计代码
<%@ page language="java" contentType="text/html; "
pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>
<%@page import="java.io.*" %>
<%request.setCharacterEncoding("UTF-8");%>
<% String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="dw2f_132.jpg">
<h1 align="center">条件查询
</h1>
<form action="query1.jsp" name="requirement" method="post">
<p>
<font size="4px"><br><br>
<input type="checkbox" name="re" value="Cname" />按客户姓名查询
<input type="text" name="Cname"/>
<br><br>
<input type="checkbox" name="re" value="Ctype" />
按客户类型查询
<input type="text" name="Ctype"/>
<br><br>
<input type="checkbox" name="re" value="Csex" />
按客户性别查询
<select name="Csex" size="1" id="select">
<option value="男">男</option>
<option value="女">女</option>
</select>
</font>
<DIV class=login-btn>
<p><font size="4px"> </font></p>
<p><font size="4px">
<input type="submit" value="查询" />
<input type="reset" value="清除" />
<input type="button" value="返回" onClick="javascript:location.href='cx.jsp'">
</font></p>
</DIV>
</form>
</body>
</body>
</html>
数据库连接代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>
<%@page import="java.io.*" %>
<%request.setCharacterEncoding("UTF-8");%>
<% String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="dw2f_166.gif">
<br><br><font size="4px">您选择的查询条件为:</font>
<%
String[] re = request.getParameterValues("re");
String sqlplus="";
if(re != null) {
for(int i = 0;i<re.length;i++) {
request.setCharacterEncoding("UTF-8");
if(re[i].equals("Cname")) {
out.println(" 会员ID为 "+(String)request.getParameter("Cname"));
sqlplus+=" AND Cname="+"'"+(String)request.getParameter("Cname")+"'";
}
if(re[i].equals("Ctype")) {
out.println(" 会员姓名为 "+(String)request.getParameter("Ctype"));
sqlplus+=" AND Ctype="+"'"+(String)request.getParameter("Ctype")+"'";
}
if(re[i].equals("Csex")) {
out.println(" 会员性别为 "+(String)request.getParameter("Csex"));
sqlplus+="AND Csex="+"'"+(String)request.getParameter("Csex")+"'";
}
}
}
%>
的客户。
<br><br><font size="4px">查询结果如下:</font><br><br>
<%
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=CMS";
String userName = "sa";
String password = "101";
Connection conn = null;
Statement stm = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(Exception e) {
out.println("加载驱动器类出现异常");
}
try {
conn = DriverManager.getConnection(url, userName, password);
//创建statement语句
stm = conn.createStatement();
out.println(sqlplus);
String sql = "select * from Client_info where Cid=Cid "+sqlplus;
out.println(sql);
//使用executeQuery执行SQL查询语句
ResultSet rs = stm.executeQuery(sql);
%>
<table border="1" cellspacing="0" cellpadding="6">
<tr>
<td width="200" align="center"><font color="#8B4513">客户id</font></td>
<td width="120" align="center"><font color="#8B4513">客户类别</font></td>
<td width="253" align="center"><font color="#8B4513">客户姓名</font></td>
<td width="253" align="center"><font color="#8B4513">客户性别</font></td>
<td width="253" align="center"><font color="#8B4513">客户邮箱</font></td>
<td width="120" align="cen
展开阅读全文