版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
统实训报告:成波、钟秀、马姝婷、邢亚可、龙浩 (一)需求概述 3 (二)系统概述 4 (三)可行性分析 5 (一)项目背景 6 (二)项目目标 6 (三)项目实现准备阶段 6 (四)项目实现开发阶段 13 (五)项目测试 13 (一)开发环境准备 14 (二)创建数据库连接 14 (一)主窗体设计 16 (二)创建导航面板 17 (三)公共模块设计 18 (四)基础信息主要功能模块详细设计 19 (五)进货管理模块设计 24 (六)库存管理模块设计 30 (七)查询统计模块设计 33 (八)系统设置主要功能模块详细设计 36 (一)需求概述在目前食材配送过程中,食材的管理至关重要。这里对食材的管理包括进、个进销存管理系统,对企业的管理者、营业员、库存管理员等减轻其工作量,便于经营管理。功能需求:进货管理功能模块:采购计划、采购订单、采购入库、采购退货、应付款、采购付款。销售管理功能模块:、报价单、销售订单、销售出库、销售退货、应收款、销售收款。销售查询、销售退货查询、商品出入库情况以及销售排行查询。:其它入库、其它出库、库存警报、库存报表、基本资料设计。系统管理,主要负责管理用户信息和用户登录,以及初期建账。公司需要处理大量的库存信息,还要时刻更新产品的销售信息,不需要有效的程序结构支持各种数据操作的执行。它最主要的特点是能够实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望能及时采购到所需的新鲜的食材,并且还要保证在食材配送过程中提供优质、方便的服务。(二)系统概述开发适用于多个行业,可以帮助企业快速有效管理进货、销售、库统计等各项业务,合理控制进销存各个环节,提高资金利用率,实现管和实时性。本系统是根据人们在日常生活中的实际需求而开发的,完全人们对商品的基础信息管理、进货管理、销售管理、查询统计、库存管管理等功能,一般而言,通过使用进销存管理系统,可以在以下几方面提高企业的管理水平:1)更好地了解供应商和客户信息,加强对商品资料的管理。2)降低采购成本,及时了解采购情况。3)准确了解销售动态,及时调整营销策略。4)了解库存情况,及时进行价格管理以及库存数量维护。5)减少储备资金占用,加速资金周转,提高资金利用率。6)提供商业数据智能分析,了解商业动态,为管理者提供决策依据。系统功能结构图如下:(三)可行性分析薄弱,无系统开发技术基础,我们决定根据老师提供的文件资料作为项目实施的参考依据,通过项目实训来锻炼我们的动手能力、实际操作能力。评价尺度:以能参照资料制作出完成的进销存管理系统为标准。JavaSwingSQLserverMyEclipse发手段是完全可行的。(一)项目背景通过项目模拟实训来锻炼同学们的动手能力,为将来毕业求职实习、考研做准备。(二)项目目标1)界面简洁友好,操作简单。、系统管理6个部分。3)文档结构清晰,包括(项目需求分析、项目开发过程、项目技术说明、项目功能实现、项目测试结果等)4)小组成员都应参与到整个项目的实现过程中来,对每个环节都应该有掌握整个项目开发的每一个细节,成员之间要多沟通,工作上要协调配合好。(三)项目实现准备阶段il表)。字段名(一律采用英文单词,不知道的在线翻译一下),如:ID(流水号),Name(名称),ProductInfo(商品信息)。tbspinfo存商品的名称、产地等基本信息。表结构如下图所示:4)tb_khinfo(客户信息表)。客户信息表主要保存客户的姓名、地址、联系方式等基本信息等。表结构如下图所示:5)tb_gysinfo(供应商信息表)。供应商信息表主要保存供应商的名称、地址等供应商的基本信息。表结构如下图所示:6)tb_kucun(库存管理表)。库存管理表中主要保存着每一件商品的单价、在仓库中的存储数量、一共的金额等信息。表结构如下图所示:7)tb_ruku_main(入库主表)和tb_ruku_detail(入库明细表)。入库表中主结构职下图所示:8)tb_rkth_main(入库退货主表)和tb_ruku_detail(入库退货明细表)。入图所示:9)tb_sell_main(销售主表)和tb_sell_detail(销售明细表)。销售表主要保存销售情况的信息,并且添加了销售日期等信息。表结构如下图所示:10)tb_xsth_main(销售退货表)和tb_xsth_detail(销售退货明细表)。销售如下图所示:1)供应商编号(如gys1000,gys1001)2)客户编号(如kh1000,kh1001,kh1002)3)商品编号(如sp2045,sp2046,sp2047)4)销售单编号(XS+日期+编号,如XS20150509001)5)入库编号(RK+日期+编号,如RK20150511003)6)入库退货编号(RT++日期+编号,如RT20150512004)ER编码、联系人、联系人电话、传真、开户行和账号等属性。2)供应商E-R图,包括编号、名称、简称、地址、电话、邮政编码、传真、联系人、联系电话、开户行和E-mail等属性。3)商品实体E-R图,包括编号、商品名称、商品简称、产地、单位、规格、包装、生产日期、保质期、商品简介和供应商等属性。4)使用PowerDesigner建模进行数据库设计。具体请参照JAVA项目开发全程实录1.4.3章。并用SQLserver2005创建数据库。(四)项目实现开发阶段1)龙浩:美工设计、主窗体设计、公共模块设计2)钟秀:进货管理模块设计、销售管理模块设计3)邢亚可:查询统计模块设计、库存管理模块设计、系统数据库设4)马姝婷:项目进度安排、基础信息模块设计、系统功能设计5)成波:系统需求分析、系统项目说明书、系统测试1)主窗体设计。代码参照JAVA项目开发全程实录1.5章。2)公共模块设计。代码参照JAVA项目开发全程实录1.6章。3)基础信息模块。代码参照JAVA项目开发全程实录1.7章。4)进货管理模块。代码参照JAVA项目开发全程实录1.8章。5)销售管理模块。无参考代码,自行开发。6)库存管理模块。代码参照JAVA项目开发全程实录1.10章。7)查询统计模块。代码参照JAVA项目开发全程实录1.9章。8)系统管理模块。无参照代码,自行开发。(五)项目测试每个模块开发时进行单元测试。开发后进行系统测试,并编写系统测试报告。(一)开发环境准备SQLservermyeclipse8.5。(二)创建数据库连接MSSqlServerSP置帐户选择sa,密码设为123;ManagementStudio”)a.“开始”→“程序”→“MicrosoftSQLServer2005”→“配置工具”→“SQLServerConfigurationManager”(确认“SQLServerManagementStudio”已关闭)b.“SQLServer2005服务”中停止服务“SQLServer(SQLEXPRESS)”(默认是启动状态)c.“SQLServer2005网络配置”→“MSSQLSERVER的协议”,启动“TCP/IP” (默认是禁用状态),然后双击“TCP/IP”进入属性设置,在“IP地址”里,IPAll的“TCP端口”为1433d.“SQLServer2005服务”中启动服务“SQLServer(MSSQLSERVER)”(默认是停止状态)e.关闭“SQLServerConfigurationManager”(此时可以启动“SQLServer置正确的话应该能登录成功)LstKprotectedstaticStringdbClassName=microsoftsqlserverjdbcSQLServerDriverprotectedstaticStringdbUrl=dbcsqlserverlocalhostDatabaseNamedbJXCprotectedstaticStringdbUser="sa";protectedstaticStringdbPwd="123";(一)主窗体设计迎界面。用程序的主窗体包括系统菜单和工具栏,其中系中所有功能的菜单项,工具栏是提供常用的功能的快捷访问按钮。(该系统采用了导航面板综合了系统菜单和工具栏的优点,导航面板的界面更美观,操作更快捷。)并且设置背景图片。desktopPanelnewJDeskPanel建桌面面板JTabbedPanenavigationPanelcreateNavigationPanel//创建导航面板2)编写updateBackImage()方法,初始化背景标签,背景标签使用HTML超文本语言设置了主窗体的背景图片(该图片会随着主窗体的大小自动缩放)。3)在类的静态代码中设置了系统的外观样式。使用了UIManager类的setLookAndFeel()方法设置程序界面使用本地外观。4)编写主窗体的mian()入口方法,创建登录窗体对象(登录窗体会验证登录信息,并显示主窗体界面)(二)创建导航面板1)在JXCFrame类中编写createNavigationPanel()方法,创建JTabbePanel选项卡面板对象。(为了突出选项卡的立体效果,设置该选项卡使用了BevelBorder边框效果。)然后依次创建了基础信息管理面板、库存管理项卡。TabbedPanetabbedPanenewJTabbedPaneJTabbePanelJPanelbaseManagePanelnewJPanel//基础信息管理面板JPaneldepotManagePanelnewJPanel//库存管理面板JPanelsellManagePanelnewJPanel//销售管理面板JPanelsearchStatisticPanelnewJPanel;//查询统计面板JPanelstockManagePanelnewJPanel//进货管理面板JPanelsysManagePanelnewJPanel;//管理系统面板2)编写createFrameButton()方法,该方法负责创建Action对象,该对象是用来创建并显示窗体对象,(图标、文本等属性),本系统没有使用系统菜单,所以该方法直接创建按钮对象。IconiconnewImageIconimgUrl/创建按钮图标IconrollnewImageIconimgUrlroll;//创建鼠标经过按钮的图标IcondownnewImageIconimgUrldown;//创建按钮按下的图标ActionactionnewopenFrameAction(fName,cname,icon);//用ctionActionAction的动作监听器,当这个监听器的按钮被按下时,调用getFrame()方法获取相应的窗体对象,并显示在主窗体中。4)编写getIFrame()方法。该方法就是用来创建指定名称的窗体对象,使用了java反射技术,调用不同窗体类的默认构造方法创建窗体对象。(三)公共模块设计Dao据库的操作,该类在静态代码段中驱动并连接数据库,然后将所有的数据库访问方法定义为静态的。ClassforNamedbClassNamenewInstance加载数据库驱动类connDriverManagergetConnectiondbUrldbUserdbPwd获取数据库连接2)addGys()方法(添加供应商信息的方法)实体类TbGysinfo作方法的参数,然后把实体对象中的所有属性存入供应商数据表中。3)getGysinfo()方法(读取指定供应商的信息)ItemID数据,然后将该供应商的数据封装到实体对象中,然后返回该实体对象。4)updateGys()方法(修改供应商信息的方法)实体类TbGysinfo作方在方法中直接解析供应商实体对象中的属性,并且将这些属性更新到数据表中。5)insertRukuInfo()方法该方法负责完成入库单信息的添加,(库存表、入库主表、入库详细表等多个数据表的操作)。为了保证数据的完整性,该方法将入库信息的添加操作放在的实体类TbRukuMain作为参数,该实体类中包含了入库详细表的引用。6)getKucun()方法DItem在该商品的库存记录,就获取该记录并将记录中的数据封装到库存表的实体对象中,然后将该实体对象作为方法的返回值。Item类主要用于封装和传递参数信息,这是典型命令模式的实现。Dao为方法参数;在各个窗体界面中也经常使用该类toStringname各个组件上的内容是Item类的对象所代表的商品、供应商、或者客户等信息的名称。(四)基础信息主要功能模块详细设计管理模块的有三个功能:客户信息管理、商品信息管理和供应商信oKeHuTianJiaPanelKeHuXiuGaiPanel管理所使用的数据表是GysXiuGaiPanel类。整个基础信息管理模块的技术分析以供应商信息管理面板为例,下面简单介绍一下供应商信息管理的添加、修改和删除的实现过程。添加功能,实现在界面将显示多个用于输入供应商信息的文本框。界面中主要包括以下控件:型称FieldgF无全称hengF无MaF无iF无地址HuaF无enF无iRenF无nDianHu无nHangF无F无on设置按钮文本为“添加”TjActionListenertButton设置按钮文本为“重填”ResetActionListener实例对象要点介绍:1)ResetActionListener类。作为“重填”按钮的事件监听器。该类必须实现ActionListener接口,并在actionPerformed()方法中清除界面中的所有文本框内容。代码如下:2)TjActionListener类。作为“添加”按钮的事件监听器。该类必须实现ActionListener接口,并在actionPerformed()方法中实现用户输入的验证和供应商信息的保存。代码如下:删除的功能。在该界面中有许多文本框用于输入息,这些文本框会根据所选供应商自动填充内容,点击修改按钮后回自动写入修改后的供应商内容。型称FieldgF无全称hengF无MaF无iF无地址HuaF无enF无iRenF无nDianHu无nHangF无F无oBox设置初始大小为(230,21)初始化下拉列表SelectActiononButton设置按钮文本为“修改”ModifyActionListener修改setButton设置按钮文本为“删除”DeltActionListener实例对象要点介绍:1)initComboBox()方法。用于初始化选择供应商的下拉列表框。该方法先获tGysInfosItem象并添加到下拉列表框中(主要是获取ID和供应商名称)。然后再下拉列表框的Item对象中用toString()方法显示供应商名称。代码:2)doGysSelectAction()方法。在使用下拉列表框时选择或更改供应商信息的框中。代码如下:接口,并在actionPerformed()方法中获取文本框内容,并可以将修改后的供应商信息,通过调用Dao类的updateGys()方法,把修改后的信息写入到数据库。代码:4)DeltActionListener类。删除按钮的事件监听器。必须实现ActionListener接口,并在actionPerformed()方法中获取文本框内容,通过调用Dao类中的delete()实现把供应商信息从后台数据库删除。代码:(五)进货管理模块设计企业进销存管理系统中的进货模块管理主要包括进货单和进货退货两个部分。这里主要以进货单功能为主,介绍进货模块对本系统的意义和实现的业务逻辑。的商品进货信息,可以单击“添加”按钮,在商品表中添加在“供应商”下拉列表框中选择不同的供应商,将会改变商品中可以添加的商品。进货单的程序界面如下图:录进货管理中的退货信息,界面效果如下图。在选JDBC货的业务逻辑涉及到的完整性,将3个数据表的操作放在事务中实现,如果对任何一个数据表的操作出现错误或是不可执行的操作,那么事务中的所有操作行的数据状态;否则3个数据表的操作全部执行。下面是JDBC事务操作的关键方法。1)setAutoCommit()方法提交模式。如果连接处对象的自动提交模式为语句将聚集到事务中,直到调用commit()方法或rollback()方法为止。默认情况下,新连接的自动提交模式为true。语句:VoidsetAutoCommit(booleanautoCommit)用链接对象的自动提交模式。getAutoCommit()判断此连接对象是否启用了自动提交模式。语法:BooleangetAutoCommit()2)commit()方法QL所有数据库锁。此方法只在禁用自动提交模式情况下使用。语法:Voidcommit()3)rollback()方法的所有更改,并释放此连接对象当前持有的所有数据库锁。此方法只在禁止自动提交模式情况下使用。语法:Voidrollback()定义的主要控件如表:1)编写inittable()方法,该方法用于初始化食品表格的表头,列编辑器等。选择商品的名称,其他的商品信息将自动填充,代码如下:privatevoidinitTable(){StringcolumnNames","产地","单位","规格","包装","};aultTableModeltablegetModelifierscolumnNamesTableColumncolumntablegetColumnModelgetColumn);alDefaultCellEditoreditornewDefaultCellEditorsporsetClickCountToStartnsetCellEditoreditor}2)编写initSpBox()方法,该方法用于初始化表格中的商品下拉表框。它首先调用Dao类的query()方法获取指定供应商所提供的所有商品信息,代码如:privatevoidinitSpBox(){ListlistnewArrayList;ResultSetsetDaoqueryselect*fromtb_spinfowheregysName='"gysgetSelectedItem"'");AllItemsItemnewTbSpinfoforintitablenullitable.getRowCount();i++){TbSpinfotmpInfoTbSpinfotablegetValueAti);iftmpInfonulltmpInfogetId)!=null)istaddtmpInfogetId}rywhilesetnext()){bSpinfospinfonewTbSpinfospinfosetIdsetgetStringidtrim/如果表格中以存在同样商品,商品下拉框中就不再包含该商品iflistcontainsspinfogetId)spinfosetSpnamesetgetStringspnametrimspinfosetCdsetgetStringcdtrimspinfosetJcsetgetStringjctrimspinfosetDwsetgetStringdwtrimspinfosetGgsetgetStringggtrimspinfosetBzsetgetStringbztrimspinfosetPhsetgetStringphtrimspinfosetPzwhsetgetStringpzwhtrimspinfosetMemosetgetStringmemotrimspinfosetGysnamesetgetStringgysnametrimmspinfo}tionetStackTrace}}(六)库存管理模块设计产经营中为销售和耗用而存储的各种资产。企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、存储费用增加、流动资金周转不利,并且过量的库存会掩盖管理不善的问题。存货不足则影响企业的正常销售活动。库存管理的目标是需求最佳存货数量,使库存的成本总额最小化。其主要功能如下:库存盘点和价格调整等日常处理。价格调整功能主要用于调整库存中指定商品的单价,当用户选择了此商品,价格调整功能的界面会显示该商品在库存中的单价、数量、金额、单位、产地等信息,用户可以单击“单价”后即可修改商品的价格。如下图所示:括库存盘点和价格调整两个功能,库存盘点功能是将库存信息显示在表格中,由操作员输入盘点的商品数量,然后自动计算损益值,价格调整功能涉及下拉列表框的选择事件监听和事件处理技术,为防止用户的错误输入,程序界面经常需要将可枚举的输入内容封装在下拉列表框中,限制用户的输道下拉列表框的改变,还需要为下拉列表框添加相应的事件监听器。下面就进行简单的介绍:addItemListener()方法可以为下拉列表框添加ItemListener监听器,当更改时,将产生相应的事件,这个事件会被添加的ItemListener监听器捕获。价格调整实现过程:JiaGeTiaoZheng能界面和业务逻辑。界面中的主要控件如下:型称FieldnJinE无nShuLiang无ia无lng无无无ei无on无on无2)编写UpdateJinE()方法,用于更新库存金额,该方法将“单价”文本框的内Double型,将“库存数量”文本框的内容转换为Integer类型,然后用它们的乘积更新“库存金额”文本框的内容,代码如下:privatevoidupdateJinE(){//更新库存金额的方法DoubledjDoublevalueOfdanJiagetText());IntegerslIntegervalueOfkuCunShuLianggetText));kuCunJin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一例酒精性心肌病患者的护理个案
- 餐饮服务食品安全承诺书(3篇)
- 校园保洁人员准则
- (完整版)医院住院管理体系及护理措施
- 大型游乐设施维保规程
- 《会议管理》练习题及答案
- 设备防爆装置维护记录表
- 关节僵硬护理查房
- 颌部瘤样纤维组织增生护理查房
- 泥石流保险理赔指南
- 机加工产品过程审核表
- 禁止电动自行车违规停放、充电行为的承诺书
- QB-T1022-2021制浆造纸企业综合能耗计算细则
- 医院科研诚信课件
- 《药物化学》课件-苯二氮䓬类药物
- 《精神病学》人卫-第一章-绪论
- 工程伦理 课件全套 李正风 第1-9章 工程与伦理、如何理解伦理- 全球化视野下的工程伦理
- 生物安全标准操作规程
- 石油产品库仑氯分析仪校准规范
- 食品安全管理制度目录
- 高中生入团申请书800字
评论
0/150
提交评论