
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年秋季学期
软件开发综合训练课程设计
题 目: 药品销售管理系统
专业班级: 08级计算机3班
姓 名: 刘兵
学 号: 08240305
指导教师: 张红
成 绩:
摘 要
药品销售系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
经过分析, 系统实现用的前台开发工具是ASP,后台数据库为Access。设计过程中的重点和难点是对整个系统的需求分析和数据库详细设计。
药品销售管理系统主要为部门的经济活动提供信息服务,系统能够对用户信息管理、入库管理、销售管理、库存管理等信息提供录入、修改、删除等功能,使销售商能够合理控制进销存各个环节,提高资金的利用率和结算速度,实现管理的高效率、实时性、安全性、科学化、现代化和智能化。
关键词:药品销售管理系统系统ASP; Access;数据字典;管理
序 言
任何一个经济组织在存储过程中都会产生大量的数据,并且关注许多与之相关的资料。他们需要对这些数据进行存储,并按照一些特定的规则对这些数据进行分析、整理。从而保证自己的工作按序进行,提高效率、提高竞争力。数据库应用系统就是为支持一个特定目标,把相关的数据以某种数据模式进行存储,并围绕之一目标开发的应用程序。
药品销售管理软件实现目标是对药品销售信息进行系统的管理,利用数据库实现部门之间的信息交换,帮助管理人员迅速掌握药品销售情况及库存情况,包括对进货、销售的登记,存量情况,销售总额的统计,增加预测功能等,为用户提供决策信息。
1、可行性分析
1.1问题描述
随着科学技术的发展,社会进步,人口的增加,计算机迅速的发展,药品销售管理的方法也多种多样。随着数据越来越复杂和庞大,以前全是由人工管理的方法如今暴露许许多多的缺点和不足:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。为了提高药品销售管理效率,减轻劳动强度,信息处理速度和准确性;为管理员提供更方便、科学的服务项目。为管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个药品销售管理系统的方案。让计算机对药品销售进行自动管理,管理员可以直接在计算机上实现药品销售的信息管理,并能在一定程度上实现自动化。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。
1.2可行性分析研究
当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。
有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。系统目标应充分体现,直接为药品销售管理系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。以达到更加出色的程序系统。可是,目标的提法不尽相同,例如:
·提高药品销售管理效率,减轻劳动强度;
·提高信息处理速度和准确性;
·为管理者提供更方便、科学的服务项目。
1.2.1技术可行性
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。目前药品与药品之间建有局域网,各药品销售点均采用PC机作为工作台,其容量、速度能满足系统要求。
根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目
标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
1.2.2经济可行性
主要是对开发仓库货物管理系统的经济效益进行评价,一方面是估算开发它的支出费用,其中包括设备购置费、软件开发费、管理和维护费、人员工资和培训费等。另一方面是估算药品销售管理这个软件可能取得的收益中可以用钱来衡量的那部分。并对目前的软件市场进行调查,所做软件是否有很大的销售市场和相当规模的用户群。所做软件的开发成本与客户提出的要求是否可达到双方都满意。并且,分析系统开发是否会对其它产品或利润带来一定影响。经过对上述几个方面的调查研究和分析,我们得出药品销售管理这个软件的市场前景是相当客观的,在经济角度来说,开发药品销售管理是可行的。
1.2.3操作可行性
主要是了解药品销售管理的相关人员对开发信息系统是否支持,现有药品销售管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。药品销售管理人员积极支持该系统开发,使新系统能够充分的发挥作用;系统操作简单,易于理解,操作者经过短时间的培训就可以使用药品销售管理系统。
1.3结论意见
经过认真地可行性研究,系统基本上做到了在技术、经济、运行、法律上的可行。因此,相信在按照计划上实施的前提下,全系统的设计将会按时、高质量完成。所以,系统研制和开发是可以马上进行的。
2、项目开发计划
2.1编写目的
经过项目的可行性分析,得出项目可进一步进行下去的结论,在软件继续进一步的开发之前首先给出此软件项目计划。
2.2项目背景
项目分析单位在接到项目分析员给出的项目可行性分析报告后,在本系统,即药品销售管理系统开发主管部门的统一下制定用于软件实质开发的软件项目计划,以使软件开发单位理解软件开发要求,进行开发。
2.3项目概述
1、工作内容
让计算机对药品销售进行自动管理,用户可以直接在计算机上实现药品销售的信息管理,并能在一定程度上实现自动化。
2、条件与
开发该软件的条件比较简单,以开发单位目前的经济与技术条件已完全具备开发的条件。该系统可在用户要求的期限内完成。
3、产品
1)、程序
该项目因开发时间较短,这里只给出设计文档,具体程序没写。
2)、文档
文档内容包括:
(1) 封面(2)目录(3)中文摘要100字左右;关键词3-5个(4) 序言(5)可行性分析(6)项目开发计划(7)需求规格说明(包含需要的系统流程图、数据流程图、数据字典、E-R图)(8) 概要设计(包含总体软件结构图、总体数据结构)(9) 详细设计(对概要设计内容进行详细设计)(10) 设计总结、参考文献、致谢等
4、验收标准
软件的验收标准完全由用户提出的软件需求制定,能保证软件的基本符合用户的要求。
2.4项目开发计划
1、任务分解
分三个大的阶段进行开发第一阶段完成本系统的数据流图跟E-R图。第二阶段完成概要设计跟详细设计。第三阶段书写文档。 2、预算
软件资金投入较少,具体预算分配简略。
3、关键问题
各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。
2.5交付期限
所要开发的系统较简单,所有开发工作用户要求要在0.5个月内完成,完成项目的最迟时间为20011年8月19日。
3、需求分析
3.1任务需求分析
1)用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构充分满足各种信息的输入和输出。通过上述系统功能分析,针对一般管理信息系统的需求,得出如下的需求信息:
●客户信息。包括的数据项有:客户代码、名称、联系人,地址、电话,手机,传真,邮编,E-mail,税号,开户行,账号,信誉度等。
●药品信息。包括的数据项有:药品代码、商品名称、剂型、产地、规格、价格、保质期等。
●入库/发货信息。包括的数据项有:入库/发货单号、客户代码、经手人、药品代码、数量、单价、金额、日期等。
●统计分析。主要包括库存信息、销售信息、利润分析等。
3.2数据流图、数据字典及实体联系图
3.2.1数据流图
该系统数据流程图如图3.2所示:
图3.2 系统数据流程图
数据流图由四种基本的元素构成:数据流(Data Flow),处理(Process),数据存储和数据源(数据终点)。
数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示,一个数据可以是记录、组合项或基本项。
处理(Process):表示对数据所进行的加工和变换,在图中用矩形框表示。指向处理数据流为该处理的输入数据,离开处理的数据为处理的输出数据。
数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。
数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般只出现在数据流图的起点和终点
3.2.2数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
由于本次设计是小型软件系统的开发,所以采用卡片形式书写数据字典。每张卡片上保存描述一个数据的信息这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。下面将列出若干数据元素的数据卡片信息。
数据字典卡片:
名字:入库单记录
别名:
3.2.3实体联系E-R图
根据上面的设计规划出的实体包括:药品实体、用户实体、库存实体。各个实体的E-R图以及实体与实体间的E-R关系图描述如下
1)用户信息实体属性图
2)药品信息实体属性图
3)入库信息实体属性图
4) 出库信息E-R图
图3-1 E-R关系图
4、系统概要设计
4.1总体设计
通过这个阶段的工作将划分出组成系统的物理元素。
系统概要设计的基本目的是用比较抽象的概括方式确定系统如何完成预定的任务,也就是要确定系统的配置物理方案。软件结构设计时应该遵循的最主要的原理是模块,让模块彼此间的接口关系应该尽量简单。
4.2概要设计流程图
概要设计的目的是对程序的具体实现过程进行设计,程序的主要部分设计在这个环节完成。其主要包括以下几个部分:
4.3数据库概念设计
数据库一般分为三级模式:外模式、概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。
在这里我们将要设计的是数据库的概念模式,
通过对仓库货物管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构。
药品信息:药品的名称、类别、剂型、产地、规格、进价、批发价、零售价、货源、保质期
入库信息:药品的名称、编号、数量、仓库号、入库日期
销售单信息:药品的名称、数量、价格、用户编号、销售日期
用户信息: 用户的名称、地址、联系人、电话、银行帐号
数据库概念结构设计,是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。
4.4数据库逻辑结构设计
在数据库设计中相当重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在再数据库设计的实现过程中,在计算机上有效地表示出这些关系就成了数据库设计的关键。
根据药品销售管理系统的功能要求,选取Access 作为后台数据库。
在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。
该数据库由4个表组成,药品信息表、入库信息表、库存信息表、出库信息表
一、主表的结构设计
1)药品信息表
| 字段名 | 数据类型 | 是否为空 | 主键 |
| pid | Number | Not null | Primary key |
| pname | char | ||
| add | char | ||
| xinghao | char | ||
| guige | date | ||
| guart | char |
| 字段名 | 数据类型 | 是否为空 | 主键 |
| pid | Number | Not null | Primary key |
| pname | char | ||
| opman | char | ||
| qu | number | ||
| price | number | ||
| total | Number | ||
| cdate | date |
3) 库存信息表
| 字段名 | 数据类型 | 是否为空 | 主键 |
| pid | number | Not null | Primary key |
| rqu | number | ||
| rprice | number | ||
| cqu | number | ||
| cprice | number | ||
| bene | number |
| 字段名 | 数据类型 | 是否为空 | 主键 |
| id | number | Not null | Primary key |
| pid | number | ||
| qu | number | ||
| price | number | ||
| total | number | ||
| date | date |
当开发环境通过连接到数据库上之后,在设计中使用数据库画笔可实现对该数据库中表格,视图等的操作,如创建表,修改表,删除表,增加/删除记录。
设计中设计数据窗口的时候,通过对话框实现与数据的连接。在应用程序中则一般是在应用程序对象中书写连接数据库的程序代码,使得应用程序开始运行并实现与数据库的连接。
5、详细设计
详细设计阶段的根本目标是确定应该如何具体地实现所要求的系统,包括了用户界面设计、程序过程设计等步骤。
5.1系统的主要功能
1、药品各种信息的输入,包括入库,出库,还原,需求信息的输入等
2、药品管理的各种信息查询,修改和维护
3、在药品库存管理中加入最高储备和最低储备字段,对药品的物质设备实现监控和报警
4、操作日志的管理
5、药品管理系统的使用帮助
5.2程序流程图
程序流程图的优点是对控制流程的描绘很直观,易于掌握。
1、销售管理系统其程序流程图如图5.1所示
是
否
否
是
否
是
图5.1 销售系统程序流程图
2、 进货系统程序流程图如图5.2所示:
是
否
否
否 否
是
图5.2 进货系统程序流程图
5.3用户界面设计
5.3.1一般交互设计
一般交互涉及信息显示、数据输入、和系统整体控制等方面。
1、一致性
为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。
在设计的过程中,基本上保持了系统的格式一致。
2、信息的反馈
向用户及时提供视觉和听觉的信息反馈,以保证在用户和系统之间及时地建立双向通信。
在本系统设计过程中,基本做到了信息的及时反馈,在信息显示的大部分窗体中包括了刷新按钮,会对数据库中的数据进行及时地显示。另外,在进行错误操作是,会弹出提示窗口并发出警告提示音。
3、执行有较大影响的操作前提示用户确认
在设计过程中,如果用户要执行删除操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示。
4、减少两次操作间需要记忆的内容
为了避免用户为下一步操作而记忆大量数据,所以在设计过程中在需要数据传递的窗体中设置全局变量,来传递数据。例如在入账和入库的模块的操作中都用到了这样的方法。
5、对话、移动和思考的效率
尽量减少用户击键的次数,在设计时考虑到了用户屏幕的布局以减少用户鼠标移动的距离,尽量避免用户在操作中发生疑问的情况。
6、允许错误
允许用户的误操作尽量不对系统造成伤害。
7、按功能对动作分类,并据此设计屏幕布局
屏幕布局尽量将软件所具有的所有功能在主页面展示,界面一目了然。
5.3.2信息显示设计
应当尽量为用户提供的界面显示时完整的、明确的和容易理解的。这样才能满足用户的需求。使用不同的方式显示信息:用文字、图形、声音,按位置、移动和大小,使用颜色和省略等方式传达信息。
1、只显示与当前工作有关的信息
在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。
2、使用便于用户迅速吸收数据的方式来表示数据
在系统设计的过程中,较多地使用了图表的形式表示数据,例如在分析中就使用了柱状图的形式表现了复杂的数据。这样,用户可以直观的体会到图表所表示的含义。
3、使用一致的标记、标准的缩写和可预知的颜色
为了使系统所表达的含义准确、无误,就必须适用一致的标记、标准的缩写和可以预知的缩写,这样用户就无需参照其他信息源就能理解,而正确地适用软件。
4、产生有意义的错误信息
对于系统在运行过程中产生的错误尽量给用户返回一个容易理解的错误信息,以使用户保持对系统的信任,和系统的可用性。
5、使用窗口分隔不同类型的信息
使用不同的窗口显示、保存不同类型的信息。
6、高效率的使用显示屏
当使用多窗口时,应该有足够的空间使得每个窗口至少都能显示出一部分。此外,屏幕的大小应该选得和应用系统的类型相配套。
在各个显示数据的窗口中,由于数据窗体项目较多,所以在数据窗体空间中较多的是用了垂直和水平滚动条,以保证信息的全面正确显示。
5.3.3数据输入设计
用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。在系统中,键盘是主要的输入介质,但是鼠标等设备的也是重要的输入手段,所以,对于他们的数据输入操作有如下约定:
1、保持信息显示和数据输入间的一致性
为了方便用户的使用,鼠标应当尽量减少操作的幅度。
2、保持显示信息和输入信息之间的一致性
对于用户来说,要保证其输入的数据在显示上与其他显示的视觉特征(例如:文字大小、颜色、位置等)要一致。
对于不同类型的用户在登录到系统后,由于有不同的权限,所以在主界面中会有一些项目受到而无法使用,所以要使这些项目不发生作用,以保证系统安全。
5.4程序设计过程
程序过程设计主要是在借助过程设计工具的情况下,对程序的具体实现过程进行设计。程序的主要部分设计在这个环节完成。其主要包括以下几个部分:
5.4.1登录界面及密码修改
1、登录界面如图5.3所示
图5.3 登录界面图
在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行对比,若一致,则打开主窗体,若不一致提示错误,并要求再次输入,若输入次数超过三次,则关闭系统。
在这个部分中,需要对用户的类型存入一个全局变量,予以判断其所具有的系统使用权限,例如,用户类型为DBA,则该用户拥有系统的一切权力,可以对每一部分进行添加、删除、查找、统计等操作;而其他用户类型都依据其类型的属性,可以使用的部分也会相应减少,而只能使用一部分与其类型相匹配的功能。
2、密码修改如图5.4所示
图5.4 密码修改图
在用户更改密码时,系统首先判断输入的两次旧密码是否一致,若一致,则判断原密码是否正确,如果原密码正确,则对数据库中的相应字段进行更新。
5.4.2药品添加操作及修改
1、药品添加如图5.5所示:
图5.5 药品添加如图
管理员查询某货物时货物名及药品编号与数据库中的数据不相一致,系统提示所查货物在仓库里为空,即仓库从没存储药品。然后管理员可根据药品管理的需求是否保存该药品。
2、药品修改
此功能是对药品的单价、库位、编号修改。
首先系统将从数据库中读取所有可用的药品信息,其中包括编号、名称、入库时间、单价等信息,管理员可视情况分别修改。修改完毕并确认后,系统将所做修改保存,并将新的记录保存于数据库中。
在药品管理操作中,为了保护数据库以及考虑实际因素,对单价、编号的修改时都不能留空,同时编号的修改也不能有重复,若出现此类情况则提示出错。
实现该功能的程序流程图如5.6所示:
否
是否继续
是
编号修改 单价修改
库位修改
否
是否符合要求
是
修改成功
图5.6 药品修改程序流程图
5.4.3查询操作
查询操作如图5.7所示
图5.7 查询操作图
在执行查询操作之前通常要先在单行文本框中输入被查询的条件,在单行文本框失去聚焦时将查询条件传递给查询按钮的单击事件中,然后过滤语句依据此过滤条件过滤得出相应的数据,并显示在其他数据窗体控件中。
在通常情况下,用户可以在得到要查询的信息后,对它们的各个字段进行修改,经过修改后,在退出时系统会提示进行存储。
在完成了用户界面设计和程序过程设计后,基本上完成了详细设计的内容。
参考文献
1张海藩,软件工程导论[M].清华大学出版社,2003年12月
2张海藩.软件工程导论学习辅导[M].清华大学出版社,2004年9月
3萨师煊,王珊.数据库系统概论[M].清华大学出版社,2002年2月
4汪孝宜,刘中兵,徐佳晶等.JSP数据库开发实例精粹[M].电子工业出版社,2005年1月
5 《数据库系统概论》萨师煊, 王珊
6 《数据库管理系统》[美], 清华大学出版社
7 《数据库系统概念》[美], 机械工业出版社
8 《数据库设计》[美], 机械工业出版社
设计总结
这次课程设计运用了ASP进行程序开发,完成了一个“药品销售管理系统”的课程设计。通过这次实践,我们对ASP有了全新的认识,ASP语言是一个完全导向的可视化动态网络开发语言,它具有功能强大、运行速度快、易于学习和使用以及开发迅速等特点。采用ASP可以使你用最少的时间来得到最高的开发效率。开发者可按照自己的喜好及用户要求,随心所欲的安排窗口的外观。
在这几周的课程设计中我通过张红老师的指导、同学们的帮助、学会战胜所有的困难。使我得到一次难的锻炼机会,加深了对理论知识的理解,丰富了实践经验。同时更让我深刻体会到团队合作的重要性,并通过这次设计让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我即将从事的工作打下了一个坚实的基础!
但是由于是在暑假进行的课设,一是时间有点短,二是我们还要上课,加上自己有时候有些懒惰,所以该系统还有许多不尽人意的地方,用户界面设计不够美观,统计功能还不完善等,这些都有待进一步改善。三周的课程设计,提高了我的实际操作能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。虽然在设计过程中也遇到一些困难,但在张红老师和同学们的帮助下,再加上自己的努力,都基本上克服了!再次向尊敬的指导老师——张红老师致谢!感谢老师的指导和帮助!同时也感谢同学们的帮助!
致谢
通过几周的课程设计,我基本上完成了本次课设的要求,尽管有一些的功能没有实现。在此向所有在这次课程设计中给予我关心、支持和帮助的老师、同学,致以最诚挚的谢意,在整个设计过程中,很多老师、同学们都给予我们莫大的帮助。不能忘记,在我遇到重重困难时,指导老师的谆谆教导;不能忘记,许多的同学给予我的支持和无私的帮助。我深知,只有不断的拼搏进取、不断的纠正以前的错误,不断的学习新的知识,才是对大家最好的感谢。而且在本次课程设计中,从指导老师身上学到了很多东西。她深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都是一种巨大的帮助。
再一次向尊敬的指导老师——张红老师致谢!感谢老师的指导和帮助!
