版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要中小食品批发公司在我国经济发展中具有重要的地位,目前我国的中小食品批发公司数量多,随着全球经济一体化的发展和电子商务的兴起,中小食品批发公司之间的竞争越来越激烈,很多食品批发商为了资金周转灵活,都以多频率小货量的方式来进货,因此带来大量工作量及成本等的增加。为了提高工作效率降低成本,减少工作量,开发本系统。本系统使用JSP编写,采用Ajax、JQuery异步刷新技术和Struts2、Hibernate、Spring三大框架,使用Oracle设计数据库。该系统主要实现系统用户管理、食品管理、供应商和订货商管理,销售订单的制单、发货和进货订单的制单、入库。关键词:食品;订单;管理Abstrac
2、tThe development of small and medium enterprises in Chinas a large number of SMEs companies appear with the development of global economic integration and the rise of e-commerce,the companies between small and medicem-sized enterprises seems more and more fiere. To make the cash flow quickly, many d
3、istributors choose to use more frequencies but small amount to purchase,due to it which brings a large workload and add much money on prime cost. To improve the work the efficiency, and reduce the workload, so explore this system.The system is written in JSP, the main application of the Ajax, Jquery
4、, and Strust2, Hibernate, Spring these three framework and the Oracle design database. The software mainly healizes the Aolministor Management, Food Management, Suppliers and Orders management, making Sales orders deliver and stock goods, finally put in storage.Key words: food;order; manage目 录摘 要IAB
5、STRACTII第1章 课题简介11.1 开发背景11.2 研究内容1第2章 需求分析3第3章 总体设计53.1系统模块设计53.2 数据库设计7第4章 详细设计114.1 系统登录界面设计114.2 系统主界面设计124.3 功能模块设计13第5章 测试28总 结30参考文献31附录1 核心源代码32附录2 用户操作方法44致 谢46第1章 课题简介 1.1 开发背景在我国数量众多的食品批发公司中,中小食品批发公司占了绝大多数,这些食品批发公司也不可避免地要加入国际化食品批发公司的竞争行列,而实现食品批发公司信息化是参与竞争的必要条件,但是中小食品公司的多样性及其灵活多变的经营方式,加上其资
6、金投入量的限制,使得很多中小食品批发公司没能进行信息化建设。实际上大部分中小食品批发公司需要的只是能解决食品进、销、存管理和财务管理等的基础软件。因此,开发基于中小食品批发公司应用的进销存管理系统尤为重要。而随着社会的不断发展,计算机被广泛应用于各行各业之中。用计算机管理软件对公司业务进行管理更是一种行业发展趋势,也是衡量一个国家技术发展水平的标志。利用计算机管理不但可以提升工作效率,还可以节省人力物力,增强数据准确性、实时性和有效性。因此在食品批发公司使用计算机管理软件进行进货、销售、库存等管理是非常必要的。当前,随着经济的全球化以及中国经济改革的逐渐深入,食品批发业面临着越来越激烈的竞争,
7、改善公司内部以及整个供应链各个环节的管理、调度及资源配置,具备迅速适应客户的新需求和市场新机遇的能力,是中国公司赢得竞争胜利的决定性因素。为了适应发展需要设计本系统。1.2 研究内容高科技的发展,软件管理系统成为工作的得力助手。今天,计算机价格越来越大众化,管理软件性能越来越优秀,逐渐被应用于众多领域。管理软件广泛普及应用的原因主要有以下几个方面:第一,计算机行业本身发展迅速;第二,计算机可以代替人工进行繁杂和重复性的工作;第三,管理软件可以节省许多资源;第四,管理软件可以提高人们的工作效率;第五,管理软件便于管理人员的管理。本食品进销存管理系统是基于先进的软件和高速、大容量的硬件基础上的新的
8、进销存管理模式,做到通过集中式的信息数据库,将公司的进货、销售、存储等经营业务有机的结合起来,大大减少公司管理部门的劳动量,改善公司内部以及整个供应链各个环节的管理、调度及资源配置,使得管理合理规范。系统尽量合理的控制物流,尤其是食品库存的控制,将食品数量控制到只在需要的时候向需要的部门按需要的数量提供所需要的食品,也就是说,它既防止食品供应滞后于对他们的需求,也防止食品过早地进货,以免增加库存,造成物资和资金的积压,实现食品销售的全方面管理。通过系统实现从基础数据维护、进货直到销售后利润统计的一系列功能。简化手工劳动的繁杂性、降低人工劳动强度、提高数据的时效性、提高工作效率、降低经营成本,为
9、管理层决策提供强有力的支持。本系统还要考虑到经济、技术和运行环境等方面的条件,来确定系统的总体结构和系统各组成部分的技术方案,把系统用户与订单、食品的关系确定好。将系统用户的权限限制为单一独立的,这样可以让权限在分配的时候互不干扰。第2章 需求分析根据对一般中小食品批发公司的调查研究,其对系统的日常经营管理需求分析为:批发公司准备进货时由进货员制作进货订单,制单时先选择食品,输入食品数量,之后选择食品供应商,最后确认制单。进货的食品到货后仓库员再入库,并对食品数量进行调整,然后财务员付款完成交易。食品订货商予订购食品时,通过电话与批发公司的销售员联系,由销售员制作销售订单,制单时先选择食品、输
10、入数量,之后选择订货商确认制单。制单完成后仓库员发货,发货后对食品数量进行调整,之后销售员送货并收款,最后财务员确认收款完成交易。仓库管理中,对食品库存、食品库存金额进行记录。记录供应商及订货商中消费金额或积分。1.具体任务根据调查分析,该系统完成如下具体任务:(1)系统用户管理:系统用户信息管理、分配系统用户角色。(2)进货订单流程:进货员选择食品,选择供应商,仓库管理员入库,制单员确认完成交易。(3)销售订单流程:销售员选择订货商,选择食品、仓库管理员发货、分销员确认付款、收款员确认收款、交易完成。(4)食品管理:管理食品类别信息、食品品牌信息、食品名称、食品数量和食品单价信息、食品库存(
11、5)订货商管理:用于维护订货商的编号、名称、联系人、地址、电话、积分额度等基本信息。(6)供应商管理:用于维护供应商的编号、名称、地址、电话、消费金额等的基本信息。2.系统用例模型用例模型是面向对象分析与设计的概念模型,一般用于前期的需求研究以及项目范围的控制、功能的分析,主要描述系统用户可以对哪些模块或者子模块进行操作1。根据上面的任务分析,绘制本系统用例模型,本系统的用例模型如图21所示。图21 食品进销存管理系统用例模型第3章 总体设计经过需求分析之后,进入总体设计阶段。总体设计其目标是产生一个模块化的程序结构,根据需求分析阶段的工作,从用例模型得出可行方案,同时确定系统中每个程序由哪些
12、模块组成及其相互关系2。经分析,系统共分为RBAC管理菜单、进货订单管理、销售订单管理、客户管理、仓库管理5大模块。以上各模块按层次划分子模块,每个子模块完成相应功能,且每个子模块具有单独入口单独出口。3.1系统模块设计1.RBAC管理菜单模块包括用户管理一个子模块。实现对系统用户登录账号、密码、用户姓名、性别、激活状态信息进行增加、修改、删除、查询、设置用户角色功能。此模块中封装角色权限。RBAC管理菜单模块功能结构图如图31所示。RBAC管理菜单用户管理图31 RBAC管理菜单模块功能结构图进货订单管理经理操作入库管理进货订单2.进货订单管理模块包括进货订单、入库管理、经理操作三个子模块。
13、进货订单实现创建进货订单、编辑订单、查询个人创建的订单。在创建订单时,进货员先选择食品、输入食品个数,之后选择供应商完成订单的创建。入库管理实现进货订单明细查询、入库确认。经理操作实现所有订单的查看和创建进货订单。进货订单管理模块功能结构图如图32所示。图32 进货订单模块功能结构图3.销售订单管理模块包括订单管理、订单发货管理、确认订单交易、经理操作四个子模块。订单管理实现创建销售订单、修改订单、查询个人订单、确认付款功能。创建销售订单时需要操作员选择食品、输入食品数量,之后选择分销商完成订单创建。订单发货管理实现销售订单查询、发货确认。确认订单交易实现订单检索、确认此订单交易完成。经理操作
14、实现所有销售订单查询、确认订单交易完成。销售订单管理模块功能结构图如图33所示。销售订单管理经理操作订单发货管理订单管理确认订单交易图33 销售订单管理模块功能结构图客户管理订货商管理供应商管理4.客户管理模块包括供应商管理和订货商管理两个子模块。其中供应商管理实现查询供应商、修改供应商信息、新增供应商、删除供应商。订货商管理实现查询订货商、修改订货商信息、新增订货商、删除订货商。客户管理模块功能结构图如图34所示。图34 客户管理模块功能结构图5.仓库管理模块包括食品管理、食品销售记录、食品类别、食品品牌四个子模块。食品管理实现对食品的查询、新增、删除、编辑、食品明细,食品明细实现查询显示该
15、食品的进货订单信息。食品销售记录实现对该食品的销售订单查询。食品类别实现食品类别的查询、新增、修改、删除功能。食品品牌实现食品品牌的查询、新增、修改、删除功能。仓库管理模块功能结构图如图35所示。仓库管理 食品品牌食品销售记录食品管理食品类别图35 仓库管理模块功能结构图3.2 数据库设计数据库系统的使用过程是将现实世界的数据经过人为加工和计算机处理之后,又为现实世界提供信息的过程3。根据前面的分析,对本系统进行如下数据库设计。1.PURCHASEORDERDETAILSID(进货订单详细信息表):用于存储进货订单详细信息,表结构如表31所示。表31 PURCHASEORDERDETAILSI
16、D字段名字段类型长度小数位数是否允许空字段说明PURDETAILSIDNUMBER38否详细进货订单idPURCHASERIDNUMBER38否进货商PRODUCTNUMBER38否食品PRODUCTQUERYNUMBER38否订货数量PRODUCTPRICENUMBER72否食品单价PRODUCTMONEYNUMBER72否订单总价SFRKVARCHAR26否是否入库PURCHASEORDERIDNUMBER38否进货订单编号QRRKYNUMBER38是入库员JHYNUMBER38否进货员JYZTNUMBER38否订单状态2.PRODUCT(食品信息表):用于存储食品基本信息,表结构如表32
17、所示。表32 PRODUCT字段名字段类型长度小数位数是否允许空字段说明PRODUCTIDNUMBER38否食品idPRODUCTNUMVARCHAR220否食品编号PRODUCTSELLPRICENUMBER72否销售单价PRODUCTSURPLUSNUMBER38是库存量CATEGORYNUMBER38否类别PRODUCTNAMEVARCHAR250否食品名称3.ORDER(销售订单信息表):用于存储销售订单信息,表结构如表33所示。表33 ORDER字段名字段类型长度小数位数是否允许空字段说明ORDERIDNUMBER38否订单idORDERNUMVARCHAR216否订单编号ORDER
18、TIMEDATE否制单时间ORDERMONEYNUMBER92否订单总价CUSTOMNAMENUMBER38否订货商ORDERACTIVATEVARCHAR26否订单状态ORDERCONSIGNORNUMBER38否发货员PAYMONEYVARCHAR26否是否付款EMPLOYEENUMBER38否制单员ORDERTIMEDELIVERYDATE否发货时间ORDERACTUALCOSTMONEYNUMBER92否实际付款金额PAYMONETEMPNUMBER38否确认收款员JYZTVARCHAR26否交易状态4.ORDERDETAILSID(销售订单详细信息表):用于存储销售订单详细信息,表结
19、构如表34所示。表34 ORDERDETAILSID字段名字段类型长度小数位数是否允许空字段说明ORDERDETNUMBER38否详细订单idORDERNUMNUMBER38否订单编号PRODUCTNAMENUMBER38否食品PRODUCTQUERYNUMBER38否订货数量PRODUCTPRICENUMBER72否食品单价PRODUCTMONEYNUMBER72否订单总价CATEGORYNUMBER38否食品类型BRANDNUMBER38否食品品牌PRODUCTBRANDNUMBER38否食品品牌5.PURCHASEORDER(进货订单信息表):用于存储进货订单信息,表结构如表35所示。表
20、35 PURCHASEORDER字段名字段类型长度小数位数是否允许空字段说明PURCHASEIDNUMBER38否进货订单idPURCHASEIDVARCHAR216否进货订单号PURCHASEMONEYNUMBER92否订单总额PURCHASETIMEDATE否制单时间PURCHASERNUMBER38否进货商PURCHASERACTIVATEVARCHAR26否订单状态PUREMPLOYEENUMBER38否制单员JYZTVARCHAR26否交易状态QUERENEMPNUMBER38否确认人6.EMPLOYEE(系统用户表):用于存储系统用户信息,表结构如表36所示。表36 EMPLOYE
21、E字段名字段类型长度小数位数是否允许空字段说明IDNUMBER38否用户idEIDVARCHAR217否用户登录名ENAMEVARCHAR216-否用户名PASSWORDVARCHAR212-否密码BIRTHDAYDATE否出生日期GENDERVARCHAR2否性别ACTIVATENUMBER1否用户状态VISITDATE6否上次登录时间WORKBIRTHDAYDATE6否入职时间YJNUMBER82是业绩DEPTVARCHAR230否部门ROLEVARCHAR230否角色AUTHVARCHAR230否权限7.PURCHASER(供应商信息表):用于存储供应商的基本信息,表结构如表37所示。表
22、37 PURCHASER 字段名字段类型长度小数位数是否允许空字段说明PIDNUMBER38否供应商idPURNAMEVARCHAR250否供应商名称PURUSERVARCHAR210是联系人PURTELVARCHAR250是电话PURADDVARCHAR2200是地址8.CUSTOMER(订货商信息表):用于存储订货商的信息,表结构如表38所示。表38 CUSTOMER字段名字段类型长度小数位数是否允许空字段说明CUSTOMIDNUMBER38否订货商idCUSTOMNAMEVARCHAR250否姓名CUSTOMTELVARCHAR250是电话CUSTOMADDVARCHAR250是地址JF
23、NUMBER38是积分XYNUMBER3是信用评价9.BRAND(食品品牌信息表):用于存储食品品牌信息,表结构如表39所示。表39 BRAND字段名字段类型长度小数位数是否允许空字段说明BIDNUMBER38否食品品牌idBRANDNAMEVARCHAR250否食品品牌名称10. GATEGORY(食品类别表):用于存储食品的类别,表结构如表310所示。表310 GATEGORY字段名字段类型长度小数位数是否允许空字段说明CATEGORYIDNUMBER38否食品类别idCATEGORYNAMEVARCHAR250否食品类别名称第4章 详细设计4.1 系统登录界面设计系统设计过程中采用了js
24、p技术,jsp技术是目前企业级应用网络管理系统最流行的技术之一4。登录界面的设计过程是先创建一个名为login.jsp的页面,然后在页面中添加一个表格,在表格中添加两个文本框用于输入用户名和密码,将文本框的id和name属性分别设置为loginname和password,并提供一个登录按钮用于让用户提交表单。在后台,创建个LoginAction的Struts2控制器类,用于处理用户登录,通过struts2功能,取出loginname和password的值,之后把值添加到hql语句中去数据库查询,在LoginAction中设置一个名为error的域成员,用于登录失败时提示用户,如果登录,将用户的
25、id,及用户拥有的权限全部存入到session中,用于权限分配。系统登录界面如图41所示。图41 系统登录界面4.2 系统主界面设计系统主界面是系统用户登录后进入的界面,设计过程是先新建一个名为main.jsp的页面,通过框架对界面进行设计。左面引用的界面为menu.jsp,用于显示当前登录用户名称的标签,及本系统的各个功能模块的入口链接。当用户单击左侧各个功能模块时,架框右则会通过超链接跳转到各自相应的操作界面。系统主界面如图42所示。图42 系统主界面4.3 功能模块设计系统后台设计过程中采用了java语言设计,java语言的优点是一次编译到处运行,可移植能力非常强,只需开发人员在自己的计
26、算机上编译后,在其它计算机上就可以运行5。1.进货订单管理界面进货订单管理界面为purorder/list.jsp。在页面中插入一个表格,用于显示进货订单相应信息,每一行提供“修改”、“完成”和“配置”的超链接按钮以进行相对应操作。后台创建PurchaseOrderAction的Struts2控制器类,该类定义了检索、修改、创建订单、配置订单的供应商功能。条件检索功能由PurchaseOrderAction中的域成员对应检索条件,单击“检索”时ddbh(订单编号)、dddate(制单日期)、wcdate(完成日期)通过struts2进行赋值,之后把值添加到hql语句中去数据库检索,可进行单一条
27、件或多条件检索。系统中进货订单编号是由后台PurOrderAction类完成的,前两位“jh”表示进货订单,之后八位为当天日期,最后四位为当日订单个数。进货订单管理界面如图43所示。图43 进货订单管理界面2.进货订单经理操作界面进货订单经理操作界面为purorder/jlcz.jsp。在页面中插入一个表格,用于显示所有进货订单相应信息,每行提供“修改”、“完成”和“配置”的超链接按钮以进行相对应操作。后台创建PurchaseOrderAction的Struts2控制器类,该类定义了检索、修改、创建订单,配置订单的供应商等。条件检索功能由PurchaseOrderAction中的域成员对应检索
28、条件,单击“检索”时ddbh(订单编号)、dddate(制单日期)、wcdate(完成日期)通过struts2进行赋值,之后把值添加到hql语句中去数据库检索,可进行单一条件或多条件检索。进货订单管理经理操作界面如图44所示。图44 进货订单管理经理操作界面3.进货订单创建界面单击进货订单管理界面中的“创建订单”进入进货订单创建界面。进货订单创建界面为purorder/table.jsp。使用ajax技术实现选择食品,每行提供“删除”按钮,通过ajax技术实现异步刷新,单击“删除”后该行直接删除。单击“保存”按钮,执行PurchaseOrderAction中的save方法,来确认保存订单食品。
29、进货订单创建界面如图45所示。图45 进货订单创建界面4.进货食品选择界面单击进货订单创建界面中的“选择食品”进入进货食品选择界面。进货食品选择界面为purorder/selectTable.jsp。在页面中插入一个表格,表格显示食品的相应信息,通过ajax来传递到进货订单创建界面,并且用PurchaseOrderAction中的productIds域成员来保存食品id,将选过的食品框变为不可选,防止用户重复选择食品。之后通过PurchaseOrderDetailsAction中save方法保存订单。进货食品选择界面如图46所示。图46 进货食品选择界面5.销售订单管理界面销售订单管理界面为o
30、rder/list.jsp。在页面中插入一个表格,表格显示销售订单相应信息。条件检索功能由OrderAction中的域成员对应检索条件,单击“检索”时ddbh(订单编号)、dddate (制单日期)、wcdate (发货日期)、customId (订货商)、employeeId (发货员)通过struts2进行赋值,之后把值添加到hql语句中去数据库查询,可单一条件伙伴多条件检索。销售订单编号是由后台OrderAction的类完成的,“dd”表示销售订单,之后八位是当天日期,最后四位是当日销售订单个数,在查询时,OrderAction中获取session中的登录id,只查询该id创建的订单。销
31、售订单管理界面如图47所示。图47 销售订单管理界面6.销售订单编辑界面系统设计过程中采用了Ajax技术,其作用是提供网页浏览者与网页内容的交互,并可以进行信息验证,可实现异步刷新页面6。单击销售订单管理界面中的“编辑”进入销售订单编辑界面,销售订单编辑界面为order/table.jsp。在页面中插入一个表格,表格显示销售订单明细信息。当输入购买数量时使用ajax技术自动取出食品单价与食品数量的值并算出所需金额。单击“保存”时通过OrderDetailsAction中的save方法来保存该订单,保存订单时从session中取出该用户id。销售订单编辑界面如图48所示。图48 销售订单编辑界面
32、7.订单发货管理界面订单发货管理界面为dispathorder/list.jsp。在页面中插入一个表格,表格显示销售订单相关信息。上方检索功能由后台DispathOrderAction中的域成员对应检索条件,单击“检索”时ddbh(订单编号)、dddate(制单日期)、custom(订货商)、employee(发货员)、activate(订单状态)、paymoney(付款状态)、wczt(交易状态)条件通过struts2功能自动对其赋值。单击每行订单时,DispathOrderAction的类中的orderList域成员的信息可在其下面显示,再次单击则隐藏。订单发货管理界面如图49所示。图49
33、 订单发货管理界面8.销售订单经理操作界面销售订单经理操作界面为dispathorder/jlcz.jsp。在页面中插入一个表格,表格显示所有销售订单相应信息。上方检索功能由后台DispathOrderAction中的域成员对应检索条件,单击“检索”时ddbh(订单编号)、dddate(制单日期)、custom(订货商)、employee(发货员)、activate(订单状态)、paymoney(付款状态)、wczt(交易状态)、fdate(发货日期)、fxyId(分销员)、skyId(收款员)条件通过struts2功能自动对其赋值。可按单一或多条件进行检索。单击每行订单时,检索其明细在下面显
34、示,再次单击则隐藏。销售订单经理操作界面如图410所示。图410 销售订单经理操作界面9.供应商管理界面供应商管理界面为purchaser/list.jsp。在页面中插入一个表格,表格显示供应商信息。后台使用PurchaserAction类中的add、edit、list、delete等方法来实现对供应商的新增、修改、删除、检索。供应商管理界面如图411所示。图411 供应商管理界面10.新增供应商界面单击供应商管理界面中的“新增供应商”进入新增供应商界面,新增供应商界面为purchaser/edit.jsp。在页面中插入一个表格插入三个文本框,设置其id和name属性,单击“保存”按钮时pur
35、chasername(供应商名称)、purchasertel(供应商电话)、purchaseradd(供应商地址)通过struts2的功能赋值,将值传到后台PurchaserAction类中的相对应域成员中,之后用save方法保存供应商。新增供应商界面如图412所示。图412 新增供应商界面11.订货商管理界面订货商管理界面为custom/list.jsp。在页面中插入一个表格,表格显示供应商信息。后台使用CustomAction类中的add、edit、delete、list方法来实现对订货商的新增、修改、删除、检索。订货商管理界面如图413所示。图413 订货商管理界面12.新增订货商界面单
36、击订货商管理界面中的“新增订货商”进入新增订货商界面,新增订货商界面为custom/edit.jsp。在页面中插入一个表格插入三个文本框,设置其id和name属性,单击“保存”按钮时customname(订货商名称)、customtel(订货商电话)、customadd(订货商地址)通过struts2的功能赋值,将值传到后台CustomAction类中的相对应域成员中,之后用save方法保存订货商信息。新增订货商界面如图414所示。图414 新增订货商界面13.食品管理界面食品管理界面为product/list.jsp。在页面中插入一个表格,表格显示食品信息。在后台建立ProductActio
37、n的类,使用里面的list、add、edit、mingxi、delete方法来实现对食品信息的检索、新增、编辑、明细查询、删除操作。上方检索功能由后台ProductAction中的域成员对应检索条件,单击“检索”时productname(商品名称)、category(食品类型)、brand(食品品牌)、productquery(商品数量)条件通过struts2功能自动对其赋值。可按单一或多条件进行食品检索。食品管理界面如图415所示。图415 食品管理界面14.食品销售记录界面食品销售记录界面为product/profit.jsp。在页面中插入一个表格,表格显示食品销售信息。单击每行时,在后台
38、使用ProductAction类中的spxiaoshou的方法在该行下方显示该食品的销售订单,再单击则隐藏。上方检索功能由后台ProductAction中的域成员对应检索条件,单击“检索”时productname(商品名称)、category(食品类型)、brand(食品品牌)、pxff(排序方法)条件通过struts2功能自动对其赋值。可按单一或多条件进行食品检索。食品销售记录界面如图416所示。图416 食品销售记录界面15.员工管理界面员工管理界面为employee/list.jsp。在页面中插入一个表格,表格显示员工信息。在后台使用EmployeeAction类中的list、edit、
39、save、delete、saverole方法来实现对员工的检索、编辑、保存、删除、设置角色操作。上方检索功能由后台EmployeeAction中的域成员对应检索条件,单击“检索”时empname(员工名)条件通过struts2功能自动对其赋值。最后访问时间是在退出登录的时候通过后台的logoutAction类来修改的。员工管理界面如图417所示。图417 员工管理界面16.员工新增界面单击员工管理界面中的“增加员工”进入员工新增界面,员工新增界面为employee/edit.jsp。单击“新增员工”按钮时通过Employee类中的edit方法弹出该界面。在页面中插入一个表格三个文本框、一个单选
40、按钮和一个select下拉列表,并且分别设置其id和name属性。手动输入用户信息单击“保存”时,通过struts2功能将值传入后台EmployeeAction类中的loginname、password、empname、gender、activate域成员,再调用save方法来保存员工信息。员工新增界面如图418所示。图418 员工新增界面第5章 测试系统测试的重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。系统测试的对象显然不仅仅是源程序,而应是整个软件,它把系统分析、系统设计、以及程序设计各阶段的开发文档,都作为测试的对象。软
41、件测试不等于程序测试,它是根据软件开发各个阶段的规格说明和程序的内容结构而精心设计的一批测试用例,并利用这些用例去运行程序,以发现程序错误的过程7。单元测试是指程序中的一个模块或一个子程序,是程序运行的最小单元,或是程序最小的独立编译单位。单元测试是软件开发过程中进行的最低级别的测试活动,其目的是要检测程序模块中有无故障。1.创建销售订单测试测试数据:可口可乐的购买数量5,统一绿茶的购买数量不填。测试界面如图51所示。图51 创建销售订单测试界面测试结果:可口可乐购买数量下方提示“此货物购买数量不能大于库存量”,统一绿茶购买数量下方提示“食品个数必须填写”,测试结果与预期结果相符。2.新增用户
42、测试测试数据:所有数据全部正确填写、全部不填写或部分填写。测试结果:所有数据全部正确填写后单击“提交”可以成功新增加一新用户,全部不填写或部分填写不能成功增加用户,并给出相应的提示信息,与预期结果相符。数据均不填写的测试界面如图52所示。图52 新增员工测试界面3.用户登录测试测试数据:填写正确用户名和密码,错误用户名和错误密码。测试结果:正确时点击登录,进入系统主界面。用户名密码错误时,密码下方提示“登录失败”。登录失败提示界面如图53所示。图53 登录失败提示界面本系统对所有模块都进行了单元测试,经测试各模块均可以完成预期的相应功能。总 结短暂的毕业设计结束了,我在这次设计过程中实现了对过
43、去所学知识的回顾、总结和应用。本管理系统能够实现数据的输入、查询、修改、删除、统计等功能,能够追朔到数据的始终,完成了食品进销存管理系统从需求方面的开发和应用,达到预期的目的。不可否认,该系统的功能还不完善,仍存在许多的缺点和不足,例如,在计算利润时,是以平均价格来进行计算利润,用库存金额除以库存数量,之后用售出单价减去平均进价来计算,正规方法应该是在食品进货订单中加标注,卖出的食品到相对应的进货订单中检索出进货价格,进行计算利润;还有用户部门没有进行分配,这个缺点是在需求分析时没有写进去,之后总体设计的时候也没有考虑到,导致用户没有部门的缺陷,但是此缺陷可以在今后升级中修复;另外在选择供应商
44、时候,应该可以查询出该供应商都能供应哪些食品,这个缺陷是当时调研时未考虑到,经过老师指点才发现的,此缺陷也可在升级程序过程中修复。参考文献1 张俊兰,王文发,冯伍,软件工程(第一版)M,西安:西安交通大学出版社,(2009):41442 刘竹林,软件工程案例开发与实践M,北京:清华大学出版社,(2009):2629 3 王立福,数据库系统概论(第三版)M,北京:北京大学出版社,(2009):894 刘晓华,JSP应用开发详解 M,北京:电子工业出版社,(2007):75 赵毅,跨平台程序设计语言Java M,西安:西安电子科技大学出版社,(2006):156 阮文江,Ajax 程序设计应用 M
45、,北京: 人民邮电出版社,(2010):356-3597 宫云战,软件测试教程 M,北京:机械工业出版社,(2008):911附录1 核心源代码1.application.xml(Spring配置文件,这个文件主要是用来配置系统数据库连接等信息)<beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xmlns:context="http:/www.springframewo
46、/schema/context" xmlns:tx="/schema/tx" xmlns:aop="/schema/aop" xsi:schemaLocation=" /schema/tx/spring-tx-3.0.xsd" default-autowire="byName" ><!- 配置jdbc数据源 -
47、> <bean id="myDataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url" value="jdbc:oracle:thin::1521:
48、liufei"/><property name="username" value="ddgl"/><property name="password" value="ddgl"/></bean><!-配置hibernate 抽象工厂 -><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean&q
49、uot;><property name="dataSource" ref="myDataSource" /><property name="mappingLocations"><!- 如果你有很多hbm 写起来很累 -><list><value>classpath:/com/material/hbm/*.hbm.xml</value></list></property><property name="hibernate
50、Properties"><value>hibernate.show_sql = truehibernate.cache.use_second_level_cache=truehibernate.cache.use_query_cache=true </value></property></bean><!-配置事务管理器 ref 应该和上面的jdbc数据源的id相同 -><bean id="txManager" class="org.springframework.jdbc.datas
51、ource.DataSourceTransactionManager"> <property name="dataSource" ref="myDataSource"/> </bean> <!- 配置Aop -> <aop:config> <!- 配置切入点,即拦截哪些方法, 执行表达式改成当前的-> <aop:pointcut id="entryPointMethod" expression="execution(* com.material
52、.*Service.*(.)"/> <!- 在aop中配置引用通知 -> <aop:advisor advice-ref="txAdvice" pointcut-ref="entryPointMethod" order="2"/> <!- 配置切面 (删掉around)执行表达式同上-> <aop:aspect id="profilingAspect" ref="profiler"> <aop:pointcut id=&quo
53、t;serviceMethodWithReturnValue" expression="execution(* com.material.*Service.*(.)"/> </aop:aspect> </aop:config> <!- 配置参考通知 -> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes><!- 以get开头的方法 ,只读(即不开启事务)-&g
54、t; <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice><!- 配置注解 -> <context:component-scan base-package="com.material"/> <context:annotation-config/></beans>2.Struts.xml(
55、Struts2配置文件,这个文件主要是用来配置页面转发)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.1/EN" "/dtds/struts-2.2.dtd"><struts> <package name="default&qu
56、ot; extends="struts-default"> <action name='*Action' class='1Action'> <result name='login'>/main/master.jsp</result> <result name='dist'>/orders/list.jsp</result> <result name='list'>/1/list.jsp</result> &
57、lt;result name='edit'>/1/edit.jsp</result> <result name='add'>/1/add.jsp</result> <result name='ordersEdit'>/orders/uptable.jsp</result> <result name='purchEdit'>/purchaseOrder/uptable.jsp</result> <result name='orderDetails'>/orders/table.jsp</result> <result name='s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《产品创新设计》2021-2022学年第一学期期末试卷
- 合同到期了单位不续签通知模板
- 2024年拉萨驾驶员客运资格证模拟考试题及答案详解
- 2024简单版机动车借款抵押合同
- 2024服装制作合同
- 2024防水材料采购合同
- 2024深圳建设工程技术咨询合同样本
- 2024光伏发电安装合同范本光伏发电安装合同范本
- 2024教师聘用合同
- 2024幼儿园装修改造工程施工合同
- 幼儿园绘本故事:《老虎拔牙》 课件
- 2021年上半年《系统集成项目管理工程师》真题
- 一个冬天的童话 遇罗锦
- GB/T 706-2008热轧型钢
- 实验六 双子叶植物茎的初生结构和单子叶植物茎的结构
- GB/T 25032-2010生活垃圾焚烧炉渣集料
- GB/T 13610-2020天然气的组成分析气相色谱法
- 《彩虹》教案 省赛一等奖
- 2023年湖南建筑工程初中级职称考试基础知识
- 沈阳机场航站楼扩建工程安装施工组织设计
- 司法考试:证据法
评论
0/150
提交评论