ASP小型药店销售管理系统的设计与实现

企业与消费者间的电子商务,是一种网上直销方式,网上销售药品缩减了中间渠道,产品一般直接源自厂商的生产基地,不但品质有保证价格上也更优惠。同时网上销售在缩减支出方面的优势也是传统店铺无法比拟的,由于不需要实际的店面,不仅避免了店铺租金的开销,还可省去装修、管理等方面的诸多费用,所以价格成为众多网上购药用户的首选因素。另外所不同的就是网上购物可以足不出户,各地商品任选,如此方便快捷,无时间空间限制是传统经营模式无法比拟的,如今人们生活质量的提高,购物方式也变得轻松自由化、个性化,这将成为网上销售药品的一大优势。

2系统概述

2.1总体设计

小型药店销售管理系统可实现基本的在线注册、查找搜索产品、以及后台管理维护共分为:商品管理、定单管理、用户管理、以及相关网站管理。系统功能模块如图2-1所示。

1.商品管理:

(1)添加总分类:主要完成创建商品信息的大的分类以及修改工作,便于用户查找。

(2)添加小分类:完成具体一点的分类,将小类归类于大分类。

(3)添加新商品:完成商品信息的录入以及相关处理。

(4)查看与修改:主要完成商品信息的修改和删除功能。

2.订单管理:

(1)最新订单:主要可以查看到客户买的商品订单信息,及时进行订单的处理。

(2)已确认的订单:通过上面的“最新订单”处理,然后显示给管理员看是否已经处理订单。

(3)查询投诉订单:这里主要显示客户投诉的订单的具体信息,便于管理员及时处理订单给客户一个答复。

ASP小型药店销售管理系统的设计与实现_第1张图片

3.用户管理:

(1)会员用户管理:可以查看到现在的会员用户,并可以实现对会员进行删除和升级为VIP会员两个功能。

(2)添加会员:可以实现添加会员或VIP会员功能。

4.网站管理:

(1)添加新闻:实现对新闻标题、内容的添加。

(2)修改删除新闻:实现对新闻的修改和删除功能。

(3)添加测评:实现对商品信息的反馈,让客户可以了解到同类产品哪个产品比较好用。

(4)删除修改测评:主要对测评信息的改动与删除。

(5)添加医药常识:完成医药常识的添加,让客户可以了解更多的医药常识。

(6)修改删除医药常识:主要完成对医药常识信息的修改和删除功能。

2.2安全机制 

用户注册和修改资料模块中的用户密码采用MD5加密机制,保证用户信息的安全性。其算法简单描述为:以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

2.3数据库分析 

小型药店销售管理系统数据库采用ACCESS数据库,其中表单及作用如下:

admin-----管理员数据表            basket-------售出商品信息表

cp--------产品测评信息表          sub----------订单详细信息表

hw--------货物信息表              member-------会员信息表

news-------新闻信息表             Nsort--------产品小分类表

sort-------产品大分类表            story--------医药常识表

ts---------投诉订单表

2.4系统的设计

2.4.1后台管理功能叙述 

后台管理系统主要负责管理系统的一切工作,通过它才能让客户了解到该系统用于何用,通过管理用户可以了解客户,从而改善系统,是客户与商家的联系重要渠道,其功能主要如下:

(1)商品管理:在程序设计功能完成后,需要向自己的系统添加一定的商品,才能展现出该系统用于什么方面,用这个功能就能向系统里面添加自己想要出卖的商品以及必要的信息,让客户便捷轻松地找到自己需要的产品,通过该功能管理员可以及时的进行商品信息的正确修改,给客户真实信任感。

(2)定单管理:包括查阅定单和处理定单,管理员通过查看商家购买的定单和商家的申诉定单,进行及时的处理,必要时可以通过联系方式及时找到客户,进行具体的相关处理。

(3)用户管理:对已申请注册的用户,如果用户不想再把自己的资料以及信息留给该系统,可以通过联系管理员,对客户信息进行删除,以及对长期合作的客户进行会员升级,成为VIP会员,使客户享受更实惠的服务。

