资源描述
XX大学课程设计药品在线销售电子商务系统设计与开发1引言1.1 项目来源信息时代的社会不断发展,信息技术、网络安全防卫等技术的不断完善致使电子商务快速发展,生活工作的快节奏让人们不满足于传统的购物模式,互联网让人们体会到在家里便可浏览购买到各种自己需要的商品的便捷,电子商务网站之间的竞争使人们享受到更加优质的服务。基于在线电子商务的销售流程,设计与开发一个简单实用的药品在线销售信息系统,希望促进对药品在线销售信息化的管理与优化。1.2 任务目标对于电子商务这样的数据流量特别大的管理信息系统,必须要满足使用简单方便、管理以及用户浏览操作灵活等设计要求。本系统在设计时应该满足以下几个目标:l 采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。l 全面展示书店内所有的药品信息。l 为顾客提供一个方便、快捷的图书信息查询功能。可以通过药品大类查询某类药品的信息。l 实现药品购买。l 会员用户可以查看自己的订单以及购买记录。l 实现药品销售排行。l 管理员可以随时添加和修改销售药品的价格和库存等信息。l 查看网站公告信息l 系统实现可维护性。l 系统运行安全可靠,外部用户无法获得用户的个人资料等信息。2. 项目规划2.1 项目资源2.1.1 硬件设备 本系统开发的硬件设备要求如下:l 服务器:Pentium 双核处理器CPU T4500 2.30GHz,2GB的内存。l 打印机:无。l 扫描仪:无。l 网络设备:调制解调器,双绞线,集线器,8口交换机,1000MBPS以太网卡。2.1.2 软件环境l 操作系统: Windows xp;l 数据库支撑软件: Microsoft access 2010;l 网站服务器:Apache Tomcat 5.5.27 Serverl 网页浏览工具:IE浏览器。2.1.3 软件工具l 设计开发工具:Microsoft Visual Studio 2010;l 网页图形制作软件:Adobe Photoshop CS2;l 网页设计工具:Microsoft Visual Studio 2010;l 软件设计建模工具: Mircorsoft Visio 2003。2.2 项目规划2.2.1 任务描述使系统开发步骤及本系统采用自上而下的项目开发步骤,整个过程主要分为三个阶段。图 2.1 任务树2.2.2 进度安排基于以上描述的任务目标,将系统的设计与开发任务进行任务分解如下:l 进行需求分析,确定系统需要逐步实现的功能;l 进行业务流程分析,进而设计出系统的运作流程;l 设计总体框架,根据业务流程和系统运作流程规划软件结构;l 定义数据结构,根据实际业务中数据流定义在系统中需要定义的数据和数据之间的关系;l 体功能实现,使用开发环境进行界面设计和代码编写以实现在线图书销售系统各部分功能;l 系统测试,对系统进行使用,评估功能的实现效果。图 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 功能需求l 药品信息查询该模块实现药品信息的分类显示,提供最新药品的推荐显示以及销售排行显示,便于引导购物取向。此外,还提供依据药品名称等关键字实现快速搜索的功能并显示该药品的有关详细信息。l 会员信息管理会员信息管理模块记录了用户注册时填写的所有信息,实现系统对登录用户身份的验证,同时也能对用户资料实时更新并记录。该系统可以收集用户的联系方式、通讯地址等信息。 l 订单信息管理对每一个注册后登录系统的会员用户所产生的订单进行管理。将用户所选购的药品信息,包括价格、数量等信息记录到对应的订单上,便于在付款功能进行结帐处理。同时在此模块中,登录后的会员还可以方便的实现修改购买药品、清空订单信息等操作。l 订单处理根据选购的药品的信息,以及用户所选择的送货方式和付款方式,和用户对应的个人信息生成处理订单,便于后续业务的进行。在会员付款后系统将信息提交给管理员发货,并将信息反馈给对应的会员用户。3.2.1 功能组成根据需求分析,设计出客户系统功能图如图所示:图3.4客户端系统功能图系统后台的功能如下图所示:图 3.5后台管理功能图3.2.2 功能逻辑数据流程图是描述系统逻辑模型的有效工具,通过几个特定的符号,可以综合地反映出信息在系统中的使用、加工处理、传递、存储的整体情况。对于药品在线销售电子商务系统,其外部用户主要有游客、会员和管理员。游客只能浏览查询药品的信息,游客在进行注册后成为系统的会员,会员可以购买药品及相关信息查询的功能,管理员可对系统的各种信息进行管理和维护。根据上述分析,可以得到药品在线销售电子商务系统的顶层数据流图,如图所示:图 3.6顶层数据流程图注册用户自己在网站选购药品生成订单,管理员根据订单检查库存后发货,并决定是否补充库存的药品,补充库存药品与发货后都会产生库存帐,未付款则在货到付款后完成订单,并将结果返回客户和管理员。根据上述分析,可以得到在线图书销售系统的中层数据流图,如图3.8所示。图 3.7药品在线销售数据流程图3.3 数据字典3.3.1 数据项的定义数据字典是各类数据描述的集合,能够对数据的详细规格定义,并可用于严整数据,以发现系统在数据需求描述中是否出现纰漏。数据字典通常包括数据项、数据结构、数据流、数据存储和数据处理过程这几个部分的数据内容,其中数据项是数据的最小单位,若干个数据可以组成一个数据结构。数据字典就是通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容的。数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:数据项描述=数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,本系统主要的数据字典如下:表 3.1 会员信息相关数据项数据项编号数据项名称类型长度取值范围简述R01-01会员IDint1211012-1该会员用户IDR01-02会员名varchar50该会员用户名R01-03真实姓名varchar50该用户真实姓名R01-04性别varchar50性别R01-05联系电话varchar5011012-1该用户联系电话R01-06地址varchar200该用户联系地址R01-07电子邮箱varchar50该用户电子邮箱表 3.2 药品信息相关数据项数据项编号数据项名称类型长度取值范围简述R02-01药品IDint1211012-1此药品代码R02-02名称varchar50此药品名称R02-03生产厂家varchar100此药品生产厂家R02-04功能主治varchar100此药品主要功能效用R02-05用量varchar50此药品使用方法和用量R02-06性状varchar50此药品性状R02-07规格varchar50此药品规格R02-08药品分类名称varchar50关联药品分类表中的名称R02-09药品价格int1211012-1此药品的价格表 3.3药品分类相关数据项数据项编号数据项名称类型长度取值范围简述R03-01药品类IDint1211012-1此药品类的编号R03-02药品分类名varchar50此种药品类的名称表 3.4用户订单数据项数据项编号数据项名称类型长度取值范围简述R04-01订单IDint1011012-1此订单编号R04-02用户IDint1011012-1此订单对应的用户编号R04-03数量float1011012-1此订单中各药品的数量R04-04药品IDvarchar200此订单中的药品R04-06联系电话varchar50此订单对应用户的联系电话R04-07日期bigint20此订单产生的时间3.3.2 数据结构的定义数据结构描述了某些数据项之间的关系。一个数据结构可以有若干个数据项组成,也可以有若干个数据结构组成;还可以由数据项和数据结构组成。下面正对本管理系统的数据结构做简要说明。表 3.5 用户订单的数据结构DS01-01DS01-02:订单标识DS01-03:用户情况DS01-04:订单详情R04-01:订单IDR01-01:用户编号I02-01:药品编号R04-02:用户IDR01-02:用户名I02-02:药品名称R04-04:药品IDR01-03:用户真实姓名I02-03:药品主要功效R04-07:日期R01-04:用户性别I02-04:药品数量R01-05:用户联系电话R01-06:用户联系地址R01-07:用户电子邮箱从上表看出,数据结构的定义如下:数据结构编号:DS01-01数据结构名称:用户订单简 述:用户所填写的会员信息及选购的药品等信息数据结构组成:DS01-02+DS01-03+DS01-043.3.3 数据流的定义数据流由一个或一组相互联系的数据项组成。下面对一个主要的数据流做出定义。表 3.6订单数据流定义 S01-01数据流编号S01-01数据流名称用户订单简述客户选购药品生成的订单数据流来源客户选购图书数据流去向订单处理模块数据流组成订单ID+用户ID+客户名+药品名+ 数量+总价+收货人姓名+收货人地址+收货人联系电话+付款详情+下单时间数据流量15份/天高峰流量60份/天4. 系统结构设计4.1 总体框架涉及系统工作模式,组成系统的构件及其关系等。可通过框架图、组件图直观说 本系统采用三层架构设计,它的工作原理如图4.1所示。图 4.1 三层结构原理图采用三层构架以后,用户界面层通过统一的接口向系统处理层发送请求,系统处理层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的结果经过处理后返回给用户界面层。这样用户界面层不知道数据库的结构,同样可以通过功能的接入实现目标。4.2 软件结构4.2.1 软件模型在线系统为顶层模块,其调用客户基本信息的处理、图书信息处理、订单处理等模块,后台管理员对注册客户基本信息的处理,以及对管理员的信息处理,对图书类型及图书基本信息的处理,对订单详细信息的处理。图 4. 2系统结构图4.2.2 模块定义该系统的各大模块可概括为四大模块,在分析模块定义的时候,首先分析系统的整个模块。系统的HIPO图。如下图4.3 所示。图 4.3 系统的H图会员基本信息处理模块的IPO图系统名称:在线药品销售电子商务系统模块名称:会员信息处理模块编号:1输入数据:有效的原始数据处理步骤:1.调用“会员基本信息输入”模块图 4.4 会员基本信息处理模块的IPO图药品信息处理模块的IPO图系统名称:在线药品销售电子商务系统模块名称:药品信息处理模块编号:2输入数据: 有效的原始数据输出数据: 经处理的药品信息处理步骤:1.调用“药品信息输入”模块图 4.5 药品信息处理模块的IPO图订单数据处理模块的IPO图系统名称:在线药品销售电子商务系统模块名称: 订单信息处理模块编号:3输入数据: 有效的订单数据输出数据: 经处理的订单信息处理步骤:1.调用“订单信息输入”模块图 4.6 订单数据处理模块的IPO图用户基本信息输入模块的IPO图系统名称:在线药品销售电子商务系统模块名称:会员注册信息输入模块编号:1.1 输入数据:用户基本信息的原始数据处理步骤:1.注册客户的基本信息的录入和整理2.管理员账号和密码图 4.7 客户基本信息输入模块的IPO图书籍信息输入模块的IPO图系统名称:在线药品销售电子商务系统模块名称: 药品信息输入模块编号:2.1输入数据: 药品信息的原始数据处理步骤:1.药品的名称的记录、修改和删除2.药品销售数量及单价的新建、修改和删除3.药品库存量记录、修改和删除图 4.8药品信息输入模块的IPO图订单数据输入模块的IPO图系统名称:在线药品销售电子商务系统模块名称: 订单信息输入模块编号:3.1输入数据: 订单原始数据处理处理步骤:1.对订单原始数据进行审核2.对已审核的订单,进行数量、单价添加、修改和删除图 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.1管理员数据项描述数据项含义说明类型长度取值含义与其他数据项逻辑关系管理员帐号唯一标识int10标识管理员关联密码管理员密码varchar50管理员登陆密码关联管理员表 4.2会员实体数据项描述数据项含义说明类型长度取值含义与其他数据项逻辑关系用户编号唯一标识int12识别用户用户名varchar50标识用户密码varchar50用户登录密码真实姓名varchar50客户的真实姓名关联用户邮箱性别varchar50客户性别联系电话varchar50客户的联系电话地址varchar200用户地址电子邮件varchar50用户电子邮件表 4.3药品实体数据项描述数据项含义说明类型长度取值含义与其他数据项逻辑关系药品代码唯一标识int12识别药品名称varchar50标识药品生产厂家varchar100药品生产厂家功能主治varchar100药效及适用人群用量varchar50使用方法和用量性状varchar50药品性状规格varchar50药品规格药品分类名称varchar50属于的药品类别关联药品分类表中的名称表 4.4药品分类实体数据项描述数据项含义说明类型长度取值含义与其他数据项逻辑关系药品分类编号唯一标识int12识别药品种类名称varchar50药品类别表 4.5订单实体数据项描述数据项含义说明类型长度取值含义与其他数据项逻辑关系订单编号唯一标识int10订单编号用户名int10客户名关联会员信息表中的用户名总价格float10总价格内容varchar200订单内容是否付款int2判断是否付款联系电话varchar50用户联系电话关联会员信息表中的联系电话购买时间bigint20日期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 2010系统开发语言:C#。5.2.2 表设计及其关系设置数据库的概念结构设计完毕后,将上面的数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。本系统的主要几个表的表关系设计如下图。图 5.1 主要表的表关系设置表5.1会员信息表字段名字段说明数据类型字段约束备注Member_ID会员idNumber(8)主键,非空非空Name会员名Varchar(35)非空Password会员登录密码Varchar(30)非空Sex性别Varchar(2)默认值:“男”非空RealName会员真实姓名Varchar(20)非空Phone会员电话号码number (12)非空Address家庭地址Varchar(120)非空Email会员电子邮箱Varchar(45)包含符号非空表5.2药品信息表字段名字段说明数据类型字段约束备注Drug_ID药品代码Number(8)主键,非空非空Drug_Name药品名称Varchar(35)非空Indication适应症Varchar(2)”非空Direction使用方法Varchar(150)非空Description性状Varchar(50)非空Specification规格Varchar(30)非空Manufacturer生产厂家Varchar(50)非空Drug_Type药品分类名称Varchar(35)非空Side_Effects副左右Varchar(100)Price价格Varchar(10)非空表5.3药品分类信息表字段名字段说明数据类型字段约束备注DrugType_ID会员idNumber(8)主键,非空非空DrugType_Name会员名Varchar(35)非空DrugsLong Varchar表5.4订单信息表字段名字段说明数据类型字段约束备注Order_ID订单编号Number(8)主键,非空非空Customer会员名Varchar(35)非空Delivery_Address送货地址Varchar(100)非空Telephone联系电话Number (12)非空Amount_Money货款总额Varchar(35)非空表5.5订单处理信息表字段名字段说明数据类型字段约束备注Proce_ID订单处理编号Number(8)主键,非空非空Ord_ID订单编号Number(8)非空Deliver是否已发货Varchar(2)非空Drug_Information药品信息Long Varchar()非空Total_Price订单总额number非空Member_Name订单人Varchar2(50)非空表5.6单项药品信息表字段名字段说明数据类型字段约束备注OrderID_LineDrugs单项信息表idNumber(8)主键,非空非空OrderDrug_Name订单药品名Varchar(35)非空OrderDrug_Number药品数量Varchar(30)非空Drug_Price药品价格Varchar(2)非空OrderID对应订单号Number(8)非空5.3 界面设计5.3.1登陆功能界面设计 登录需要验证用户名和用户密码,系统登录的身份分为会员登录和管理员登录,进入系统界面默认为会员登录,运行界面如图所示:图 5.2登陆界面下面是登录功能的代码:药品在线销售 - 登录登录用户名:密 码: !-验证码::- 还不是我们的用户? 点这里注册. v1.0 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.CommandText = select count(*) from userinfo where user_name= + this.user_name.Text + and user_password= + this.password.Text + ;/通过会员姓名、密码、权限查询tb_zhuce数据库已找出相映的信息 Sessionuser_name = this.user_name.Text.ToString(); /把用户输入的用户名存储到Session变量中 Sessionuser_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(alert(很遗憾,用户名或密码错误!);); 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.CommandText = select count(*) from userinfo where user_name= + this.user_name.Text + and user_password= + this.password.Text + ;/通过员工姓名、密码、权限查询tb_zhuce数据库已找出相映的信息 Sessionuser_name = this.user_name.Text.ToString(); /把用户输入的用户名存储到Session变量中 Sessionuser_password = this.password.Text.ToString(); /把用户输入的用户密码存储到Session变量中 int a = Convert.ToInt32(cmd.ExecuteScalar(); / if (a 0) Response.Redirect(/show_article.aspx); /登录成功跳转到管理员主界面 else Response.Write(alert(很遗憾,用户名或密码错误!);); con.Close(); /关闭数据库连接 5.3.2注册功能模块设计游客只有通过注册才能成为系统的会员用户,享受在线购卖等服务。下面是实现注册的部分代码:药品销售 - 注册 .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; 用户注册 *用户名: *密码: *确认密码: 密码提示问题: 密码提示问题答案: *邮箱: /asp:Regula
展开阅读全文