电子商务系统分析与设计报告.docx
课 程 设 计 报 告课 程 名 称 电子商务系统分析与设计 指 导 老 师 卫剑 成员姓名学号 熊灵(20132205031059) 贾琦 (2013205031002)赵成(20132205031057) 班 级 电子商务一班 小组组长姓名 熊灵 组 长 电 话 13027847531 成 绩 _ 完 成 日 期 2016/6/12 目录一、需求分析3需求清单及任务分工3系统用例图3功能点用例图;3功能点业务场景描述(要包含基本业务场景和扩展业务场景);3二、系统分析3功能点功能概述;3功能点业务静态模型(包含类图);3功能点业务动态模型(包含活动图、状态图和顺序图);3功能点数据分析,并画出E-R图;3三、系统设计31.类32.功能模块43.数据库设计5四、系统实现51.前端页面代码52.Php代码53.数据库脚本5一、 需求分析1.1需求清单及任务分工a.需求清单:序号需求名称需求说明状态优先级风险分工1网站注册/登陆能够通过Internet登陆网站标准的关键关键的贾琦2查询订单通过网站后台查询已经存在的订单标准的关键关键的贾琦3物流公司选择通过网站后台保存物流公司标准的关键关键的赵成4选择开通物流公司通过网站后台选择需要开通的物流公司标准的关键关键的赵成5填写地址库信息通过网站后台输入卖家地址信息标准的关键关键的熊灵6核对地址库信息通过网站后台核对地址信息标准的关键关键的熊灵b.任务分工:任务一PHP设计熊灵任务二网页设计赵成任务三数据库建设贾琦功能点一订单管理贾琦功能点二服务商管理赵成功能点三地址库管理熊灵1.2系统用例图1.3功能点用例图a. 功能点一:订单管理b.功能点二:服务商管理c.功能点三:地址库管理1.4功能点业务场景描述(要包含基本业务场景和扩展业务场景);a.管理员注册/登陆基本业务场景:1、管理员提出了注册/登陆请求 2、管理员点击了注册/登陆按钮 3、网站服务器响应管理员请求 4、网页显示出注册/登陆后结果扩展业务场景:管理在输入账号密码是发生了错误,账号或密码错误,系统错误,网络错误,即登陆失败。b.物流管理基本业务场景:1、管理员提出了物流管理请求 2、管理员选择货运订单,修改或储存买家信息 3、网站服务器响应管理员请求 4、网页显示出商品管理后页面扩展业务场景:商品管理时出现系统故障,如网络故障,或修改商品时未完整填写修改内容,则出现商品管理失败。c.订单管理基本业务场景:1、管理员提出了订单管理请求 2、管理员选择订单管理选项,订单编辑、订单查询 3、网站服务器响应管理员请求 4、网页显示出订单管理后结果扩展业务场景:订单管理时出现系统故障,如网络故障,或人为故障,如订单编号不存在完整,订单编号输入错误,则出现订单管理失败。d.服务商管理基本业务场景:1、管理员提出了服务商管理请求 2、管理员选择服务商管理选项,开通服务商 3、网站服务器响应管理员请求 4、网页显示出订单管理后结果扩展业务场景:服务商管理出现系统故障,如网络故障,或系统反应迟钝,则出现订单管理失败。e.地址库管理基本业务场景:1、管理员提出了地址库管理请求 2、管理员选择地址库管理选项,输入地址信息 3、网站服务器响应管理员请求 4、网页显示出地址库管理后的结果扩展业务场景:地址库管理出现系统故障,如网络故障,或系统反应迟钝,或出现人为故障,如地址库信息输入错误或不完整,则地址库管理失败。2、 系统分析2.1功能点功能概述管理员注册/登陆:管理员通过输入用户名及密码注册/登陆到网站后台进行管理;物流管理:管理员通过物流管理可以修改卖家信息,确定物流公司,发货与取消发货,查看发货物品物流信息;订单管理:管理员通过订单管理可以对订单进行编辑以及查询需要的订单;服务商管理:管理员通过服务商管理可以查询及开通相应的物流公司;地址库管理:管理员通过地址库管理可以对卖家个人信息进行设置。2.2功能点业务静态模型(包含类图)a. 订单管理b. 服务商管理c. 地址库管理2.3功能点业务动态模型(包含活动图、状态图和顺序图)2.3.1订单管理a. 活动图:b.状态图:c.顺序图:2.3.2服务商管理a.活动图:b.状态图:c.顺序图:2.3.3地址库管理a.活动图:b.状态图:c.顺序图:2.4功能点数据分析,并画出E-R图;三、系统设计3.1类3.1.1类清单序号类名称所属用例所属功能模块实现的文件1订单管理订单管理订单管理已产生的订单2服务商管理物流管理物流工具一个工具类中含有物流工具的一个包3地址库管理物流服务物流服务发货中需要的各种物流服务3.1.2类的详细设计3.1.2.1属性名称:属性名称数据类型描述订单管理字符型Char(20)服务商管理字符型Char(20)地址库管理字符型Char(20)3.1.2.2方法描述:方法名称功能描述输入参数描述输出参数描述管理订单管理员通过订单管理可以对订单进行编辑以及查询需要的订单;数据库数据输入php嵌入html语言和MYSQL语言管理服务商:管理员通过服务商管理可以查询及开通相应的物流公司;数据库数据输入php嵌入html语言和MYSQL语言管理地址库:管理员通过地址库管理可以对卖家个人信息进行设置。数据库数据输入php嵌入html语言和MYSQL语言3.2功能模块3.2.1模块基本信息 模块名称订单管理模块编号版本号功能描述管理员通过订单管理可以对订单进行编辑以及查询需要的订单; 关联模块无关联模块包含文件数1包含的类待发货订单模块名称服务商管理模块编号版本号功能描述管理员通过服务商管理可以查询及开通相应的物流公司;关联模块 无关联模块包含文件数1包含的类开通服务商模块名称地址库管理模块编号版本号功能描述管理员通过地址库管理可以对卖家个人信息进行设置。关联模块 无关联模块包含文件数1包含的类地址库信息3.2.2模块设计3.2.2.1主要文件的描述(1) Order.phpa) 实现的功能:订单管理、b) 包含的类:订单管理c) 界面截图(PHP等后台功能文件无需截图)(2) deliver.phpa) 实现的功能:服务商管理、b) 包含的类:服务商管理c) 界面截图(PHP等后台功能文件无需截图)(3) addr.phpa) 实现的功能:地址管理b) 包含的类:地址管理c) 界面截图(PHP等后台功能文件无需截图)3.3数据库设计3.3.1关系模式描述(逻辑模型)3.3.1.1表清单 序号表的名称 1用户表 2待发货订单表 3服务商表 4地址库表3.3.2表结构描述(物理模型)a.用户表:b.待发货订单表:c.服务商表:d.地址库表:3.3.3数据表内容a.用户表:字段名称数据类型长度是否为主键是否为空其他约束含义账号整形8是否用户名字符型 15否是 密码字符型15否是b.待发货订单表:字段名称数据类型长度是否为主键是否为空其他约束含义编号整形8是否用户密码字符型32否是用户姓名字符型15否是用户电话字符型15否是订单编号字符型32否是商品名称字符型64否是商品图片字符型128否是添加日期日期型否是是否发送整形4否是快递名称字符型20否是详细地址字符型512否是c.服务商表:字段名称数据类型长度是否为主键是否为空其他约束含义账号整形8是否物流名称字符型 12否是 开通整形 4否是d.地址库表:字段名称数据类型长度是否为主键是否为空其他约束含义编号整形8是否用户名字符型 16否是 详细地址字符型 128否是用户电话字符型16否是邮政编码字符型512否是备注字符型8否是四、系统实现4.1前端页面代码login.html<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" ""><html xmlns=""><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>用户登录</title><link rel="stylesheet" href="css/index.css" /></head><body><div class="center"><h3>会员登录</h3><form method="post" action="login.php"><ul><li><p>用户名:</p><p><input type ="text" class="input" name ="username" ></p></li><li><p>密码:</p><p><input type ="password" class="input" name ="password" ></p></li><li class="submit"><input type ="submit" value ="登陆" ><a href="register.html" style='margin-left: 25px;'>注册</a></li></ul></form></div></body>register.html<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" ""><html xmlns=""><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>用户注册</title><link rel="stylesheet" href="css/index.css" /></head><body><div class="center"><h3>会员注册</h3><form method="post" action="register.php"><ul><li><p>用户名:</p><p><input type ="text" class="input" name ="username" ></p></li><li><p>密码:</p><p><input type ="password" class="input" name ="password" ></p></li><li><p>确认密码:</p><p><input type ="password" class="input" name ="password2" ></p></li><li class="submit"><input type ="submit" value ="注册" ><a href="login.html" style='margin-left: 25px;'>登录</a></li></ul></form></div></body>CSS代码body font-family: "微软雅黑" font-size: 16px; .centermargin: 0 auto;text-align: center;margin-top: 5%;.center ulwidth: 320px;text-align: left;margin: 0 auto;lilist-style-type:none;margin:22px 0;.center .inputheight: 28px;width: 100%;.center .submittext-align: center;.center .submit inputpadding: 6px 14px;font-size: 14px;.order-tablemargin-top:0;width: 70%;.order-table trheight: 40px;.menumargin-right: 25px;.activefont-weight: bold;font-size: 18px;4.2Php代码Register.php<?phpinclude_once("connect.php");$user = $_POST"username"$psw = $_POST"password"$psw2 = $_POST"password2"if($user = "" | $psw = "" | $psw2 = "")echo "<script>alert('请输入用户名或密码!'); history.go(-1);</script>" else if($psw != $psw2)echo "<script>alert('两次输入密码不一致!'); history.go(-1);</script>" else$sql = "insert into tb_user(username, password) values('$user', '$psw')"$result = mysql_query($sql);if($result = 1)session_start();$_SESSION'username'=$user;header("location:order.php"); else echo "<script>alert('注册失败!');history.go(-1);</script>"?>Login.php<?phpinclude_once("connect.php");$user = $_POST"username"$psw = $_POST"password"if($user = "" | $psw = "")echo "<script>alert('请输入用户名或密码!'); history.go(-1);</script>"else$sql = "select username,password from tb_user where username = '$user' and password = '$psw'"$result = mysql_query($sql);echo($result);$num = mysql_num_rows($result);if($num)/echo "登录成功"session_start();$_SESSION'username'=$user;header("location:order.php");elseecho "<script>alert('用户名或密码不正确!');history.go(-1);</script>"?>connect.php<?phpsession_start();$host="localhost"$db_user="root"$db_pass=""$db_name="tb_shop"$timezone="Asia/Shanghai"$link=mysql_connect($host,$db_user,$db_pass);mysql_select_db($db_name,$link);mysql_query("SET names UTF8");header("Content-Type: text/html; charset=utf-8");date_default_timezone_set($timezone); /北京时间?>order.php<?php include_once("connect.php");?><!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>物流服务</title> <link rel="stylesheet" href="css/index.css" /></head><body> <div class="center"> <div style="margin: 20px;"> <?php if($_SESSION'username') echo "欢迎您 ".$_SESSION'username'." <a href='logout.php'>退出</a>" ; else echo "<script>location.href='login.html'</script>" ?> </div> <div> <a href="order.php"><span class="menu active">订单管理</span></a> <a href="delivery.php"><span class="menu">服务商管理</span></a> <a href="addr_add.php"><span class="menu">地址管理</span></a> </div> <h1>等待发货的订单</h1> <form method="post" action="order.php"> <p> 收件人名称: <input type="text" name="userName"/> 创建时间: <input type="date" name="dateAdd"/> 订单编号:<input type="text" name="orderCode"/> <input type="submit" value="搜索" /> </p> </form> <hr> <?php include_once("connect.php"); $userName = $_POST"userName" $dateAdd = $_POST"dateAdd" $orderCode = $_POST"orderCode" $sql = "select * from tb_order where 1 = 1 " if($userName) $sql.=" and user_name like '%$userName%' " if($dateAdd) $sql.=" and date_add like '%$dateAdd%' " $result = mysql_query($sql); echo "<table class='center order-table'>" echo "<tr>" echo "<th>订单编号</th>" echo "<th>收货人姓名</th>" echo "<th>收货人电话</th>" echo "<th>商品名称</th>" echo "<th>送货地址</th>" echo "<th>下单时间</th>" echo "<th>快递名称</th>" echo "<th>操作</th>" echo "</tr>" while($order = mysql_fetch_array($result) echo "<tr>" echo "<td>".$order"order_code"."</td>" echo "<td>".$order"user_name"."</td>" echo "<td>".$order"user_phone"."</td>" echo "<td>".$order"goods_name"."</td>" echo "<td>".$order"addr_detail"."</td>" echo "<td>".$order"date_add"."</td>" if($order"is_send" - 0 = 0) echo "<td><select><option>中通快递</option><option>申通快递</option></select></td>" echo "<td><a href='javascript:;'>发货</a></td>" else echo "<td>".$order"delivery_name"."</td>" echo "<td>已发货</td>" echo "</tr>" echo "</table>" ?> </div> <script> function demo() /window.location.href = "" </script></body></html>deliver.php<?php include_once("connect.php");?><!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>物流服务</title> <link rel="stylesheet" href="css/index.css" /></head><body> <div class="center"> <div style="margin: 20px;"> <?php if($_SESSION'username') echo "欢迎您 ".$_SESSION'username'." <a href='logout.php'>退出</a>" ; else echo "<script>location.href='login.html'</script>" ?> </div> <div> <a href="order.php"><span class="menu">订单管理</span></a> <a href="delivery.php"><span class="menu active">服务商管理</span></a> <a href="addr_add.php"><span class="menu">地址管理</span></a> </div> <h1>服务商管理</h1> <form method="post" action="delivery_add.php"> <p> 物流公司: <input type="text" name="delivery_name"/> <input type="submit" value="开通" /> </p> </form> <?php include_once("connect.php"); $delivery_name = $_POST"delivery_name" $sql = "select * from tb_delivery" $result = mysql_query($sql); echo "<table class='center order-table'>" echo "<tr>" echo "<th>物流名称</th>" echo "<th>是否开通</th>" echo "</tr>" while($order = mysql_fetch_array($result) echo "<tr>" echo "<td>".$order"delivery_name"."</td>" echo "<td>已开通</td>" echo "</tr>" echo "</table>" ?> </div> <script> function demo() /window.location.href = "" </script></body></html>deliver_add.php<?phpinclude_once("connect.php");$delivery_name = $_POST"delivery_name"if($delivery_name = "") echo "<script>alert('请输入物流名称!'); history.go(-1);</script>" else$sql = "insert into tb_delivery(delivery_name, effective) values('$delivery_name', 1)"$result = mysql_query($sql);if($result = 1)header("location:delivery.php"); else echo "<script>alert('保存失败!');history.go(-1);</script>"?>addr.php<?phpinclude_once("connect.php");$user_name = $_POST"user_name"$user_phone = $_POST"user_phone"$addr_detail = $_POST"addr_detail"$zip_code = $_POST"zip_code"$remark = $_POST"remark"if($user_name = "") echo "<script>alert('请输入联系人姓名!'); history.go(-1);</script>" else if($user_phone = "") echo "<script>alert('请输入联系人电话!'); history.go(-1);</script>" else if($addr_detail = "") echo "<script>alert('请输入邮寄地址!'); history.go(-1);</script>" else if($zip_code = "") echo "<script>alert('请输入邮政编码!'); history.go(-1);</script>" else$sql = "insert into tb_addr(user_name, user_phone, addr_detail, zip_code, remark) values('$user_name', '$user_phone', '$addr_detail', '$zip_code', '$remark')"$result = mysql_query($sql);if($result = 1)header("location:order.php"); else echo "<script>alert('保存失败!');history.go(-1);</script>"?>addr_add.php<!DOCTYPE HTML><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>地址库</title><link rel="stylesheet" href="css/index.css" /></head><body><div class="center">