(4)网站管理:主要实现对最近发生的医药行情以及医药事件的信息添加,让客户了解最近的医药发展动态;通过添加医药常识还可以让客户了解到基本的医药常识,给客户更温馨的提示;通过用户反馈信息,添加相关产品的测评信息,使产品联系到实际医药行情与疗效,让客户在同类产品中可以选择更加好用的产品。

(5)用户退出:主要实现管理员注销登陆和返回网站首页,通过注销登陆管理员可以实现退出管理或换另外的管理员用户登陆管理页面,通过返回首页可以方便的便于管理员观察网站管理的效果,及时进行相关的处理。

 后台管理设计流程图:

ASP小型药店销售管理系统的设计与实现_第2张图片

ASP小型药店销售管理系统的设计与实现_第3张图片 

ASP小型药店销售管理系统的设计与实现_第4张图片 

对上面的功能图的说明:每一个管理功能模块都是一个独立的模块,只要操作完相应的管理都可以直接选用其他的功能模块,所以在选择不同功能进行处理的“是否成功”这个处理过程时,在上两图我都把这些功能融合在一个处理过程来画而已,便于直观简单

ASP小型药店销售管理系统的设计与实现_第5张图片

E-R(Entity-Relationship Approach)图是最常用的概念模型表示方法,也是数据库的核心和基础,它是按用户的观点来对数据和信息建模,依据概念模型设计应具的特点:真实性、易理解性、易修改性、易转换性,上面描述了该系统的会员与商品的E-R图。

3.2数据库各表设计

对后台管理系统所要用到的表有:

admin:包含管理员的用户名和密码     basket:已售出的产品信息

cp:主要包含测评信息的标题和内容   hw:包含商品的详细信息

member:包含会员的详细信息内容     news:包含新闻信息的标题和内容

story:包含医药常识的详细内容       sub:包含定单的详细信息

nsort:产品小分类信息               sort:产品大分类信息

ts:主要包含会员投诉定单的基本信息

各表的详细描述:

表1  admin(管理员数据表)

字段名

数据类型

字段大小

是否允许为空

字段描述

Admin_name

文本

50

管理员名(主键)

Admin_pass

文本

50

管理员密码

