![基于BS模式的烟草集团物资管理系统设计与实现第二稿_第1页](http://file4.renrendoc.com/view14/M02/2B/02/wKhkGWaIbDmAJDhGAADD4oV8UsI655.jpg)
![基于BS模式的烟草集团物资管理系统设计与实现第二稿_第2页](http://file4.renrendoc.com/view14/M02/2B/02/wKhkGWaIbDmAJDhGAADD4oV8UsI6552.jpg)
![基于BS模式的烟草集团物资管理系统设计与实现第二稿_第3页](http://file4.renrendoc.com/view14/M02/2B/02/wKhkGWaIbDmAJDhGAADD4oV8UsI6553.jpg)
![基于BS模式的烟草集团物资管理系统设计与实现第二稿_第4页](http://file4.renrendoc.com/view14/M02/2B/02/wKhkGWaIbDmAJDhGAADD4oV8UsI6554.jpg)
![基于BS模式的烟草集团物资管理系统设计与实现第二稿_第5页](http://file4.renrendoc.com/view14/M02/2B/02/wKhkGWaIbDmAJDhGAADD4oV8UsI6555.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号:TP311单位代码:10422密级:学号:硕士学位论文论文题目:基于B/S模式的某烟草集团物资管理系统设计与实现The
designandimplementationaboutthematerialmanagement
system
of
a
certain
tobacco
group
based
on
theB/S
mode作者姓名专业软件工程指导教师副专家2023年10月10日分类号:TP311单位代码:10422密级:学号:硕士学位论文论文题目:基于B/S模式的某烟草集团物资管理系统设计与实现The
designandimplementationaboutthematerialmanagement
system
of
a
certain
tobacco
group
basedon
theB/S
mode作者姓名专业软件工程指导教师副专家2023年10月10日原创性声明和关于论文使用授权的说明原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要奉献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者署名:日期:关于学位论文使用授权的声明本人完全了解山东大学有关保存、使用学位论文的规定,批准学校保存或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论文的所有或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密论文在解密后应遵守此规定)论文作者署名:导师署名:日期:目录摘要 ③借助DDL指令实现剔除和升级。(5)ADO.NET还用于对分布式ADO.NET应用程序的基本对象“数据集”(Dataset)支持基于XML的传输格式和持久性,最后达成信息共享。数据集作为表达连接交互关系的数据结构,借助XML可实现序列化、写入、读取。(6)无论是数据访问连接ADO.NET还是ADO,两项连接都可以到数据库的显示连接。在ADO.NET中,读取前保持数据库的连续连接,立于当前位置保持锁定模式,开发人员即可使用数据读取器。当正在传输、查看和修改数据集中的数据时,为了给其他用户释放资源或锁定可以断开连接。借助ADO.NET,能通过改DataAdapter对象采用的字段,或借助加入能响应行升级日记的自定义代码,来掌控数据集更改传送到信息库的方法。借助次功能可以简化功能、修改验证检测或增多除此之外的一切解决,并且此类操作都无需对程序进行修改。有关更多信息,ADO与ADO.NET的比较数据更新直接解决类似批解决数据访问速度较慢快(由于在内存中)对于数据记录的访问RecordsetDataSet.Tables(数据表名称)数据搜索Recordset.findDataSet.Tables(数据表名称).select数据遍历Recordset.MoveNextMyDataSet.Tables(数据表名称).Rows(I+=1)一个字段Recordset.fields(字段名称)MyDataSet.Tables(数据表名称).Rows(x,y)通用性较难在主机间传递可以转成XML在网络间传递(可越过防火墙)数据表达较单纯(仅View和Table)较完整(可涉及多个数据表,以及其中的关联)系统资源较浪费(必须一直连接)。本章从系统设计应当遵循整体性原则、分解协调原则、目的优化原则出发讨论了系统设计应遵循的原则,介绍了系统开发的需求分析对比,分析了MIS结构下的B/S、C/S和两个方面系统设计的体系结构,从而得出了B/S模式下的数据库结构更加适合用户的需求,拟定系统架构为B/S模式的三层结构体系。具体介绍了VS2023下的ASP.NET和ADO.NET技术,详尽的描述了系统各个模块的具体功能设计和分析,描述了设备子类的应用方式和定义。最后对接下来的第五章将要讨论的数据库系统的作用进行了简要的介绍。(5)B/S架构近几年来,Internet是新兴的,并快速流行起来的信息技术。Interne的核心技术是WWW技术。WWW技术的最基本应用模式是浏览器/服务器(Browser/Server,B/S),使用超文本传输协议(HTTP,HypertextTransferProtocol),它采用超文本标记语言(HypertextMarkupLanguage,HTML),这些文献格式和公开的协议保证了数据在不同机型、不同操作系统平台下的高度协同性和一致性,让跨地区通信、信息互换非常容易和方便,这正是Internet技术的优越的地方。B/S是个开放、扩展性的结构。由于它的开放性加强了数据的共享范围和效率,并且在多数信息库中均合用。BS/结构的性价比比较高,所以B/S必然会成长为最新的信息管理系统。1.6本文的重要奉献1961年,美国人J.D.GALLAGHER一方面提出了管理信息系统(MIS)的概念,这概念是最全面,集合了各科目,包含了多方面,主描述公司中的数据管理,更能讲述管理决策的各类信息,帮助单位实现现代化管理。公司管理信息系统具有数据解决、评估、掌控、规划、协助决策等效用,如:(1)缺失的前后矛盾的信息拒绝出现。(2)决策及执行的相关条件能及时传达。(3)具体了解各因素之间的联系,准确无误的鉴定发展方向。(4)解释以及分析时间得到缩短。(5)通过提供可靠精确的数据,达成运用最短时间、最少经费的目的,促使领导层选择最佳的实行方案,达成提高公司经济效益的目的。[5]物资管理系统标志着计算机管理信息系统(MIS)得以成长的又一高度,物资管理系统是为领导者和决定者供应资料,用以协助他们执行重要决议,增长决议的科学性,具有强大的应用远景。随着电脑科技的进步,电脑应用也通过了数值计算和数据解决等历程,逐步向知识解决新领域进步。电脑在数据解决中保持的先进限度,是一个地区工业化水准和电脑应用科技限度的代表,更是促使电脑工业进步的能源。计算机在数据解决中的应用,仅限于在管理事物中发扬了电脑初级阶段的功能,所供应的资料一般不是决定者想得到的,但是对高层决定人员所必备的协助决定能力却被忽略了。要想使电脑对烟草公司管理事物起到更好的作用,本着管理代表决策的想法,就要使电脑更加直面的面对决策[6]。1.7本文的组织结构为解决某烟草集团中物资管理系统中只限于单地单机的物资管理系统的缺陷,文中研究和实现了一套基于B/S模式的网络化、支持远程异地管理的物资管理系统。开发和设计出的系统具有普遍的兼容性和相应的辅助管理功能,最终高效有序的实现了远程化、数字化的现代化物资运营管理模式。1.概括了国外和国内在物资管理系统方面现有状况,针对于某烟草集团的物资管理状况,提出了基于浏览器和服务器的(B/S)的网络架构物资管理系统和物资管理系统的数学模型。2.根据大型烟草公司的管理的特点,选用Rational公司研发的Rose建模工具对物资管理系统建立数学模型。采用UML语言对整个系统进行了分析和设计。。3.采用WindowsXP操作系统,IIS5.0网络信息服务器,基于VS2023的SQLSevrer2023数据库和ASP.NET的C#编程语言搭的物资管理系统平台。在总体分析的构架的基础上,拟定系统B/S模式的三层结构体系,分析和开发了了系统各个模块的具体功能4.设计实现了独立化模块功能,开发出了“某烟草集团物资管理系统”,实现了用户的登陆,操作员管理,物资订单编号,出入库明细查询、库存盘点、品牌、物料预警查询、需求提报,决策管理以及设备子类的管理等功能,并具体叙述了系统的框架界面。实现了烟草公司物资管理系统的数据库的网络动态更新、决策管理、通用化管理和远程资源共享等功能。
第2章系统需求分析在软件开发的过程中,无论项目大小,在系统设计之前,都应当对系统用户的需要有一个比较全面的了解,即要知道本次设计的系统究竟是要“干什么”,要完毕哪些任务、能实现什么功能。这些准备工作便是系统的需求分析。一个系统的设计全过程中,需求分析扮演了非常重要的角色。此项工作的好坏将直接影响到本次系统的设计是否可以成功,假如需求分析做不好,即使你有很强的编码能力,也无法设计出好的应用系统。2.1系统概述目前,在物流公司、仓储公司的物资管理中,物资的管理与相关的信息管理是靠人力来完毕的,因此,经常具有以下特点:管理过程复杂,需要工作人员靠人力用笔记录所有的物资信息;涉及物资存储位置、物资数量、物资周转信息等。管理结果比较杂乱,有些物资已经移出仓库出而工作人员并没有记录或记录的不清楚等。信息更新速度比较慢,有很多新的物资情况仅靠人力无法及时地更新。由于人力的管理能力有限,致使物资由于长期堆放在仓库,导致物资霉变,不能使用,导致了资源的浪费。而本次设计的物资管理系统系统,基本上可以解决仓库物资管理原有的种种问题,实现预先设计的功能。2.1.1系统的业务模型物资管理系统的业务模型,是对整个系统的应有的总体业务流程的总体概括和简朴描述,可以帮助读者或用户对系统有一个总体性的结识和了解。物资管理系统的业务用例模型如图2-1所示:图2-1物资管理系统的系统用例图2.1.2系统的业务流程由图中可以看出,在系统接受了用户指令之后,会根据得到的指令向下进行,或查询信息或管理数据库,在完毕用户所指定的操作之后,关闭本次业务。2.1.3系统的总体规定本次烟草集团物资管理系统的设计,是要完毕一个B/S结构的、可以在局域网内部对片库中所有物资进行有效管理的应用系统。系统将可以执行仓库管理,卷烟物资采购计划,调拨配送管理,协议管理。假如本次的系统开发成功,那本系统不仅承担着仓库物资的管理任务,还担负着其他一些卷烟物资采购计划制定,调拨配送管理,协议管理的管理工作。这样不仅仅给与物资管理的各个科室的工作减轻,还使物资的管理工作向信息化、规范化管理前进一大步。2.2系统目的和解决的问题2.2.1系统目的和解决的问题设计和实现一个功能相对完善的物资管理系统,是本次开发设计的目的。本系统不仅可以完毕物资信息的管理功能,并且用户可以对与物资有关联的相关信息进行管理,还可以根据自身情况制定卷烟物资采购计划、物资调拨配送管理等。本系统的设计和实行,不仅解决了本来物资管理混乱和物资存储混论与物资采购、物资调度带不明确的问题,并且减少了物资损耗率、提高了物资的有效运用;杜绝了物资资源的浪费、大大提高了工作效率;节省了大量的人力、物力和财力;此系统的实现还填补了物资管理的内部的一项技术空白,使物资管控更加现代化、工作更加人性化2.2.2频道片库磁带管理工作调查在起初获取系统需求时,由于缺少经验碰到了一些困难。例如由于被调查人员(也就是将来的系统用户)并不是学习计算机或软件工程专业的,所以交流时,经常由于他们对性能和需求的描述不是很准确,而导致设计人员的理解错误。这也给系统的需求分析带来了一定的困难。但是通过与用户的多次的沟通,最终使双方在系统需求方面达成了共识。近年来仓库物资管理工作的调查表如表2-1所示。表2-1仓库物资管理人员和工作对比表时间人员数量仓库物资总数(吨)物资调拨借出数量(吨)物资库存数量平均每吨的周转时间(天)2023572023年19221277932.872023年210871639242.232023年2152031012101.172023年3210851115930.71由表2-1不难看出,在连续几年内,仓库内物资的数量承上升趋势。特别是近两年,仓库的库物资数量增长迅速。在这个过程中,尽管也增长了工作人员的数量,但是仍然不能应付越来快的物资周转时间和周转数量。并且,由于之前一直是将陈旧的物资和刚入库的物资混在一起管理,事后很难记录周转的物资中陈旧物资和刚入库究竟各自占多少。因此,本次物资管理系统的设计与实现是非常适应工作需要。2.3系统需求问题描述2.3.1系统功能性需求本系统的设计,是按照UML的规定来严格实行的。在需求分析阶段,作者将系统的功能性需求先以UML用例图的形式表达出来,这对于系统的设计和实行是非常有利的。图中很清楚地表白了在磁带信息管理系统中包含的重要功能有:仓库管理、物资协议管理、卷烟物资采购计划、调拨配送管理。这些功能各自还包具有一定的子功能。并且根据用户的需求和实际管理工作的需要,系统要可以区分普通用户和系统管理员,普通用户和系统管理员的权限是不同的。系统管理员除了可以对系统中的物资仓库管理进行操作以外,还可以物资协议管理、卷烟物资采购计划制定、物资调拨。而普通用户只可以在系统中进行物资查询,协议查阅等功能,这也是根据需求调查时用户的规定来设计的。系统功能的用例图如图2-3所示。画用例并且对每个用例进行说明2.3.2系统非功能性需求非功能需求[7]涉及产品必须遵从的标准、规范和合约;外部界面的具体细节和性能规定;设计或实现的约束条件及质量属性。(1)环境需求表3.1服务器端环境系统所使用数据库MicrosoftSQLServer2023SP1操作系统Windows2023R2Web服务器IIS7.5数据库SQLServer2023客户端:表3.2客户端环境操作系统WindowsXP或其以上版本操作系统浏览器IE6.0以及其以上版本(IE7.0、IE8.0)分辨率最佳效果为1024×768像素(2)性能需求可维护性维护方法:系统能真正做到使自身在数据损坏、丢失等情况下将备份数据倒回,实现数据的恢复。提供对系统自身的集中操作维护的功能。易操作性界面设计:系统应提供美观实用,方便和直观的图形用户管理界面,充足考虑员工的习惯,简朴易学,操作方便,所有菜单驱动的解决和各种快捷键,一键功能以保证多数达成。可扩展性功能扩展:系统从系统结构、功能设计、管理对象等各方面的功能扩展来考虑,以满足用户此后系统扩充和扩大使用范围的规定。软硬件升级:系统应采用的硬件和软件平台,软件和硬件的负载平衡机制的可扩展性充足考虑。系统要具有灵活的扩展能力,来适应关键的软件和硬件的开发及管理能力的上升。开放性系统的数据格式应符合国家相关标准及行业标准,以此保证应用程序具有良好的互操作性和移植的也许。(3)安全需求容错性当用户输入或误操作导致非法数据产生时,系统应具有一定的容错机制。在这种情况下,系统应给出和谐的提醒,提醒用户重新输入或者进行自动的修复校正。系统的外在环境安全安全系统要以充足考虑网络的高级别,多层次的安全性措施为前提,涉及系统的备份,防火墙,用户权限和其他措施,以保证数据安全和机密信息不被泄露;考虑到系统的硬件和软件故障恢复等应急措施,以保障网络的安全和解决安全性。形成相对独立的安全机制,以防止来自系统外的未经授权的访问。系统内部安全保证外部系统安全的同时,该系统还必须保证授权用户的合法使用。系统运营安全从逻辑上讲,该系统应具有抵抗非法入侵的能力;在物理方面,该系统应保证没有潜在的单点故障,并提供资源的数据备份功能。系统支持定期自动和手动数据备份,可以在数据损坏或数据丢失的情况下找回数据,实现一定限度的数据恢复。1、可行性:在实现一个软件系统之前,一方面要判断这个软件系统的可行性。这就是需求分析所要完毕的任务,良好的需求分析有助于我们队可行性的分析。可行性分析的目的不是要去解决问题,分析各种方案的可行性,而是分析问题是否可以得到解决。可行性分析重要涉及以下几方面:经济可行性、技术可行性、方案可行性等。2、科学性:正如我们前面所说的,一个车辆管理系统必须是科学有效的,车辆的内容重要由各个环节组成,在保证功能性的同时,各个环节的时效性和对的性应当得到保证。3、安全性:安全性是每一个管理系统都要碰到的问题。系统必须制定一套完整防御方案,可有效抵制恶意用户对系统进行的袭击,有力提高系统的安全性,保证系统可以相对安全的部署、运营、维护、升级。4、可扩展性:在软件系统的使用过程中,系统的功能也许需要得到扩展,不断的加入新的功能,这就需要在设计系统时,重要涉及开发环境、系统界面、数据库设计等,要考虑到系统的可扩展性。5、有效性:良好的车辆管理系统应当必须是给公司带来经济效益的,所以在设计系统时,应充足调研公司的实际情况以及单位领导的规定,保证系统的科学性、有效性。
第3章系统架构设计这章重要是物资管理系统在烟草集团方面的研究,采用第一章提到的UML设计相关的模型,运用一切与文章有关因素建模。3.1系统目的和原则3.1.1系统的设计目的本次的开发,希望可以设计并实现一个信息安全、可靠,使用简洁、明了,安装方便、快捷,易学、易用并且易于扩展的磁带信息管理系统,可以通过电视台内部的局域网让编辑、记者或片库管理员在片库以外的地方正常使用系统,并完毕他们所需要的功能。系统可以完毕的重要功能有:可以区分管理员和普通用户的系统登录、磁带的借阅管理、磁带信息的查询、磁带信息排序、系统数据库的管理、报表记录和打印、帮助等。除此以外,还可以根据用户需要,对与磁带有关的相关信息进行一定范围内的查询。3.1.2系统的设计原则本次系统的开发,一方面要遵守的是软件开发的统一过程,并用统一建模语言(UML)来严格控制实行。另一方面,本系统的设计还要遵循的一系列原则是:系统安全性原则系统数据的可靠性原则[2]系统安装的方便、快捷原则系统的易学、易用、使用简洁的原则[3]系统的可扩展性原则3.2系统技术架构设计3.2.1系统总体架构由于本系统是B/S架构的,所以系统的总体架构可以用B/S结构图来表达。系统的B/S结构图如图3-1所示。图3-1B/S结构图B/S结构的应用系统,只需要打开浏览器,通过网络访问服务器。系统的很多工作直接提交给服务器。3.2.2数据架构系统数据库是整个系统的基础,其中数据架构可以由图表达出来,各种数据之间存在着一定的联系,具体系统数据架构图如图3-2所示。图3-2系统数据结构图3.2.3部署架构部署架构说明用来部署和运营该软件的物理配置。本部分重要表白系统重要功能在物理节点上的分布情况,重点内容是本系统的软件部署情况,忽略例如操作系统、防火墙等第三方软件系统,可以把整个应用系统的部署简化如图3-3所示。图3-3应用系统部署图由于目前的系统是在的局域网内部安装并使用的,所以本系统的部署图结构比较简朴,只涉及到的局域网内的客户端和服务器,图中系统的终端就是用户使用的客户端机器,服务器和数据库都安装在域网内的担任的服务器机器上。3.3系统功能架构设计一个系统的设计,要考虑整个系统实现的功能,所以在进入编码之前,要有系统的功能架构图。根据这个架构图可以清楚地看到系统的各个模块以及各模块可以完毕的功能。系统的设计将根据图中的各个模块,分别进行各种功能的实现。系统的功能架构如图3-4所示。图3-4系统功能架构图BS模式的某烟草集团的物资管理系统使用的模块有仓库管理、卷烟物资采购技术管理、物资协议管理。其中每个模块的如下:仓库管理模块里面涉及的功能有,员工管理、仓库管理、货品管理、存储规则管理、货品进出控制和仓库需求生成。卷烟物资采购计划管理模块涉及的有,制定采购计划、修改采购计划、查询采购计划、删除采购计划。物资协议管理模块的功能有,协议编辑、协议插叙、协议修改、协议记录分析。调拨配送管理模块的功能有,供应商选择、物资转移。
第4章系统的具体设计4.1系统建模系统的具体设计是对系统架构的细化,重要是在系统的需求分析和架构设计的基础上对系统用例中使用的类和对象进行进一步的精细,拟定类的属性和方法,拟定系统执行的时序和对象之间的协作关系。本章对系统具体设计进行了比较具体的阐述。4.1.1系统的静态结构图系统的静态结构图是指系统的关系类图,系统的关系类图一般都是在需求分析过程中产生的领域模型的基础上精化产生的。在本系统中,为了清楚地抽取出系统的核心架构,采用的是分层设计类图的方式,一方面设计整个系统的类图,另一方面设计每个子系统(包)的类图,最后设计每一个用例的类图。这里只举出系统关系类图,系统的关系类图如图4-1所示。图4-1系统的关系类图4.1.2系统的动态结构图图4-2某烟草集团物资库存管理顺序图图4-3系统活动图4.2系统数据库设计4.2.1系统数据库的逻辑结构工作仓库信息工作仓库信息用户信息用户信息进出记录进出记录存放货品信息存放货品信息协议协议项目信息项目信息协议过程协议过程工作员工信息当前单位信息工作员工信息当前单位信息图4-4系统E-R图4.2.2系统数据表关系既然是数据库的建立,就应当对有关数据的获得、数据来源的分析、数据可靠性的判断、数据的筛选、数据的分析和总结等等多个有关数据的问题进行考虑和分析,由于只有得到精确、可靠的数据,建立的数据表格才更具有说服力,同时有关提到的模型的运用才会更加准确和接近实际。那么就应当要有数据,数据的可靠性为表的制作提供了来源,建立数据库时不仅应当想到所使用的数据是否具有极大的准确性和安全性,并且数据库还应当拥有这样的一些功能,比如进行访问者的身份辨认功能等等,只有这样,才干使数据库之间的内容有着更加紧密的关联性,由于数据表格相对于有关的文字性信息来说的话,其所代表的信息更加具体和有规律性,因此在已经建立好的数据表格中寻找模型所需要的各种数据信息,同时根据这些数据各自的特点和属于的类型来分别带入到模型中进行分析,这样所建模型才会更加准确;但是仅仅有一个带有数据的数据表格完全是不够的,应当还要对该表格中的数据建立相应的数据库,因此就应当拥有一套完整的数据库,相对于数据表格来说数据库是相对庞大的,它会对有关数据表格中的所有数据建立一个比较庞大的数据体系,由于一次操作所得到的的数据内容也许会存在一定的偏差,因此要在更多的数据中寻找彼此之间的关系,例如:可以通过对一个数据表格中在相应的数据库中的很多数据求平均值、或者将数据库中的数据与某一特定的数据通过SPSS等建立一个多元或者一元线性回归方程来建立彼此之间的关系等,此外数据库要充足考虑到整体性,这样是由于在一个数据库当中,由于没有考虑到它的整体性,数据信息的不对的录入导致了这样的结果,那就是操作没有效果与得出的结果是错误的,由于对于错误数据的操作也会对有关模型的建立产生一定的促进作用,由于只有存在了错误才会使相关建立模型的人员找犯错误的存在之处,这样通过有关对立面的完善也能使有关模型和数据的相应上做出更好完善和修复,这样对模型和数据都会产生很好的促进作用;最后是数据库的通用性设计,设计出来的数据库应适合更多的运用,由于只有将建立好的数据库运用到多种计算中,才干体现该数据库的价值,这样在对该数据库的建立才会更故意义,由于数据库的建立是要花费一定的人力、物力、财力的,假如花费了很多精力所建的数据库仅仅合用于一个模型或者一个计算中,那么这个数据库存在的价值也就会大大下降,同时对所花费的成本也达不到预期的效果,甚至会出现本末倒置的现象,假如所建立的一个数据库是全面的、相对完整的,同时也能合用于多种模型软件中,那么在此后的工作或者操作过程中只需要对数据库中的数据进行不断的更新或者不断的完善就能满足不断变化的内外部环境,这样建立的数据库才干达成长期被应用的作用,同时一个通用性的MIS软件在数据结构方面应具有自适应能力。在对有关物资的设计过程,应当根据具体的规定,或者是有关的特定规定等,并且还应当紧随着大表细分当中提到的问题,在构建这样的相关物资表时候,可以制作出9个数据表,以满足物资管理系统的需求,比如用户信息表这个表格当中,是由Member,MemberName,DepartmentId,Pwd和Role这5个方面所组成的了;在部门信息表这一个表格中,是由DepartmentId和DepartmentName这2个方面所构成的,而角色权限表这一块当中,内容比较多些,重要是由RoleId,ControllName,ControllWeb,Rolel,Role2和Role3这6个方面构成。以上这些列名、数据类型、长度和字段描述如表4-1、4-2和4-3所示,其中4-1重点记录的是有关用户的一些信息内容、4-2记录的是有关部门的信息表、4-3则记录的是有关角色权限的一些内容。这三个表达系统级别的共用信息,信息是共享的,由于这三张表中的内容是互相贯通和互相联系的,只有具有了用户信息后才干生成部门信息,同时也只用当用户信息表和部门信息表都建立完善之后才干根据用户和部门的信息内容建立相相应的角色权限表,因此这三张表是缺一不可,并且彼此之间存在一定的逻辑性和关联性,因此也只有具有最高管理权限(系统管理员)的用户才干对这些表进行编辑。这三个系统之间属于不同的模块,由于各个模块不同,再根据不同的模块的功能规定建立相应的表,模块拟定数据表的多样性,同时也只有以上三个表格的数据都比较完善后才干建立有关仓库上的管理信息、货品上的信息、存储信息当中的规则信息、货品入库以及出库时候的相关信息记录、签订的关于协议方面的信息以及进行系统日记解决的信息数据表。但是需要的注意的是在已建立成的用户信息表、部门信息表和角色权限表到最后的仓库信息表、货品信息表、存储规则信息表等的这几个表格中,应当建立有关的系统日记信息表、系统协议信息表,由于对有关物资数据库的建立少不了物资的管理时间,以及有关物资的协议信息等内容,这样建立的数据库才会更加完善和精确。其重要的数据库的内容见4-4到4-8所示。把该数据库名定义为mydatabase。表4-1用户信息表(Memberinfo)列名数据类型长度字段描述MemberIdvarchar15用户ID(用户登陆时的ID,设计时要考虑字符长度)MemberNamevarchar15用户名DepartmentIdint4所属部门ID,区别其他部门Pwdvarchar15用户密码(在设计时密码暂时为空,由使用者自由设定)Roleint5用户角色(1代表物资管理系统的管理员身份,2代表部门领导身份3代表一般的用户身份)表4-2系统协议信息表(contractinfo)列名数据类型长度字段描述contractIdint6每份协议的唯一IDDepartmentIdint6协议签署部门的ID号ContractSnvarchar10具体的特定编号ContractTitlevarchar15分类协议的标题TotalChargedecimal15单份协议的金额SubscribeDateDate10具体的协议签订日期ContractStatevarchar15表达协议目前的签订状态ContractRemarktext20对协议一些附属规定进行备注说明表4-3部门信息表(Departmentinfo)列名数据类型长度字段描述DepartmentIdint4部门ID(自增字段,主键)DepartmentNamevarchar20部门名称表4-4角色权限表(Roleinfo)列名数据类型长度字段描述RoleIdint5部门权限ID号(该字段可以自由设定)ControllNamevarchar25操作名称(用来诠释操作对象或过程的方向)Roleint5角色组表4-5货品信息数据表列名数据类型长度字段描述GIDint5明确具体货品的单一ID号(主键)GNamevarchar15具体货品的名称GDescribevarchar15描述商品的特性,如规格,存贮规定,保质期或存放说明等GAmountint25描述具体商品的数量表4-6仓库信息数据表(Warehouses)列名数据类型字段长度字段描述WIdint8惟一ID号,作为索引(主键)WNamevarchar15该仓库的名称WAddressvarchar15所述仓库的具体位置WDescribevarchar80描述仓库的一些具体属性,如存储量等表4-7货品进出库记录数据表列名数据类型长度字段描述RWIDint8货品入库的仓库号RQuantityFloat10表达货品的进出场的数量及规格RtypeBit5记录目的货品是否入库,1表达入库,2表达不入库RManagerint5特定货品进出仓库负责人的实际IDRHandlerVarchar15具体货品进出仓库的实际经办人表4-8存储规则信息数据表列名数据类型长度字段描述SIDint5记录商品状态存储规律的仅有ID号(主键)STopLineFloat10该商品目前的最高储存量SbaseLineFloat10该商品目前的最低临界点SQuantityFloat5该商品目前的实际存货量通过以上这九个表格的建立,已经对有关物资系统数据库从开始到最后的各个库存和存储中心的数据建立有了相对清楚的结识,因此在建立相相应的数据库的过程时就应当从以上的这几个方面进行考虑,从数据库建立的每个细节和每个模块进行入手,以其达成数据库建立的完备性和可靠性。
第5章 系统的实现5.1系统的总体实现在系统的实现上,本文的作者依据文章第三章和第四章对系统体系结构、业务模块和数据库的具体设计,分别对各个功能模块进行了具体的实现,对数据库进行的设计后的实际实行,将业务逻辑映射为系统操作,进而完毕设计与代码之间的映射工作。开发语言选择的Delphi7语言环境,数据库采用InterBase数据库系统。在连接技术上,由于BDE(数据库引擎)被自动地包含在Delphi7中,并且Delphi7的安装程序自动为InterBaseServer安装相应的驱动程序,并建立了有关的配置,所以,就直接建立了应用程序与数据库之间的信息连接。系统的总体实现,是需要多个环节、多个层次的。作者通过在主界面设立磁带候选栏的方法,来减少系统中的对话框的数目;作者运用了在查询条件处设计下拉菜单项的方式,使繁琐、复杂、涉及面较广的信息查询功能在一个对话窗口中就可以完毕;作者还运用了特别设计的右键菜单功能项,来简化系统的操作环节,使用户在找到了所需要的数据信息后,就可以直接点击右键,通过右键弹出的菜单功能项来完毕下一步的操作,节省用户了再次调出相关的功能窗口的时间和精力,使系统的操作更加地简朴、方便。对于系统的总体实现,还可以通过系统的状态流程图来表现。具体如图5-1所示。5.2用户身份验证模块的实现重要是验证登陆烟草物资管理系统的用户身份,根据用户权限的不同,重要有以下几个控件组成:一个部门按钮、一个职位按钮、一个姓名按钮、一个工号按钮尚有一个取消按钮组成。Objectobj=hrequest.getSession().getAttribute("currentUserBean"); if(obj!=null){ userCommon=(UserCommonBean)obj; if(!userCode.equals(userCommon.getUserCode())&&!"".equals(userCode)){ Enumeratione=hrequest.getSession().getAttributeNames(); while(e.hasMoreElements()){ StringsessionName=(String)e.nextElement(); if(isDeleSessionAttribute(sessionName)){ hrequest.getSession().removeAttribute(sessionName); System.out.println("sessionName==="+sessionName); } } userCommon=null; } } if(userCommon==null&&!uri.equals("/index.jsp") &&!uri.equals("/login/resp/selectResp.jsp")){ }else{ if(userCommon==null){ StringrespId=XzUtils .notNull(hrequest.getParameter("respId")); if(!respId.equals("")){ UserCommonBeanuser=xzpLoginVAction.getlogonUser( userCode,respId); StringfunctionId=XzUtils.notNull(hrequest .getParameter("FunctionId")); if(functionId==null||functionId.equals("")){ functionId="0"; } user.setCurrentFunctionId(functionId); user.setCurrentFunctionCode(XzUtils.notNull(xzpLoginVAction .getFunctionCode(functionId))); user.setOrgId(XzUtils.notNull(hrequest .getParameter("orgId"))); ((HttpServletRequest)request).getSession().setAttribute( "currentUserBean",user); } }else{ StringfunctionId=XzUtils.notNull(hrequest .getParameter("FunctionId")); StringrespId=XzUtils .notNull(hrequest.getParameter("respId")); StringorgId=XzUtils.notNull(hrequest.getParameter("orgId")); if(respId!=null&&(!respId.equals(""))){ if(!respId.equals(userCommon.getCurrentRespId())){ userCommon.setCurrentRespId(respId); ((UserCommonBean)((HttpServletRequest)request) .getSession().getAttribute("currentUserBean")) .setCurrentRespId(respId); } }其中查询、删除的SQL语句如下:Stringsql="selectxd.id,,xd.description"+ "fromxsr_pub_userdutyxu,xsr_pub_dutyxd"+ "wherexu.user_id='"+userId+"'"+ "andxu.enabled='Y'"+ "andxu.duty_id=xd.id";其中查询、删除的SQL语句如下:Stringsql="selectxd.id,,xd.description"+ "fromxsr_pub_userdutyxu,xsr_pub_dutyxd"+ "wherexu.user_id='"+userId+"'"+ "andxu.enabled='Y'"+ "andxu.duty_id=xd.id";5.3用户信息管理模块的实现重要有用户信息编辑按钮和用户密码的修改按钮组成,前提是该用户已经通过了用户身份的验证。publicvoidcreate(){ HashMapoutDto=newHashMap(); StringBuffermsg=newStringBuffer(); BigDecimalkeyId=newBigDecimal("-1"); try{ keyId=(BigDecimal)xzpUserVService.editObject(xzpUserV); if(keyIValue()>0){ msg.append(XzConstants.SUCCESS); msg.append("记录号"+keyId+"保存成功!"); }else{ msg.append(XzConstants.ERROR); msg.append("当前记录保存失败!"); } }catch(Exceptione){ msg.append(XzConstants.ERROR); msg.append(XzUtils.formatException(e.getCause().getMessage())); e.printStackTrace(); }finally{ try{ this.showMsg(msg.toString(),outDto); outDto.put("keyId",keyIValue()+""); write(JsonHelper.encodeObject2Json(outDto),this.getResponse()); }catch(IOExceptione){ e.printStackTrace(); } } } publicvoiddelete(){ HashMapoutDto=newHashMap(); StringBuffermsg=newStringBuffer(); try{ intcount=(Integer)xzpUserVService.delete(xzpUserV); if(count>0){ msg.append(XzConstants.SUCCESS); msg.append("记录"+xzpUserV.getUserId()+"删除成功!"); }else{ msg.append(XzConstants.ERROR); msg.append("记录"+xzpUserV.getUserId()+"删除成功!"); } }catch(Exceptione){ msg.append(XzConstants.ERROR); msg.append(XzUtils.formatException(e.getCause().getMessage())); e.printStackTrace(); }finally{ try{ this.showMsg(msg.toString(),outDto); write(JsonHelper.encodeObject2Json(outDto),this.getResponse()); }catch(IOExceptione){ e.printStackTrace(); } } }其中查询、修改的SQL语句如下SelectUSER_ID,USER_CODE,USER_NAME,PASSWORD,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN,CLEAR_PASSWORD,ENCRYPTED_PASSWORD,START_DATE,END_DATE,PASSWORD_DATE,PERSON_ID,PERSON_NAME,IS_BUYERxzp_userinsertintoXZP_USER_V(USER_ID,USER_CODE,USER_NAME,PASSWORD,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN,CLEAR_PASSWORD,ENCRYPTED_PASSWORD,START_DATE,END_DATE,PASSWORD_DATE,PERSON_ID,PERSON_NAME,IS_BUYER)values(#userId:DECIMAL#,#userCode:VARCHAR#,#userName:VARCHAR#,#password:VARCHAR#,#lastUpdateDate:DATE#,#lastUpdatedBy:VARCHAR#,#creationDate:DATE#,#createdBy:VARCHAR#,#lastUpdateLogin:VARCHAR#,#clearPassword:VARCHAR#,#encryptedPassword:VARCHAR#,#startDate:DATE#,#endDate:DATE#,#passwordDate:DATE#,#personId:DECIMAL#,#personName:VARCHAR#,#isBuyer:DECIMAL#)updateXZP_USER_VsetUSER_ID=#record.userId:DECIMAL#,USER_CODE=#record.userCode:VARCHAR#,USER_NAME=#record.userName:VARCHAR#,PASSWORD=#record.password:VARCHAR#,LAST_UPDATE_DATE=#record.lastUpdateDate:DATE#,LAST_UPDATED_BY=#record.lastUpdatedBy:VARCHAR#,CREATION_DATE=#record.creationDate:DATE#,CREATED_BY=#record.createdBy:VARCHAR#,LAST_UPDATE_LOGIN=#record.lastUpdateLogin:VARCHAR#,CLEAR_PASSWORD=#record.clearPassword:VARCHAR#,ENCRYPTED_PASSWORD=#record.encryptedPassword:VARCHAR#,START_DATE=#record.startDate:DATE#,END_DATE=#record.endDate:DATE#,PASSWORD_DATE=#record.passwordDate:DATE#,PERSON_ID=#record.personId:DECIMAL#,PERSON_NAME=#record.personName:VARCHAR#,IS_BUYER=#record.isBuyer:DECIMAL#图5-2用户信息管理模块的实现界面图5.4部门信息管理模块的实现在用户信息编辑系统中将各个部门的员工的进行归类,因此在这个模块的现实重要基于用户身份验证和用户信息管理的实现。重要由部门按钮、一个工号按钮和一个推出按钮组成。publicvoidcreate(){ HashMapoutDto=newHashMap(); StringBuffermsg=newStringBuffer(); BigDecimalkeyId=newBigDecimal("-1"); try{ keyId=(BigDecimal)xzpOrganizationVService .editObject(xzpOrganizationV); if(keyIValue()>0){ msg.append(XzConstants.SUCCESS); msg.append("记录号"+keyId+"保存成功!"); }else{ msg.append(XzConstants.ERROR); msg.append("当前记录保存失败!"); } }catch(Exceptione){ msg.append(XzConstants.ERROR); msg.append(XzUtils.formatException(e.getCause().getMessage())); e.printStackTrace(); }finally{ try{ this.showMsg(msg.toString(),outDto); outDto.put("keyId",keyIValue()+""); write(JsonHelper.encodeObject2Json(outDto),this.getResponse()); }catch(IOExceptione){ e.printStackTrace(); } } } publicvoiddelete(){ HashMapoutDto=newHashMap(); StringBuffermsg=newStringBuffer(); try{ intcount=(Integer)xzpOrganizationVService .delete(xzpOrganizationV); if(count>0){ msg.append(XzConstants.SUCCESS); msg.append("记录"+xzpOrganizationV.getOrganizationId() +"删除成功!"); }else{ msg.append(XzConstants.ERROR); msg.append("记录"+xzpOrganizationV.getOrganizationId() +"删除成功!"); } }catch(Exceptione){ msg.append(XzConstants.ERROR); msg.append(XzUtils.formatException(e.getCause().getMessage())); e.printStackTrace(); }finally{ try{ this.showMsg(msg.toString(),outDto); write(JsonHelper.encodeObject2Json(outDto),this.getResponse()); }catch(IOExceptione){ e.printStackTrace(); } } }其中其中查询、修改的SQL语句如下SelectORGANIZATION_ID,ORGANIZATION_CODE,ORGANIZATION_NAME,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATED_BY,LAST_UPDATE_LOGIN,CREATION_DATE,START_DATE_ACTIVE,END_DATE_ACTIVEfromXZP_ORGANIZATION_VinsertintoXZP_ORGANIZATION_V(ORGANIZATION_ID,ORGANIZATION_CODE,ORGANIZATION_NAME,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATED_BY,LAST_UPDATE_LOGIN,CREATION_DATE,START_DATE_ACTIVE,END_DATE_ACTIVE)values(#organizationId:DECIMAL#,#organizationCode:VARCHAR#,#organizationName:VARCHAR#,#lastUpdateDate:DATE#,#lastUpdatedBy:VARCHAR#,#createdBy:VARCHAR#,#lastUpdateLogin:VARCHAR#,#creationDate:DATE#,#startDateActive:DATE#,#endDateActive:DATE#)updateXZP_ORGANIZATION_VsetORGANIZATION_ID=#anizationId:DECIMAL#,ORGANIZATION_CODE=#anizationCode:VARCHAR#,ORGANIZATION_NAME=#anizationName:VARCHAR#,LAST_UPDATE_DATE=#record.lastUpdateDate:DATE#,LAST_UPDATED_BY=#record.lastUpdatedBy:VARCHAR#,CREATED_BY=#record.createdBy:VARCHAR#,LAST_UPDATE_LOGIN=#record.lastUpdateLogin:VARCHAR#,CREATION_DATE=#record.creationDate:DATE#,START_DATE_ACTIVE=#record.startDateActive:DATE#,END_DATE_ACTIVE=#record.endDateActive:DATE#图5-4部门信息管理模块实现的界面图5.5协议管理模块的的实现该模块涵盖了大量的协议信息,分为协议编辑、协议查询、协议修改和协议记录分析几个子模块,在协议编辑模块的实现中又需要有协议编号、名称、签订单位、金额等信息。因此要查找一个协议就很困难,所以协议管理模块用于根据用户输入的条件查出特定的协议,查询条件重要是根据唯一的协议编号。publicvoidactionLister(ActionEventactionEvent){//CurrentUser.setTemporaryFunctionCode(FacesContext.getCurrentInstance(),//"SUPPLIER_SELECT_LV");CurrentUser.setTemporaryFunctionCode(FacesContext.getCurrentInstance(),"PRUDUCT_SUPPLIER_SELECT_LOV");CurrentUser.setTemporaryFunctionParamMap(FacesContext.getCurrentInstance(),"");}publicvoidgetReturnLisener(ReturnEventreturnEvent){DCDataControldc=getDCBindingContainer().findDataControl("xzDefaultAMDataControl");xzDefaultAMappAM=null;appAM=(xzDefaultAM)dc.getDataProvider();/*设立功能名称*///Stringtemp1=//QueryPublicTools.getPublicAttributeByColCode(appAM,"SUPPLIER_SELECT_LV",//"SUPPLIER_ID");//Stringtemp2=//QueryPublicTools.getPublicAttributeByColCode(appAM,"SUPPLIER_SELECT_LV",//"SUPPLIER_NAME");Stringtemp1=QueryPublicTools.getPublicAttributeByColCode(appAM,"PRUDUCT_SUPPLIER_SELECT_LOV","SUPPLIER_ID");Stringtemp2=QueryPublicTools.getPublicAttributeByColCode(appAM,"PRUDUCT_SUPPLIER_SELECT_LOV","SUPPLIER_NAME");Objecto=returnEvent.getReturnValue();if(o!=null){JUCtrlValueBindingReftableRowRef=(JUCtrlValueBindingRef)o;StringProvSupplierId=tableRowRef.getRow().getAttribute(temp1).toString();StringProvSupplierName=tableRowRef.getRow().getAttribute(temp2).toString();if(ProvSupplierId!=null&&ProvSupplierId.length()>0){this.getProvSupplierId().setSubmittedValue(null);this.getProvSupplierId().setValue(ProvSupplierId);AdfFacesContext.getCurrentInstance().addPartialTarget(this.getProvSupplierId());}if(ProvSupplierName!=null&&ProvSupplierName.length()>0){this.getProvSupplierName().setSubmittedValue(null);this.getProvSupplierName().setValue(ProvSupplierName);AdfFacesContext.getCurrentInstance().addPartialTarget(this.getProvSupplierName());}}if(o==null){this.getProvSupplierId().setSubmittedValue(null);this.getProvSupplierId().setValue("");AdfFacesContext.getCurrentInstance().addPartialTarget(this.getProvSupplierId());this.getProvSupplierName().setSubmittedValue(null);this.getProvSupplierName().setValue("");AdfFacesContext.getCurrentInstance().addPartialTarget(this.getProvSupplierName());}}DataSetmyds=datacon.getds("selectstor_noas所属仓库号,P_noas零件号,Amountsas库存量froms_p","s_p");dataGridView1.DataSource=myds.Tables["s_p"];doperate.cboxBind("selectstor_nofromstorage","storage","stor_no",cmbStorage);doperate.cboxBind("selectP_nofrompart","part","P_no",cmbPart);显示库存也就是从数据库中把信息显示到界面上,这里以dataGridView作为容器存放。记录库存代码:DataSetmyds=datacon.getds("selectAmountsas库存量froms_pwherestor_no='"+cmbStorage.Text+"'andP_no='"+cmbPart.Text+"'","s_p");dataGridView1.DataSource=myds.Tables[0];至于入库与出库操作则需要依靠DataOperate类中的相关操作。5.6重要技术分析本次的设计实现中,重要涉及到了两方面的技术,一是数据库的技术,二是ASP的使用技术。对于ASP技术自身存在的技术特点如下:1.无需编译ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。2.易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用品有可视化编辑能力的VisualInterDev。3.独立于浏览器用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观测*.asp主页,在浏览器端见不到对的的页面内容。4.面向对象在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveXServerComponent(ActiveX服务器组件)来扩充功能。5.与任何ActiveXscripting语言兼容除了可使用VBScript和JScript语言进行设计外,还可通过Plugin的方式,使用由第三方所提供的其它scripting语言。6.源程序码不会外漏ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛劳苦编写出来的程序代码不会被别人盗取。对于SQLServer有如下的技术优势其重要特点如下:(1)高性能设计,可充足运用WindowsNT的优势。(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。(3)强壮的事务解决功能,采用各种方法保证数据的完整性。(4)支持对称多解决器结构、存储过程、ODBC,并具有自主的SQL语言。SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个杰出的数据库平台。5.7系统的测试系统设计和实现完毕之后,由于时间的限制,只在小范围内做了软件的测试。测试时间为2023年1月4日至2023年1月20日。在为期16天的测试工作中,一方面做的单元测试;另一方面是系统的集成测试,测试系统数据是否符合规定;之后测试系统的性能是否达成了设计规定;最后是确认测试,拟定系统是否完毕是用户的需求。在测试之后,作者改善了系统中一些局限性之处,使系统更加的完善,系统性能也得到了相应的提高。5.8对升级版本的规划
第6章 结论本文重要基于B/S网络化模式下,讨论了XX物资管理系统所涉及的理论、方法和系统的。归纳总结了某烟草集团物资管理信息系统开发和使用情况,提出了重要问题的系统规定,系统的决策支持功能,来解决这些问题,论文研究的重要方法根据一个烟草公司的物资管理活动,以及系统需求分析的特点,信息系统必须采用模块化的方法,烟草集团将继续扩大和完善在使用过程中,以适应不断变化的物资管理,并在的PMEIS发展过程中,这些想法的实行,开发物资管理信息系统,通过了系统测试。大型烟草公司的物资管理活动,结合烟草(集团)物资管理标准的管理信息系统开发,物资管理信息系统是烟草公司和用户需求运营的一个实际应用的实际需求特点的分析。本论文重要存在以下特点:1.本文通过B/S三层结构的采用,简化了软件系统的操作性。2.采用面向对象的建模技术和方法,并能更好地把握用户的需求,奠定了必要的基础,该系统的成功开发和软件维护。3.物资管理系统得以实现,各个部分都得到合理高效的发挥出来。4.每个管理过程都要有单位,来保证它的顺利进行,合理运用物资资源。5.灵活运用方法对数据库的管理,模型库采用了新的表达方法,即数据表达法。在现代的物资管理系统中,无论是在理论研究或应用程序开发领域的物资管理系统,都取得了丰硕的成果,但在过去几年中,系统科学领域,系统的分析和建模、通讯、新工具、新方法、开发的物资管理系统的性能良好,也是一次机会,给予新一代的物资管理系统一个新生机会,表现出极大的优势表现出极大的优势。例如,用于决策支持、专家系统和物资管理系统的集成多媒体技术的发展,数据仓库的数据源,人工智能、联机分析解决、数据挖掘技术、Internet/Intranet技术给物资管理系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通银行福建分行社会招聘笔试真题2023
- 北海市政府采购中心招聘笔试真题2023
- 结构力学优化算法:灵敏度分析:有限元方法在结构优化中的应用
- 开学第一课-一年级开学第一课
- 气动工具作业安全技术操作规程
- 黄金卷08(解析版)-【赢在高考·黄金8卷】备战2024年高考地理模拟卷(湖北专用)
- 黄金卷02(考试版)-【赢在高考·黄金8卷】备战2024年高考地理模拟卷(全国卷老教材)
- 适用于新高考新教材备战2025届高考历史一轮总复习第1单元从中华文明起源到秦汉统一多民族封建国家的建立与巩固课时练第2讲诸侯纷争与变法运动课件
- 数字电子技术(第3版)-课件 第五章2
- 卒中个案护理
- 工业控制系统网络安全威胁与防护
- 机修岗位安全培训
- 企业年度生产计划书
- 七年级信息技术-开学第一课教学内容
- 《分析化学实验》武大电子书
- 红色文化剪纸课程设计
- 常见体表肿物课件
- 护理人科普小知识讲座
- 医院被服采购项目投标方案
- 2024年重庆市水投集团招聘笔试参考题库含答案解析
- 中国人寿合作协议书
评论
0/150
提交评论