药品在线销售系统开发与设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
药品在线销售系统开发与设计文档
1.引言
1.1 项目来源
信息时代的社会不时开展,信息技术、网络平安防卫等技术的不时完善致使电子商务快速开展,生活任务的快节拍让人们不满足于传统的购物形式,互联网让人们体会到在家里便可阅读购置到各种自己需求的商品的便捷,电子商务网站之间的竞争使人们享遭到愈加优质的效劳。
基于在线电子商务的销售流程,设计与开发一个复杂适用的药品在线销售信息系统,希望促进对药品在线销售信息化的管理与优化。
1.2 义务目的
关于电子商务这样的数据流量特别大的管理信息系统,必需要满足运用复杂方便、管理以及用户阅读操作灵敏等设计要求。
本系统在设计时应该满足以下几个目的:
●采用人机对话的操作方式,界面设计美观友好、信息查询灵敏、方便、
快捷、准确、数据存储平安牢靠。
●片面展现书店内一切的药品信息。
●为顾客提供一个方便、快捷的图书信息查询功用。
可以经过药品大类查
询某类药品的信息。
●完成药品购置。
●会员用户可以检查自己的订单以及购置记载。
●完成药品销售排行。
●管理员可以随时添加和修正销售药品的价钱和库存等信息。
●检查网站公告信息
●系统完成可维护性。
●系统运转平安牢靠,外部用户无法取得用户的团体资料等信息。
2. 项目规划
2.1 项目资源
2.1.1硬件设备
本系统开发的硬件设备要求如下:
●效劳器:Pentium双核处置器CPU T4500 2.30GHz,2GB的内存。
●打印机:无。
●扫描仪:无。
●网络设备:调制解调器,双绞线,集线器,8口交流机,1000MBPS以
太网卡。
2.1.2软件环境
●操作系统: Windows xp;
●数据库支撑软件: Microsoft access 2020;
●网站效劳器:Apache Tomcat 5.5.27 Server
●网页阅读工具:IE阅读器。
2.1.3 软件工具
●设计开发工具:Microsoft Visual Studio 2020;
●网页图形制造软件:Adobe Photoshop CS2;
●网页设计工具:Microsoft Visual Studio 2020;
●软件设计建模工具:Mircorsoft Visio 2003。
2.2 项目规划
2.2.1 义务描画
使系统开发步骤及本系统采用自上而下的项目开发步骤,整个进程主要分为三个阶段。
图2.1 义务树
2.2.2 进度布置
基于以上描画的义务目的,将系统的设计与开发义务停止义务分解如下:●停止需求剖析,确定系统需求逐渐完成的功用;
●停止业务流程剖析,进而设计出系统的运作流程;
●设计总体框架,依据业务流程和系统运作流程规划软件结构;
●定义数据结构,依据实践业务中数据流定义在系统中需求定义的数据和
数据之间的关系;
●体功用完成,运用开发环境停止界面设计和代码编写以实如今线图书
销售系统各局部功用;
系统测试,对系统停止运用,评价功用的完成效果。
图 2.2 义务分配甘特图
3. 系统需求剖析
3.1 业务需求
3.1.1 业务组织
药品在线销售业务重点触及药品销售的财务、供销和系统研发维护和客服部门,在下面的业务人员组织结构图下层列出这四个部门,并做了必要的简化:
图3.1组织结构图
3.1.2 业务定义
下面主要用例图说明系统用户的业务及其运用接口。
1.
图 3.2 业务例图〔用户〕
依据上图可以知道,从用户角度来看,主要业务功用包括药品信息阅读,用户注册,登录,选购图书,以及登录之后的订单,付款功用。
2.从管理员的角度
图 3.3 业务例图〔管理员〕
依据图3.3可以看出,从管理员角度来看,主要业务功用包括会员管理,药品信息管理,用订单信息管理,公告信息管理。
可以对数据库存储的信息停止添加、删除、修正、查询。
3.1.3 业务流程
图 3.3 业务流程图
依据图3.4可知,注册用户自己在网站选购药品生成订单,也可以经过客服协助完成,假设不是选择货到付款那么在支付后生成已付订单,并进入收货地址页面,不付款那么会生成未付款订单进入收货地址页面后等候发货,假设此时取消订单那么按付款与否退款并前往。
管理员依据订单反省库存后发货,并决议能否补充库存的药品,补充库存药品与发货后都会发生库存帐,未付款那么在货到付款后完成订单,并将结果前往客户和管理员。
3.2 功用需求
●药品信息查询
该模块完成药品信息的分类显示,提供最新药品的引荐显示以及销售排行显示,便于引导购物取向。
此外,还提供依据药品称号等关键字完成快速搜索的功用并显示该药品的有关详细信息。
●会员信息管理
会员信息管理模块记载了用户注册时填写的一切信息,完成系统对登录用户身份的验证,同时也能对用户资料实时更新并记载。
该系统可以搜集用户的联络方式、通讯地址等信息。
●订单信息管理
对每一个注册后登录系统的会员用户所发生的订单停止管理。
将用户所选购的药品信息,包括价钱、数量等信息记载到对应的订单上,便于在付款功用停止结帐处置。
同时在此模块中,登录后的会员还可以方便的完成修正购置药品、清空订单信息等操作。
●订单处置
依据选购的药品的信息,以及用户所选择的送货方式和付款方式,和用户对应的团体信息生成处置订单,便于后续业务的停止。
在会员付款后系统将信息提交给管理员发货,并将信息反应给对应的会员用户。
3.2.1 功用组成
依据需求剖析,设计出客户系统功用图如下图:
图3.4客户端系统功用图
系统后台的功用如以下图所示:
图 3.5后台管理功用图
3.2.2 功用逻辑
数据流程图是描画系统逻辑模型的有效工具,经过几个特定的符号,可以综合地反映出信息在系统中的运用、加工处置、传递、存储的全体状况。
关于药品在线销售电子商务系统,其外部用户主要有游客、会员和管理员。
游客只能阅读查询药品的信息,游客在停止注册后成为系统的会员,会员可以购置药品及相关信息查询的功用,管理员可对系统的各种信息停止管理和维护。
依据上述剖析,可以失掉药品在线销售电子商务系统的顶层数据流图,如下图:
图 3.6顶层数据流程图
注册用户自己在网站选购药品生成订单,管理员依据订单反省库存后发货,并决议能否补充库存的药品,补充库存药品与发货后都会发生库存帐,未付款那么在货到付款后完成订单,并将结果前往客户和管理员。
依据上述剖析,可以失掉在线图书销售系统的中层数据流图,如图3.8所示。
图 3.7药品在线销售数据流程图
3.3 数据字典
3.3.1 数据项的定义
数据字典是各类数据描画的集合,可以对数据的详细规格定义,并可用于严
整数据,以发现系统在数据需求描画中能否出现纰漏。
数据字典通常包括数据项、
数据结构、数据流、数据存储和数据处置进程这几个局部的数据内容,其中数据项是数据的最小单位,假定干个数据可以组成一个数据结构。
数据字典就是经过对数据项和数据结构的定义来描画数据流、数据存储的逻辑内容的。
数据项是不可再分的数据单位。
对数据项的描画通常包括以下内容:
数据项描画={数据项名,数据项含义说明,别名,数据类型,长度,取值范
围,取值含义,与其他数据项的逻辑关系},本系统主要的数据字典如下:
表3.1 会员信息相关数据项
表3.2 药品信息相关数据项
表3.3药品分类相关数据项
表3.4用户订双数据项
3.3.2 数据结构的定义
数据结构描画了某些数据项之间的关系。
一个数据结构可以有假定干个数据项组成,也可以有假定干个数据结构组成;还可以由数据项和数据结构组成。
下面正对本管理系统的数据结构做简明说明。
表3.5用户订单的数据结构
数据结构编号:DS01-01
数据结构称号:用户订单
简述:用户所填写的会员信息及选购的药品等信息
数据结构组成:DS01-02+DS01-03+DS01-04
3.3.3 数据流的定义
数据流由一个或一组相互联络的数据项组成。
下面对一个主要的数据流做出
定义。
表 3.6订双数据流定义
S01-01
4. 系统结构设计
4.1 总体框架
触及系统任务形式,组成系统的构件及其关系等。
可经过框架图、组件图直观说本系统采用三层架构设计,它的任务原理如图4.1所示。
用户界面系统处理数据存储
图 4.1三层结构原理图
采用三层构架以后,用户界面层经过一致的接口向系统处置层发送央求,系统处置层按自己的逻辑规那么将央求处置之后停止数据库操作,然后将数据库前往的结果经过处置后前往给用户界面层。
这样用户界面层不知道数据库的结构,异样可以经过功用的接入完成目的。
4.2 软件结构
4.2.1 软件模型
在线系统为顶层模块,其调用客户基本信息的处置、图书信息处置、订单处置等模块,后台管理员对注册客户基本信息的处置,以及对管理员的信息处置,对图书类型及图书基本信息的处置,对订单详细信息的处置。
图4. 2系统结构图
4.2.2 模块定义
该系统的各大模块可概括为四大模块,在剖析模块定义的时分,首先剖析系统的整个模块。
系统的HIPO图。
如以下图4.3 所示。
图4.3 系统的H图
图4.4会员基本信息处置模块的IPO图
图 4.6订双数据处置模块的IPO图
图4.8药品信息输入模块的IPO图
图4.9订双数据输入模块的IPO图
4.3 数据结构
4.3.1 数据库模型
从本系统中规划出的实体有:会员实体、管理员实体、药品实体、药品分类实体、订单实体。
实体之间关系的E-R图如图4.10所示。
图 4.7 实体之间关系E-R 图
管理员实体和药品分类实体的E-R 图,如图4.11和图4.12所示。
图 4.8管理员实体E-R 图 图 4.9 图书分类实体E-R 图
用户信息实体的E-R 图,如图4.13所示。
图 4.10 用户信息实体E-R 图
4.3.2 数据定义
经过系统的数据需求剖析,依据E-R图及E-R实体图可以失掉系统中所包括的实体及相关属性,数据定义那么是对数据的类型、长度及能否为空等属性停止进一步的说明,经过数据项描画来说明,下面例举几个主要的数据结构停止描画说明:
表 4.2会员实体数据项描画
表 4.4药品分类实体数据项描画
5. 系统详细设计
5.1 顺序算法详细设计
人们在超市买东西,都是把商品放在一个购物篮里,等到把一切要买的东西选购终了后,一同拿到收银台前付钱。
订单中的信息就包括了用户所选购的一切药品的称号,数量和价钱等信息。
其中心代码如下:
1.添加药品
末尾
Do 从Session 取出订单列表
If 订单列表不为空
对订单列表停止遍历
If添加药品ID=订单药品ID
Then 输入:订单中已有该药品
Else 将该药品添加到订单列表
输入:添加成功
2.修正药品数量
末尾
Do 从Session取得订单列表信息
For 对订单列表停止遍历
If 药品ID=修正药品ID
药品数量=修正的药品数量
药品总价=药品数量*药品单价
Do 调用静态更新价钱方法
完毕
5.2 数据库详细设计
5.2.1 数据库环境配置
操作系统:Microsoft Windows XP
数据库系统:Microsoft Access 2020
系统开发言语:C#。
5.2.2 表设计及其关系设置
数据库的概念结构设计终了后,将下面的数据库概念结构转化为数据库系统所支持的实践数据模型,也就是数据库的逻辑结构。
本系统的主要几个表的表关系设计如以下图。
图5.1主要表的表关系设置
表5.2药品信息表
表5.4订单信息表
表5.5订单处置信息表
5.3 界面设计
5.3.1登陆功用界面设计
登录需求验证用户名和用户密码,系统登录的身份分为会员登录和管理员登录,进入系统界面默以为会员登录,运转界面如下图:
图5.2登陆界面
下面是登录功用的代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " :// /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML><HEAD><TITLE>药品在线销售-- 登录</TITLE>
<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<LINK href="css/style.css" type=text/css rel=stylesheet>
</HEAD>
<BODY onload="document.forms[0]['user_name'].focus()" style ="PADDING-RIGHT: 32px; MARGIN-TOP: auto; PADDING-LEFT: 32px;
FONT-SIZE: 13px; BACKGROUND: #eee; PADDING-BOTTOM: 32px; MARGIN-LEFT: auto; WIDTH: 270px; COLOR: #000; MARGIN-RIGHT: auto; PADDING-TOP: 32px; FONT-FAMILY: Tahoma, Verdana">
<FORM id=loginform runat =server >
<DIV id=Main>
<DIV id=Heading>登录</DIV>
<table ><tr><td>
<LABEL style="FONT-SIZE: 16px; font-family: 幼圆">用户
名:</LABEL></td><td>
<asp:textbox ID="user_name" runat ="server" CssClass ="input1"/>
</td></tr>
<tr ><td>
<LABEL style="FONT-SIZE: 16px; font-family: 幼圆">密 码: </LABEL></td>
<td>
<asp:textbox ID ="password" runat ="server" CssClass ="input1" TextMode ="password" />
</td></tr>
</table>
<!--<LABEL style="FONT-SIZE: 12px">验证码::</LABEL>
<asp:textbox ID="CheckCode" runat ="server" CssClass ="link_button"/>-->
<BR>
<asp:button id="submit" text="登录" CssClass ="link_button" runat ="server" OnClick="submit_Click" Width="75px" />
<P class=Small>
<asp:button id="submit0" text="管理员登录" CssClass ="link_button" runat ="server" OnClick="submit0_Click" Width="75px" />
<P class=Small>
<DIV class=ErrorMessage id=MessageLabel>
<LABEL style="FONT-WEIGHT: normal; FONT-SIZE: 12px; FONT-FAMILY: Tahoma, Verdana, '宋体'">还不是我们的用户? <A href="register.aspx">点这里注册.</A><br />
<asp:RequiredFieldValidator ID ="check_user_name" ControlToValidate ="user_name" Text ="您必需填写你的用户名" runat
=server></asp:RequiredFieldValidator><br />
<asp:RequiredFieldValidator ID ="check_the_password" ControlToValidate ="password" Text ="您必需输入您的密码!" runat
=server></asp:RequiredFieldValidator><br />
<asp:Label ID ="error_label" runat =server ></asp:Label>
</DIV>
</P></DIV></FORM>
<DIV align=center><BR> v1.0 <BR> <BR><BR></DIV>
</BODY></HTML>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string error_measage;
try
{
error_measage = Request.QueryString.Get(0).ToString();
error_label.Visible = true;
error_label.Text = error_measage;
}
catch
{
error_label.Visible = false;
}
}
protected void submit_Click(object sender, EventArgs e)
{
OleDbConnection con = DB.createDB();
//调用连库操作类里的createDB()方法
OleDbCommand cmd = new OleDbCommand();
//声明一个OleDbCommand对象,并将其实例化
cmd.Connection = con;
con.Open();
//翻开数据库衔接
cmd mandText = "select count(*) from userinfo where
user_name='" + er_name.Text + "'and user_password='" +
this.password.Text + "' ";//经过会员姓名、密码、权限查询tb_zhuce数据
库已找出相映的信息
Session["user_name"] = er_name.Text.ToString();
//把用户输入的用户名存储到Session变量中
Session["user_password"] = this.password.Text.ToString(); //把用户输入的用户密码存储到Session变量中
int a = Convert.ToInt32(cmd.ExecuteScalar());
//
if (a > 0)
{
cmd.ExecuteNonQuery();
OleDbDataReader sdr = cmd.ExecuteReader();
sdr.Read();
Response.Redirect("~/gonggongzhuye.aspx?user_name=" +
user_name.Text);
sdr.Close();
con.Close();
}
else
{
Response.Write("<script language=javascript>alert('很
遗憾,用户名或密码错误!');</script>");
}
con.Close(); //封锁数据库衔接
}
protected void submit0_Click(object sender, EventArgs e)
{
OleDbConnection con = DB.createDB();
//调用连库操作类里的createDB()方法
OleDbCommand cmd = new OleDbCommand();
//声明一个OleDbCommand对象,并将其实例化
cmd.Connection = con;
con.Open();
//翻开数据库衔接
cmd mandText = "select count(*) from userinfo where
user_name='" + er_name.Text + "'and user_password='" +
this.password.Text + "' ";//经过员工姓名、密码、权限查询tb_zhuce数据
库已找出相映的信息
Session["user_name"] = er_name.Text.ToString();
//把用户输入的用户名存储到Session变量中
Session["user_password"] = this.password.Text.ToString(); //把用户输入的用户密码存储到Session变量中
int a = Convert.ToInt32(cmd.ExecuteScalar());
//
if (a > 0)
{
Response.Redirect("~/show_article.aspx"); //登录
成功跳转到管理员主界面
}
else
{
Response.Write("<script language=javascript>alert('很
遗憾,用户名或密码错误!');</script>");
}
con.Close(); //封锁数据库衔接
}
}
5.3.2注册功用模块设计
游客只要经过注册才干成为系统的会员用户,享用在线购卖等效劳。
下面是完成注册的局部代码:
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="register.aspx.cs" Inherits="register" Debug ="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " :// /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML><HEAD><TITLE>药品销售-- 注册</TITLE>
<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<LINK href="css/style.css" type=text/css rel=stylesheet>
<link rel='stylesheet' type='text/css' href='css/style.css'>
<style>
.table
{width:30%;
font-family:宋体;
font-size:13px;
text-align:right;
border:0;
}
.checktable
{
width:36%;
text-align:left;
font-family:宋体;
font-size:13px;
font-color=red;
}
.control
{
width:90%;
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #ffffff 1px solid;
FONT-SIZE: 11px;
BACKGROUND: #ffffff;
BORDER-LEFT: #ffffff 1px solid;
COLOR: #5c6f7c;
BORDER-BOTTOM: #000000 1px solid;
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
}
.style1
{
border-style: none;
border-color: inherit;
border-width: 0;
width: 30%;
font-family: 宋体;
font-size: 13px;
text-align: right;
height: 27px;
}
.style2
{
width: 33%;
height: 27px;
}
.style3
{
width: 36%;
text-align: left;
font-family: 宋体;
font-size: 13px;
height: 27px;
}
</style>
</head>
<BODY onload="document.forms[0]['user_name'].focus()" style ="padding:
32px; MARGIN-TOP: auto; FONT-SIZE: 13px; BACKGROUND: #eee;
MARGIN-LEFT: 149px; WIDTH: 690px; COLOR: #000; MARGIN-RIGHT: auto; FONT-FAMILY: Tahoma, Verdana">
<center >
<form id="form1" runat="server">
<DIV id=Main1>
<DIV id=Heading>用户注册</DIV>
<table style ="width :100%" cellpadding =4px>
<tr><td class="table" style="width: 30%" >*用户名:</td>
<td style="width:33%"><asp:TextBox ID ="user_name" runat =server CssClass ="control"></asp:TextBox></td>
<td class ="checktable"><asp:RequiredFieldValidator ID
="check_user_name" ControlToValidate ="user_name" Text ="您必需填写你的用户名" runat =server ></asp:RequiredFieldValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*密码:</td>
<td style="width:33%; "><asp:TextBox ID ="password" runat =server CssClass="control" TextMode =password ></asp:TextBox></td>
<td class ="checktable"><asp:RequiredFieldValidator ID
="check_the_password" ControlToValidate ="password" Text ="您必需输入您的密
码!" runat =server ></asp:RequiredFieldValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*确认密码:</td>
<td style="width:33%"><asp:TextBox ID ="check_password" runat =server CssClass="control" TextMode =password ></asp:TextBox></td>
<td class ="checktable"><asp:CompareValidator ID
="re_check_password" ControlToValidate ="check_password" ControlToCompare ="password" Text ="您输入的密码不分歧!" runat
=server ></asp:CompareValidator></td>
</tr>
<tr><td class="table" style="width: 30%">密码提示效果:</td>
<td style="width:33%; "><asp:TextBox ID ="password_question" runat =server CssClass="control" ></asp:TextBox></td>
<td class ="checktable"></td>
</tr>
<tr><td class="style1">密码提示效果答案:</td>
<td class="style2"><asp:TextBox ID ="password_answer" runat
=server CssClass="control" ></asp:TextBox></td>
<td class ="style3"><asp:RequiredFieldValidator ID ="RequiredFieldValidator2" ControlToValidate ="password" Text ="您必需输入您的密码!" runat =server ></asp:RequiredFieldValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*邮箱:</td>
<td style="width:33%"><asp:TextBox ID ="e_mail" runat =server CssClass="control"></asp:TextBox></td>
<td class ="checktable"><asp:RegularExpressionValidator ID ="check_mail" ControlToValidate ="e_mail" ValidationExpression =".+@.+" Text ="缺少@符号!" runat =server ></asp:RegularExpressionValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*真实姓名:</td>
<td style="width:33%"><asp:TextBox ID ="true_name" runat =server CssClass="control">
</asp:TextBox></td><td class ="checktable">
<asp:RequiredFieldValidator ID ="check_true_name" ControlToValidate ="true_name" Text ="您必需填写你的真实姓名" runat
=server ></asp:RequiredFieldValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*地址:</td>
<td style="width:33%"><asp:TextBox ID ="address" runat =server CssClass="control">
</asp:TextBox></td><td class
="checktable"><asp:RequiredFieldValidator ID ="check_address" ControlToValidate ="address" Text ="您输入的地址不正确!" runat
=server ></asp:RequiredFieldValidator></td>
</tr>
<tr><td class="table" style="width: 30%">*性别:</td>
<td style="width:33%">
<asp:DropDownList ID="user_sex" runat="server" CssClass ="control">
<asp:ListItem Text ="男" Selected ="True" Value ="男
"></asp:ListItem>
<asp:ListItem Text =" 女" Value ="女" ></asp:ListItem>
</asp:DropDownList></td>
<td class ="checktable"></td>
</tr>
<!--<tr><td class="table" style="width: 30%">*验证码:</td>
<td style="width:33%">
<asp:TextBox ID ="CheckCode" runat =server
CssClass="control"></asp:TextBox>
<!--<SCRIPT LANGUAGE="javascript">
var numkey = Math.random();
numkey = Math.round(numkey*10000);
document.write("<img src=\"image.aspx?k="+ numkey +"\" width=\"52\" height=\"20\" hspace=\"4\"");
</SCRIPT>-->
</td>
<td class ="checktable"><font color ="red" ><asp:Label
ID="checkcode_error" runat =server Text ="" ></asp:Label></font></td>
</tr>
<tr><td colspan =3 ><asp:Button ID ="submit" runat =server CssClass ="link_button" Text ="提交" OnClick="submit_Click" /></td>
</tr>
</table>
</div>
</form>
<DIV align=center style ="table"><BR> v1.0 <BR> 233—DLWY—任务室
<BR><BR></DIV>
</center>
</BODY></HTML>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
public partial class register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void submit_Click(object sender, EventArgs e)
{
OleDbConnection con = DB.createDB(); //调用用户自定义的DB类的createDB()的方法
OleDbCommand cmd = new OleDbCommand();//声明一个OleDbCommand的cmd对象,并将其实例化
cmd.Connection = con;
con.Open(); //翻开数据库衔接
cmd mandText = "insert into userinfo
(user_name,user_password,true_name,address,mail,user_sex) values('" +
er_name.Text + "','" + this.password.Text + "','" + this.true_name.Text + "','" + this.address.Text + "','" + this.e_mail.Text + "','" + er_sex.Text + "')";
cmd.ExecuteNonQuery();//用OleDbCommand的ExecuteScalar()方法来执行添加操作
Response.Redirect("~/login.aspx");//将该页跳转到指定的页面中
// Response.Write("<script>alert('祝贺您!!信息添加成功!
');location='javascript:history.go(-1)'</script>");
con.Close();
}
}
6. 系统测试与运用
功用测试
依照功用模块对网站购物停止一步一步地测试,测试的主要目的是发理想际功用和预期目的出现不契合要求的局部。
在发现不符的状况下,依照序号记载发作的效果,效果的概要,发作的条件和推断招致效果的缘由。
表 6.1子系统功用分解
设定系统的输入值,测试系统的输入值能否与希冀值相契合。
在Windows XP 系统上运转系统对系统功用停止测试。
●数据库操作与平安测试
测试对数据库删除,写入,修正的操作,进一步测试系统平安性与动摇性的目的。
确保系统的平安机制不出现效果。
经事先台顺序对数据库停止添加,删除,修正的操作,反省运用顺序对用户角色的分配,不同角色的权限分配能否契合平安需求。
效果分两个局部,第一局部管理员对数据库的操作,包括药品信息的添加,页面栏目的添加,以及订单管理,日志管理,注册用户管理,具有全部的权限,运用管理员停止测试;第二局部是用户对数据库的操作,包括用户的注册,订单的提交,用户详细信息等,运用普通客户停止测试。
●错误测试
由于错误输入发作的不可防止性质,需求特别强化错误信息的输入。
在此,可以将两个子系统作为相互独立的局部来停止,详细测试举例在下文将会有所提及。
在此还要思索的效果是假设错误输入招致的破坏是不可防止的,应该如何去改良或许怎样去尽量提示用户不要出现错误的输入。
6.1.2测试结果及发现
1).网站模块测试
把本项测试中实践失掉的静态输入〔包括外部生成数据输入〕结果同关于静态输入的要求停止比拟,陈说其中的各项发现。
表6.2 模块测试结果
6.1.3对系统功用的结论
完成网上购物的基本功用:
●用户注册:直接注册,填写相关信息,真实姓名不能再修正。
●用户登录:cookie的记载。
●用户资料:包括资料检查及修正。
●药品展现:依照功用主治分类展现多种药品信息
●药品管理:后台停止操作,药品数量的增减及信息添加、修正。
●顾客用户订单管理:显示订单信息。
经过一段时间的测试,本购物网站还是发现了一些效果:
●用户信息:用户信息的修正没有思索到很多东西。
●药品信息展现:没有完成搜索功用,还有很多兽性化功用没有很好的完
成。
●订单管理:顾客用户订单管理没有完成,不能对已发作的订单停止管理。
●本系统的开发完成了大局部的功用,但还不是很完善,假定要投入运用,
还需求对很多细节性的东西停止完善处置。
6.2 系统运用说明
6.2.1效劳器的配置及环境的搭建
在Windows XP操作系统下装置Microsoft Vistul Studio 2020,装置后直接用Microsoft Vistul Studio 2020中的C#言语来开发系统,开发进程中可以随时消费网页检查设计的效果,C#言语开发进程中比拟便捷,运用Microsoft Vistul Studio 2020系统自带的控件设计可以节省很大的任务量,并对优化界面的有相当大的作用。
装置成功后进入界面如以下图所示:
图6.1环境界面
正常的开发环境还需求配置IIS效劳器。
1)在〝末尾〞—〉〝控制面版〞中点击〝添加或删除顺序〞,进而点击〝添加/删除Windows组件〞,进入如以下图所示界面:选中第二项〔Internet信息效劳IIS〕,点击〝下一步〞,你只需等几分钟,系统就可以自动装置IIS这个组件了。
点击〝完成〞,IIS这个组件就装入系统中了。