java论文旺旺服饰管理系统.docx
《java论文旺旺服饰管理系统.docx》由会员分享,可在线阅读,更多相关《java论文旺旺服饰管理系统.docx(55页珍藏版)》请在冰豆网上搜索。
java论文旺旺服饰管理系统
旺旺服饰管理系统
在日常生活中,桌面系统随处可见,一般大小型企业的人员管理等系统都是桌面系统。
JavaSwing技术就是开发桌面系统的一个很好的选择,它最大的优点是可以跨平台运行,不受平台的影响。
下面介绍如何使用JavaSwing技术开发一个小型的服饰管理系统。
通过本章的内容,可以掌握系统的功能设计、JavaSwing技术的使用技巧,以及Java应用程序与MySQL数据库的交互等。
1系统概述
一个系统从无到有,从开始开发到完成,需要分析许多问题,遵循许多的步骤和原则,创建多个文档,以确保系统的进度的可控性和质量的预估性。
软件开发经历的过程有需求分析,功能设计,数据库设计等。
每个过程完成不同的任务,每一个过程都是后一个过程的基础,每个过程都要创建相应的文档作为基础。
1.1需求分析
开发一个软件首先要进行系统分析,其主要工作是确定系统的规模和范围,确定软件的总体要求以及所需要的硬件环境和支撑软件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制。
系统分析有助于弄清对需开发的软件、支撑软件、硬件环境以及操作人员的要求。
需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其他有效性需求。
分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。
在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。
一个系统从开始至开发到完成,需要分析许多问题,遵循许多原则和步骤,以确保系统进度的可控性和质量的预估性。
本章中创建的是一个服饰管理系统,同样地要考虑许多问题,首先要对系统有一个明确的需求和分析,确定在该系统中要实现哪些功能,并为这些功能定制页面。
服饰管理系统主要实现如下几个功能模块。
●登录管理模块
该模块主要实现的用户登录管理,通过用户的登录来判断用户的权限(超级管理员、管理员和操作员),实现不同界面的初始化,来完成不同的操作。
●服饰的信息管理
该模块主要实现对服饰基本信息的管理,包括服饰信息的查询、修改、插入和删除等操作。
●供应商的信息管理
该模块主要实现对供应商基本信息的管理,包括供应商信息的查询、修改、插入和删除等操作。
●服饰的进货与退货管理
该模块主要实现对服饰进货与退货信息的管理,包括服饰的名称、进货数量、进货价格和总计金额的信息管理,服饰退货数量和退货金额的管理。
●服饰的销售与退货管理
该模块主要实现对服饰销售与销售退货信息的管理,包括服饰的名称、销售数量、销售价格和总计金额的信息管理,销售退货服饰名称、退货数量和退货金额的管理。
●服饰查询统计管理
该模块主要实现对服饰信息的查询管理,包括服饰基础信息查询、供应商的基本信息查询、库存服饰的进货信息查询、库存服饰的退货信息查询、服饰销售信息的查询、服饰销售退货信息的查询和销售排行的信息查询等功能
●服饰的库存管理
该模块主要实现对服饰库存信息的管理,包括服饰信息的库存盘点和报表打印。
●用户信息的管理
该模块主要实现对用户信息的管理,包括用户的添加、删除、权限修改和用户密码的修改等操作。
1.2系统流程图
对上述要实现功能进行分析,本系统有三种管理权限:
操作员、管理员和超级管理员,不同的管理权限可以实现的管理范围也不相同。
●操作员
操作员在服饰管理系统的操作过程为:
操作员从用户界面进行登录,在管理菜单中,可以实现对服饰的销售和销售退货进行管理,服饰某一段时间的销售或销售退货的信息进行查询,服饰的基本信息进行查询等功能。
操作员除了实现服饰的管理功能外,还可以实现操作员密码的修改功能,流程如图14-1所示。
图14-1操作员管理范围
●管理员
管理员比操作员的管理权限大,实现的功能也要多一些。
管理员可以实现对服饰的基本信息管理,包括服饰和供应商信息的添加、修改和删除操作,服饰的进货与退货管理,服饰的库存及库存盘点管理,服饰及供应商信息查询和库存及库退货信息查询等功能,流程如图14-2所示。
图14-2管理员管理范围
●超级管理员
超级管理员在系统中的管理权限最大,可以实现所有服饰信息的查询、修改和删除操作,包括操作员和管理员的添加和删除操作,流程如图14-3所示。
图14-3超级管理员管理范围
1.3系统设计
系统设计是信息系统开发过程中另一个重要阶段。
它是在需求分析和系统流程图明确了之后进行,任务就是对未来的软件系统进行设计。
在这一阶段中,要根据前一阶段系统分析的结果,在已经获得分析报告的基础上,为系统实现总体架构,并划分相应的模块。
模块是组成系统的基本单位,它的特点是可以组合、分解和更换。
系统中任何一个处理功能都可以看作是一个模块。
通过以上分析可知,系统中各个模块之间的关系如图14-4所示:
图14-4服饰管理系统功能模块图
2数据库设计
本系统所需要的永久性数据,都存储在MySQL数据库管理系统中。
在MySQL数据库中创建数据库costumeManager,并根据系统需要创建9个表:
系统用户表account、商品信息表commodity、供应商信息表provider、销售信息表sale、入库信息表storageInfo、库存表storage、销售退货表returnSale、入库退货表returnCommodityt和操作员信息表manager。
除了这9个表以外,根据系统的需要,还要创建一个视图。
2.1数据表
下面对系统的9个表做具体的介绍,介绍每个表的字段名称、字段的含义、数据类型与约束条件。
1.系统用户表account
系统用户表主要用来存储账户信息。
如用户名、密码、管理级别、操作员ID等信息。
其字段信息如表14-1所示:
表14-1系统用户表
字段名称
字段说明
类型
约束
AccountNumber
账户编号
int(自动增长)
主键(非空)
AccountName
用户名
varchar(30)
非空
AccountPassword
用户密码
varchar(20)
非空
AccountType
管理级别
smallint(6)
非空
AccountID
操作员ID
Integer
非空
AccountState
操作员状态
smallint(6)
非空
2.服饰信息表commodity
服饰信息表主要用来存储服饰的相关信息。
如服饰名称、服饰价格、生产日期和入库日期等信息。
其字段信息如表14-2所示:
表14-2服饰信息表
字段名称
字段说明
类型
约束
CommodityId
服饰编号
Integer(自增)
主键(非空)
CommodityName
服饰名称
varchar(40)
非空
ProviderNumber
供应商名称
Integer
非空
InDate
入库日期
Datetime
非空
ProduceDate
生产日期
Datetime
非空
InPrice
进货价格
Float
非空
SalePrice
销售价格
Float
非空
StorageTime
保质期
Integer
非空
DownLimit
数量下限
Integer
非空
Unit
单位
Varchar(4)
非空
3.供应商信息表provider
供应商信息表主要用来存储供应商的相关信息。
如供应商地址、供应商名称、联系电话等信息。
其字段信息如表14-3所示:
表14-3供应商信息表
字段名称
字段说明
类型
约束
ProviderNumber
供应商编号
Integer(自增)
主键(非空)
ProviderAddress
供应商地址
varchar(60)
非空
ProviderName
供应商名称
varchar(40)
非空
Phone
联系电话
varchar(20)
非空
4.销售信息表sale
销售信息表主要用来存储服饰销售的相关信息。
如服饰编号、服饰名称和售出数量、总计金额、售出日期等信息。
其字段信息如表14-4所示:
表14-4销售信息表
字段名称
字段说明
类型
约束
SaleID
销售编号
Integer(自增)
主键(非空)
CommodityID
服饰编号
Integer
非空
CommodityName
服饰名称
varchar(45)
非空
Number
售出数量
Integer
非空
Money
总计金额
Double
非空
SellTime
售出日期
Datetime
非空
Operator
操作员
Varchar(8)
非空
5.入库信息表storageInfo
入库信息表表主要用来存储服饰入库的相关信息。
如服饰编号、账户编号、进货数量、总计金额等信息。
其字段信息如表14-5所示:
表14-5入库信息表
字段名称
字段说明
类型
约束
StorageID
入库信息编号
Integer(自增)
主键(非空)
CommodityNumber
服饰编号
Integer
非空
AccountID
账户编号
Integer
非空
Amount
进货数量
Integer
非空
Money
总计金额
double
非空
6.库存表storage
库存表主要用来存储库存的相关信息。
如服饰编号、服饰名称、服饰价格、入库日期、供应商、操作员和商品数量等信息。
其字段信息如表14-6所示:
表14-6库存表
字段名称
字段说明
类型
约束
StorageID
库存信息编号
Integer(自增)
主键(非空)
CommodityID
服饰编号
Integer
非空
CommodityName
服饰名称
varchar(45)
非空
Unit
商品单位
Varchar(8)
非空
Price
商品价格
Float
非空
InDate
入库日期
Datetime
非空
Provider
供应商
Varchar(8)
非空
Operator
操作员
Varchar(8)
非空
Number
商品数量
integer
非空
7.销售退货表returnSale
销售退货表主要用来存储销售退货的相关信息。
如服饰编号、服饰名称、退货数量、总计金额和退货日期等信息。
其字段信息如表14-7所示:
表14-7销售退货表
字段名称
字段说明
类型
约束
RSaleID
销售退货编号
Integer(自增)
主键(非空)
CommodityID
服饰编号
Integer
非空
CommodityName
服饰名称
varchar(45)
非空
Number
退货数量
Integer
非空
Money
总计金额
Float
非空
ReturnTime
退货日期
Datetime
非空
Operator
操作员
Varchar(8)
非空
8.入库退货表returnCommodity
入库退货表主要用来存储服饰入库退货的相关信息。
如服饰编号、账户编号、退货日期、总计金额等信息。
其字段信息如表14-8所示:
表14-8入库退货表
字段名称
字段说明
类型
约束
RCID
入库退货编号
Integer(自增)
主键(非空)
CommodityID
服饰编号
Integer
非空
CommodityName
服饰名称
varchar(45)
非空
Unit
商品单位
Varchar(8)
非空
Price
商品价格
Float
非空
OutDate
退货日期
Datetime
非空
Provider
供应商
Varchar(8)
非空
Operator
操作员
Varchar(8)
非空
Number
商品数量
integer
非空
9.操作员信息表manager
操作员信息表主要用来存储操作员的相关信息。
如操作员名称、操作员手机号码、操作员所在地区的区号、操作员邮箱等信息。
其字段信息如表14-9所示:
表14-9操作员信息表
字段名称
字段说明
类型
约束
ManagerID
操作员编号
Integer(自增)
主键(非空)
ManagerName
操作员姓名
varchar(20)
非空
ManagerMobilePhone
操作员手机号码
varchar(15)
非空
ManagerRegionNumber
操作员所在地区的区号
varchar(4)
非空
ManagerEmail
操作员邮箱
varchar(30)
非空
ManagerPhone
操作员家用电话
varchar(20)
非空
在数据库costumeManager中创建9个表,也可以使用查询语句来创建。
例如系统用户表account和服饰信息表commodity,代码如下:
//创建account表
DROPTABLEIFEXISTS`account`;
CREATETABLE`account`(
`AccountName`varchar(30)NOTNULL,
`AccountPassword`varchar(20)NOTNULL,
`AccountType`smallint(6)NOTNULL,
`AccountNumber`int(11)NOTNULLauto_increment,
`ManagerID`int(11)defaultNULL,
`AccountState`smallint(6)NOTNULL,
PRIMARYKEY(`AccountNumber`),
KEY`FK_manage`(`ManagerID`),
CONSTRAINT`FK_manage`FOREIGNKEY(`ManagerID`)REFERENCES`manager`(`ManagerID`)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
//创建服饰信息表
DROPTABLEIFEXISTS`commodity`;
CREATETABLE`commodity`(
`CommodityID`int(11)NOTNULLauto_increment,
`ProviderNumber`int(11)defaultNULL,
`CommodityName`varchar(40)NOTNULL,
`InDate`datetimeNOTNULL,
`ProduceDate`datetimeNOTNULL,
`InPrice`floatNOTNULL,
`SalePrice`floatNOTNULL,
`StorageTime`int(11)NOTNULL,
`downLimit`int(11)NOTNULL,
`unit`varchar(8)defaultNULL,
PRIMARYKEY(`CommodityID`),
KEY`FK_supply`(`ProviderNumber`),
CONSTRAINT`FK_supply`FOREIGNKEY(`ProviderNumber`)REFERENCES`provider`(`ProviderNumber`)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
至于其他几个表,请参考系统用户表account和服饰信息表commodity的创建方式自行创建。
2.2视图
在数据库中适当地创建视图,可以方便对一个或多个数据表进行查询操作,本系统中需要创建如下视图的代码:
DROPTABLEIFEXISTS`smallmarket`.’salerank’;
CREATETABLE`salerank`
AS
Select‘commodity’.’CommodityID’as‘id’,
‘commodity’.’CommodityName’as‘name’,
Sum(‘sale’.’money’)as‘money’,
Sum(‘sale’.’number’)as‘amount’,
‘commodity’.’unit’as‘unit’,
‘commodity’.’SalePrice’as‘saleprice’,
‘provider’.’providerAddress’as‘adress’,
‘provider’.’providerName’as‘providername’,
‘sale’.’sellTime’as‘sellTime’
From((‘commodity’join‘provider’)join‘sale’)
Where((‘commodity’.’ProviderNumber’=’provider’.’providerNumber’)and(‘commodity’.’CommodityID’=’sale’.’commodityid’))
Groupby‘commodity’.’CommodityID’
在上述代码中,视图salerank用于从服饰信息表commodity、供应商信息provider和销售信息表sale中连接查询commodityID和commodityName等字段信息。
有了这张视图,当需要连接这3个表获取这些信息时,就不再需要每次都编写类似的复杂代码了,而只需要查询视图salerank即可。
2.3存储过程
在数据库中创建存储过程,可以提高系统的工作效率还可以让你的程序变的更简单。
本系统中需要创建如下存储过程代码:
//入库存储过程
dropprocedureifexistsruku;
delimiter/
createprocedureruku(INcommoditynamevarchar(45),commodityidint(10),unitvarchar(45),pricefloat,indatevarchar(45),providervarchar(45),operatorsvarchar(45),numberint(10))
begin
insertintostorage(commodityname,commodityid,unit,price,indate,provider,operators,number)
values(commodityname,commodityid,unit,price,indate,provider,operators,number);
end
/
delimiter;
//退货存储过程
dropprocedureifexiststuihuo;
delimiter/
createproceduretuihuo(INcommoditynamevarchar(45),commodityidint(10),unitvarchar(45),pricefloat,outdatevarchar(45),providervarchar(45),operatorvarchar(45),numberint(10))
begin
insertintoreturncommodity(commodityname,commodityid,unit,price,outdate,provider,operator,number)
values(commodityname,commodityid,unit,price,outdate,provider,operator,number);
end
/
delimiter;
//库存信息查询
dropprocedureifexistsstorageQuery;
delimiter/
createprocedurestorageQuery(INcommodityidint(10))
begin
select*fromstorageinfowherecommoditynumber=commodityid;
end
/
delimiter;
//更新库存信息
dropprocedureifexistsstorageupdate;
delimiter/
createprocedurestorageupdate(INamountint,commodityidint(10))
begin
updatestorageinfosetamount=amountwherecommoditynumber=commodityid;
end
/
delimiter;
//插入库存数据(货物数量)
dropprocedureifexistsinsertstorageinfo;
delimiter/
createprocedureinsertstorageinfo(INcommoditynumberint(10),accountidint(10),amountint(10),moneydouble)
begin
insertintostorageinfo(commoditynumber,accountid,amount,money)values(commoditynumber,accountid,amount,money);
end
/
delimiter;
//销售信息查询
dropprocedureifexistssaleQuery;
delimiter/
createproceduresaleQuery(INcommodityidint(10))
begin
select*fromstorageinfowherecommoditynumber=commodityid;
end
/
delimiter;
//插入销售信息
dropprocedureifexistsinsertsale;
delimiter/
createprocedureinsertsale(INcommoditynamevarchar(45),commodityidint(10),sellTimevarchar(45),numberint(10),moneydouble,operatorvarchar(45))
begin
insertintosale(commodityname,commodityid,sellTime,number,money,operator)
values