2023年7月20日发(作者:)
青岛农业大学
毕 业 论 文(设计)
题 目:基于java的医药管理系统的设计与实现
姓 名:
学 院: 理学与信息科学学院
专 业:
班 级:
学 号:
指导教师:
2013 年 6 月 10 日 毕业论文(设计)诚信声明
本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得青岛农业大学或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
论文(设计)作者签名: 日期: 年 月 日
毕业论文(设计)版权使用授权书
本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计)。本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为青岛农业大学。
论文(设计)作者签名: 日期: 年 月 日
指 导 教 师 签 名: 日期: 年 月 日 目录
摘要...............................................................
Ⅰ
<Ⅱ
绪论................................................................ 1
1系统分析 .......................................................... 1
1.1需求分析..................................................... 1
1.2可行性分析................................................... 1
2系统设计 .......................................................... 2
2.1系统开发环境及目标........................................... 2
2.2系统功能结构................................................. 2
2.3系统流程图................................................... 3
2.4逻辑分层结构设计............................................. 4
2.5文件夹组织结构............................................... 5
3数据库设计 ........................................................ 6
3.1数据库分析................................................... 6
3.2数据库设计................................................... 6
3.3数据库创建................................................... 8
4配置文件 .......................................................... 9
4.1配置文件............................................. 9
4.2配置文件.................................. 10
4.3配置文件.................................. 10
5系统模块设计 ..................................................... 12
5.1主系统管理模块.............................................. 12
5.2基础信息管理模块............................................ 16
5.3药品销售管理模块............................................ 18
5.4进货/需求管理模块........................................... 19
6总结 ............................................................. 21
致 谢............................................................. 22
参考文献........................................................... 23 基于java的医药管理系统的设计与实现
摘要:java作为一种计算机语言,经过几十年的磨练和完善,有着相当乐观的优越性。与其他计算机语言一样,都提供了可移植性和垃圾回收原理,但与之不同的是,java不仅具有这些特点,同时还具有网络连接、数据库存储和绘图功能,集多种优点于一身。正是由于java的这些优点,所以本论文主要讲述的是以java语言为核心,采用mySql数据库储存数据,运用Hibernate和Struts框架的医药管理系统的设计及应用。此系统流程相对清晰,功能上主要完成对医学药品的管理,其中包括药品以及类别的增删改查,药品库存量的修改,同时也实现了对系统管理员的增删操作。通过后期系统的不断完善和改造,优化了界面显示,修改了系统漏洞,完成了涉及到的所有操作。
关键词:java技术 ;mySql数据库;Struts框架;Hibernate框架Design and Implementation of the medical management system
based on java
Abstract:Java as a kind of computer language, after decades of polish and perfect,
has a fairly optimistic superiority. With other computer languages, they provides
portability and garbage collection mechanism, but in contrast, Java not only has these
characteristics, but also have a network connection, database storage and graphics,
combines many advantages in one. Because of these advantages of Java, so this thesis
is mainly about medicine management system design and application with the Java
language as the core, using mySql database to store data, using Hibernate and the
Struts framework. Process of the system is relatively clear, the system function mainly
completes the management of medical drugs, including pharmaceutical and categories
deleted or changed, drug inventory modified, as well as implementation of the system
administrator to add or delete operation. Through the system constantly improves and
reforms finally, optimizing the interface display, changing the system vulnerabilities,
completing all operations involved.
Keywords: Java technology; MySQL database;
Struts framework;
Hibernate framework
绪论
伴随着科技时代的不断进步,网络技术在人们的日常生活中的重要性不断提升。由于高科技的飞速发展,人们的日常生活习惯也在发生变化,特别是计算机的大量普及,加快了人们生活节凑的步伐。目前,中国的科技正处在初级阶段,很多技术还不太成熟和完善,如何能在短时间内提高工作效率是人们首先考虑的问题。
针对我国医药管理这方面来说,传统的管理方式相对繁琐,操作复杂,没有科学、完善的方法,不仅耗时而且还浪费人力物力。相对于其他国家而言,针对医药方面的管理研发已有几十年的经验了,体系比较完善。其中也有一些比较著名的系统,例如:退伍军人管理局的DHCP系统、美国犹他州的LDS医院药品的HELP系统和麻省总医院药品的COSTAR系统。从医药管理系统发展趋势来看,由原来的小型化正逐步演化成智能化,又会在一定程度上向集成化转变[1]。
医药管理系统的主要目标是提高工作效率,减轻医院劳动人员的工作强度,降低在医院药品管理上的资金投入,从而获得更好的社会效益。
医药管理系统的主要特点是占用的系统资源较少,所需的计算机技术相对简单,便于操作。主要处理文字和数字数据为主,易于实现。
本文主要阐述了依据java技术实现的医药管理系统,运用目前比较流行的Struts框架技术处理逻辑关系。采用Mysql数据库技术以表的形式储存数据,运用Hibernate技术对数据库中数据进行相关操作,并对数据库的创建和设计以及Hibernate技术的配置做了详细的描述[2]。
1系统分析
1.1需求分析
在当今社会飞速发展的时代,各行各业都在面对着大量的数据信息,医院也不例外,对医药的进销存管理也构成了医院各项管理中比较重要的一部分。面对着每日大量药品的输入和输出,以及众多拥有不同需求的客户,如果采用传统的、非智能化的手工方式来处理所带来的这些数据信息,不仅效率提高不上去,而且还会动用大量的人力物力,增加了医院的开销和资金投入,但却得不到较大的利益。
如何解决以上这些问题,那就需要一个比较成熟的、科学的方法。所以,一个完善的医药管理系统不仅可以带来管理人员对药品的快速管理,而且还能在一定程度上也满足了消费者的需求。它应具有以下优点[3]:
(1) 操作界面更加人性化,处理上更加高效。
(2) 采用高端的软件技术研发和较长的使用寿命。
(3) 可简化工作人员的操作,从而提高工作效率。
1.2可行性分析
任何一款软件研发出来,并不是凭空捏造,它应具有社会效益以及可行性。针对医药管理系统来说,它应具有以下可行性[4]:
经济方面:从经济的角度进行评估,该系统的创建和日后的维护,不会耗费大量的资金。不仅如此,该系统设计理念就是节省人力,完善管理水平,提高管理质量,屏蔽管理漏洞,因而此系统所带来的社会经济效益将远远大于开发中的投入。
技术方面:从技术的角度进行评估,该系统依托于java技术。该语言通熟易懂,技术上可实现跨平台。与此同时,采用Struts和Hibernate框架,分别完成逻辑操作和数据操作,运行效率高,处理速度快。通过大量的开发实践证明,这些技术相当完善,适于此系统的开发。
实施方面:从实施的角度进行评估,该系统对硬件配置要求不高,部署又相对简单,操作起来难度不大,普通操作人员很容易应用此系统,不必接受过多的专业知识的培训。
[5]2系统设计
2.1系统开发环境及目标
(1) 系统开发环境
不同的开发环境,将在一定程度上影响到系统的正常运行。所以有必要给出该系统的开发环境,避免出现不必要的麻烦。运行环境选择如下[6]:
开发环境:Window7操作系统
开发工具:MyEclipse9.0开发软件
Web服务器:apache-tomcat-6.0.36容器
(2) 系统目标
针对当前医院管理的要求,以及从用户体验的角度出发,该系统的制定应具备以下目标[7]:
① 系统安全系数高,运行相对稳定。
② 界面简单但不失美观,操作方便快捷。
③ 完成药品基础信息和用户账号的管理。
④ 能及时的预知药品的销售状况及库存信息。
2.2系统功能结构
通过查阅相关书籍和上网搜索资料,从医院管理状况出发,将该管理系统定义为四大功能模块,它们分别是主系统管理、基本信息管理、药品销售管理和进货与需求管理[8],其系统的主要功能结构图如图2-1所示。
主系统管理
用
户账
号管
理
基础信息管理 进货/需求管理 药品销售管理
医药管理系统
系统初始化
药品信息管理
药品类别管理
库存信息查看
药品需求管理
药品进货管理
药品销售明细
销售排行统计
图2-1 功能结构图 2.3系统流程图
所谓流程图,就是以一种特定的图形符号加上必要的说明来解释某一个工艺过程或管理过程。为了能更直观的说明该系统的管理功能,快速地掌握和了解系统的处理任务,所以,给出该系统各个功能模块的流程图,主流程如图2-2所示。
医药管理系统
基本信息管理
主系统管理
管理员登录
管理员
药品销售管理
进货/需求管理
图2-2 系统主流程图
以下给出了各个功能模块的流程图,如图2-3所示。
基本信息管理
修改类别
药品类别管理
查询类别
添加类别
药品信息管理
修改药品
删除药品
添加药品
查询药品
药品销售管理
主系统管理
添加管理员
添加需求
查询进货
进货/需求管理
查询管理员
密码修改
删除进货
库存修改
系统初始化
查询销售明细
当日销售明细
销售排行统计
图2-3 各功能模块流程图
2.4逻辑分层结构设计
在分析该结构设计的之前,首先有必要了解一下MVC框架的设计思想。MVC主要包括三层结构,及M层、V层和C层。M层是模型层,也就是数据层,其中包括持久层和数据库层,用于对数据的储存和操作,主要涉及到的技术有JDBC技术和Hibernate框架技术;V层是视图层,是用来显示软件页面,接受用户请求和以某种形式呈现数据,注重数据的显示效果,主要涉及到的技术有Html技术和Jsp技术,还有Javascript及相应脚本框架;C层是控制层,是用来对M层和V层的耦合,主要起到逻辑处理作用,捕获用户的请求,并对用户请求进行处理,将所得到的处理结果返回给视图层,并在页面中显示数据[9]。
MVC架构的请求流程:用户访问Web页面,发送请求,请求到达控制器处理,控制器通过DAO技术访问数据层,将数据取出并将处理结果反馈给用户,更新用户界面。
通过以上功能结构的介绍及对MVC框架的了解,可发现该系统是由4层组成,并且严格遵循了MVC架构思想。该4层分别是视图层、控制层、持久层和数据库层。
视图层也就是用户所能涉及到的操作界面,主要采用JSP技术实现,整个页面可添加Struts框架当中的标签库或jstl标签库。控制层的作用就是协调视图层和数据层,起到中间桥梁的作用,主要采用Struts框架技术实现,通过servlet组件过滤请求,调用相应的Action组件处理请求,通过forwrad对象将结果输出到界面。数据库层用来储存数据,本系统采用Mysql数据库来实现。持久层是用来操纵数据的,采用Hibernate技术将数据从数据库中提取出来,并做相应的操作,如对数据的增删查改。
2.5文件夹组织结构
本系统主要运用MyEclipse软件编程,采用java技术实现。所以,对于文件夹的命名应该按照规范的命名法来实施。在真实的企业开发过程中,编写代码之前,都要系统的制定好一个比较完善的文件夹组织结构,使得整个项目开发思路比较清晰,让编程人员能很快地定位到每一个模块的设计。开发中,文件夹命名的规范化发挥着十分重要的作用。在MyEclipse软件中,该系统的文件夹组织结构如下所示[10]:
src目录:是一种可执行文件夹,可存放类包,类包中存放源代码文件,即后缀为java格式的文件。
包:每一层都是文件夹,采用将域名倒写的方式定义包名。该文件下存放实体类,也就是java中常说的pojo类。
g包:用于存放实体关系映射文件(ORM文件),将实体类通过该配置文件和数据库中的表一一对应起来,找到它们之间的联系。
包:存放自己编写好的工具类,该工具类可以在不同的包中重复使用,起到某些相应的功能,如给密码加密或者读取某文件内容。
包:存放业务处理的类,即Action组件。
eptor包:用于存放interceptor拦截器,主要作用是对用户请求进行再次拦截,执行时机是在Action组件之前执行。
包:用于存放配置文件,如后缀为properties的文件。可通过java中IO流进行读取文件内容。
e包:用于存放一些服务类,常和dao类联合使用。
WebRoot目录:是不可执行的文件夹,用于储存jsp页面,即浏览网页。 3数据库设计
3.1数据库分析
数据库,顾名思义就是一个大型仓库,用来存储大量的数据。它包含所有涉及到的信息,主要囊括用户信息、药品基本信息和类别信息、以及销售明细信息。通过某种对应关系,间接的将所有信息数据联系起来。
在真实的企业开发中,数据库往往单独安装在某个特定的服务器上。这样做的目的就是防止大量用户过度频繁的访问数据库,从而造成服务器的瘫痪。不仅如此,这样做还可以提高查询速度,降低服务器的负担。因此,不同的硬件要求,可能会影响到数据库的性能,以下给出了数据库运行环境的要求:
(1) 硬件要求:
CPU:要求在2.8GHz以上。
内存:要求在2GB以上。
硬盘储存空间:150GB或者更高。
(2) 软件要求:
操作系统:Windows 7操作系统。
数据库版本:MySQL5.0版本。
3.2数据库设计
通过以上对该系统的功能结构的分析,将每一个模块所涉及到的信息抽象成一个数据实体对象,将这些对象通过数据表的形式储存在数据库中。为了能更好的对数据库中的结构,下面简单介绍一下数据库的相关知识。
数据库中的数据类型主要包括整型(int)、浮点型(double)、字符型(varchar)、日期类型(datetime)。定义类型时含有数字,说明是数据的精确度或字符的长度。
数据库中的约束条件是用来给数据表中的某些列添加限制,主要包括有五种,分别为主键约束(Primary key)、外键约束(Foreign key)、唯一约束(Unique)、非空约束(not null)和检查约束(Check)[11]。前三种是最为常用的约束条件,它们各自的简写分别为PRI、MUL和UNI,作用如下:
① 主键约束:主键是用来区分一个数据表中的每一行数据,主键的特点是唯一性和不能为空值,因而不同的行具有不同的主键。主键的生成方式往往采用数据库自增的方式auto_increment,随数据的添加自增序列号。
② 外键约束:外键是定义在两张表的不同列或同一张表中的不同列,用于联系两个列之间的关系,起到关联作用,保证数据的一致性,往往将一张表的主键作为另一张表的外键。含有外键的表是主表,不含外键的表是子表。
③ 唯一约束:此约束是说明该列的每一个数值都是唯一的,不能重复。定义唯一约束的主要目的是,在没有主键所定义的其他列中不能重复输入相同列值。
以下给出了几种实体对象的表结构:
(1) 用户对象所对应的表结构,如表3-1所示:
表3-1 用户对象数据表
属性
id
username
password
create_time
数据类型
int(11)
varchar(50)
varchar(50)
datetime
是否可为空
NO
NO
NO
YES
键值 默认值
PRI
UNI
NULL
NULL
NULL
NULL
额外信息
auto_increment
(2) 药品对象所对应的表结构,如表3-2所示:
表3-2 药品对象数据表
属性
id
med_no
name
factory_add
description
price
med_count
req_count
photo_path
category_id
数据类型
int(11)
varchar(100)
varchar(100)
varchar(100)
text
double
int(11)
int(11)
varchar(255)
int(11)
是否可为空 键值 默认值
NO
NO
NO
YES
YES
NO
YES
YES
YES
YES
PRI
UNI
MUL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
额外信息
auto_increment
(3) 销售明细对象所对应的表结构,如表3-3所示: 表3-3 销售明细对象数据表
属性
id
sell_name
sell_price
sell_count
sell_time
med_id
user_id
数据类型
int(11)
varchar(200)
double
int(11)
datatime
int(11)
int(11)
是否可为空 键值
NO
NO
NO
NO
NO
YES
YES
PRI
MUL
MUL
默认值
NULL
NULL
NULL
NULL
NULL
NULL
NULL
额外信息
auto_increment
(4) 药品类别对象所对应的表结构,如表3-4所示:
表3-4 药品类别对象数据表
属性
id
name
description
create_time
数据类型
int(11)
varchar(100)
text
datetime
是否可为空 键值 默认值
NO
NO
YES
YES
PRI
NULL
NULL
NULL
NULL
额外信息
auto_increment
在数据库中创建以上各表的时候,应该明确定义以上每个字段,缺少其中的某个字段都有可能提示创建失败等信息。同时,应注意数据的类型和精确度,以及约束条件和附加信息。
3.3数据库创建
利用SQL语言(结构化查询语言)将所需的数据库和数据表以语言脚本的形式生成,在MySQL软件客户端的命令行界面输入指令即可完成创建过程。如:在E盘下创建了一个“E:”的数据库脚本,在命令行界面执行指令“source E:”后,即可完成创建过程。另外一种创建方式,可将SQL脚本添加到MyEclipes软件的项目中,通过软件自带的“数据库连接插件”完成数据库的创建,一般不采用这种形式。
4配置文件
4.1配置文件
文件又叫做部署描述文件,它的主要作用就是初始化配置信息。在该文件中可定义过滤器对请求过滤;可定义监听器对事件进行监听;也可定义servlet组件实现逻辑处理等等一些信息[12]。此文件的具体作用如下:
(1) 可以定义某个首选页面:
当你访问某个网站的时候,首次浏览到的页面就是页面。
(2) 为Struts组件Servlet命名:
Servlet
这里由Struts框架的底层原理来实现,该组件由Struts框架提供的jar包中的类ActionServlet来完成,命名为action。
(3)
为servlet定制统一资源定位器(URL):
“/*”代表对所有的请求字符串进行过滤, “*.do”代表对请求以“.do”结尾的请求过滤。通过servlet的名字找到以上命名之后的组件,例如:通过action名字找到ActionServlet类。 4.2配置文件
文件是Struts框架的核心配置文件。通过该文件中的配置信息,可调用与请求资源相对应的Action组件,并返回所需的执行结果,实现页面的跳转。由于文件当中的配置相对较多,所以不再一一列举其中的配置信息,只对其中最为常用的重点标签和属性做详细介绍,如下:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
4.3配置文件
文件是Hibernate框架中的核心配置文件,用于连接数据库,文件内容一般采用工具自动生成。该配置文件中一般提供如下信息:
(1)
(2)
(3)
5系统模块设计
5.1主系统管理模块
主系统管理模块主要包括管理员账号管理和系统初始化,如果细分的话,可分为添加和删除管理员,修改管理员密码和查看所有管理员。
由于业务需求,任何管理员登录成功后,都可以进行添加和删除管理员的操作,所以操作时请谨慎操作,以免造成不必要的麻烦。修改管理员密码时,只能对当前用户密码做更改,不可更改其他管理员信息。
前台浏览器端采用到的技术主要包括Jsp页面技术和javaScript技术,后台服务器端采用两大框架处理业务逻辑和数据逻辑。以下给出添加管理员的页面,如图5-1所示。
图5-1 添加管理员
在页面代码中,用户名采用username,密码采用password,这样即可以和java逻辑处理代码中的User类属性相对应,又保证代码信息的一致性,减少开发难度系数。其中,定义用户对象的主要代码如下:
public class User {
private int ; //id号
private String username; //用户名
private String password; //密码
private Date createTime; //创建日期
public Date getCreateTime() {//获取创建日期
return createTime;
}
public void setCreateTime(Date createTime) {//设置创建日期
Time = createTime;
}
public int getId() {//获取id
return id;
}
public void setId(int id) {//设置id
= id;
}
public String getUsername() {//获取用户名
return username;
}
public void setUsername(String username) {//设置用户名
me = username;
}
public String getPassword() {//获取用户密码
return password;
}
public void setPassword(String password) {//设置用户密码
rd = password;
}
}
从代码中可以看出,User类含有四个私有属性,并为每个属性提供公有的get和set方法,这样可以通过方法来访问类的属性。这种定义类的方式符合java
Bean规范。所谓的java Bean是一种软件开发中常常遵守的规范,它要求类的属性尽量私有化,方法尽量公有化,并提供属性的get和set方法。
所谓退出系统,就是返回到该系统的登录界面,在此界面中用户可进行登录操作,如图5-2所示。 图5-2 用户登录界面
用户登录处理,是从页面中获取用户名以及密码信息,将该信息传递给后台处理,通过Hibernate框架技术访问数据库中的用户信息,并进行比对,正确则可登入系统,否则提示密码或用户名错误,其主要代码如下:
public User login(String userName,String password){
User user = null;
try {
session = sion(); //获取Session对象
ransaction(); //开启事物
//HQL查询语句
String hql = "from User u where me=? and rd=?";
Query query = Query(hql) //创建Query对象
.setParameter(0, userName)//动态赋值
.setParameter(1, password);//动态赋值
user = (User)Result(); //返回User对象
nsaction().commit(); //提交事务
} catch (Exception e) {
tackTrace(); //打印异常信息
nsaction().rollback(); //回滚事务
}
return user;
}
凡是能登录成功的用户,都能成功修改个人的密码,根据原密码和新密码即可完成操作,操作页面如图5-3所示。 图5-3 修改当前用户密码
此修改密码操作的代码相对来说编写有一定的难度,代码如下所示:
// 修改密码
public ActionForward modifyPassword(ActionMapping mapping,
ActionForm form,HttpServletRequest request, HttpServletResponse
response)
throws Exception {
UserForm uf = (UserForm) form;
if (uf != null) {
//从session之中获取User对象
User user = (User) sion().getAttribute("user");
//确认两次密码是否一致
if (user != null && Password().equals(sword())) {
if (sword().equals(assword())) {
UserDao dao = new UserDao();
sword(sword());
Update(user);
}
}else{
//密码错误
ActionMessages errors = new ActionMessages();
("",new ActionMessage(""));
rors(request, errors);
return rward("error");
}
}
return rward("userFind");
} 5.2基础信息管理模块
基础信息管理模块主要包括药品信息管理和药品类别管理。其中,药品信息管理主要包括药品的添加,药品的查询以及药品的删除等基本操作,每一位管理员可对药品信息做相应更改。
技术上和主系统管理模块一致,采用Struts框架和Hibernate框架的集成。
由于页面信息量比较大,涉及到的页面数量较多,所以,只能给出部分页显示。以下给出查看所有药品的页面显示效果图,点击左栏选中多个药品,可做批量删除,点击右边栏中的选项可进行其他操作,如图5-4所示。
图5-4 查看所有药品
点击药品名称可查看该药品的详细信息,如图5-5所示。
图5-5 药品详细信息
点击右栏中的“进货”操作可进入进货页面,在此页面可更改进货需求数量,如点击编号为“abc001”的药品的进货链接,可以看到该药品的当前数量,更改数量为100,则此药品所对应的需求数量由原来的0更改为现在的100,如图5-6所示。 图5-6 更改药品的需求数量
药品类别管理主要包括类别的添加、类别的删除以及类别的查询。点击查看类别,可列出所有的药品类别,如图5-7所示。
图5-7 查看所有药品类别
以下是类别添加的效果图,按照名称和描述来添加类别。输入类别名称点击提交即可完成操作,如图5-8所示。
图5-8 添加药品类别
类别添加的相应代码如下所示。 //添加或修改类别
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//获取类别信息
CategoryForm cf = (CategoryForm)form;
//创建Category对象
Category c = new Category();
e(e());
cription(cription());
ateTime(new Date());
if(() != 0){
(());
}
CategoryDao dao = new CategoryDao();
Update(c); // 添加类别
return rward("paging");
}
5.3药品销售管理模块
药品销售管理模块主要包括购买药品和销售管理。选购药品运用到了一种购物车的模式,也就是说,用户可查看购物车里面所选购的药品,也可继续进行其他药品的选购,购物车里面的药品并不随之改变,方便用户操作,这就是购物车的机制。购物车是一种软件开发中的设计理念,绝大多数的软件中都会采用这种机制。以下给出购买药品的页面显示,如图5-9所示。
图5-9 购买药品
点击购买药品ID为1的药品,将购买数量更改为2,则进入结账页面,在此界面中可进行继续购买或立即结账等操作,自动计算出所支付的购买金额。如果继续购买其他药品,这时就运用到了购物车的原理,不会将之前的操作清空。页面如图5-10所示。 图5-10 结账界面
点击以上删除按钮,可将该药品删除。如果点击清除,可将该购物车里的所有购买的药品全部清除。如图5-11所示。
图5-11 清空购物车
结账成功后,会出现结账完成页面,给出该药品的销售时间以及购买人员,如图5-12所示。
图5-12 结账完成界面
结账代码的编写是一个相对复杂的过程,这其中包含了对异常信息的处理,例如药品库储量数量不够,则提示购买错误请重新购买,这些都必须在系统设计上体现出来。
销售管理主要包括销售明细和销售排行,可对产品按照给定的日期格式查询销售,如图5-13所示。
图5-13 销售管理界面
5.4进货/需求管理模块
进货/需求管理模块主要是按照药品的需求量进行添加药品库存量的操作。根据医药管理模块下的药品查看,进行相应药品数量的添加。如果已经存在该药品的信息,可通过搜索直接更改药品数量,提高效率。
技术上同其他几个功能模块一样,均采用两大框架的集成。以下给出按药品编号更新需求的效果图,输入编号,更新药品数量为20,如图5-14所示。
图5-14 更新药品需求
药品进货成功后,会显示该进货状态,点击完成即可添加库存数量,效果图如图5-15所示。
图5-15 药品进货界面
6总结
针对本次医药管理系统的设计,不仅完成了所规定的相关功能,而且对于个人而言,也是一个学习和培养动手能力的过程。进一步加深了对在校所学课程的理解,从中还学习到了许多企业开发中的专业性知识,例如Java SE技术、Java EE技术和数据库操作。
从整体来看,该系统主要完成的是医药销售统计和库存信息,界面设计相对简单,便于操作。设计过程中,之所以采用Struts框架,是因为它可以简化代码量,降低耦合度;之所以运用Hibernate框架,是因为它可以直接对java中的实体类进行操作,避免了因sql语句的误操作而带来的代码错误。采用JDBC技术也可以实现对数据库的操作,但由于涉及到的专业知识相对较强,sql语句的书写过于繁琐,一般情况下不会采用这种技术。
由于没有软件开发经验,当然在设计过程中会遇到各种各样意想不到的问题。例如:创建数据库时,书写sql语句的时候往往会犯错,常常把一些约束条件定义错误,插入数据时没有注意到数据库的编码格式和数据表的结构。在页面显示的过程中,页面出现字符集乱码现象,经过细心的查找得以解决。Tomcat服务器配置时,出现数据库驱动连接问题,将数据库驱动包导入tomcat文件下的lib文件下得以解决。书写代码时,常常会抛出一些异常,如空指针异常、类型装换异常等等,通过不断的调试和运行,将异常现象一一排除;同时也会产生一些逻辑性错误,如方法定义有误,局部变量和全局变量的适用范围等等,通过查阅知识点逐一了解和改正。
通过本次系统的设计,让我进一步的了解到软件技术在生活领域中的重要性,并对软件开发产生了兴趣。本次毕业设计对我的帮助很大,它需要将我们在校学过的理论知识和实际系统地的联系起来,加强我们对学过的知识的实际应用能力。这次管理系统的设计,离不开老师的指导,同样也感谢那些对我付出帮助的人,虽然在某些方面还存在着不足,但我相信在今后的生活中我会不断提高自己的创作能力和动手能力。
致 谢
从开始着手到毕业设计的完成,已经过去六个多月了。在这短暂的时间里,我不仅汲取了大量的专业知识,同时还体会到了开发过程中的乐趣和团队的重要性。毕业设计是我们在校实践环节中最为重要的的一部分,同时也意味着毕业季的即将到来,迈出大学校门,我们就是社会人士,各方面都需要磨练,毕业设计给了我们一次增加自身筹码的机会,让我们在短暂的时间里快速提升自己的技能,培养自己的动手能力和思维创新能力。
首先,感谢我们的英语老师,在工作之余,能对我的英语摘要部分进行细心的修改和校正,才能让我的论文显得更加的完善,再次表示十分的感谢。
其次,感谢给我们上过专业课的所有老师们,将所有实用性强的各方面知识以通熟易懂的方式传授于我们,让我在未开展设计之前能做好充足的准备,以至于在设计之中不会盲目的开发和需求答案,才会做出比较完善的设计,再次表示十分的感谢。
然后,感谢我们的班主任,对我们的悉心教导和生活上的帮助,让我们能够严于律己,让我们的生活变得规律化。
最后,感谢辅导我们设计的指导老师,对我们给出了最大的帮助。能在百忙之中还不忘给我们辅导毕业设计,监督我们的完成进度,完善我们的毕业论文,对许多细节性的地方给出了点评和修改。许多不会的地方,老师都会一一解答,悉心指导,再次表示十分的感谢。
谢谢所有给予我帮助的老师们,你们辛苦了!
参考文献
[1] 海峡医界网. 医院药品管理信息系统. 2009.7
[2] 李钟蔚. JAVA项目开发案例全程实录. 清华大学出版社,2011
[3] 江义华. JAVA完美经典 . 中国铁道出版社 ,2004
[4] 史济民、顾春华、郑红. 软件工程. 高等教育出版社,2009
[5] 耿祥义、张跃平. JAVA2实用教程.清华大学出版社 ,2004
[6] 周惠英. JAVA入门、进阶与应用实例. 人民邮电出版社,2007
[7] 张桂珠、陈爱国. JAVA面向对象程序设计. 北京邮电大学出版社,2006
[8] 李钟蔚. JAVA开发实战宝典. 清华大学出版社,2010
[9] (美)珍兆科. Java EE5权威指南. 机械工程出版社,2008
[10] 郎波. JAVA语言程序设计. 清华大学出版社,2005
[11] (美)范德兰斯. MySQL开发者SQL权威指南. 机械工程出版社,2008
[12] (美)埃克尔. JAVA编程思想.机械工程出版社,2007
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689827259a289053.html
评论列表(0条)