北京信息科技大学
《程序设计实践(Java)》报告
题 目: 小型仓库管理系统的设计与实现
学 院:
专 业:
计算机学院
计类
黄永亮
学生姓名:
班级/学号: 计类 1404 2014011311
指导老师: 秦奕青
目录
1.系统开发背景 ....................................................................................................................... 1
2. 系统需求分析 ..................................................................................................................... 2
3.系统设计............................................................................................................................... 3
3.1 系统模块设计 ................................................................................................................. 3
3.2 系统界面设计 ................................................................................................................. 3
3.3 JAVA 类的设计............................................................................................................... 3
4.系统实现............................................................................................................................... 6
4.1 登录界面 ......................................................................................................................... 6
4.2 主界面 ............................................................................................................................. 6
4.3 货物资料管理界面 ......................................................................................................... 7
4.4 添加界面 ......................................................................................................................... 7
4.5 货物入库、出库管理界面 ............................................................................................. 7
5.程序运行................................................................................................................................ 9
6.遇到的问题以及解决方案 ................................................................................................. 11
总结......................................................................................................................................... 12
参考文献................................................................................................................................. 13
《程序设计实践(Java)》报告
——小型仓库管理系统的设计与实现
1.系统开发背景
按照《程序设计实践(Java)》课程的基本要求,结合本人的实际情况,确定开发一个
“小型仓库管理系统”的模拟程序,实现仓库管理的基本入库、出库等功能。
本系统将以 Eclipse 作为开发环境和运行平台,使用 JDK 7,以及 Mysql 数据库等技术,
完成系统的分析、设计、实现和运行。
本报告将分为以下几个部分:第一部分“系统开发背景”,介绍系统开发的动机、待开
发的系统描述、使用的开发技术等。第二部分“系统分析”,说明系统的基本功能,可以使
用自顶向下的方法,通过逐步求精,完成系统功能模块的设计。也可以使用 IPO 方法,分
析系统(模块)的输入(I)-处理(P)-输出(O),描述系统(模块)的基本功能。第三部
分“系统设计”,通过类图、界面效果、流程图等,描述实现系统功能的设计方案。第四部
分“系统实现”,说明如何使用 Java 和数据库技术,给出设计方案的 Java 程序实现。第五
部分“系统运行”,说明系统为用户提供的基本运行方式,以及达到的运行效果。第六部分
“遇到的问题及解决方案”,对系统开发过程中遇到的关键问题以及解决方案进行说明。最
后“结束语”,对系统的开发过程进行总结,说明系统实现实现了哪些基本功能,是否达到
预期目标,有哪些有待改进和完善。
1
2. 系统需求分析
现需要一个系统管理一些货物,为了方便管理,因此设计本软件。
主要功能有:货物信息管理货、物入库记录管理、货物出库记录管理。
要求软件具有错误和异常处理的能力,正常使用不会出现软件故障,保证软件能较长时
间正常运行,具有自动备份数据的功能,可以储存货物的信息,更改货物信息要求动态计算
更新当前货物的状态。入库和出库单要求自动生成单号。
2
3.系统设计
系统设计分为系统模块的设计和系统界面的设计以及 JAVA 类的设计。
3.1 系统模块设计
对应 JAVA 的类设计,应当包括以下部分
2.1.1 货物入库信息模块,用来储存记录货物入库单的信息。
2.1.2 货物出库信息模块,用来储存记录货物入库单的信息。
2.1.3 货物信息管理模块,用来储存记录货物的信息。
2.1.4 后台数据处理模块,负责增加、删除、查询、改动货物的数据。
2.1.5 后台工具类模块,在以上模块中可能会用到的静态方法。
3.2 系统界面设计
程序中的界面设计,分析后定为以下几个界面。
2.2.1 登录欢迎界面/程序启动界面,提供给用户进行登录操作,同时检查用户是否有权
限登录本系统进行相关操作。
2.2.2 主界面,提供给用户进行功能的选择,处理业务逻辑。
2.2.3 货物信息管理界面,展示货物信息,提供方法更改货物信息。
2.2.4 货物入库信息界面,展示货物入库单信息。
2.2.5 货物出库信息界面,展示货物出库单信息。
2.2.6 货物信息添加窗口,添加新货物时供给用户输入新货物信息的窗口。
2.2.7 入库单创建窗口,新增入库单时填写货物入库基本信息的窗口。
2.2.8 出库单创建窗口,新增出库单时填写货物出库基本信息的窗口。
3.3 JAVA 类的设计
3.3.1 界面类设计
程序主要以用户界面为主,所以会出现较多的窗口界面,但是其中一些窗口只是里面的
内容有一些不同,大致结构和功能类似,所以自行设计一个总窗口类,继承自 JFrame,程
序中出现的所有窗口都继承自这个类,整个系统的窗口可分为四类:登录窗口、功能选择窗
口、内容添加窗口、信息查看窗口。其中信息查看窗口又可分为操作记录查看窗口和货物信
息查看窗口,操作记录查看窗口又分为入库操作查看窗口和出库信息查看窗口。
依照以上设计,系统界面设计大体完成。
3
图 2.1 界面类 UML 图
3.3.2 数据结构设计
和界面设计类似设计数据模型,本系统只涉及货物数据和用户数据的操作,所以可以分
为用户数据类、操作记录类、货物信息三种数据,其中操作数记录类又可以分为入库和出库
操作记录类。
用户基本属性
用户名:用户登录时候身份标识。
密码:用于认证用户是否有权限使用本系统。
本系统不使用明文保存用户密码,密码以 MD5 加密后对应生成的密钥来存储,为不可
逆的操作,当用户输入密码后,也会以同样算法转换,与密钥对比,在一定程度上保证了系
统的安全性。
货物属性
货物 ID :系统用于区分货物,不可重复。
货物名称:用于标记货物名称,方便识别。
货物类别:记录货物的类别信息。
库存:记录当前货物数量。
单价:单个货物的价格。
总价:当前货物的总价值。
备注:备注信息。
其中总价由单价乘以库存由程序自动计算。
入库操作记录属性
入库记录单号:记录当前入库操作时间。
操作员:当前登录用户。
货物 ID:入库货物 ID。
名称:入库货物名称。
类别:入库货物类别。
4
数量:入库货物数量。
单价:入库货物单价。
总价:本次入库总价值
备注:备注信息
其中总价由单价乘以库存由程序自动计算。
出库操作记录属性
出库记录单号:记录当前出库操作时间。
操作员:当前登录用户。
货物 ID:出库货物 ID。
名称:出库货物名称。
类别:出库货物类别。
数量:出库货物数量。
单价:出库货物单价。
总价:本次出库总价值
备注:备注信息
其中总价由单价乘以库存由程序自动计算。
图 2.2 数据结构类 UML 图
3.3.3 图形界面数据模型设计
为了把数据显示在界面上,需要模型类来匹配界面的现实,综合以上类的设计和数据结
构的设计,分别对应设计出了各个数据结构对应的图形界面显示模型。通过控制这些模型,
向前可以控制图形界面的现实,向后可以操作数据模块,这种设计模式就是 MCV 的设计,
也就是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,这种
设计可以把界面的显示处理和数据的处理操作在代码中分离开,方便设计开发调试和后期维
护。本系统所有界面设计都是使用的这种设计思想。
图 2.3 界面数据模型 UML 图
5
4.系统实现
按照上述设计,写出程序大体结构,接下来从界面入手,按照用户的常规操作逻辑顺序
来进行编程实现。整体思路是每次单一设计解决同一件事情,预留空方法名随后解决,这样
可以使变成逻辑清晰,防止编程过程中出现过多的逻辑错误。
4.1 登录界面
登录界面我使用的是常见的登录窗口,两个标签两个编辑框两个按钮,分别是用户名编
辑框及标签、密码编辑框及标签、登录和重置按钮。要注意密码编辑框不能明文显示用户输
入的内容。
初步进行登录界面的编写之后,为了做出一个尽可能完美的交互界面,进行细节的处
理,在界面加载后用户名编辑框首先获取焦点,让用户可以直接输入,在用户在用户名编辑
框按回车后让密码编辑框获取焦点、在密码编辑框按回车键等同点击登录按钮。
所以分别在用户名编辑框添加键盘监听器,使密码编辑框自动获得用户输入焦点,在
密码编辑框添加键盘监听器,使其自动执行登录操作,等同于点击登录按钮。
为重置按钮添加监听器,清空内容后使用户输入焦点再次回到用户名编辑框。
这样设计可以使用户不动鼠标完成系统的登录操作,使用户有一个良好的使用体验,
不会出现当用户下意识按回车后发现程序没反应的情况,符合常规程序的操作逻辑。
图 3.1 系统登录窗口
4.2 主界面
主界面的任务是引导用户选择需要进行的业务操作,引导用户进入新的窗口,为了使程
序对使用者友好,我在主界面添加了一行标签来显示欢迎语。为了使用方便,主界面的设计
要简洁,使用户一看就会使用,没有学习成本。
在主界面添加背景图片,并且监听了窗口变化的事件,动态更改背景图片的大小,并且
在用户进行功能选择设计一个滚动放大和点击按下的效果,兼顾程序后期的扩展性和用户良
好的视觉体验,我使用了 JList 列表来放置功能列表。
JList 里是可以盛放任何 Object 的组件,我使用的是 JButton 来填充 JList, 由于自带的组
件不是特别的好看,我把按钮的背景设成了透明,自己绘制动态的按钮效果。由于 Java 图
6