目录
摘要 I
Abstract II
前言 1
1 课题简介 2
1.1 选题背景 2
1.2 课题的意义 2
1.3 系统目标 3
2. 可行性研究 5
2.1 技术可行性 5
2.2 经济可行性 5
2.3 操作可行性 5
2.4 法律可行性 6
3. 需求分析 7
3.1 系统需要解决的主要问题 7
3.2 系统具备的基本功能 7
3.3 数据流图 7
3.4 数据字典 9
3.4.1 数据存储 9
3.4.2 数据流 10
3.4.3 数据处理 12
4. 总体设计 13
4.1 概述 13
4.2 系统功能划分 14
4.2.1 会员子系统功能划分 14
4.2.2 管理员子系统功能划分 15
4.3 系统功能描述 15
4.3.1 会员子系统功能描述 15
4.3.2 管理员子系统功能描述 16
4.4 数据库设计 16
4.4.1 数据库概念结构设计 17
4.4.2数据库逻辑结构设计 19
4.5 业务流程图 20
5. 详细设计与系统实施 23
5.1 设计概述与开发工具简介 23
5.1.1 B/S模式及其优势 23
5.1.2 Web应用程序的开发—JSP技术 24
5.1.3 MyEclipse简介 24
5.1.4 Tomcat简介 24
5.1.5 MySQL简介 24
5.1.6 JavaScript简介 24
5.1.7 JSP简介 24
5.1.8 JDBC简介 24
5.1.9 hibernate简介 24
5.2 程序流程图 24
5.3 管理员子系统的实施 26
5.3.1 连接数据库的包含文件 27
5.3.2 管理员登录页面 27
5.3.3 会员管理模块 29
5.3.4 商品管理模块 30
5.3.5 特价商品管理模块 32
5.3.6 订单模块 33
5.3.7 系统用户管理模块 34
5.3.8 商品类别管理模块 35
5.4 会员子系统 36
5.4.1 系统主页面 36
5.4.2 会员注册页面 36
5.4.3 搜索商品信息页面 38
5.4.4 购物车信息页面 39
5.4.5 订单管理页面 42
5.4.6 顾客留言页面 43
5.4.7 修改资料页面 45
6. 测试与维护 47
6.1 测试的任务及目标 47
6.1.1 测试的任务 47
6.1.2 测试的目标 47
6.2 测试方案 47
6.2.1 模块测试: 47
6.2.2 集成测试: 48
6.2.3 验收测试: 48
6.2.4 平行运行 48
6.3 设计测试方案 49
6.4 系统维护 50
结束语 51
致谢 52
参考文献 53
外文文献 53
中文翻译 57
3. 需求分析
3.1 系统需要解决的主要问题
目前,本系统需要了解客户的层次分类和客户具体需要哪些功能,能做到什么,达到什么程度,提供什么便利,使用本系统后又能有什么改变和益处,能为客户、人们和国家带来哪些影响,能为社会带来那些发展。
本次系统的需求对象是农民,要完成系统的全能制作,就必须要完成对农民的实际情况和现场检查的了解意见收集看看他们需要什么都会什么能做那些能为他们做哪些,对他们亲切问候完成分析报告进而严格根据分析报告制作系统一步一步完成农民要求的功能,最后验收符合他们的要求内容的情况然后就能收到钱币了。
3.2 系统具备的基本功能
农产品销售管理体系的成功是靠两个重要部分完成的,他们真的很重要,前台用户销售系统要求基本功能都实现,如登录、注册、购买、下订单、修改密码、查订单。在此基础上如果能体现界面美观、大方、美轮美奂等,能一下子突出重点、震撼他们的内心的效果,就更好了。
(1)、网站前台
作为用户上网浏览能瞬间看到的功能界面,首先,功能全面、且简洁易懂好操作,让用户能够方便快捷的使用本系统,进而爱上本系统并吸引更多的用户前来,让他们也能够了解记住本系统的上帝是谁—是他们。为上帝们直接展示的功能界面主要包括商品信息按类别、名称搜索,用户注册成会员,会员留言,购物等。上帝们进入本系统首面就能看到所有的数据流,游客和任何人都可以查看询问。上帝们注册表级进入后就可以拥有权限做他们本人可一直在做的事了。
(2)网站后台
作为拥有特殊权利的人群的操作界面,理应没有注册界面,为了方便拥有特殊权利的人群对系统的管理,提供了方便的模块化管理模式。后台系统模块主要分为是管理模块、会员(在前台注册的用户)的管理模块、商品的分类管理模块、商品本身是管理模块、订单(用户购买东西的凭证)的数据流等。
4. 总体设计
4.1 概述
本次毕业设计到这里就开始思考怎么完成任务的事了,这里大体部署出设计的各个阶段任务内容和完成时间,然后对各个阶段的任务内容进行分析后确定软件的各种功能模块的划分从而对系统进行论述概写,即,也就是分析判断确定本次毕业设计的模块组成结合和实现的。
4.2 系统功能
本次毕业设计提炼本人的深思熟虑和对系统完美剖析而得到的结果来看,处理体系设计规定为两个分部,是会员子体系和拥有特殊权利的人群子体系。
4.2.1 会员子系统
会员子系统主要包括会员注册(系统必须,几乎每个系统都有)、购物车(一般买到的东西可以放购物车和直接付钱,本文转载自http://www.biyezuopin.vip/onews.asp?id=11352这里本系统是统一放购物车)、顾客留言(供用户发表言论的地方)、商品浏览(本系统的主要功能也是系统的首页也是商务网站永恒的信仰,太常见了)、订单管理(查询用户自身所买东西的地方)、修改注册资料。会员子系统
如图4-1。
图4-1 会员子系统模块图
Lid systeem in figuur 4-1 blokdiagram
4.2.2 拥有特殊权利的人群子体系功能划分
拥有特殊权利的人群子体系可设计出如下图的图形如图4-2。
图 4-2 拥有特殊权利的人群子体系模块
Figuur 4-2 beheerder systeemmodule
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-bean" prefix="bean" %>
<%@ taglib uri="/struts-html" prefix="html" %>
<%@ taglib uri="/struts-logic" prefix="logic" %>
<html>
<head>
<title><bean:message key="website.title"/></title>
<link href="CSS/stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body class="body">
<table width="780" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="227" background="images/fg_top.jpg"></td>
</tr>
</table>
<table width="780" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border:1px; border-style:solid; border-color:#888888">
<tr>
<td width="20"> </td>
<TD height="50" align="right" valign="bottom"><IMG src="images/icon_login.gif" align="absmiddle">
<INPUT id="qKey" name="qKey" value="商品关键字" onClick="this.value=''">
<select id="category">
<option value="0">所有商品</option>
<logic:present name="cateList">
<logic:iterate id="cate" name="cateList" type="com.itbaizhan.ORM.Category">
<option value="${cate.id}">${cate.cateName}</option>
</logic:iterate>
</logic:present>
</select>
<A href="javascript:QuickSearch()"><IMG src="images/icon_search.gif" align="absmiddle" border="0"></A>
<A href="Admin/adminLogin.jsp">进入后台</A>
</TD>
<td width="20"> </td>
</tr>
<tr>
<td> </td>
<td>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR align="center">
<TD valign="top" width="9"><IMG src="images/icon02.gif"></TD>
<TD class="header_menu" align="middle">
<A href="mer.do?method=browseIndexMer"><span class="whiteTitle"><bean:message key="menu.item1"/></span></A>
</TD>
<TD background="images/Bule_06.gif" width="2"></TD>
<TD class="header_menu" align="middle">
<A href="cart.do?method=browseCart"><span class="whiteTitle"><bean:message key="menu.item2"/></span></A>
</TD>
<TD background="images/Bule_06.gif" width="2"></TD>
<TD class="header_menu" align="middle">
<A href="order.do?method=browseOrder"><span class="whiteTitle"><bean:message key="menu.item3"/></span></A>
</TD>
<TD background="images/Bule_06.gif" width="2"></TD>
<TD class="header_menu" align="middle">
<A href="mem.do?method=browseWord"><span class="whiteTitle"><bean:message key="menu.item4"/></span></A>
</TD>
<TD background="images/Bule_06.gif" width="2"></TD>
<TD class="header_menu" align="middle">
<A href="mem.do?method=loadMember"><span class="whiteTitle"><bean:message key="menu.item5"/></span></A>
</TD>
<TD vAlign=top width=7><IMG src="images/icon07.gif"></TD>
</TR>
</TABLE></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="200" valign="top"><TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD><IMG src="images/Bule_43.gif"></TD>
</TR>
<TR>
<TD class="C_Item_bg">
<logic:present name="member">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD class="C_login_Title"><bean:message key="member.login.label"/></TD>
</TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TR height="10"><TD></TD></TR>
<TR height="30" class="text">
<TD><bean:message key="member.logined" arg0="${member.memberName}" arg1="${member.memberlevel.levelName}"/></TD>
</TR>
<TR height="30">
<TD align="center">
<a href="login.do?method=logout"><span class="blueText"><bean:message key="member.logout"/></span></a>
</TD>
</TR>
</TABLE>
</TR>
</TABLE>
</logic:present>
<logic:notPresent name="member">
<html:javascript formName="memLoginForm"/>
<html:form action="/login.do?method=login" style="margin:0px;" onsubmit="return validateMemLoginForm(this);">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD class="C_login_Title"><bean:message key="member.login.label"/></TD>
</TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TR height="30">
<TD class="text"><bean:message key="member.login.name"/>:
<html:text property="loginName" size="10" styleClass="textBox"/>
</TD>
</TR>
<TR height="30">
<TD class="text"><bean:message key="member.login.pwd"/>:
<html:password property="loginPwd" size="10" styleClass="textBox"/>
</TD>
</TR>
<TR height="30">
<TD class="UserRegster" align="right">
<html:button property="btn" onclick="reg()"><bean:message key="member.reg.text"/></html:button>
<html:submit><bean:message key="member.login.text"/></html:submit>
</TD>
</TR>
</TABLE>
</TR>
</TABLE>
<logic:messagesPresent>
<script language="javascript">
alert('<html:errors property="loginError"/>');
</script>
</logic:messagesPresent>
</html:form>
</logic:notPresent>
</TD>
</TR>
<TR>
<TD><IMG src="images/Bule_58.gif"></TD>
</TR>
</TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD><IMG src="images/Bule_43.gif"></TD>
</TR>
<TR>
<TD class="C_Item_bg" valign="top">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD class="C_Sort_Title"><bean:message key="mer.category"/></TD>
</TR>
<logic:notPresent name="cateList">
<TR>
<TD class="redText"><bean:message key="cate.notExist"/></TD>
</TR>
</logic:notPresent>
<TR height="10"><TD></TD></TR>
<logic:present name="cateList">
<logic:iterate id="cate" name="cateList" type="com.itbaizhan.ORM.Category">
<TR>
<TD class="text">
<img src="images/cateIcon.gif" border="0">
<a href="mer.do?method=searchMer&cateid=${cate.id}">${cate.cateName}</a>
</TD>
</TR>
</logic:iterate>
</logic:present>
</TABLE>
</TD>
</TR>
<TR>
<TD><IMG src="images/Bule_58.gif"></TD>
</TR>
</TABLE></td>
<td width="20"> </td>
<td valign="top"><br>
<TABLE class="C_Goods_Title" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD><IMG hspace=5 src="images/Icon_TeJia.gif"></TD>
<TD> </TD>
<TD align="right">
<A href="mer.do?method=browseSMer"><IMG hspace=5 src="images/icon_more.gif" border=0></A>
</TD>
</TR>
</TABLE>
<TABLE class="C_Goods_Border" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<logic:notPresent name="smerList">
<TD valign="top" class="redText" colspan="3">
<bean:message key="mer.notExist"/>
</TD>
</logic:notPresent>
<logic:present name="smerList">
<logic:iterate id="mer" name="smerList" type="com.itbaizhan.ORM.Merchandise">
<TD valign="top" width="33%">
<table cellspacing=0 cellpadding=0 width=180 border=0>
<tr>
<td align="TOP">
<table width="118" height="118" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px; border-style:solid; border-color:#888888">
<tr align="center" valign="middle">
<td><a href="mer.do?method=showMer&id=${mer.id}" target=_blank> <img src=".${mer.picture}" width="100" height="100" border="0"> </a></td>
</tr>
</table>
</td>
</tr>
<tr align="center" height="30">
<td><a href="mer.do?method=showMer&id=${mer.id}" target=_blank><span class="blueText">${mer.merName}</span></a></td>
</tr>
<tr align="center" height="20">
<td class="text"><bean:message key="mer.price"/>: ¥${mer.price} </td>
</tr>
<tr align="center" height="20">
<td class="text"><bean:message key="mer.sprice"/>: ¥${mer.sprice} </td>
</tr>
<tr>
<td>
<a href="mer.do?method=showMer&id=${mer.id}"><img src="images/icon_car.gif" border=0></a>
<a href="cart.do?method=addCart&id=${mer.id}"><img alt="" src="images/icon_buy.gif" border=0></a>
</td>
</tr>
</table>
</TD>
</logic:iterate>
</logic:present>
</TR>
</TABLE><br>
<TABLE class=C_Goods_Title cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD><IMG hspace=5 src="images/NewGoods_03.gif"></TD>
<TD> </TD>
<TD align=right><A href="mer.do?method=browseMer"><IMG hspace=5 src="images/icon_more.gif" border=0></A></TD>
</TR>
</TABLE>
<TABLE class="C_Goods_Border" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<logic:notPresent name="merList">
<TD valign="top" class="redText" colspan="3">
<bean:message key="mer.notExist"/>
</TD>
</logic:notPresent>
<logic:present name="merList">
<logic:iterate id="mer" name="merList" type="com.itbaizhan.ORM.Merchandise">
<TD valign="top" width="33%">
<table cellspacing=0 cellpadding=0 width=180 border=0>
<tr>
<td align="TOP">
<table width="118" height="118" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px; border-style:solid; border-color:#888888">
<tr align="center" valign="middle">
<td><a href="mer.do?method=showMer&id=${mer.id}" target=_blank> <img src=".${mer.picture}" width="100" height="100" border="0"> </a></td>
</tr>
</table>
</td>
</tr>
<tr align="center" height="30">
<td><a href="mer.do?method=showMer&id=${mer.id}" target=_blank><span class="blueText">${mer.merName}</span></a></td>
</tr>
<tr align="center" height="20">
<td class="text"><bean:message key="mer.price"/>: ¥${mer.price} </td>
</tr>
<tr>
<td class=GoodsItem_buy>
<a href="mer.do?method=showMer&id=${mer.id}"><img src="images/icon_car.gif" border=0></a>
<a href="cart.do?method=addCart&id=${mer.id}"><img alt="" src="images/icon_buy.gif" border=0></a>
</td>
</tr>
</table>
</TD>
</logic:iterate>
</logic:present>
</TR>
</TABLE>
</td>
</tr>
</table></td>
<td> </td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td> </td>
<td height="30" bgcolor="#4282CE" class="whiteText" align="center">
<bean:message key="website.foot"/> </td>
<td> </td>
</tr>
<tr>
<td height="20" colspan="3"> </td>
</tr>
</table>
<script type="text/javascript">
//会员注册
function reg(){
window.location = "reg.jsp";
}
//搜索商品
function QuickSearch(){
var url = "mer.do?method=searchMer&cateid="+document.all.category.value;
var key = document.all.qKey.value;
if (key !=null && key!="商品关键字" && key.length>0)url = url+"&key="+key;
window.location = url;
}
</script>
</body>
</html>