表2  basket(售出商品信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

basket_id

自动编号

长整型

商品ID号 (主键)

hw-id

文本

50

货物编号

user_name

文本

50

用户名

basket_count

文本

50

够买商品的数量

basket_data

日期/时间

购买商品时间

basket_check

是/否

商品确认

basket_adminche

是/否

管理员确认的定单

hw_name

文本

50

商品名称

hw_cash

文本

50

买家应付的价格

sub_number

文本

50

定单编号

表3  member(会员信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

user_id

自动编号

长整型

用户的ID号(主键)

user_name

文本

50

用户名

user_pass

文本

50

用户密码

user_mail

文本

50

用户邮件箱

user_adds

文本

50

用户地址

user_tel

文本

50

用户电话

user_regtime

日期/时间

用户注册时间

user_regip

文本

255

用户注册ip

user_lasttime

日期/时间

用户最后登陆时间

user_lastip

文本

255

用户最后登陆的ip

user_postcode

文本

50

用户邮政编码

user_namec

文本

50

用户的真实姓名

user_type

文本

50

用户类型

表4  hw(货物信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

hw_id

自动编号

长整型

商品ID(主键)

hw_cash

数字

小数

会员价格

hw_content

备注

简单描述商品信息

hw_content2

备注

详细描述商品信息

hw_buys

数字

长整型

出售了多少件

hw_date

日期/时间

上货时间

chubsh

文本

100

出品公司

daili

数字

长整型

vip价格

pifa

数字

长整型

市场价格

zhuang

文本

50

包装类型

date

日期/时间

出品日期

tuijian

是/否

是否推荐

jia

是/否

是否为新产品

sort_id

数字

长整型

产品总类型ID

nsort_id

数字

长整型

产品小分类ID

hw_name

文本

50

商品名称

hw_pic

文本

255

商品图片位置

表5  cp(产品评测信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

news_id

自动编号

长整型

测评ID(主键)

news_title

文本

255

测评标题

news_content

备注

测评内容

news_date

日期/时间

测评时间

表6  story(医药常识表)

字段名

数据类型

字段大小

是否允许为空

字段描述

news_id

自动编号

长整型

药品常识ID(主键)

news_title

文本

255

药品常识标题

news_content

备注

300

药品常识内容

news_date

日期/时间

药品常识日期

表7  sort(产品大分类表)

字段名

数据类型

字段大小

是否允许为空

字段描述

sort_id

自动编号

长整型

分类ID号(主键)

sort_name

文本

50

分类名

表8  Nsort(产品小分类表)

字段名

数据类型

字段大小

是否允许为空

字段描述

Nsort_id

自动编号

长整型

分类ID号(主键)

Nsort_name

文本

50

分类名

sort_id

数字

长整型

分类号

表9  news(新闻信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

news_id

自动编号

长整型

新闻ID号(主键)

news_title

文本

255

新闻标题

news_content

备注

新闻内容

news_date

日期/时间

新闻日期

表10  sub(定单详细信息表)

字段名

数据类型

字段大小

是否允许为空

字段描述

sub_id

自动编号

长整型

定单ID(主键)

basket_id

文本

50

购买商品ID

user_name

文本

50

用户名

sub_date

日期/时间

定单时间

sub_number

文本

50

定单编号

sub_check

是/否

定单是否处理

sub_to

文本

50

卖给什么用户

sub_mail

文本

50

买家邮件箱

sub_tel

文本

50

买家电话

sub_adds

文本

255

买家地址

sub_post

文本

15

买家邮政编码

qian

文本

50

付款方式

other

文本

100

备注

表11  ts(投诉定单表)

字段名

数据类型

字段大小

是否允许为空

字段描述

ts_id

自动编号

长整型

投诉定单ID

user_name

文本

50

用户名

sub_numeber

文本

50

定单编号

ts_date

日期/时间

定单时间

4系统功能的实现

4.1普通用户系统功能的实现

主要是针对用户来说的,其中主要包括实现静态网页的展现和一些基本功能。浏览器端的界面图如图4-1:

ASP小型药店销售管理系统的设计与实现_第6张图片

(1)时间展示功能模块的实现为:<%=year(date())%>年<%=month(date())%>月<%=day(date())%>日。

(2)搜索产品和药品查询功能:搜索产品和药品查询中的查询都是调用的同一个网页即:search1.asp,其效果展现如图4-2。设计思路采用模糊查询从数据库中查找hw-name像用户输入的字段,其主要应用到的搜索语句:sql="select * from hw where hw_name like'%"&hw_name&"%' order by hw_id DESC。首先是把搜索文本筐里面值为空,然后把浏览器端填入的字段赋给hw-name,语句为:hw_name=request("hw_name"),然后从数据库hw中查找货物名字,再打开数据库rs.open sql,conn,3,3,开始执行,如果在数据库中为空或没有找到类同与用户输入数据的字段,就返回给用户提示,其提示语为:没有你要找的商品,请先确定商品的类别,如果数据库中的字段不为最后一条文字信息,就把数据库hw中的所有类同于用户输入的字段该每一条的数据信息调出来给用户观看。

 用户要查询商品信息页面图如图4-2:

ASP小型药店销售管理系统的设计与实现_第7张图片

(3)用户登陆处理模块

主要用sql语句:sql="select * from member where user_name='"& user _name &"'"从数据库表member中查找用户名字,如果找到用户,然后进一步从数据中调用用户密码确认用户密码是否正确,如果用户名和密码都正确将通过验证,成功登陆,如果其中一个出错了,将为用户提示“您的用户或密码不正确!!!请重新登陆”,让用户重新登陆或者没有注册的用户进行注册。代码如下面所示:

    sql="select * from member where user_name='"&user_name&"'"

    rs.open sql,conn,3,3

    if rs.eof then

        errmsg=errmsg+"
"+"

  • 你输入的用户不存在!"

            founderr=true

        else if user_pass= rs("user_pass") then

            session("user_name")=rs("user_name")

              session("user_type")=rs("user_type")

            rs("user_lasttime")=now()

            rs("user_lastip")=request.servervariables("remote_addr")

            rs.update

        else

            errmsg=errmsg+"
    "+"

  • 你输入的密码错误!"

            founderr=true

        end if

        rs.close

        if founderr=true then

        %>

    <%else%>

          <%

    response.redirect "index.asp"

    %>

    <%end if

    else

    response.redirect "index.asp"

    end if%>

    (4)购物功能处理以及显示的功能实现

    如果用户要购买物品,首先要判断用户是否登陆,判断语句:if session (" user _name")=""如果没有登陆,将提示用户登陆或注册用户,如果登陆成功的用户,才能执行购买商品等操作。购买商品的设计思路:一是用户在登陆后直接根据商品信息购买商品,二是根据用户查找商品购买,用其实现语句为:sql = "select * from hw where hw_id="&request("hw_id"),如果找到,就把商品信息给用观看,然后进一步确认购买当用户确认购买的时候,系统有一个判断用户成员类型,比如:判断是否为会员<%ifsession("user_type")="会员" then%>如果是会员然后就执行下面的语句<%=rs("hw_cash")%> <%else%> <%=rs("daili")%> ,<%end if%>。在这里主要实现的是把不同类的成员商品价格做一个调整,因为不同的用户,商品价格会不一样,然后用一个创建一个新的数据项目,把商品信息的基本信息和会员信息保存起来,并返回给数据库basket,添加定单。其实现语句为:

    rs.addnew

    rs("hw_id")=hw_id

    rs("user_name")=session("user_name")

    rs("basket_count")=count

    rs("basket_date")=now()

    rs("hw_name")=request("hw_name")

    rs("hw_cash")=request("hw_cash")

    rs("basket_count")=int(rs("basket_count"))+int(count)

    rs.update

    rs.close

    在浏览器端显示给用户观看到的主要功能语句:

    显示商品名称的语句:<%=rs("hw_name")%>

    显示商品的价格的语句:<%=rs("hw_cash")%>元

    显示购买货物数量语句:<%=rs("basket_count")%>

    显示合计价格语句:<%=rs("hw_cash")*rs("basket_count")%>元

    计算总的价格语句:totalcash=totalcash +(rs("hw_cash") *rs("basket _count"))

    4.2后台管理功能的实现

    后台管理的功能实现主要针对管理员设计的,负责管理整个系统。

    管理员用户界面图:

     ASP小型药店销售管理系统的设计与实现_第8张图片

    4.2.1商品管理模块

    (1)商品的添加以及处理功能首先判断是不是管理员,如果不为管理员,就要谈出管理员登陆界面,其实现语句为<%if Session("admin_name")="" then response.redirect "index.asp"%>,然后将该request的action属性值为save,然后用一系列变量存储管理员输入的商品信息,然后对这些变量执行判断,如:

        if hw_name="" then

        errmsg=errmsg+"
    "+"

  • 名称不能为空"

        founderr=true

    如果输入类型有误,就将里面的变量类型转换为数据库中相对应的类型,如转换货物名:hw_name=replace(hw_name," "," "),然后对数据库hw执行操作,将货物信息写入数据中,其语句为:

           sql="select * from hw"

                 set rs=server.createobject("adodb.recordset")

           rs.open sql,conn,3,3

            rs.addnew

    (2)商品删除模块:

    <%

    if request("action")="del" then

        sql="select * from hw where hw_id="&request("hw_id")

           set rs=server.createobject("adodb.recordset")

        rs.open sql,conn,3,3

        if rs.eof then

            response.redirect "delhw.asp"

        else

        rs.delete

        rs.update

        end if

        rs.close

        response.write "货物删除成功"

        response.write "
    "

        response.write "返回"

    else

    %>

    (3)添加大分类模块: 

    先定义一个事项,访问数据库,如果数据库问空的,就提示管理管增加类别,语句为:if  rs.eof and rs.bof  then response.write  "

    ASP小型药店销售管理系统的设计与实现_第9张图片 

    4.2.2订单管理模块

    主要通过管理员来处理订单,处理过的订单,用户可以查询到自己的那些订单已经处理过,管理员“已确认订单”选项,看到自己已处理的订单,其中主要处理语句为:rs("sub_check")="1"。货物送出处理的模块代码为:

    <%

    sub_number=request.querystring("sub_number")

    sql="select * from sub where sub_number='"&sub_number&"'  "

    set rs=server.createobject("adodb.recordset")

    rs.open sql,conn,3,3                                                                              

    rs("sub_check")="1"

    rs.update

    %>

    4.2.3用户管理模块

    包括会员的删除、升级为VIP和添加会员三个功能

    (1)会员删除功能的实现:首先要判断是否为管理员,如果为管理员才执行以下程序代码,先从member表中找到user-id,sql="select * from member where user_id="&request("user_id"),然后打开数据库,再判断数据库是否存在此用户信息,如果不存在将显示用户信息已删除,如果存在将执行删除语句,其为rs.delete,将用户信息删除。

    (2)会员升级的实现:其主要实现语句rs("user_type")="VIP"

    <%

    if request("action")="up" then

    sql="select user_type from member where user_id="&request("user_id")

    rs.open sql,conn,3,3

    if rs.eof then

    response.write "没有此用户信息!"

    else

    rs("user_type")="VIP"

    response.write "用户升级为VIP会员成功!"

    rs.update

    end if

    end if

    %>

    (3)添加会员:只提供简单的添加用户名和密码

    <%

    if request("action")="save" then

        if request("user")="" then response.end

        sql="select * from member"

        set rs=server.createobject("adodb.recordset")

        rs.open sql,conn,3,3

        rs.addnew

        rs("user_name")=request("user")

        rs("user_pass")=md5(request("pass"),32)

        rs("user_type")=request("type")

        rs.update

        rs.close

        response.write request("type") &"用户添加成功"

        response.write "
    "

        response.write "返回"

    else

    'response.end

    %>

    4.2.4网站管理

    (1)添加新闻:该功能用于添加新闻信息,用rs.addnew,rs("news_title") =news_title,rs("news_content")=news_content,rs.updat来实现功能,设计思想首先判断输入信息的标头和内能是否为空,如果为空就返回一个信息“数据不能为空的信息提示”并不进行写入数据库中,返回重新添加,如果两个数据都不为空就写入数据库,更新数据库news表,然后返回继续添加新闻信息。

    (2)修改删除新闻:该功能主要用与修该和删除新闻,其中删除用rs.delete来实现功能,设计思想是直接从数据库中读出数据,然后用删除语句,将其信息删除,然后更新数据库news表

    (3)添加测评:该功能用于添加产品信息测评的,实现方式和添加新闻功能是同样的,实现语句为rs.addnew,rs("news_title")=news_title,rs (" news _ content ")=news_content,rs.update。

    (4)修改删除测评:主要实现修改和删除测评信息,利用rs.delete将其信息删除,然后更新数据库表cp。

    (5)添加药品常识:主要实现添加药品常识信息,实现方式和思路同添加新闻和添加测评是同样的。

    (6)修改删除测评:主要实现修改和删除测评信息,实现方式同修改删除新闻一样。

    该系统是一个在线销售系统,分成前台和后台两个部分,前台能完成的功能主要包括:用户注册登录,查询商品,显示日期,定单投诉更改资料等;后台部分主要完成的功能有:管理商品,定单管理,用户管理,网站管理等。由于设计是基于B/S模式,该系统具有良好的可移植性等优点,并且具有相当不错的应用前景。同时由于该系统使用的是基于VBScript和JavaScript的ASP技术,使我对该门技术又有了更加深入的了解,并且对应用Dreamweaver制作静态页面也有了相当的心得。由于ASP技术相对现在流行得JSP等技术在安全性方面存在一定得差距,所以该系统在安全性方面存在与生俱来的劣势,安全性的增强将有待于将来在页面中加入更多的安全方面的JavaScript等安全组件。由于知识的缺乏,还有很多小细节上还没有处理完善(比如说一些限制条件还没有加进去),有待功能完善。 

     

     

  • 你可能感兴趣的:(asp,asp.net)