节 I.01 演示视频:
https://www.bilibili.com/video/BV1Uc411r7uy
3.1可行性分析
3.1.1技术可行性分析
JSP+Servlet在技术上已经成熟,SQL Servers数据库易于连接,采用MVC模式,使得视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.1.2管理可行性分析
本管理系统设有后台管理,方便数据维护,可确保系统在管理层面上可行,过本系统进行信息管理工作,可以提高工作效率,管理科学,数据处理准确性高。
3.1.3经济可行性分析
JSP+Tomcat+SQL Server是免费开源的框架或者软件,使得开发成本大大下降。可重用性高,经过修改后,可用于其他类型的博览会管理服务。采用MVC模式是的开本成本降低和易于维护用户接口。界面简洁、易懂、操作方便,电脑初学者无需经过学习就可以轻松得操作本系统的所有功能。本系统的开发在经济上是可行的。
3.2需求分析
通过对药品进销存等业务过程的了解和分析,本系统的主要功能模块可以分为系统登录模块、药品查询管理模块、药品采购管理模块、药品库存管理模块、药品销售管理模块、用户管理模块、系统设置模块、统计分析模块这七个大模块。
3.2.2功能需求分析
(1)系统登录模块
本模块主要实现登录身份验证功能,即当用户登录系统时,需要验证个人详细信息,只有系统注册用户才能登录到系统中。
(2) 药品查询管理模块
本模块主要完成药品信息的添加、修改、删除,查看详细信息,按不同关键字进行搜索等,以及药品类别信息的添加、修改、删除、检索功能。
(3) 药品采购管理模块
本模块主要功能是完成药品采购全过程的信息化管理。要向不同的供应商采购所需要的药品,就要有采购单管理、付款管理、统计打印等。
(4) 药品库存管理模块
本模块功能主要是完成药品入库和出库管理。药品采购回来后要进行入库操作,药品售出后要进行出库操作,库存中的药品还要进行调价、盘点、缺货处理等操作。
(5) 药品销售管理模块
本模块功能主要完成是对药品售出过程相关信息的管理。药品售出时要统计金额、打印清单、从库存中减去相关药品的数量,还要对销售情况进行统计等。
(6) 系统管理模块
本模块主要功能是系统用户的管理,如添加用户、删除用户、用户信息查看、编辑、打印,用户权限设置等。管理员密码修改、系统数据库的备份和还原等功能。
(7) 统计分析模块
主要功能是对药品进销存情况进行全面统计,分析经营活动中的获利情况等。实现药品采购支出情况的统计,已采购付款但还未到货或还未入库情况的统计,库存药品情况的统计、药品销售收入情况的统计等[15]。
3.2.3系统功能模块图
根据需求分析,设计出药品销售管理系统的总体结构。系统功能模块图如图3-1所示。
图3-1 系统功能模块图
3.3数据库设计概述
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
对于数据库应用开发人员来说,为使现实世界的信息流计算机化,并对计算机化的信息进行各种操作,就是如何利用数据库管理系统、系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。 确切的说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。
3.4数据库设计周期
根据软件工程的思想,数据库设计的周期可以划分为六个阶段:
规划阶段:确定开发的总目标,给出计划开发的软件系统的功能、性能以及可靠性等方面的设想。
需求分析阶段:认真细致地了解用户对数据的加工要求,确定系统的功能与边界。本阶段的最终结果能够提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。
设计阶段:把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。
程序编制阶段:以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。
调试阶段:对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。
运行和维护阶段:是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效地处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。数据是系统的灵魂所在,整个系统的运行基础是系统数据库,因而数据库的设计质量对整个系统的功能与效率有很大影响,所以我们在进行数据文件和数据库设计时,充分考虑了数据存储的完整性、可靠性、安全性和数据的一致性及便于操作等方面的问题。
一个完整的信息系统的建设并不是一步到位的。在实际的建设过程中,在时间上各子系统有先建、后建之分,在开发人员的分配上有他建、我建之别,这就涉及到各子系统之间的兼容问题。在现有的软件水平下,追求应用系统间的相互兼容存在困难,但对于数据的兼容也就是数据的共享来说,既非常重要,又相对应用系统的兼容较易实现。在提高数据共享性方面,可主要从数据的一致性方面来考虑。在我们的数据库系统建设中,着重考虑了以下两个标准保证数据的一致性:
字段标准:字段标准不统一是造成数据库难以共享的一个主要原因,因为字段的设计处于数据库设计的最底层,或者可以说是最基本的一层,如果这一层都不能统一的话,会直接影响到数据库中数据的共享。
代码标准:代码的引入为保持数据库中数据的一致性提供了一个重要手段。
此外本数据库设计主要遵循以下原则:数据库文件的实用性,数据库文件的安全性,数据库文件的独立性,节省磁盘空间。
数据库设计是要在一个给定的应用环境(DBMS)中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。物理结构设计的原则如下:
1.尽可能的减少数据冗余和重复。
2.结构设计与操作设计相结合。
3.数据结构具有相对的稳定性。
基于以上设计原则,本系统设计了一个数据库,包含基本信息表(如员工类别、存货等)及几个实体联系建模后的表(如散件销售、整机销售等)。为了加快系统访问的速度把这些表放在一个数据库中。
3.5SQL查询语言及使用
SQL语言是结构化语言(Structure Query Language)的缩写,是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准数据库语言对程序设计和数据库的维护都带来了极大的方便,广泛地应用于各种数据查询。JSP和其他的应用程序包括SQLserver2000、Foxpro、Orcale、SQL SEVER 2000等都支持SQL语言。
SQL语言的常用操作有:建立数据库数据表(CREATE TABLE),如本系统中的学生及成绩备份就用到该语句;从数据库中筛选一个记录集(SELECT),这是最常用的一个语句,功能强大,能有效地对数据库中一个或多个数据表中的数据进行访问,并兼有排序、分组等功能;在数据表中添加一个记录(INSERT);删除符合条件的记录(DELETE);更改符合条件的记录(UPDATE)。
JSP中的数据库操作对象都提供了对SQL语句的支持。其一般的用法是以JSP的各种控件接收用户对数据库访问的请求,在事件响应程序代码中将其转换成对数据库的SQL查询语句,并以字符串的形式存在,然后将其传递给相应的数据库操作对象,最终完成对数据库的访问。
3.6系统数据库设计
数据库设计是开发数据库及其应用系统的技术,也是信息系统开发和建设的重要组成部分。具体的说,数据库设计是要在一个给定的应用环境中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式,建立数据库及其应用系统,满足用户的各种信息需求。
在系统的数据库设计中,首先对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。本系统用实体-联系图(简称E-R图)来描述系统的概念模型。E-R图由实体、属性、联系三部分组成,其符号如图所示:
实体 属性 联系
图3-2 E-R图图例
3.6.1 实体描述
本系统中所涉及的实体有3个,其结构如下:
客户(客户编号、客户名称、联系人、联系电话、联系地址)
药品(药品号、药品名称、规格、单价、计量单位)
供应商(供应商编号、供应商名称、地址、联系人、联系电话)
3.6.2 联系描述
本系统中实体之间有5个联系,其关系如下:
(1)订货关系:业务员、客户和药品的关系是1:M:N,因为多个客户可以向某一个业务员订购多种药品;
(2)存储关系:仓位和药品的关系是1:N,因为一个仓位可以存放多种药品,一种药品只能存放在一个仓位中;
(3)出库关系:客户、仓位和药品的关系是M:N:N,因为多个用户可以将多个仓位中的多种药品销售。
(4)入库关系:供销商、仓位和药品的关系是:N:M:N,因为多个供销商可以将多种药品存放在多个仓位中。
以上实体的联系属性如下:
订货(订货单号、订货日期、数量、单价)
入库(入库单号、日期、数量)
出库(出库单号、日期、数量)
存储(日期、数量)
3.6.2 E-R图
本系统的E-R图如下图所示:
图3-3 药品管理E-R图
图3-4 管理员E-R图
图3-5 库存管理E-R图
图3-6 供应商E-R图
第四章 系统的详细设计与实现
详细设计的主要任务是设计每个模块的详细功能、实现算法、所需的局部数据结构等。基于前面的系统总体设计和数据库设计,在此章进入详细设计与实现阶段的任务。在这个阶段需要对总体设计阶段所阐述的基本功能进行一一具体描述并实现。
3.1登录界面设计
为了保证系统的安全性,进入系统之前必须经过必要的安全性检验,输入相应的用户名和密码,只有合法用户方可登陆。简洁、清晰、友好是此模块的设计风格,如图6-1所示:
图6-1 用户登录界面
如果输入的用户名或者密码错误,就会弹出下面的窗口,见图3.1所示:
图6-2 错误信息
本模块是系统登陆界面,实现的功能是检测合法用户,验证其用户名和密码,以杜绝非法用户侵入系统,对系统所存储的信息构成威胁。
本模块界面非常简单,就一用户名和密码两个文本框和一个登陆按钮,但实现的方法比较复杂,因为系统要自动判断其输入的用户名及密码的正误,还要自动识别其权限(超级管理员与普通管理员之分),如果登陆正常后,系统要将当前用户名和权限记录下来以便之后其他操作给予适当的权限分配。
3.2 JDBC连接
要想让本系统运行成功需要将此设计与数据库连接起来,用户在页面进行的操作在数据库中得以保存,新进的药品、新来的管理员、仓库内清除的药品等这样方便以后的正常的记录。而如果想让这些操作都被记录下来操作成功就离不开页面与数据库的交互,JDBC部分代码就是要将数据库和页面操作连接起来,通过代码控制并将数据库连接所需要的东西配置好就将数据库连接成功了。
3.3 系统基本信界面设计
输入正确的用户名和密码后,即进入系统的主界面。系统的基本操作界面如图3-1所示:
图3-1 系统基本操作界面
该界面是系统登陆后的第一个界面,也是系统操作的主界面,除了登录模块之外,其他后台操作均在本平台上进行,再次页面可以找到所想要做的操作所在的模块,可以对药品、客户、供应商进行操作。
本界面是由一个框架组成,包括上左右三大块。左边是一个菜单列表,包括该系统所能进行的所有操作,单击菜单时右边显示主模块页,显示出所能进行的操作,非常简单明了。
3.4 库存添加界面
(1)入库记录添加,和入库记录查询界面如下:
图3-4入库记录添加界面
图3-5入库记录查询界面
当有新的产品进入到仓库中被保存的时候进入入库添加界面,药品入库的时候需要录入药品的详细信息,药品的编号、名称、入库数量、供应商等等详细的信息,这样方便以后的管理,输入结束之后点击提交,这样药品的信息会被放到数据库中保存。
当需要查询仓库内现有的药品或者查找某一个药品时进入该页面,在此页面可以根据药品的编号查找所要找的药品以及药品的详细信息,省去了在大量药品中查找的时间,快捷方便,只需要知道编号和名称即可找到所想要查找的药品。
(2)销售记录添加,销售记录查询界面如下:
图3-6销售记录添加界面
当从该仓库出库药品时需要经过该页面,需要记录一下本次出库药品的详细信息,药品编号、药品名称库存等等,每一次出库药品的时候都需要记录这些信息以方便之后的药品管理,见信息填写完毕提交之后信息就会在数据库中完整保存,这样方便以后的查找。
需要查询每次药品出库的数量等信息时需要调用此出库记录查询界面,在此界面可以根据某以药品的编号以及名称查询到某一药品出库的详细信息,包括数量、出库时间等。方便对某一药品作具体查询。
库存查询界面
图6-8库存查询界面
此页面为库存查询页面,所提供的功能为查询当前库存的药品及数量,也可以根据编号和名称详细查询某一药品的详细库存数量信息。
3.5 客户管理
(1)客户添加
图3-9客户添加界面
随着企业壮大,出现的新客户会越来越多。当出现新客户的时候进入该客户添加界面对新出现的客户进行信息登记,输入客户的编号、姓名、联系方式等重要信息,以方便日后对客户的管理。
(2)客户查询
图6-10客户查询界面
当客户越来越多的时候难免要从众多的客户中寻找想要找的客户,本模块就是为了方便查找客户而设计的,根据客户添加信息时的编号、客户姓名等可以准确找找客户的详细信息,也可以查看现有的全部客户的信息。
3.6 药品信息界面
(1)药品类别
图3-11药品类别添加界面
仓库中不会一直只存放一种类别的药品,所以设计了药品类别添加界面,此界面的功能只是添加新类别的产品,以方便日后同种类别的药品的存放归类,以避免仓库内药品信息的过于杂乱。
(2)药品类别查询
图6-12药品类别查询界面
如若不确定莫以药品类别仓库内是否存在则可通过该功能查询仓库内的药品类别以及某一编号对应的药品类别,这样可以方便新建药品类别或者将某一药品归类,方便仓库内药品的管理。
(1)药品信息添加
有新药品入库的时候需要调用该页面,在本页面输入药品的库存编号、药品名称等将药品信息添加完成后点击提交将数据传到后台数据库保存,以后调用的时候根据编号就可以从数据库中将本次信息调用出来,方便操作员操作和库存的管理。
图6-13 药品信息添加界面
(4)药品信息查询
图6-14 药品信息查询界面
在众多的仓库锁储存的药品中找到所想要查找的药品就是本界面的设计理念,当库存药品越来越多药品越来越复杂的时候本模块就会显示出优越性,可以查询出本仓库锁存储的所有药品,也可以根据编号具体查找所想要的具体的药品的详细信息。
3.7 供应商管理
图3-15 供应商查询界面
仓库内所储存的药品都是由供应商供给的,所以有必要登记供应商信息,每出现一个新的供应商的时候都会登记该供应商的详细信息,然后保存到后台数据库中,当要查询某一个供应商的信息的时候根据编号和供应商的名称进行详细查询,查询该供应商的详细信息。
3.8 数据备份
系统有很强的不稳定性,该系统有可能会出现某些故障,电脑系统也有可能出现故障,所以当有新信息添加或者仓库的进、销、存相关操作进行过后要随时做好数据备份,以便突然出现问题的时候可以找到数据的备份,避免对企业造成很严重的损失。