与实现
第一章 系统概述……………………………………………..........….…. ..3
1.1 数据库概述…………………………………………....…………….3
1. 2 基本功能的基本要求.........................................................................3
第二章 系统分析………………………………………………….......……3
2.1 系统可行性研究……………………………………………....…….3
2.2 系统需求分析……………………………………………....……….3
第三章 系统设计阶段…………………………………………….......……4
3.1 系统功能模块设计…………………………………………....…….4
3.1.1 系统功能分析...........................................................................4
3.1.2 系统功能模块图.......................................................................5
3.2 系统数据库分析设计…………………………………………....….6
3.3 用户界面设计…………………………………………………....….8
第四章 系统参考源代码………………………………………………...11
第一章 系统概述
1.1 数据库概述
相对于传统的经营模式,网上创业有着成本低、时效高、风险小、方式灵活的优恪大于年中国中小企业情况调查显示,个人在网下启动销售公司的平均费用至少5万元。但在网上,成本也许只是联网的电话费。当然,网上开店也并不是有百利而无一害的,服务始终是其软肋,如诚信问题、安全问题、物流问题等。目前网上交易最大的问题还是信任感的建立。
网上购物的便捷性和实用性日益凸显,从发展的角度看,以不断扩大的网民数量为基础,随着电子商务的不断发展以及网络信用、电子支付和物流配送等瓶颈的逐渐突破,网上创业的前景必然更加广阔。
1.2 系统功能的基本要求:
包含三类用户:管理员、商品发布者、普通用户、访客。
向管理员提供以下功能:自身密码修改,其他用户添加删除,用户信息修改、统计。
商品信息添加、修改、删除、查找、统计。
向商品发布者提供以下功能:注册、登陆、注销、自身密码修改、自身信息修改。
商品信息发布,自身商品信息统计。查找浏览其他商品。
向一般用户提供以下功能:商品浏览、查找、获知商家联系方式,定购商品。
向访客提供以下功能:商品浏览、查找、获知商家联系方式。
第二章 系统分析
2.1 系统可行性研究
功能:本系统应该实现基本的网上商品交易,通过三种不同的身份登录系统,可以执行相应的数据操作,其中最主要的功能是网上订购,商品用户和普通用户都可以实现;关于付款或者交货,就用户私下解决,本系统可以提供双方的电话。商品用户的主要功能是发布商品,而普通用户则订购商品,管理员则可以管理系统全部信息,主要是维护系统信息的正确性与合法性。
输入:对于商品搜索功能,可以是按商品名称或者是价格的区域进行选择;对于管理员维护功能,要有修改整个系统的信息。
输出:能按要求在显示器上显示所需信息并能打印成有条理的表格。
安全与保密:对于不同权限用户,设置不同权限,对重要数据可以考虑加密存储。对不同身份登录也设置不同的功能。
2.2 系统需求分析
1)基本信息的维护
商品基本信息管理:包括商品基本信息的新建、修改和删除等。
商品用户信息管理:包括商品用户信息的注册、修改密码和删除等。
普通用户信息管理:包括普通用户信息的添加、删除和修改密码等。
2)商品发布
商品发布信息管理:商品发布信息包括商品id,名称,价格,广告词,订购次数等。商品发布管理功能完成商品信息增加、修改等。
分类查看:可以根据商品名称或者价格所在区域来查看某种商品的详细信息和卖家情况。
最近更新:商品信息的变动可以显示你的商品新鲜度。
商品订购次数:列出当前订购量最多商品。
已有商品:列出当前商品用户已发布的商品。
3)订购管理
商品订购管理:商品的订购包含商品id与订购商品的用户名,而且每订购一次就将商品的订购次数加一。
查看已订购商品:可以根据商品用户名称来查看当前用户订购商品的情况。
查找商品:用户可以直接去商城找商品,然后输入商品号订购,更新订购表。
4)管理员管理
普通用户信息管理:查看全部普通用户信息,对其进行修改与删除,更新表。
商品用户管理:基本功能与管理普通用户一样。
商品管理:查看全部商品信息与商品所属商品用户信息,然后对商品信息进行修改与删除。
第三章 系统设计阶段
3.1 系统功能模块设计
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。
3.1.1系统功能分析
系统功能分析是在系统开发的总体任务的基础上完成。校园小商品交易系统 需要完成功能主要有:
·默认访客的浏览,包括热门商品、最近更新商品,查找商品,查看商品用 户的资料。
·普通用户的注册,登陆,修改自身密码,浏览热门商品、最近更新商品, 查看商品用户信息,按商品名称或商品价格区域搜索商品,订购商品;个人 信息管理,查看已订购商品。
·商品用户的注册、登陆、修改自身密码与个人信息,查看已订购商品,查 看已发布商品,查看被订购商品的用户信息;浏览商城,包括热门商品、最 近更新商品、全部商品;发布商品,修改拥有的商品信息。
·热门商品,通过查询数据库中suser.sp表,按dinggoucishu由大到小排列 出来,显示出多人订购的商品为热门;dinggoucishu由系统自动生成,不允 许任何人修改,以防虚假信息。
·最近更新商品,通过查询suser.sp表,按fabudate的新旧时间排列,新时 间的排在前面,fabudate是由发布商品的当前系统时间生成。
·商品发布与修改,由商品用户完成,输入商品的基本信息,然后发布到商 城,商品用户可以在查看拥有的商品信息那块修改商品信息。
·管理员的功能,查看整个系统的信息,并可以对其进行修改;主要是维护 系统信息的规范性,文明性,而且能通过管理员查看用户的密码,避免了用 户丢失密码而无法再次登陆;对一些长期不登陆的用户进行修改删除,释放 更多空间让别人注册登陆。
3.1.2 系统功能模块图
对上述各功能进行集中、分块,按照结构化程序设计的要求,得到如图3-1所示的系统功能模块图。
3.2 系统数据库分析设计
1、数据库设计
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:
●数据库需要分析。
●数据库概念结构设计。
●数据库逻辑结构设计。
数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后而后具体设计打下基础。
管理员信息:管理员账号,密码;
普通用户信息:账号,密码,电话,email;
商品用户信息:账号,密码,电话,email;
商品信息:商品id,商品名称,商品价格,广告词,发布日期,订购次数;
普通订购信息:订购的商品id,订购商品的用户;
商业订购信息:订购的商品id,订购商品的商品用户;
本次设计要求使用ORACLE数据库,相对以前的SQL2000,用户的权限与表空间的分配要求就高了。
这次数据库的设计:首先在实例ORAL数据库上建了一个kechengsheji的表空间,在表空间上创建guanli,suser,puser,sp,dinggou,sdonggou几个表,用来存储各方面的资料,guangli存放管理员的账号密码,suser存放商品用户的信息,puser存放普通用户的信息,sp存放商品的信息,dinggou存放普通用户的订购信息,sdinggou存放商品用户的订购信息。
另,创建4个用户fangke,guangli,puser,suser,赋予各个用户应该的权限,方案都是kechengsheji,例如fangke赋予select对表sp,suser的操作,suser则赋予select,update,insert对表sp,等等。
得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
例:普通用户信息实体E-R图如图
例:商品信息实体E-R图如图
3.3 用户界面设计
系统是使用JSP+ORACLE结合开发出来的。
本系统设计思想:“为用户设计,而不是设计者”
本系统设计原则:1 界面简洁、操作方便并能高效率地完成工作。
2 界面根据用户需求设计。
3界面能引导用户操作的功能。
1.登陆页面,个人管理页面
2.最近更新商品
3.商品搜索
4.商品发布页面,查看已有商品
5.用户注册页面
6.管理员管理
第四章 系统参考源代码
主页:
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ include file="head.txt" %><% if ((String)session.getAttribute("dquser")==null){%>欢迎来到商店 | [登陆] | [注册] | <%}"); out.print((String)session.getAttribute("dquser"));%>,欢迎来到商店 | 退出 | " />个人管理 <%}%>
|
正门
XXX制造 | 违权必究 | 联系电话 0759-********
所含heat.Txt代码
<%@ page contentType="text/html;Charset=GB2312" %>
海大
数据库的连接,注册部分
<% boolean boo=false;
String m="";
if (suserid.getSname()==null)
{
m="请输入用户名";
boo=false;
}
if (suserid.getSname()!=null)
{
Connection con=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:odbc:suser
String str="insert into suser values(?,?,?,?)";
PreparedStatement pstmt=con.prepareStatement(str);
pstmt.setString(1,suserid.getSname());
pstmt.setString(2,suserid.getSname());
pstmt.setString(3,suserid.getPhone());
pstmt.setString(4,suserid.getEmail());
pstmt.execute();
pstmt.close();
con.close();
m="用户注册成功";
boo=true;
}
catch (Exception e1)
{
m="插入数据时出错";
boo=false;
}
}
%>
登陆部分
<% String m="";
boolean bo=false;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
if (pdl.getPname()==null)
{
m="请输入用户名";
bo=false;
}
else
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:odbc:puser
String str="select pname,ppassword from puser";
stmt=con.createStatement();
rs=stmt.executeQuery(str);
while(rs.next())
{
String n1=rs.getString(1).trim();
String p1=rs.getString(2).trim();
if (n1.equals(pdl.getPname())&&p1.equals(pdl.getPpassword()))
{
m="登陆成功";
bo=true;
}
}
rs.close();
stmt.close();
con.close();
}
catch(SQLException e)
{m="登陆失败,请重新登陆";
bo=false;}
}
%>
密码修改部分
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="java.sql.*" %>
<% String m=null;
String password=pc.getPassword();
String name=(String)session.getAttribute("dquser");
String password1=pc.getPassword1();
Connection con=null;
if(pc.getPassword()==null)
{
session.setAttribute("m请输入密码");
response.sendRedirect("pgl.jsp");
}
if (pc.getPassword().equals(pc.getPassword1())&&pc.getPassword()!=null&&pc.getPassword1()!=null)
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:odbc:puser
String str="update puser set ppassword=? where pname=?";
PreparedStatement stmt=con.prepareStatement(str);
stmt.setString(1,pc.getPassword());
stmt.setString(2,name);
stmt.execute();
stmt.close();
con.close();
session.setAttribute("m修改成功");
response.sendRedirect("pgl.jsp");
}
catch(SQLException e)
{out.print(e);
session.setAttribute("m插入数据库出错");
response.sendRedirect("pgl.jsp");
}
}
else{session.setAttribute("m前后两次密码不对");
response.sendRedirect("pgl.jsp");}
%>
按价格区域搜索商品部分
<% Connection con=null;
int id=0;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
String di=request.getParameter("zuidi");
int zuidi=Integer.parseInt(di);
String gao=request.getParameter("zuigao");
int zuigao=Integer.parseInt(gao);
con=DriverManager.getConnection("jdbc:odbc:fangke
String str="select suser.suser.sname,suser.suser.phone,suser.sp.spid,suser.sp.spname,suser.sp.jiage,suser.sp.guanggaoci from suser.sp,suser.suser where suser.suser.sname=suser.sp.sname and suser.sp.jiage>="+zuidi+"and suser.sp.jiage<="+zuigao;
Statement stm=con.createStatement();
ResultSet srs=stm.executeQuery(str);
//stm.setInt(1,id);
out.print("
"+"卖家"+" | ");"+"卖家电话"+" | ");"+"商品id"+" | ");"+"商品名称"+" | ");"+"商品价格"+" | ");"+"广告词"+" | ");
"+na+" | ");"+dianhua+" | ");"+n+" | ");"+b+" | ");"+c+" | ");"+j+" | ");
con.close();
}
catch(SQLException e)
{
out.print(e);
}
%>
订购部分
<% String shenfen=(String)session.getAttribute("shenfen");
String user,biao,name,m=null;
int id=0;
if(shenfen=="sgl.jsp")
{user="suser";
biao="sdinggou";
name="sname";}
else
{user="puser";
biao="dinggou";
name="pname";}
String s="jdbc:odbc:"+user;
Connection con=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
String di=request.getParameter("spid");
id=Integer.parseInt(di);
con=DriverManager.getConnection(s,user,user);
String str="insert into "+biao+"("+name+",spid) values(?,?)";
PreparedStatement pstmt=con.prepareStatement(str);
pstmt.setString(1,(String)session.getAttribute("dquser"));
pstmt.setInt(2,id);
pstmt.execute();
pstmt.close();
con.close();
m="恭喜,订购成功了";
}
catch (Exception e1)
{
m="订购失败";
}
%>
<% Connection co=null;
boolean bo=false;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
//int id=Integer.parseInt(sxiugai.getSpid());
co=DriverManager.getConnection("jdbc:odbc:suser
String stra="update suser.sp set dinggoucishu=(dinggoucishu+1) where spid=?";
PreparedStatement stmt=co.prepareStatement(stra);
stmt.setInt(1,id);
stmt.execute();
stmt.close();
bo=true;
}
catch(SQLException e)
{
out.print(e);
bo=false;
}
%>
管理员删除用户部分
<% Connection con=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:odbc:guanli
String str="delete puser.puser where pname=?";
PreparedStatement stmt=con.prepareStatement(str);
stmt.setString(1,request.getParameter("deletename"));
stmt.execute();
stmt.close();
con.close();
session.setAttribute("mp删除成功");
response.sendRedirect("glpuser.jsp");
}
catch(SQLException e)
{
out.print(e);
session.setAttribute("mp删除错误");
response.sendRedirect("glpuser.jsp");
}
%>