版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I第1章系统概述1.1系统开发背景近年来随着5G互联网网络的到来,随着当代我国信息科学和技术及其经济的飞速发展,信息化工程建设不断深入和推进,信息技术被广泛运用,信息网络快速普及,网络上的信息技术也获得了巨大而又迅猛的发展。随着当前我国社会和环境的发生巨大变化,经济迅猛发展,生活方式也在很大程度上发生了重大的改变。但是对于线下的点餐系统我们只有在一些客流量比较大的酒店才真正能够在线下看见,对于一些小餐厅或者饭馆来说仍然是采用传统的手工记录方式来进行点餐,正是基于这种网络环境本次研究所设计的课程题目就是“基于Web点餐系统的设计与实现”,所以该系统主要适用于小餐馆和餐厅,最多在一百桌以内这样规模的餐厅,这种系统主要是安装在终端客户机上,用户进入餐厅后再客户机上根据操作流程进行点餐下单,如果遇到老年人或者不会操作的,相应的服务员会帮助其点餐下单,下单付款成功,直接在所在餐桌等候就可以了。那么这种点餐方式区别于传统的电话点餐、线下门店手工点餐。传统点餐模式中存在的问题是难以计算、不易查找、不易更改、容易出错、效率低下、管理混乱等缺点。为了克服传统点餐的缺点,提高点餐效率,适应当前点餐形式的发展,我们采用先进的线下点餐系统弥补传统点餐方式的不足,提高点餐效率,减少点餐错误率,精简餐厅点餐的流程,而且这种小系统开发成本低,人们易于接受,容易向广大客户推广。这种小系统可以让顾客的点餐更加便捷,有利于提高餐厅的营业额,减少人工成本。这次毕业设计“基于Web点餐系统的设计与实现”主要是运用自己所学的知识来解决现实的实际问题。Web点餐系统中主要包含了两个主要的用户角色,顾客和店家。该管理系统极大额地简化了管理流程,使得对餐厅管理变得更加高效快捷,极大的改善了工作人员的工作环境,提高了餐厅管理者和工作人员的工作效率,为顾客和消费者提供了更加友好的服务和用户体验。现在的人们开始寻求一种更加便利快捷舒适的生活方式。计算机互联网络是进一步提高人们物质生活水平的重要工具,从它的诞生以后,人们对于网络的普遍依赖和接受程度也就越来越高,网络的普及给人们带来了新的消费途径和方式,例如网上就出现了很多销售网站,娱乐网站等线上消费形式,所以这个点餐系统也就孕育而生,这个点餐系统正是基于一种B/S架构的系统模式,上手简单,操作便捷。该项目在系统的稳定性、可靠度以及整个项目的延伸性上都占有很大的市场优势。此外,对一些与Java密切相关的技术也进行了深入的研究,设计并制定和实现了该软件,并为将来很多可能需要做的其他工作奠定了有效而坚实的基础。1.2开发环境与主要技术1.2.1技术选择点餐系统它作为一种销售类的管理系统,实用性较强,满足用户对业务上的需求,便宜餐厅对点餐数据的分析统计,从它的整体页面结构上来看一定要有自己的特点,页面要美观简洁,突显出自己餐厅的特色和风格。只有这样才能够吸引住顾客的眼球,使得顾客们满足该系统的业务功能需求,更好地为客户实施更人性化的服务。本项目采用的运行环境是Jdk1.8、后台服务器Tomcat9、数据库MySQL1.5和软件开发平台Eclipse。项目使用的技术主要包括前台css、Javascript、JQuery、Bootstrap等技术,后台主要使用的的Jsp、Servlet、JDBC等技术。俗话说的好“兵马未动,粮草先行”所以首先对项目开发的环境、技术、需求分析做个简要的说明。而本次毕业的设计的任务是,构建一个“基于Web点餐系统的设计与实现”,实现点餐系统首先在Eclipse环境下创建一个动态的Web项目工程,然后按照需求分析一步一步来进行项目的编写,其主要的开发环境如表1-1所示。本次的系统环境安装过程不再此赘述,具体的详细安装过程可以去网上查找。表1-1开发环境需求名称开发平台硬件平台电脑开发工具Eclipse开发语言Java操作系统MicrosoftWindows2010JDK版本JDK1.8数据库MySQL后台服务器ApacheTomcat9.01.2.2技术简介Java作为一种基于企业计算机的网络编程应用语言,现在己经逐步发展出并成为所有internet中最广泛流行、也是最为具有重要国际影响力的一种网络编程应用语言。Java[1]最大的技术优势之处之一就是面向对象,它最大的主要技术优势之处之一就是具有代码的超高可持续扩展性和后期维护管理能力,这也大大促进了企业应用程序设计代码更加健壮。B/S(Browser/Server),即浏览器和服务器架构。其优点在于B/S是一种瘦客户机架构,客户端软件仅需安装浏览器,且对客户端硬件配置要求较低、标准统一、维护相对简单、无需开发客户端软件,所有优先选用B/S[2]架构。Javascript是一种常见于Web编程中用来解释和执行脚本类编程的语言。它主要是嵌入html代码中,由浏览器进行逐步解释和执行。它通过响应各种事件,如键盘按键、鼠标拖拽、手指触摸等,来与外界交互,从而实现各种功能。由于它拥有如此众多的优势,使得它在很多的项目前台中被用到。JSP全称为JavaServerPages,是一种动态网页开发技术,主要用于实现JavaWeb应用程序的用户界面部分。JSP可以在不同的网页中传递控制信息和共享信息,因此JSP具有更强的功能,且更适合复杂的需要可重用部件的应用。JSP[3]可以移植到其他的操作系统和Web服务器。MySQ[4]是一个开源免费的关系型数据库而且它拥有适应性好、运行和反应速度快、使用的可靠性高等优点,一般也被大量的小型项目使用。Eclipse也是自由和开源,它是基于Java的资源开发服务平台。就其本身来说,它目前只能认为是一种可以用来通过一个插件框架组成的服务方式,用来帮助构建一个基于开发者的环境和插件组成的一组新服务。也是我们使用java作为项目开发的首选。这个毕业项目是为了能够在设计和实现上达到最初的想法和要求。完整的系统具有系统的一些优点:高安全性,良好的可移植性,较高的跨产品平台,出色的可伸缩性,还可以具有分布式结构。因此,在项目中使用了上面介绍的B/S结构系统,而我设计和实现的点餐系统则正式基于Java编程语言的B/S设计模式。本系统使用的是B/S架构和MVC结构。所以只需要一台本地的计算机和浏览器就可以使用该项目系统。用户可以通过浏览器作为我们的客户端和点餐系统之间进行链接,用户也可以使用浏览器向我们发送请求,然后通过系统的业务逻辑进行数据处理,然后通过MVC相应的层进行相应的增、删、改、查等数据操作。由于这些技术有如此多的优点,而且这些技术也是我们学过的,所以本次项目开发优先使用这些技术。1.2.3国内现状随着我们在世界上的影响力越来越大,伴随着5G智能时代的到来,网络技术在生活中的作用越来越大。由于计算机在国外发展的时间较早而且速度很快,计算机技术很成熟,我国在计算机上起步较晚,对于智能点餐系统只能够在我们大型的餐厅才能够看见,在小型的餐厅很少看见。一个主要的原因是点餐系统的开发成本很大对于一些小的餐厅来说负担不起,也难以维护,而且对于一些小的饭店来说没有过多的关注。但是随着我国经济的迅猛发展,人们对智能设备的依赖越高,而且随着计算机技术成熟发展,小型系统的开发成本相对减少,而且易于维护,易于推广。1.2.4进度为了使我们能够直观表明一个任务方案是在何种情况下进行的,以及根据实际的进展和计划所要求做出相应的对照情况而制作任务进度甘特图如图1-1任务进度。图1-1任务进度1.2.5本论文结构安排第1章主要是系统概论,主要对点餐系统的研究背景、开发技术和开发环境进行简介、结合国内外目前现状论述点餐系统开发的必要性。第2章主要是对点餐系统的需求分析和总体设计进行介绍。第3章主要是数据库设计与实现,主要对数据库的结构设计和每张数据库表的逻辑设计进行说明和论述。第4章主要是系统详细设计与实现,主要对点餐系统的前台和后台哥哥功能模块进行简要的概述和说明。第5章主要是系统测试,对开发过程中的每个功能模块每个开发阶段都要进行系统测试,保证功能模块能够正常进行。第6章主要是对本次的毕业设计进行总结,得出想应的心得体会。
第2章系统需求分析及总体设计2.1需求分析根据软件工程[5]的需求分析介绍,我们对于软件一般设计和开发流程的来看,进行软件设计和开发的第一步便是对其进行市场和应用的需求分析。通过对软件需要的分析来了解用户的真正需要这样对软件后续开发大有裨益,俗话说“磨刀不误砍柴工”,先要进行系统的顶层设计,总体规划,精准把握用户的真是需求。一个完善优良的项目体系在软件开发之初必须要准备充足的材料,进行整个项目需求分析。只有在这个阶段完成一个清晰、详尽的需求分析,我们才可以在后期的设计和编码中更好地实现整个系统的功能。本系统主要开发出来用于小规模的餐厅,约50桌餐桌以内这样的一个规模,系统完成后将系统安装在一个终端上放在一个餐厅入口的地方,如果客人想要就餐的话,直接在终端上进行操作,先选择未使用的餐桌进行占位,占位成功后进入菜单列表选择自己喜欢的菜系和菜品加入自己所在账户的购物车车,下单付款,付款成功后顾客直接在餐桌前等候,等候后厨订单处理,处理完成后,服务员将把你点好的菜直接上到你的面前。对于一些不会操作终端的人群,餐厅将提供人工为其服务,使人们能够感受到家的温暖。2.2可行性研究分析在进行软件开发的前期,对一个软件项目管理系统的整体设计和规划实施情况进行了大量可行性的调查分析,这些都无疑是其在进行软件开发的全整个过程中必须注意做到不可忽视的一项工作。从多种不同角度和维度基础上来分析,进行一个项目的实际可行性研究分析,能够帮助我们把整个项目的情况分析得更加透彻具体。(1)技术可行性分析在目前大多数公司中我们所使用得到的项目管理软件开发的工具都是eclipse,例如我们平时做的课程设计时所使用的工具就是eclipse,因此在这次的点餐管理系统中也使用eclipse这个软件开发的工具,因为我们对其工作环境也是比较熟悉的。Java作为当下最广泛流行和被关注的计算机编程语言,历久弥新,而且简单方便,灵活运用,是此次设计和开发该系统的不二之选。(2)经济的可行性分析点餐系统前期的开发成本低,在系统设计编码工作全部完成之后,用户只需要在自己客户端上安装浏览器,只需要正常上网即可,用户可以通过浏览器轻松完成对系统的访问和管理,经济实惠、成本较低、易于操作容易上手,非常的人性化。2.3系统设计概述系统的总体设计在项目的实际开发中的显得尤为重要,也是必不可少的一个环节。这要求设计人员对项目管理系统要做到了然于心,并且建立该系统的具体应用到实际地点的执行解决方案,使其能够得到完全的实现,完成最初的目标以及最终的要求。在进行系统设计时,主要的工作是了解学习所涉及的知识、技术。为了让整个项目获得成功不仅需要仔细的分析,而且还需要有严密的逻辑设计,使整个系统完整。那么为了能够更好地进行系统设计项目就必须要充分理解系统设计的基本原则,其主要包括易用性原则、提高用户的服务和体验原则、研究开发阶段的原则、遵循服务全面严格的原则、保证其数据信息的完整性,减少其数据差错原则、规范化的经营原则。在最初设计阶段中,系统主要负责人要完成各种用户需求调研从而满足客户的的业务需求。2.4系统功能分析点餐系统前台功能模块结构如图2-1所示。图2.SEQ图1.\*ARABIC1系统前台功能结构图为了提高餐厅的点餐效率,为顾客提供便捷舒适的服务,我们需要完善各个基础功能模块,而且系统各个界面要整洁大方。本系统主要包括前台和后台两个部分。前台部分主要包含7个模块,分别为餐桌使用状态展示模块、菜品菜系查询功能模块、购物车功能模块、订单查询功能模块、登录退出功能模块、注册功能模块、信息反馈功能模块。后台部分主要包含5个模块内容,分别是餐桌管理功能模块、菜系管理功能模块、菜品管理功能模块、订单管理功能模块、信息反馈功能模块。当管理员登录后台数据页面的时候,可以清楚看到后台的5个功能模块,管理员可以对餐桌信息、菜系信息、菜品的信息、信息反馈等信息进行操作,通过对这些信息的管理,餐厅可以为顾客提供更好的服务。当顾客进入餐厅进行点餐的时候,顾客或者点餐员进行点餐,他们可以进入点餐系统前台,可以看到点餐系统的整体界面结构,新顾客(点餐员)需要进入系统的客户端进行系统的注册,如果已经注册了的可以直接通过已有的账户、密码进行登录,登录后可以进行餐桌预定占座、菜品的搜索、点餐、订餐、支付等操作。管理员对应的模块,管理员在系统后台登录成功后可以对整个餐厅相对应的模块进行管理,比如餐桌、菜系菜品、信息反馈等操作,完成管理员对顾客的服务操作。后台功能模块结构如图2-2所示。图2-2系统功能后台结构图2.5点餐系统流程介绍如果想要对订餐管理系统实施相关的操作,管理员必须将自己的基础信息直接手动注册到自己的数据库中,并且在登录到订餐管理系统的客户端后台进行管理。如果在登录的时候出现发生异常,登录失败等情况,系统将会提醒管理员仔细核对自己的身份和密码信息,核对后再次重新登录。在登录成功后,就可以使用我们的订餐信息管理系统,后台模块对整个订餐信息管理系统实施正确、有效地信息化管理。管理员可以对订单,菜系菜品、餐桌、会员等信息进行修改、添加、删除等操作。订餐管理系统的一些基本概况,都是可以在系统中的任意模块来进行查看、分析,以及对其做出及时的适当相应调整。系统的前台业务处理流程图显示如图2-3所示。否否否成功查看我的订单结束菜品购买查看菜品加入购物车结账生成订单错误提示下单继续购物是否登陆验证登录首页用户登陆个人首页输入用户名、密码验证查看餐桌状态查看我的订单修改密码用户注册系统首页错误提示填写注册信息注册开始登陆系统首页成功成功失败是失败是失败图2-3前台业务流程图2.6软件模型2.6.1用例图本系统的主要用例包括顾客、管理员、第三方支付平台三个用例。细分到每个大的用例后,每个大的用例又包括多个小的用例,例如用户包括6个小的用例它们分别是餐桌使用状态、菜单内容、购物车、支付、订单、信息反馈。餐桌使用状态的用例主要包括使用和未使用状态,菜单内容用例包括菜品和菜系两个内容,支付用例包括成功和失败两个状态,订单用例包括桌号、订单编码、订单时间和订单的状态。如果是新用户登录本系统需要注册个人信息并且信息要符合规定的规则,如果是老用户直接使用已有的账户和密码直接登录,当用户登录成功后可以直接看见餐桌的使用状态,如果用户点击全部那么餐桌就会将全部的餐桌信息显示出来,用户可以搜索未使用状态下的餐桌,然后用户可以点击未使用的餐桌号进行占位处理,如果用户占位成功后可以在菜单列表选择自己喜欢的食物加入到购物车中,等选购食物结束后用户可以点击支付按钮进行支付,支付成功后用户只需耐心等待后厨对菜单的处理即可。管理员对系统后台管理的功能用例主要包括餐桌管理、菜系管理、菜品管理、订单管理、信息反馈等5个用例。餐桌管理包含添加餐桌和删除餐桌,菜系主要包括添加、更新、删除用例。菜品管理主要包括添加、更新、删除、搜索用例。订单管理主要包括下单的时间、订单编码、订单份数用例。信息反馈主要包括姓名、时间、反馈信息用例。述此过程的用例图如图2-4和图2-5所示。图2-4管理员用例图图2-5顾客用例图2.6.2活动图用户活动图主要是顾客登录系统前台所进行的一系列活动。如果用户没有注册系统,用户只能进入系统,浏览系统的信息页面不能够对系统的各个菜品进行购买或者进行相应的功能操作。如果用户想购买菜品,用户必须登录该系统,登录系统成功后就可以进行菜品添加、下单、订单信息查看、餐桌选定等操作,具体的详细信息如下图2-6用户活动图所示。管理员活动图能够清晰的看见管理员登录系统后台所进行的各种活动,管理员如果没有成功登录系统是无法进行相关的操作的,只有当管理员成功登录了系统后台后才能够进行相关操作。管理员登录成功后管理员可以对餐桌管理、菜系管理、菜品管理、订单管理、信息反馈查看等操作,管理员也可以对这些操作进行增加、删除、修改。这5个模块是平级关系没有依赖关系。具体的活动流程如下图2-7管理员活动图所示。图2-6用户活动图图2-7管理员活动图2.6.3顺序图顺序图展现的主要是信息的时间交互顺序。如图2-8所示为“注册”的顺序图,顾客或管理员首次登录需要进行用户注册,当用户注册完信息后按提交按钮提交到数据库db_hotel中的user用户数据库表中保存用户信息,然后页面将会显示注册成功的消息,这样注册过程就完成了。图2-8注册顺序图
第3章数据库设计与实现3.1数据库的结构设计点餐系统主要使用的是当前最为流行的关系型数据库MySQL,MySQL它是一个免费的开源的数据库,在小系统的开发过程中非常的流行受欢迎而且使用的范围非常广。根据以上各节对其所做的分析和设计,规划本系统中使用到的数据库实体,对于系统所需要保存各类信息我们都要单独的建立一张数据表,采用外键连接。3.1.1数据库表概要说明点餐系统主要包括了7张数据库表,它们分别是餐厅菜系类型数据表food_type,菜品信息数据表food,用户管理员注册数据表user,订单数据表order,订单详情信息数据表order_detail,餐桌信息表dinner_table,信息反馈表suggestion。其中菜品信息数据表主要是用来保存餐厅所推出的所有菜品信息,菜系类型表主要用来保存餐厅里面所推出的菜系,包括菜系和菜品所对应的关系。用户管理员注册表主要用来保存用户和管理员的注册信息。订单数据表主要用来保存所对应用户所有的订单信息。餐桌信息表主要用来保存餐桌信息。信息反馈表主要是用来保存顾客对餐厅所反映的一些信息。用户以上7张数据表,将会在以下几节进行详细的描述其表结构。3.1.2数据库概念设计根据以上各节对点餐系统所做的需求分析和系统结构设计,现在设计本系统中使用的数据库实体它们分别为管理员实体、菜系实体、菜品详细信息实体、用户注册详细信息实体、订单实体、订单明细实体、餐桌信息实体、信息反馈实体。下面分别介绍几个关键实体的E-R图。(1)管理员实体管理员实体的信息主要包括姓名、密码、邮箱、电话、用户创建的时间、用户存在的状态。管理员只能够在数据库中进行手动添加不能直接在系统上进行注册,管理员可以对用户进行添加等操作。其E-R结构图如图3-1所示。图3-1管理员的E-R图(2)菜系类别实体菜系类别的实体主要包括编号、菜系的类型名称、菜系创建时间、菜系类型更新时以及创建的存在状态,其中菜系存在的状态用1表示未删除状态,用0表示已删除状态。其E-R图如图3-2所示。图3-2菜系类别的E-R图(3)菜品信息实体菜品的信息实体主要包括编号、菜名、菜系类型的id、价格、折扣、备注、菜的图片、菜品创建的时间、菜品信息更新时间、菜品存在的状态。其中菜品存在的状态用0表示未删除状态,用1表示已删除状态。其E-R图如图3-3所示。图3-3菜品信息的E-R图(4)订单信息实体订单信息实体主要包括订单编号、订单所属的餐桌、总价、付款状态、下单时间、付款时间、。其中付款状态用0表示已下单未付款,用1表示已付款。其中的存在的状态用0表示未删除状态,用1表示已删除状态。其E-R图如图3-4所示。图3-4订单信息的E-R图(5)订单详细信息实体订单详细的实体主要包括所属订单的id、菜品的id、购买数量、存在状态。其中存在状态用0表示未删除状态,用1表示已删除状态。其E-R图如图3-5所示。图3-5订单详细信息的E-R图(6)餐桌信息实体餐桌信息实体主要包括餐桌的名称、餐桌的使用状态、餐桌占用、餐桌创建的时间、餐桌信息的修改时间、餐桌存在状态。,其中餐桌的使用状态用0表示未使用,用1表示正在使用。餐桌存在状态用0表示未删除状态,用1表示已删除状态。其E-R图如图3-6所示。图3-6餐桌信息的E-R图(7)信息反馈实体信息反馈实体主要包括反馈者的姓名、时间、邮箱、电话、反馈信息。其E-R图如图3-7所示。图3-7信息反馈的E-R图3.2数据库逻辑结构设计本系统的数据库采用MySQL数据库,系统数据库名称为db_hotel,本数据库共包含7张数据库表,以下给出主要数据表的结构。(1)菜品类型数据表food_type菜品类型数据表,主要是用于保存当前订餐系统的菜品类型及相关的数据,数据类型可以根据餐厅的需求来进行设置,管理员可以对数据表其进行增加、删除、以及修改等操作管理,如表3-1所示。表3-1food_type的结构字段名数据类型长度主键否描述Idint11是idtype_namevarchar20否菜品类型名create_datedatetime否菜品类型创建时间update_datedatetime否菜品类型更新时间disabledint11否未删1已删菜品信息数据表主要是用来保存菜品的基本信息、价格、菜名、描述等,该表的结构如表3-2所示。表3-2food的结构字段名数据类型长度主键否备注idint11是IDfood_namevarchar20否菜名foodType_idint11否菜品类型idpricedouble否价钱discountdouble否折扣remarkvarchar200否备注imgvarchar100否菜的图片create_datedatetime否菜品创建时间update_datedatetime否更新时间disabledint11否0未删1已删(3)用户信息数据表user用户信息数据表,主要是用来用户的基本信息,表里面的信息数据可以根据实际的需要来修改。表结构如表3-3所示。表3-3user的结构字段名数据类型长度主键否描述idint11是IDLOGIN_NAMEvarchar50否登录名PASSWORDvarchar50否密码EMAILvarchar50否邮箱PHONEvarchar20电话CREATE_DATEdatetime用户创建时间DISABLEDint20正常1已删除(4)订单信息数据表order订单信息数据表,主要记录了顾客下单之后的相关信息情况,订单表中的各种信息可以根据实际的需要来设置,但是一定要符合各种数据的规定。数据表的结构如表3-4所示。表3-4order的结构字段名数据类型长度主键否描述idint11是idorder_codevarchar255否订单编码table_idint11否订单所属餐桌total_Pricedouble否总价order_Statusint11否0已下单未付款1已付款order_Datedatetime否下单时间pay_datedatetime否付款时间disabledint11否0未删1已删update_datedate否最后更新时间(5)订单详情信息数据表order_detail订餐详细信息数据表,主要记录了顾客订餐下单的相关详细信息。数据表的结构如表3-5所示。表3-5order_detail的结构字段名数据类型长度主键否备注idint11是idorderIdint11否所属订单idfood_idint11否菜品idbuyNumint11否够买数量disabledint11否0正常1已删除discountdouble否折扣(6)餐桌信息数据表dinner_table餐桌信息数据表,主要记录了餐桌的详细信息。数据表的结构如表3-6所示。表3-6dinner_table的结构字段名数据类型长度主键否备注idint11是idtable_Namevarchar20否餐桌名称table_statusint11否0未使用1正在使用begin_use_datedatetime否餐桌开始占用时间create_datedatetime否餐桌的创建时间update_datedatetime否餐桌信息的修改的时间disabledvarchar11否1为删除(7)信息反馈数据表suggestion信息反馈数据表,主要是记录顾客对餐厅不好的信息反馈意见,对餐厅的整改和提供人性化服务有很大的帮助。数据表的结构如图3-7所示。表3-7Suggestion的结构字段名数据类型长度主键是否备注IDInt11否NameVarchar20否姓名Datetimestamp否信息反馈时间Emailtext电子邮件phonevarchar11联系电话Suggestiontext反馈的信息3.3数据库表之间的关系设计图3-8展示了数据库内各个数据库表之间的关系,反映了系统表各个实体之间的关系。图3-8数据库内各表的关系3.4连接数据库我们在Eclipse环境下创建动态的Web项目工程后,为了与数据库连接,我们需要准备一些相关的配置文件例如c3p0配置文件、JDBC数据库驱动和jstl相关的jar包。想关的jar包直接去网上下载,然后导入配置文件依赖的jar包,然后我们需要在项目工程下的src文件夹下新建一个c3p0-config.xml数据库连接池配置文件,并在配置文件中写下数据库连接池代码,配置文件代码如下所示。<c3p0-config><default-config><propertyname="driverClass">com.mysql.jdbc.Driver</property><propertyname="jdbcUrl"><![CDATA[jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=utf8]]></property><propertyname="user">root</property><propertyname="password">root</property><propertyname="initialPoolSize">5</property><propertyname="maxPoolSize">10</property></default-config></c3p0-config>为了能够在以后的项目中使用到数据库连接,而且不用重复写数据库连接代码,我们在实体包util文件下一个数据库连接工厂工具类,以后直接拿来使用就行,不用重复写,数据库连接工厂工具类的代码如下所示。publicclassConnectionFactory{ //自动读取c3p0-config.xml privatestaticDataSourcedataSource=newComboPooledDataSource(); //获取连接 publicstaticConnectiongetConnection(){ try{ returndataSource.getConnection(); }catch(SQLExceptione){ e.printStackTrace(); } returnnull; }Publicstaticvoidclose(Connectionconn,PreparedStatementpreparedStatement,ResultSetresultSet){ try{ //释放资源,根据先开后放的规则 if(resultSet!=null)resultSet.close(); if(preparedStatement!=null)preparedStatement.close(); if(conn!=null)conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } }}
第4章系统详细设计与实现4.1前台部分4.1.1系统架构设计该系统前台部分主要是由顾客或点餐员使用,主要内容包括登录/注册、餐桌查找、菜品查找、菜系查找、购物车、订单查看等。(1)功能模块简介登录/注册:如果是顾客或者点餐员没有登录或者注册该系统,那只能够对系统页面的信息进行浏览,无法进行相关操作。如果是新用户的话必须先注册用户信息,注册完毕后才能够登录进系统进行相关操作,如果是老用户的话直接使用正确的信息进行登录然后信息相关操作。餐桌状态/餐桌查找:在首页搜索栏上的下拉框里面包含了餐桌的使用或未使用的两种状态,用户可以通过选择其中一种状态查看想应中的餐桌。菜系/菜品查找:通过自己的喜爱可以查找出自己喜欢菜系和菜品。购物车:用户可以将自己喜欢的菜系里面的菜品添加到用户购物车里面,以便下单。订单查看:用户可以根据自己点餐的状态查看自己已经下单的详细内容。(2)前台所有页面文件组成如图4-1所示。图4-1前台页面文件组成图下面以列表形式给出前台页面各部分的说明信息,如表4-1所示。表4-1前台页面说明序号名称备注对应文件1顾客注册为新用户提供注册入口register.jsp2顾客/服务员登录为已经注册了的或者老顾客提供登录入口login.jsp3首页主要用于展示餐桌及餐桌的使用状态index.jsp4菜单列表用于显示所有菜系菜品信息menuList.jsp5占位后菜单用于已占用餐桌的菜系菜品信息显示menu.jsp6订单信息显示所有的菜单信息orderList.jsp7指定菜单信息显示指定信息显示orderItem.jsp8信息反馈主要用于顾客信息反馈offers.jsp9帮助信息为新用户提供帮助指引help.jsp10后台入口系统后台登录入口Sys/index.jsp11公共文件引用主要用于所有公共文件的引用common.jsp4.1.2前台模块首页点餐系统的首页就像一个人的脸面一样,是展现个人魅力的一个重要环节,所以首页的项目设计也是至关重要的,一个首页界面的设计对于系统的推广和使用舒适度都很重要,我们首页主要采用红色元素为主调色,搭配着白色,这样能给人一种愉悦感。首页的导航栏中的各种导航信息可以让用户第一时间获取相应的信息,导航栏中主要包括菜单、我的菜单、联系我们、关于我们、登录、注册、后台入口以及购物车等信息。只要项目一运行系统默认的页面就是首页index.jsp,首页的主要功能包括一个搜索框和一个下拉选择框,下拉选择框包括全部、未使用、已使用三种餐桌选择信息。下拉框select标签下包括三个option选项值分别为全部、未使用、已使用。如果用户点击select标签下的三个选项值中任意一个时,页面加载就会将状态值传给js下的function()函数,如果option的value值等于用户选择的,那么餐桌状态tableStatus就会被选中,通过select标签属性onchange调用js函数functiondataChange(obj),然后页面跳转就会将值传给接入层IndexServlet.java里面的service方法下request.setAttribute("tableStatus",tableStatus)来保存餐桌状态信息。如果用户在form表单输入框中输入想要选择的餐桌,点击【提交】按钮触发action属性跳转到对应页面,然后里面的input标签信息通过name属性传递给接入层IndexServlet.java里面,然后在接入层的service方法里面使用request.getParameter()接收name参数值,然后调用服务层service再调用持久层dao里面的findDinnerTables()方法并将相关信息返回给接入层,最后通过request.setAttribute("tableStatus",tableStatus)l来保存后台取出来的餐桌状态信息,然后传给前台页面。餐桌信息主要显示在搜索框下面,餐桌显示框主要采用的是一个div元素,显示出来的是一种蓝色边框白底的一个矩形框,搜索框在后台和餐桌查找进行了代码绑定,在前台jsp页面用c标签接收接入层IndexServlet.java传递回的餐桌信息,使用c标签里面的forEach函数语句绑定进行显示。综上来看首页能够让用户简单、快速的上手,很容易满足用户自身的需求,所以前台客户端首页的运行效果图如图4-2和图4-3所示。图4-2前台首页运行效果图1图4-3前台首页运行效果图24.1.3前台用户登录管理在系统的前台首页的顶部右侧灰色导航栏出提供了登录入口,通过点击【登录】按钮,触发form表单里面的action属性发送请求跳转到登录页面login.jsp。当用户点击登录按钮是就会触发form表单的onsubmit事件,这时就会调用js的functionsubmitTable()功能函数,判断用户是否输入用户名和密码,如其中一个未输入,则不需要提交表单中的内容到数据库。如果符合要求使用document.getElementById("loginform").submit()提交表单,将信息传送到接入层LoginServlet.java里面的service方法中使用request.getParameter()接收表单里面name属性值。然后判断传入的密码和账户再调用服务层,服务层再调用持久层里面的findByLoginNameAndPass()方法,查询数据库里面的账户和密码,将查询的信息返回到接入层。如果输入的账户密码和数据库查询的信息一致登录成功。如果是新用户就需要先注册,用户可以点击表单末尾【现在注册】链接,页面直接跳转到注册页面进行个人信息注册。系统默认登录后显示的页面是首页index.jsp,如果当前用户输入的用户信息错误,系统会通过login.jsp中的javascript的submitTable()函数进行信息判断并且提示相应的错误信息。登录密码的时候,点击记住密码,系统默认记住的时间是7天内,数据将会保存在Cook中,以后直接点击登录就可以了,用户的登录部分界面如图4-4所示。图4-4用户登录页面用户登录界面的表单设计的主要是通过搜集用户输入到表单的信息并且通过JavaScript的自定义函数submitTable()来判断验证用户登录的信息是否正确。用户登录界面表单设计的重要元素如下表4-2所示。表4-2用户登录页面重要表单元素名称元素类型含义重要属性form1form表单action="${pageContext.request.contextPath}/app/login.do"inputtext用户名size="20"inputpassword密码Size="20"inputcheckbox记住密码value="reme"inputsubmit提交onclick="submitTable()"value="登录"用户进行登录之后就可以进行点餐,搜索等相应功能的操作了。用户登录的程序流程图如图4-4所示。图4-4用户登录程序流程图4.1.4前台用户注册及记住密码功能用户注册的导航链接主要是位于系统首页右上方灰色导航栏处,如果是新用户需要点击【注册】按钮触发相应的事件,页面就会跳转到注册页面register.jsp,用户就可以在输入框中输入相应的信息,如果用户想要按【注册】按钮,需要将同意条款的checkbox的单选框选上,选上后就可以点击注册按钮了。当用户向输入框输入数据后调用js中的functionformOnblur(id)函数通过输入框的id获取当前需要校验的输入框的值,然后通过$.ajax同步请求发送请求到后台数据库中,校验登录名是否已经在数据库存在,如果存在就不能够重复注册,用户需要重新输入用户名。输入框输入的值通过id传入到函数functionformOnblur(id)中进行格式校验,如何不符合规定的格式,输入框将会出现相应的提示信息。如果所有的输入信息符合要求后,选择上同意条款的checkbox单选框,然后用户直接点击【注册】按钮,直接触发注册提交按钮的onclick事件,然后调用js的functiononRegister()函数,获取所有输入框的ID,遍历所有输入框的ID,如果输入框的格式符合要求就提交表单document.getElementById("registerform").submit()返回给form表单,然后form表单的action属性发送请求处理类给接入层RegisterServlet.java里面的service()方法,然后方法里面通过request.getParameter()接收前台输入框里面的name值,然后通过if语句判断登录名等各种信息是否在数据库中存在。如果不存在就将注册信息通过调用服务层service,服务层再调用持久层UserDaoImpl.java中里面的save()方法,将所有的注册信息保存在数据库中,如果注册成功后信息返回到接入层,接入层通过request.getRequestDispatcher("/WEB-INF/jsp/sys/login.jsp").forward(request,response)语句直接跳转到登录页面进行登录。如果注册失败后信息返回到接入层,接入层通过request.getRequestDispatcher("/WEB-INF/jsp/sys/register.jsp").forward(request,response)语句再次定位到注册页面,用户信息需要重新注册。用户页面注册效果图如图4-11所示。图4-11用户注册页面图4.1.5前台用户订餐管理功能点餐系统作为用户的客户端的主要功能就是为用户提供人性化服务,满足用户的基本需求。用户注册成功后进入首页index.jsp后,如果用户想进行订餐,可以在主界面的搜索框内选择未使用的餐桌,然后在未使用的餐桌里任选一个餐桌,获取餐桌的id和餐桌名,页面跳转到menu.jsp中,点击餐桌后页面发送请求处理类给接入层MenuServlet.java的service方法,通过request.getParameter方式获取餐桌的id的参数值,然后新建个服务层对象,调用服务层服务层调用持久层,通过餐桌的id在数据表dinner_table里面查询餐桌,将查询到的餐桌信息返回到接入层用request.setAttribute("dinnerTable",dinnerTable)接收数据库查询出来的餐桌数据。然后新建一个订单的对象,判断该餐桌是否有未付款的订单,如有则跳转到订单详情页面去付款,如没有则跳转到正常的点餐页面。然后在新建一个List<FoodType>对象集合,查询所有未删除的菜系名字,默认查询所有菜系中第一个未删除菜系的菜品。然后在新建一个菜品的对象集合List<Food>调用服务层,服务层调用持久层中findByFoodTypeId()方法,在food表中根据菜系ID查询未删除的菜品。然后将信息返回到前台菜单页面menu.jsp。菜单左侧导航栏是菜系,右侧是菜系id所对应的菜品信息。如果用户想要点餐就先要占位,我们需要在menu.jsp的餐桌购物车下点击【占位】按钮,触发点击事件onclick="orderDinner(${dinnerTable.id},0)调用js函数functionorderDinner(dinnerTableId,tableStatus)页面重定向到后台DinnerTableServlet.java通过servce()方法调用服务层持久层,通过持久层中update()方法更改餐桌的状态变为0,更改成功后,占位成功。将更改的状态返回到前台menu.jsp中。然后用户可以选择自己喜欢的菜品,如果用户想要将自己喜欢的菜品添加到购物车中,用户直接将鼠标放在菜品上面,点击【购物车】按钮,就会触发购物车的点击事件onclick,点击事件调用js的functionaddShopCar((foodId)函数,将菜品添加到购物车中,通过HttpSessionsession=request.getSession()用于左边餐桌的购物车展示,用Map<Integer,Integer>shopCar=(Map<Integer,Integer>)session.getAttribute(id)表示餐桌的id获取其购物车,购物车key为商品id,value为购买数量。然后拿到当前餐桌购物车中所有的菜品id,购买数量和购物车中所有的商品总金额。然后将后台取出来的菜系数据、菜品数据、商品数量及金额数据保存在request中,页面通过request.getRequestDispatcher("/WEB-INF/jsp/app/menu.jsp").forward(request,response)传到左侧的餐桌购物车中,所有的信息将显示在页面上。当用户选购完菜品后,用户可以点击【下单】和【取消占位】按钮,如果用户点击【下单】按钮,触发点击事件页面跳转到订单详情页面orderList.jsp进行付款,付款后成功后用户就可以在餐桌前等候服务员将菜上到桌上。用户不想要就餐或者不想占这张餐桌,用户可以直接点击【取消占位】按钮即可。订餐页面如图4-5,点餐的程序流程图如图4-6所示。图4-5用户订餐页面图图4-6订餐程序流程图4.1.6前台菜单查看功能用户登录系统后,如果不想占座点餐,只想查看菜单,这时用户可以直接点击导航栏中的【菜单】按钮,此时触发按钮事件,发送请求类页面会直接跳转到接入层menuList.java里面的service方法里面,用request.getParameter(foodTypeId)接收前台传过来的菜系id,再新建一个查找菜系的<FoodType>类型的list对象集合和一个菜品List<Food>对象集合,然后在调用服务层,服务层调用持久层中的findAll()和findByFoodTypeId()方法然后查出未删除的菜系id及id所对应的未删除的菜品信息,并将信息返回到接入层用request.setAttribute("foodTypes",foodTypes)request.setAttribute("foods",foods)保存数据库里面查找出的菜系和菜品的信息,通过request.getRequestDispatcher("/WEB-INF/jsp/app/menuList.jsp").forward(request,response)将后台数据传送给前台menuList.jsp页面,前台左侧的菜系导航栏采用C标签<c:forEachitems="${foodTypes}"var="foodType">遍历出后台未删除的菜系,并将信息显示出来。右侧菜单信息使用C标签<c:forEachitems="${foods}">显示出菜系相关联的菜品信。右侧菜品采用jQuery中的特效显示菜品详细信息,当鼠标没有放在菜品页面上时,页面直接显示的是菜品信息,当鼠标放在菜品图片上是,页面翻转显示菜品信息介绍和菜品金额以及加入购物车的按钮。前台菜单查看如图4-7所示。图4-7菜单列表4.1.7前台订单查看页面如果用户想要查看自己的订单,他可以点击【我的订单】按钮查看,页面发送请求到接入层OrderServlet.jsp里,在接入层OrderServlet.jsp里面service()方法中定义一个List类型的订单对象查询所有的订单信息,通过接入层的信息请求调用服务层,服务层在调用持久层,持久层通过sql语句查询所有的订单信息,然后返回传到接入层中,接入层然后在返回给orderList.jsp前端的订单列表页面。订列表单信息主要包括桌号、订单编号、下单时间、支付状态和点菜的份数。页面显示所有的订单信息,其部分效果如图4-8。图4-8订单列表4.1.8信息反馈如果用户对餐厅一些不好的地方需要向餐厅进行反馈,用户可以直接点击导航栏上的【联系我们】的链接页面发送请求直接跳转到fankui.jsp信息反馈页面,然后用户就可以直接在表单上填入想应的信息直接点击【提交】按钮就可以了如图4-9所示。图4-9信息反馈4.2后台部分后台管理客户端主要是由指定的管理员来使用的,后台管理部分主要包含对餐厅的一些有效的数据进行管理,提高工作效率,后台主要包括餐桌信息管理、菜系信息管理、会员信息管理、菜品信息管理、订单信息管理、信息反馈管理等。1、后台主要功能模块介绍餐桌信息管理:主要是餐厅的餐桌信息进行管理,主要包括餐桌的添加、指定餐桌的搜索和相关餐桌的删除。菜系信息管理:主要包括对相关菜系的添加、删除、搜索和菜系信息的更新。会员信息管理:主要查看相关用户的基本信息。订单信息管理:查看和删除顾客下单的订单详细信息,但不能够修改顾客的订单信息。菜品信息管理:主要对相关菜系的菜品进行详细信息的添加、更新删除相关菜品信息,而且还可以搜索指定的菜品。2、后台文件结构系统后台主要包括20个相关文件,其相关文件的结构,如图4-10所示。图4-10后台文件结构图4.2.1后台用户登录,注册功能在系统的前端的导航栏中为管理员提供了后台进入按钮,点击【进入】页面发送请求跳转到login.jsp页面,管理员通过后台的管理能够实时的对整个餐厅服务做出管理,这样餐厅能够提高效率,而且可以让用户享受更好的体验,后台的登录和注册的机制和前台的登录注册机制是一样的,所有在这里不多的赘述,后台登录页面效果如图4-12所示,后台页面效果如图4-13所示。图4-11后台登录页面效果图图4-12后台注册页面效果图4.2.2后台餐桌管理作为订餐系统后台,如果管理员想要对餐桌进行管理直接点击左侧的导航栏【餐桌管理】按钮,页面发送请求给接入层DinnerTableServlet.Java里面的service()方法,通过语句request.getRequestDispatcher("/WEB-INF/jsp/sys/dinnerTableList.jsp").forward(request,response)页面跳转到dinnerTableList.jsp页面,将餐桌未删除的餐桌信息显示出来。如果用户想要直接搜索具体的餐桌,可以直接在输入框中输入餐桌名称,通过后台处理在数据表dinner_table中查询出餐桌信息,并返回到前台页面。如果用户想要搜索删除、未删除、使用、未使用的餐桌,管理员可以在下拉选择框select里面进行选择,通过select的onchange事件调用js相应的函数,然后通过相应标签的name属性将值传到后台接入层用request.getParameter()接收值。然后通过相应语句调用持久层在数据表dinner_table中将信息查找出来,返回给前台页面。如果用户想要删除餐桌数据直接点击餐桌后面的【删除】按钮即可。前台的数据主要通过C标签的forEach将后台传过来的数据集合循环的展示在页面上。餐桌管理页面效果图如图4-13所示。如果管理员想要添加餐桌,直接点击左上方的【添加】按钮,页面发送请求处理跳转到dinnerTableAdd.jsp页面,用户可以在输入框输入想要添加的餐桌信息,当用户点击【添加】按钮时触发onclick事件,调用js里面的functionaddSubmit()函数通过ajax判断输入的输入是否在数据库里面存在,如果存在将会出现已存在的提示信息,否则将输入的信息直接插入到数据库表中,餐桌信息添加成功。餐桌添加页面效果图如图4-14所示。图4-13餐桌管理页面效果图图4-14餐桌添加页面效果图4.2.3后台菜系管理管理员进入后台想要对菜系进行管理,直接点击左侧导航栏中的【菜系管理】按钮,按钮触发事件页面发送请求跳转到foodTypeList.jsp菜系管理页面,整个页面默认显示全部未删除的菜系信息。如果用户想要查看已删除或者未删除的菜系,直接点击下拉框进行选择搜索。如果用户想要添加菜系,直接点击【添加】按钮页面,后台发送请求页面直接跳转到foodTypeAdd.jsp菜系添加页面,管理员可以直接在该页面添加自己想要添加的菜系名称。如果用户想要删除某个菜系,直接在该菜系名后点击【删除】按钮,如果用户想要更改菜系信息,直接点击该菜系名后面的【更新】按钮页面直接跳转到foodTypeUpdate.jsp信息更新页面。菜系管理页面效果图如图4-15所示,菜系添加页面效果图如图4-16所示。图4-15菜系管理页面效果图图4-16菜系添加页面效果图4.2.4后台菜品管理管理员成功登录系统后可以查看后台显示的所有信息,管理员对菜品实现管理,首先需要点击左侧的导航栏的按钮【菜品管理】页面发送请求给接入层跳转到foodList.jsp页面,页面将显示所有的菜品详细信息,里面数据传递的原理上节以及陈述过了,在此不多赘述。管理员如果想要查看具体的菜品直接在搜索框输入点击【搜索】按钮即可,也可以通过下拉框分别查看各种菜系下的菜品信息,如果列表中没有菜品信息列表将出现提示信息“满足当前条件的菜品没有找到”。如果管理员想要增加某菜系的菜品,直接点击【添加】按钮,页面发送请求直接跳转到菜品添加foodAdd.jsp页面,此时管理员可以添加菜系类型、菜名、价格、图片、折扣以及备注信息,其中菜系、菜名、价格、图片是必填项,通过这些信息展示就可以方便用户点餐,其中同一菜系的菜品不可重复添加,重复添加将会出现提示信息,添加不成功。列表页面每个菜品信息对应的有两个操作按钮分别为更新和删除,如果管理员想要下架某种菜品直接点击【删除】按钮即可,如果管理员想要对菜品的信息进行修改点击【更新】按钮即可,页面就会跳转到foodUpdate.jsp页面。菜品列表效果如图4-17所示,添加菜品页面效果如图4-18所示。图4-17菜品列表效果图图4-18添加菜品页面效果图4.2.5订单管理管理员如果想要对订单信息查看和了解,直接点击主界面左侧的导航栏【订单管理】按钮页面直接跳转到orderList.jsp订单列表页面,列表将显示所有餐桌的订单详细信息如图4-19所示。如果用户想要搜索具体的某一餐桌的订单信息,自己点击左上角的下拉框。如果顾客想要再次添加菜品且未付款,直接点击订单下的加菜按钮页面就会跳转到orderAddFood.jsp订单加菜页面,选择想要添加的菜品即可如图4-20所示。如果用户想要打印菜单,管理员直接点击菜单打印页面直接跳转到printOrder.jsp打印页面。管理员通过对订单列表的信息分析,就可以分析顾客喜欢的菜品和菜系,从而有针对性的提供顾客服务水平,提高服务质量。通知也可以对订单背后的各种信息进行分析,实行奖励制度,提高工作效率。图6-19销售订单管理页面效果图图4-20订单加菜图4.2.6信息反馈如果管理员想要查看顾客对餐厅的反馈信息,管理员直接点击左侧的导航栏【信息反馈】按钮页面直接跳转到suggestion.jsp信息反馈页面,整个页面显示已存在反馈者的信息列表如图4-21所示。如果管理员想要查看具体的信息直接查看反馈者后面查看的按钮进行查看如图4-22所示。管理员可以根据反馈者反馈的具体信息进行整理,然后对餐厅提出具体的整改建议,从而提高餐厅的效益和服务水平,让顾客在更加舒适的环境中进行就餐享受。图4-21销售订单管理页面效果图图4-22管理员查看信息图4.2.7用户管理管理员进入后台管理系统之后如果想要对用户管理,直接点击左侧导航栏中的【用户管理】按钮页面跳转到userList.jsp用户管理列表页面如图4-23所示,如果用户想要对某一个信息信息搜索,可以直接在左上角处进行想应信息的输入搜索。如果管理员想要添加用户信息,直接点击【添加】按钮页面直接跳转到userAdd.jsp用户添加页面如图4-24所示。如果用户想要对想要用户进行删除和信息更新,管理员可以直接点击所在用户信息后面的【更新】和【删除】按钮进行相应的操作实现相应的功能。图4-23用户管理列表图图4-24新用户添加图
第5章系统测试经过大学五年的学习我们可以清楚地知道软件编码结束后,需要对其软件项目进行系统的测试,因为这是保证软件质量和用户使用人性化的一个重要的手段,也是对其进行一个综合测试和评分的一个原则。系统测试的主要目的是用最少的时间和人力找出系统中潜在存在的各种错误,以便达到客户的预期需求。5.1测试原则本项目采用的测试原则主要是尽早的、不断的软件测试原则。这种的测试原则主要是贯穿整个系统的开发阶段,把每个功能模块看做是一个独立的开发阶段,所以为了减少时间和人力成本,我们需要在软件开发的每个阶段和每个独立的功能模块进行不断的运行测试,一实现每个功能模块的成功运行,从而提高系统的可靠性和质量。5.2测试进度在系统测试的过程中,我们需要制定好严格意义上的测试时间进度表,写好测试结果,确保测试结果和预期效果相符合。减少系统开发的时间成本。写好测试的数据以及案例,并对测试数据进行设计逻辑的处理,得出期望结果。具体的时间测试进度表如表5-1所示。表5-1测试进度时间表测试活动系统测试时间调试结果前台首页2021.4.12正常用户登录注册2021.4.19正常用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国预应力砼桩数据监测报告
- 2023版《中国经肛腔镜手术专家共识及操作指南》
- 科研课题经费申请报告
- 河南入党前考试题及答案
- 产业投资考试题库及答案
- 单片机历年考试题及答案
- 甘肃物理高考试题及答案
- 重庆中考试题及答案
- 2026年大学新闻学(新闻学原理)试题及答案
- 商务情景考试题及答案
- 职业暴露评价的队列设计
- 制浆造纸工艺课件
- 三级医院耳鼻喉科运行管理规范
- 民用建筑方案设计工作量比例
- 2025数据基础设施参考架构
- 审计合同补充协议范本
- 危险性较大的分部分项工程专项施工方案严重缺陷清单(试行)
- 超导材料制备与特性-深度研究
- 胎盘、死婴、死胎处理管理制度及处置流程
- 食品加工安全生产管理制度
- 2024年江西省中考英语试卷试题真题及答案详解(精校打印)
评论
0/150
提交评论