欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    医药销售管理系统软件说明书样本.docx

    • 资源ID:5035722       资源大小:959.01KB        全文页数:36页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    医药销售管理系统软件说明书样本.docx

    1、医药销售管理系统软件说明书样本医药销售管理系统1 系统分析随着计计算机技术不断发展,应用软件迅速普及,大到厂矿校企,小到图书、餐饮、医药管理等,随处都可看到它身影。在以往依托人工为主医药销售管理方面,计算机和计算机系统逐渐唱起了主角,凭借省时、省力、低误差等长处,从主线上变化了医药管理老式模式,节约了物理资源,提高了工作效率。1.1 开发背景XX医药抄手坐落于XX社区内,近年来本着经济、实惠、高质量服务宗旨,赢得了社区百姓信赖,药物供应量非常大。面对庞大信息量,经常浮现记录失误、药量供应局限性状况,医药超市经理决定使用一套合理、有效、使用管理系统,对医药超市进行统一管理。笔者受医药超市经理委托

    2、,开发一种医药销售管理系统,其宗旨是实现医药超市管理系统化、规范化、实用化,对药物进行统一管理。1.2 需求分析在寻常医药管理中,面对众多药物和众多不同需求顾客,每天都会产生大量数据信息。以老式手工方式来解决这些信息,操作比较繁琐,且效率低下。此时,一套合理、有效、实用医药销售管理系统就显得十分必要。运用其提供药物查询、记录功能,可以进行高效管理,更好地为顾客服务。笔者通过对医药超市实地考察,从经营者和消费者角度出发,以高效管理、迅速满足消费者为原则,规定本系统具备如下特点。 具备良好系统性能、和谐顾客界面。 较高解决效率,便于顾客使用。 采用成熟技术开发,全系统具备较高技术水平和较长生命周期

    3、。 对销售信息进行记录排行 尽量地简化药物管理员重复工作,提高工作效率。2 系统设计2.1 系统目的依照医药超市管理规定,指定医药销售管理系统目的如下。 灵活人机交互界面,操作简朴以便、界面简洁美观。 系统提供中、英文语言,实现国际化 药物分类管理,并提供类别记录功能。 实现各种查询,如多条件查询、模糊查询等。 提供创立管理员账户及修改口令功能。 可对系统销售信息进行记录分析。 系统运营稳定、安全可靠。2.2 系统功能构造医药销售管理系统提供了四大功能,分别为“基本信息管理”、“进货/需求管理”、“药物管理”、“系统管理”,详细构造如图1.1所示图1.1 医药销售管理系统功能构造图2.3 系统

    4、流程图医药销售管理系统流程如图1.2所示。管理员登录图1.2 医药销售管理系统流程图3 软件架构在开发项当前,一方面要对软件构造进行设计,也称之为软件架构。此过程是对软件整体构造设计,如软件逻辑分层构造、构造实现、数据库等,特别是在Java大型项目中,还需要设计出程序中包构造及接口等,非常复杂,需要程序员进行全面考虑。对于医药销售管理系统整体涉及如下:3.1 逻辑分层构造设计医药销售管理系统由4层构造构成,并遵循MVC构造进行设计。4层构造分别为表达层、业务逻辑层、持久层与数据库层,如图1.3所示。图1.3 逻辑分层其中,表达层与业务逻辑层均由Struts框架构成,表达层用于提供程序与顾客交互

    5、界面,项目中重要通过JSP、ActionForm及Struts标签库进行呈现;业务逻辑层用于解决程序中各种业务逻辑,项目中通过Struts框架中央控制器及Action对象对业务祈求进行解决;持久层由Hibernate框架构成,负责应用程序与关系型数据库之间操作;数据库层为应用程序所使用数据库,本实例中为MySQL数据库。对于4层构造详细实现如图1.4所示。图1.4 逻辑分层实现3.2 系统文献夹组织构造规范系统整体架构是一种项目开发原则,特别是在团队开发项目中,在编写代码之前,必要定制好项目系统文献夹组织构造,以使程序条理清晰,利于后期项目整合。在Java项目中可以将不同作用、功能相类似文献放

    6、置于同一种包中,这样既可以保证团队开发一致性,又可以将系统整体构造规范化。创立完系统中也许用到文献夹或Java包之后,在开发时只需将所创立类文献或资源文献保存到相应文献夹即可。医药销售管理系统文献夹组织构造如图1.5所示。图1.5 医药销售管理系统文献夹组织构造3.3 实体对象设计在应用Hibernate框架项目中,实体对象确立是其中核心。实体对象与数据库中数据表相相应,并通过O/R映射建立实体与数据库联系,Hibernate完全通过操作实体来操作数据库,因此一方面要拟定项目中实体对象。在医药销售管理系统中,实体对象及关系如图1.6所示。图1.6 医药销售管理系统中实体对象及其关系从图1.6中

    7、可以看到,药物实体对象为Medicine类,药物类别实体对象为Category类,销售明细实体为SellDetail类,操作顾客实体为User类,这4个实体对象为医药销售管理系统核心实体对象,它们所相应映射文献均为“类名+hbm.xml”文献。其中,药物信息与药物类别为多对一关联关系,一种类别中包括各种药物对象;药物信息与销售明细为一对多关联关系,各种销售明细相应一种药物对象;销售明细与顾客之间为多对多关联关系,各种销售明细信息相应各种操作顾客。3.4 定义ActionFormActionForm是简朴JavaBean,重要用来保存顾客所输入表单数据,Action要获取这些数据需要通过Acti

    8、onForm对象进行传递。ActionForm对表单数据进行了封装,在JSP页面与Action对象中提供了交互访问办法。在使用过程中,可通过继承org.apache.struts.action.ActionForm对象来创立需要ActionForm对象,项目中所涉及到ActionForm对象如图1.7所示。图1.7 项目中所涉及到ActionForm对象3.5 持久层构造设计持久层构造通过Hibernate框架进行设计。由于Hibernate对不同对象增、删、改、查等操作具备一定共性,如添加数据使用save()办法、删除数据使用delete()办法等,项目中将这些具备共性操作抽取出来,封装成一

    9、种类,其她数据库操作对象可继承此类来拥有这些办法,从而减少程序中多余代码,如图1.8所示。图1.8 持久层构造SupperDao类为所有数据库操作对象父类,在此类中定义了对数据库进行操作惯用办法,详细办法及阐明如表1.1所示。表1.1 SupperDao办法及阐明办法阐明save()用于保存一种对象saveOrUpdate()用于保存或更新一种对象delete(Object obj)用于删除一种对象,入口参数为Object类型findByHQL()通过HQL语句查询数据,入口参数为String类型HQL语句deleteByHQL()通过HQL语句删除数据,入口参数为String类型HQL语句u

    10、niqueResult()单值检索数据,入口参数hql为HQL查询语句、where为查询条件findPaging()分页查询数据,入口参数hql为HQL查询语句、offset为成果集起始位置、length为返回成果集条目数、where为查询条件这些办法均为数据库操作惯用办法,因此将其封装在单独一种类中,对于各个对象数据库有关操作,可通过继承此类来获取这些惯用办法。其子类对象有CategoryDao类、MedicineDao类、SellDao类、UserDao类,其功能分别简介如下。CategoryDao类:药物类别数据库操作对象,用于封装与药物类别有关数据库操作办法。MedicineDao类:

    11、药物信息数据库操作对象,用于封装与药物信息有关数据库操作办法。SellDao类:药物销售数据库操作对象,用于封装与药物销售有关数据库操作办法。UserDao类:顾客数据库操作对象,用于封装与管理员及系统有关数据库操作办法。3.6 业务层构造设计业务层构造重要通过Struts框架进行设计,由Struts中央控制器对各种操作祈求进行控制,并通过相应Action对其进行业务解决,项目中所用到Action对象及关系如图1.9所示。图1.9 Action对象及关系Action、DispatchAction与LookUpDispatchAction为Struts封装Action对象,具备不同特点及作用,项

    12、目中通过继承这几种对象实现对不同业务祈求解决。除这3个对象外,图1.9中别的Action对象均为自定义Action对象。在这些自定义Action对象中,LanguageAction与LoginAction用于解决国际化语言及顾客登录操作。由于两者不涉及过多业务逻辑,它们都直接继承于Action对象。BaseAction对象与DeleteAction对象为重要Action对象,两者都继承了DispatchAction对象。项目中封装这两个对象目在于简化程序中业务逻辑、提高程序安全性。在这两个对象中均对顾客登录身份做出了严格验证,其子类对象通过继承不必再考虑顾客登录安全问题,而更专注于业务逻辑,同

    13、步通过继承还可以减少程序代码量。其中BaseAction对象子类及作用如表1.2所示。表1.2 BaseAction对象子类及其作用子类作用SellAction封装药物销售有关操作,解决封装药物销售祈求SystemAction封装系统有关操作,解决系统级祈求CategoryAction封装药物类别有关操作,解决药物类别有关操作MedicineAction封装药物信息有关操作,解决封装药物信息有关祈求RequireAction封装药物需求及库存有关操作,解决药物需求有关祈求DeleteAction对象继承了LookUpDispatchAction对象,此类通过重写getKeyMethodMap(

    14、)办法对数据进行批量删除操作,其子类对象及其作用如表1.3所示。表1.3 DeleteAction对象子类及其作用子类作用DeleteMedicineAction封装药物信息删除操作,用于批量删除药物信息DeleteReqMedAction封装药物需求信息删除操作,用于批量删除药物需求信息3.7 页面构造设计医药销售管理系统页面构造采用框架进行设计,通过HTML语言中标签及标签将页面提成3个某些,分别为页面头部、页面导航及内容页面,如图1.10所示。图1.10 页面布局此种布局方式将每一种页面单独置于一种框架之中,其中“页面头部”和“页面导航”在登录之后是固定不变,对于顾客操作将在“内容页面”

    15、显示成果。使用这种方式有点在于:(1)避免了JSP页面中大量引用动作标签。(2)避免浏览器重复加载“页面头部”及“页面导航”等同样内容,加快浏览器速度。4 配备文献在编写代码之前,需要做某些准备工作,如项目环境搭建、项目所涉及到第三方类库支持、web.xml配备等。在医药销售管理系统中,重要涉及到Struts框架、Hibernate框架及JFreeChart组件应用,因而在项目开发之前,需要添加其类库支持。4.1 配备web.xmlweb.xml文献是Web项目配备文献,在医药销售管理系统中,此文献需要配备Struts框架、JFreeChart组件和过滤器等信息。4.2 配备struts-co

    16、nfig.xmlStruts框架实现了MVC模式,web.xml和struts-config.xml文献是其两个重要配备文献,其中web.xml文献实现了Struts初始化加载,而struts-config.xml是它核心配备文献。Struts-config.xml所做工作比较多,涉及ActionForm对象定义、顾客祈求和Action之间映射、异常解决等重要配备。其中标签用于注册实例中所涉及到ActionForm对象,标签用于设立全局跳转,标签配备顾客祈求Action对象映射。4.3 配备hibernate.cfg.xmlHibernate.cfg.xml文献是Hibernate配备文献,在

    17、项目中,此文献配备了数据库方言、数据库链接信息、自动建表属性和打印SQL语句等属性。5 实体及映射Hibernate是一种ORM产品,它完全可以操作对象方式进行数据库操作,其实体对象与数据表之间通过映射文献建立映射关系。因而,在医药销售管理系统中需要建立实体对象与数据表之间映射。5.1 药物实体映射药物实体对象持久化类为Medicine类,此类封装了药物有关属性提供相应getXX()和setXXX()办法。药物对象与药物类别对象为多对一关联关系,因此在Medicine类中加入了药物类别属性category,其关联关系通过映射文献Medicine.hbm.xml进行映射。映射文献Medicine

    18、.hbm.xml将实体对象Medicine映射为tb_medicine表,主键生成方略采用自动生成方式。此映射文献中,对于数据表某些字段还通过not-null、length、unique等属性映射字段属性,其中not-null用于映射字段非空属性、length用于映射字段长度、unique用于映射字段与否唯一。映射后数据表如图1.11所示。图1.11 tb_medicine表5.2 药物类别实体映射药物类别实体用于封装药物类别属性信息,其持久化类为Category类,与药物对象存在一对多关联关系。药物对象与药物类别对象为多对一关联关系,但从药物类别一端来看,药物类别对象与药物对象又是一对多关系

    19、,因此程序中采用了多对一双向关联进行映射。药物类别实体对象映射文献为Category.hbm.xml。Category类所映射数据表为tb_category,其中标签用于映射药物类别实体与药物实体间一对多关联关系,此种映射方式将在药物数据表中添加categoryId字段。映射后数据表tb_category如图1.12所示。图1.12 tb_categoy表5.3 销售明细实体映射销售明细用于描述药物销售时详细状况,如销售时间、销售人员、销售数量等。这些信息十分重要,需要记录到数据库中,实例中将其封装为SellDetail类。为了以便查看销售明细总额信息,在SellDetail类中加入了sell

    20、Total()属性,此属性并不进行数据表映射,它只有一种与之相应get()办法,在此办法中通过单价与数量运算对sellTotal进行赋值,并将其返回。销售明细实体映射文献为SellDetail.hbm.xml,此映射文献中映射了两个多对一关联关系,分别为与药物对象多对一关系及操作顾客间多对一关系。销售明细实体映射数据表为tb_selldetail。在映射文献SellDetail.hbm.xml中,通过两个标签分别映射与药物对象及操作顾客多对一关联关系,并配备了级联操作类型为save-update。映射后数据表构造如图1.13所示。图1.13 tb_selldetail表5.4 顾客实体映射在医

    21、药销售管理系统中,顾客实体用于封装管理员基本信息,如登录顾客名、密码等属性,其类名为User。User类中属性相对较少,其映射过程也相对简朴。其映射文献为User.hbm.xml。顾客实体所映射数据表为tb_user,其构造如图1.14所示。图1.14 tb_user表6 公共类设计在Java程序开发中,如果一种功能重复被调用,则可将该功能抽取出来封装为一种类作为公共类,在需要此功能地方通过此类进行实现。公共类实质是代码重用一种方式,在面向对象开发模式中经常使用它来简化程序中代码,提高程序可读性。下面是医药销售管理系统找那个公共类设计。6.1 Hibernate过滤器在没有使用Spring管理

    22、Hibernate状况下,对Hibernate管理依然存在一定难度,特别是在J2EE开发中,线程安全、SessionFactory对象、Session对象、Hibernate缓存及延迟加载等是程序设计中难题,管理不当将会对程序导致极为严重影响。在医药销售管理系统中,将SessionFactory对象、Session对象置于过滤器中,由过滤器对其进行管理,从而解决了这些问题。在Web项目中,以普通方式使用Hibernate将无法解决Hibernate延迟加载,如图1.15所示。当有一种业务祈求查询数据时,一方面要启动Session对象,然后Hibernate对数据进行查询。在关闭Session对

    23、象,最后通过JSP页面来显示数据。在这一过程中,如果查询数据时使用了延迟加载,当JSP页面显示数据信息时,Hibernate将抛出异常信息,由于此时Session对象已经关闭,Hibernate不能再对数据进行操作。图1.15 普通方式通过过滤器管理HibernateSession对象则可以避免此问题,其实现过程如图1.16所示。图1.16 Hibernate过滤器在Web容器启动时,过滤器被初始化,它将执行init()办法,在后续操作中不会再次被执行;而当容器关闭时,过滤器将执行destroy()办法。这两个办法正好符合SessionFactory对象生命周期,在运营期间只执行一次操作,可用

    24、于实例化及销毁SessionFactory对象。对于Session对象关闭操作,可以在业务逻辑解决结束后、response祈求转发大View层之迈进行。实例将其封装在HibernateFilter类中,此类继承了Filter类,它是一种过滤器。为了保证线程安全性,实例中将Session对象存储与ThreadLocal对象中,当用到一种Session对象时,一方面从ThreadLocal中获取,在无法获取状况下才会启动一种新Session对象。同步,为了保证Session对象能在resopnse祈求转发到View层之前被关闭,实例采用了tryfinally语句对Session对象进行关闭。6.2

    25、 SupperDao类SupperDao类为项目中所有数据库操作类父类,此类封装了数据库操作惯用办法。在此类中,由于Hibernate对数据操作都需要用到Session接口,类中定义了一种protected类型Session对象,为其子类提供了以便。save()办法及savaOrUpdate()办法都用于保存一种对象,其入口参数均为Object类型。其中saveOrUpdate()办法比save()办法更智能某些,可以依照实体对象中标记值来判断保存还是更新操作。SupperDao类中使用这两个办法对实体对象进行保存及更新操作。删除操作办法为delete(),入口参数为Object类型,此办法通

    26、过Session接口delete()办法进行实现。SupperDao类为项目中所有数据库操作类父类,在设计时应当考虑全面。HibernateHQL查询语言提供了更为灵活查询方式,在这个超类之中应当加入HQL操作办法,其中findByHQL()办法用于依照指定HQL查询语句查询成果集,deleteByHQL()办法用于依照指定HQL查询语句进行删除操作。Hibernate单值检索在查询后返回单个对象,当返回成果包括多条数据时,Hibernate将抛出异常。此种操作可用于查询单条数据,如聚合函数count()等。在SupperDao类中,单值检索办法为uniqueResult()。此办法入口参数为

    27、HQL查询语句及查询条件,其中查询条件为Object数组类型,用于装载查询语句中参数。例如HQL语句“from Medicine m where m.id=?”,此时即可通过参数where对其进行动态赋值。分页查询在程序开发中经惯用到,不但以便查看,还可以减少成果集返回数量,提高数据访问效率。使用Hibernate分页查询办法极为简朴,只需要传入几种参数即可,但在SupperDao类中对其进行了扩展,加入了HQL语句动态赋值,其办法名为findPaging()。此办法入口参数有4个,其中参数hql为HQL查询语句,它容许传入参数中带有占位符“?”HQL语句;参数offset为查询成果集对象起始

    28、位置;参数length为查询成果偏移量,也是返回数据条目数;参数where为查询条件,属于Object数组类型,用于装载HQL语句中参数。通过上述这几种参数基本可以满足项目中所有分页查询,固然遇到特殊状况时,可以通过子类对象重写此办法。6.3 BaseAction类BaseAction类是业务层,有一种超类对象,它继承了StrutsDispatchAction类,同步还为子类对象提供公用办法。此类一方面定义了3个protected类型变量,分别用于设立每页记录数、本地语言信息及国际化消息资源。StrutsDispatchAction类继承了Action类,此类解决祈求时一方面要执行execut

    29、e()办法,然后通过控制器再转发到相应办法进行业务解决。依照这一分析,可以在execute()办法中对顾客身份作出验证,其实现过程如图1.17所示。图1.17 顾客身份验证如果对系统中涉及到Action均编写一种验证办法,则程序代码重复性太高,不能体现出面向对象设计模式,因此需将其单独封装在BaseAction类中,此类通过重写Action类execute()办法对顾客身份进行验证。由于分页查询应用比较多,因此在业务层将其封装在BaseAction类中,通过getPage()办法进行实现,子类对象可以通过继承来获取此办法。getPage()办法返回一种Map集合对象,该集合用于装载成果集及分页

    30、条。其中,成果集对象为一页中所有数据集合,它是一种List对象;分页条为分页查询后在JSP页面所显示分页信息,如记录数、页码、上一页、下一页超链接等,它是一种String类型字符串。 getPage()办法入口参数有四个,其中参数hql为分页查询HQL语句,此语句不可以涉及select子句,它从from子句开始,可以传入带有占位符HQL,但需要通过查询条件参数where传递占位符值,当HQL语句没有参数时,where参数可以设立为null;参数recPerPage为每一页记录数;currPage为当前页码;action为分页所祈求Action地址。getPage()办法提供这些参数目在于提高程

    31、序代码重用性,由于在医药销售管理系统中,通过这些参数,getPage()办法已满足所有分页查询,用到分页查询地方都调用了此办法。此外,在其她项目中此办法重用价值也是非常高。分页查询在业务层实现比较繁琐,由于在分页条中要考虑到国际化实现,因此在分页条中所有文字信息均通过MessageResources对象读取国际化资源文献来获取。MessageResources对象是Struts中对象,此对象依照Locale信息读取相应国际化消息资源文献。6.4 DeleteAction类公共类DeleteAction重要用于对项目中LookupDispatchAction祈求进行解决。它继承了LookupDispatchAction类,重写了execute()办法对顾客身份作出验证,当顾客身份验证失败时将进行错误解决;同步,此类还重写了LookupDispatchAction类中getKeyMethodMap()办法,添加了两个按钮对象key。6.5 字符串工具类在一种Web项目中,字符串是经常被操作对象。为了简化程序代码及提高程序可读性,对于经惯用到字符串解决办法,可以封装一种字符串工具类对其进行操作。例如JSP页面


    注意事项

    本文(医药销售管理系统软件说明书样本.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开