




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论[27]。与传统的权限分配思想不同,RBAC中是对角色的权限分配,在系统开发初期明确系统所需要的角色种类,对每种角色进行权限permission的分配操作,而对于系统中具体操作的某一个用户user,我们只需要给它分配属于哪一个角色role即可,这样这个用户便拥有了其所属角色的权限值。RBAC具有四种层级模型0到3,。RBAC0的实现会对五张表进行操作。在用户角色关联表中记录着某一个具体的用户对应的角色信息,一个用户可以对应多种角色。在角色权限关联表中记录着某一个具体角色拥有的所有的权限操作。通过对某一个具体的用户关联具体的角色实现权限的分配操作。这样无需对每一个单独的个体账号进行操作。在后续的系统维护与扩展中仅需要修改少量的代码,极大的降低了系统的工作量与复杂性。并且整体分配过程清晰,使得开发简单。图STYLEREF1\s4SEQ图\*ARABIC\s11RBAC0模型示意图数据库表的设计权限表的设计基于以上RBAC0的设计思想,在本论文的后台管理系统中需要实现权限的控制功能。通过前面的对系统的功能需求分析,后台系统中目前需要有管理员以及商家两种用户角色,为了整个权限分配的实现设计了五张表:用户表user、角色表role、用户角色关联表user_role、权限表permission、角色权限关联表role_permission。用户表user,记录了平台用户的基本信息,基本的需要id用来唯一标识每一个用户,账号username、密码password。在注册功能中需要对username判重才能进行因此username的设定也是唯一的。并且在进行用户的权限分配时也是根据username赋予对应权限。user表设计如下所示:表权限用户表(user)字段名称数据类型字段解释备注idchar(19)用户编号主键usernamevarchar(20)用户账号名称passwordvarchar(32)用户密码加密处理nick_namevarchar(50)用户昵称saltvarchar(255)用户头像tokenvarchar(100)用户签名is_deletedtinyint逻辑删除默认0不删除gmt_createdatetime创建时间gmt_modifieddatetime更新时间角色表role,需要用到id和role_name来记录其基本信息。在本论文的后台管理系统中,目前分为了管理员和商户两种角色。Role表设计如下所示:表权限角色表(role)字段名称数据类型字段解释备注idChar(19)角色编号主键role_namevarchar(20)角色名称role_codevarchar(20)角色编码remarkvarchar(255)角色备注is_deletedtinyint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime更新时间对于以上的user表和role表,需要创建user_role用户角色关联表来描述它们之间的关系。需要用到id,role_id,user_id,id表示标识表中的唯一一条记录,user_id存储user表中具体每一个用户的id,role_id存储role表中每一个角色的id值,因此便可以描述出user与role之间的关系,user_role表的设计如下所示:表权限用户角色表(user_role)字段名称数据类型字段解释备注idChar(19)表的编号主键role_idChar(19)角色id角色表中存在user_idChar(19)用户id用户表中存在is_deletedtinyint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime更新时间权限表permission,用来记录后台管理系统所有可以执行的操作,包括了三级内容:菜单目录,每一个菜单目录下的页面,页面内具体内容的增加、删除、修改、查询、显示。因此需要主键id用来表示不同的操作权限、所属的pid标志其属于哪个权限下的一部分、权限名称name、类型type标志此权限类型是菜单还是页面内的按钮。permission表的设计如下所示:表权限菜单表(permission)字段名称数据类型字段解释备注idChar(19)菜单数据的编号主键pidchar(19)所属上级菜单编号namevarchar(20)菜单名称typetinyint类型(1:菜单,2:按钮)permission_valueVarchar(50)权限值pathVarchar(100)访问路径componentVarchar(100)组件路径iconVarchar(50)图标statustinyint状态(0:禁止,1:正常)is_deletedtinyint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime更新时间为了关联permission和role两张表,需要role_permission角色权限关联表来描述它们之间的关系。id标志了表中唯一的一条数据,role_id存储role表中具体的一个角色的id值,permission_id存储permission表中的具体权限操作的id值,因此便可以描述出每一个角色拥有的所有权限操作。role_permission表的设计如下所示:表权限角色菜单表(role_permission)字段名称数据类型字段解释备注idchar(19)表数据编号主键role_idchar(19)角色id角色表中存在permission_idchar(19)菜单id菜单表中存在is_deletedtinyint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime更新时间基于上述表的创建,便能清晰且方便的对用户进行权限的分配操作,在权限表中可以事先将系统的所有权限操作添加进去,然后对每一个具体的角色分配好权限,当我们需要对每一个具体的账号用户分配权限时,只需要指定其为某一个角色,它便拥有的该角色的所有权限操作。并且这样的设计也利于平台的扩展与维护,当系统功能增加时,我们只需要修改角色拥有的权限操作,那么之前绑定为此角色的具体用户的权限操作也会对应的得到修改,而不需要单独的修改用户的权限,降低的维护人员的工作量,也使得用户拥有的权限清晰可见。图书类别表的设计图书类别表用来对图书商品进行归类。类别中分为了图书的三级分类,例如文学-中国文学-小说的形式,因此为了方便数据的存储以及可扩展性,需要id唯一标识表中的一条数据、name表示分类名称、level表示分类级别、以及parent_id表示其上一级分类。因此我们使用parent_id项便可以表示出分类之间的关系,如果系统有需求上的扩展,也只需要添加新的数据进去,而不需要改变原来的数据。category表的设计如下所示:图图书分类E-R图表图书分类表(item_category)字段名称数据类型字段解释备注idchar(19)图书类别表id主键namevarchar(50)类别名称角色表中存在levelint类别层级分类为三级parent_idchar(19)父级iddeletedint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime修改时间图书表的设计图书商品需要商家进行添加并进行商家出售,因此商家需要在添加具体图书商品时填写对应的表单数据。图书商品基本包含图书名称、所属分类、所属商家、图书价格、数量、折扣、图书封面、图片集、描述等属性信息。并且在给图书添加封面时可以上传单张图片,添加图片集时允许添加不同的图片集合。图书商品book表的设计如下所示:图图书E-R图表图书表(item_book)字段名称数据类型字段解释备注idchar(19)商品图书id主键book_namevarchar(100)图书名称user_idchar(19)图书所属商户idcat_idchar(19)图书所属分类idbook_urlvarchar(255)图书主图地址book_desccarhar(1000)v图书描述book_countint图书数量book_statusint图书状态1上架0下架book_pricedecimal图书价格book_discountdecimal图书折扣deletedint逻辑删除默认不删除值为0gmt_createdatetime创建时间gmt_modifieddatetime修改时间订单表的设计当前台用户将图书商品加入购物车后进行结算时,对进行结算的图书将会生成对应的订单数据,此时的订单表与图书商品表之间存在着关联关系但是订单表又有自己的独立性。订单表中需要有的基本项有订单id、订单的用户id、订单的金额、订单状态(待付款、代发货、已发货),只有用户付完款订单处于代发货状态此订单才算生效。订单表的设计如下所示:表订单表(item_front_order)字段名称数据类型字段解释备注idchar(19)表唯一id主键member_idchar(19)下单用户idorder_idvarchar(64)订单号idmember_namevarchar(64)下单用户名pay_acountdecimal下单金额order_statusint订单状态0待付款1代发货confirm_statusint确认收货状态1已收货delete_statusint删除状态1已删除payment_timedatetime支付时间gmt_createdatetime创建时间gmt_modifieddatetime修改时间订单项表的设计对于每一个订单而言,里面的购买项可能会有多条图书商品数据,因此在订单表中并不能体现出来,需要将每一个订单里购买的每一条商品数据进行记录。当一条订单生效的时候才会将里面的购物项记录下来。在订单项表中需要订单id、图书商品id、图书商品名称、所属商户、图书数量、图书价格、订单状态来表示每一个订单项,这样改图书商品所属的商家才能对商品的订单进行查看并发货操作等。订单项表的设计如下所示:表订单项表(item_front_order_item)字段名称数据类型字段解释备注idchar(19)表唯一id主键order_idvarchar(64)订单idbook_idchar(19)图书idbook_namevarchar(64)商品名称book_catchar(19)商品所属分类idmerchant_idchar(19)订单所属商户book_urlvarchar(100)商品封面图片book_countint购买商品的数量book_pricedecimal商品价格statusint订单项状态0待付款1待发货gmt_createdatetime创建时间gmt_modifieddatetime修改时间第5章系统设计与实现系统设计与实现 系统总体功能设计根据前面对系统的的需求分析,本论文分为了后台管理系统以及前台用户系统。系统总体的功能设计架构如图下:图系统整体功能后台管理系统权限控制功能后台管理系统权限控制功能设计根据前面对权限控制模块功能的需求分析,后台系统中分为了商家以及管理员两种角色。基于RBAC0模型实现权限的分配操作。因此权限菜单模块下分为了用户管理、角色管理、菜单管理。菜单管理页面以树形结构的形式显示出所有的权限操作,并且可以进行增加、删除、修改、查询等基本操作。角色管理页面显示出目前系统所拥有的全部角色,例如:商家、管理员。在角色管理页面也能进行基本的增加、删除、修改的操作,另外还需要添加授权操作,当选择某一个角色时,点击授权按钮,便会显示出菜单管理中的所有数据,此时可以勾选其中的某一些菜单,即为所分配的权限所能执行的操作。用户管理中显示出后台系统中的所有用户,也具有基本增加、删除、修改、查询的功能,其次还需要添加一个编辑的按钮操作,当此按钮被点击时可以显示目前后台系统中所有的角色,勾选对应角色此用户便拥有角色所对应的菜单权限操作。后台管理系统权限控制功能实现项目的开发使用的是idea开发工具,首先在项目中创建一个用于实现权限控制模块的SpringBoot子项目acl。通过MVC的架构思想创建出controller控制访问层、service业务逻辑处理层、entity数据模型层。例如:当此时想要对具体的用户A分配商家的角色身份时,当在后台管理系统中为为用户A选择了商家的角色身份,点击确认授权时会调用后台接口saveAssign(userId,roleId),此时需要传入用户A的id以及商家角色的id,此时后台接口的UserController中将会接受到这个请求,并执行roleService.saveUserRoleRealtionShip(userId,roleId),此接口会执行其实现类中的publicvoidsaveUserRoleRealtionShip(StringuserId,String[]roleIds)方法,即向用户角色关联表中添加了一条数据,这样它们之间便形成了关联关系,也就是用户A拥有的商家角色的操作权限。同时在该SpringBoot子项目中整合了SpringSecurity服务,在SpringSecurity服务中编写了相应的配置文件以及工具类,并主要实现了核心的登录认证过滤器TokenLoginFilter,以及授权过滤器TokenAuthenticationFilter。认证过滤器中当用户在填写登录表单进行登录时会进入publicAuthenticationattemptAuthentication(HttpServletRequestreq,HttpServletResponseres)方法中验证用户有效性,验证成功会进入protectedvoidsuccessfulAuthentication方法并在数据库中读取该用户的权限操作保存在redis数据库中并保存到SpringSecuriy上下文。验证失败进入protectedvoidunsuccessfulAuthentication方法中返回错误信息。每次后台管理系统中进行权限操作时都会进入授权过滤器中的protectedvoiddoFilterInternal方法判断当前用户是否有执行此操作的权限。图管理员进入后台显示页面图商户进入后台显示页面后台管理系统的注册功能后台管理系统的注册功能设计在后台管理系统中注册是用户想要进入平台成为商家的渠道。根据之前的需求分析,注册时用户需要填写申请的用户名username、密码password等基本信息。并发送异步请求判断注册用户名是否存在并给出提示信息。当所有表单内容填写完后也会进行数据的有效性校验,全部合法才能进行注册请求的发送。后台管理系统的注册功能实现在后台注册页面的表单中,只要用户输入完用户名username,立马便会进行数据校验触发checkUserNameOnly方法调用registerApi中的异步方法checkUserNameOnly然后后台接口代码中收到此请求便会查询数据库进行校验并返回结果。图后台系统注册功能异步请求判断用户名不唯一图后台系统注册功能异步请求判断用户名唯一后台管理系统图书分类功能后台管理系统图书分类功能设计根据之前的需求分析,图书商品的分类为三级分类,因此为了存储的方便以及可扩展性在分类表category中设置了pid项,表示其上一级分类的id。在后台管理系统中,需要将图书三级分类以树形结构的形式展示出来,并可以进行基本操作的维护。后台管理系统图书分类功能实现在后台管理系统中的三级分类的显示结合使用ElementUI组件,当进入分类页面时,会触发周期函数调用后端接口中的publicRlist接口,此接口调用服务层itemCategoryService中的queryListWithTree()方法将分类数据递归处理得到树形结构的形式,在通过ElementUI框架中的el-tree组件实现树形结构的展示。图管理员手动管理分类图管理员通过操作excel管理分类前台用户系统购物车功能前台用户系统购物车功能设计购物车用来保存并显示前台用户选择的图书商品,可以查看添加到购物车中的商品信息,如商品名,价格,数量等。实现购物车的方式有两种,一是可以利用mysql数据库建立商品之间的关系,创建对应的表来存储数据,但是这样实现起来会较为复杂并且对购物车的操作需要频繁的操作数据库,执行IO操作将会十分耗时使得系统的效率变低。因此这边使用到redis非关系型数据库,一是redis提供了多种数据存储方式,使用这些存储结构进行拼接可以很容易的记录下购物车中的数据信息,而是redis是基于内存的读写操作,效率上也会比使用mysql数据库来的高效。前台用户系统购物车功能实现在SpringBoot项目中添加两个实体类Cart和CartItem。Cart需要封装每一个具体用户整个的购物车信息,有商品类别的数量count,总价totalPrice,具体的图书项列表List。CartItem则封装着购物车中每条记录的详细信息,有图书商品的id,所属于的商家id,图书商品名称title,图书封面图片image,图书商品价格price和是否选择check。以将商品加入购物车为例:当在前台系统中将某一件图书商品加入购物车时,后端代码中publicStringaddToCart方法接收到请求。然后调用service层itemFrontCartService.addToCart(bookId,num,session);redis中购物车的存储结构为<String,Cart>,Cart中也是key-value的形式为<String,CartItem>,是一个嵌套的key-value形式。图前台系统购物车页面前台用户系统支付功能前台用户系统支付功能设计当用户在购物车中选择了图书商品进行结算时,会生成对应的订单记录,此时这条订单记录需要完成付款操作才算有效的订单。因此当生成了订单页面点击页面中的付款时,可以选择微信支付或者支付宝支付的方式进行结算。支付成功后将会跳转到用户的所有订单页面查看到当前所支付的订单的状态信息。前台用户系统支付功能实现本论文中将举例阐述对接支付宝实现支付功能。实现此功能需要在我们创建的SpringBoot项目中添加以下的类以及配置文件。在实体类entity下创建PayVo类,用于描述订单的信息:订单号,订单金额等。然后在配置config包下添加支持支付宝实现的模板AlipayTemplate,里面主要需要填写一些参数的值有:app_id,merchant_private_key,alipay_public_key,notify_url,return_url,gatewayUrl。其中app_id设置为在阿里云支付宝中创建的应用的id,merchant_private_key设置为商户私钥,alipay_public_key设置为支付宝的公钥,并且支付宝那边会留有商户的公钥merchant_public_key以及支付宝自己的私钥alipay_private_key,通过这四把钥匙实现更加安全的支付形式。notify_url设置的是一个地址,用来异步接受支付成功的信息,return_url设置的地址为当支付成功后可以跳转的页面的地址。gatewayUrl设置的地址为支付宝的网关地址,当前台中选择了支付宝支付的时候会请求这个地址执行后续操作,然后在这个类里面需要实现方法publicStringpay(PayVovo)throwsAlipayApiException。在配置文件application中设置阿里云所需要的参数。最后当将前台系统中点击支付宝所响应的地址设置为阿里云gatewayUrl即可。图在支付页面可以对支付方式进行选择图选择支付宝支付,进行登录图支付宝中输入支付的密码图支付宝支付成功图支付宝支付成功后跳转的页面,查看到刚才的订单第6章系统测试系统测试后台管理系统权限分配功能测试该项测试主要是对后台管理系统中的权限控制模块下的用户管理、角色管理、菜单管理进行测试,主要测试内容为为选择角色列表中的一个具体角色roleA,分配菜单权限,然后将用户列表中的具体用户A设置为roleA角色,这样用户A拥有了分配给roleA的菜单权限,然后以用户A登录系统,查看系统界面显示的可操作功能是否为给roleA分配的菜单功能。表STYLEREF1\s6SEQ表\*ARABIC\s11权限分配测试结果编号模块测试步骤预期结果实际结果用户管理进入后台管理系统后,点击权限权限管理下的用户管理,进入界面可以看到所有的用户以及可操作的按钮与预期结果一致在用户管理页面,点击添加按钮,输入表单数据,确认添加会在数据库表acl_user中添加对应的一条记录,并且可以在用户管理页面看到刚刚添加的数据与预期结果一致在用户管理页面选择某一个用户,点击删除,确认删除数据库的acl_user表中删除对应的数据,并且页面中也不在进行显示与预期结果一致选择某一个用户执行授权操作,选择为其分配一个已有的角色在数据库表acl_user_role中会添加一条对应的记录。当此时我们用这个用户进行登录时,界面只会显示出为其分配的角色对应的菜单操作界面与预期结果一致角色管理在角色管理页面点击添加按钮,填写对应表单数据,确认添加在数据库表acl_role中添加一条对应的数据,并且会页面会显示出刚刚添加的角色名称与预期结果一致在角色管理页面选择角色点击删除按钮,确认删除在数据库表acl_role中会删除对应的数据信息,页面中也不再显示删除的角色名称与预期结果一致在角色管理页面选择角色为其执行分配菜单权限,会显示出所有的菜单表中的数据,选中一些数据,确认分配在数据库表acl_role_permission中添加对应的数据,查看角色所有的菜单操作,其可操作选项前会被勾选中与预期结果一致菜单管理进入后台管理系统后,点击权限权限管理下的菜单管理,进入界面会以树形结构的形式展现出所有的菜单及菜单内的操作与预期结果一致在菜单页面点击添加按钮,确认添加在数据库表acl_permission添加对应数据,并在页面中显示添加的数据与预期结果一致在菜单页面点击添加修改,确认修改数据库表acl_permission中对应的数据信息内容会被更新与预期结果一致在菜单页面点击添加删除,确认删除数据库表acl_permission中对应的数据会被删除,并且页面中不在显示删除的数据与预期结果一致系统功能测试后台管理系统登录注册功能测试表STYLEREF1\s6SEQ表\*ARABIC\s12登录注册测试结果编号模块测试步骤预期结果实际结果注册在注册页面输入用户名完成后会发送异步请求校验用户名是否唯一,并给出提示如果注册填写时的用户名校验结果唯一,则不会出现提示。否则会显示出用户名已被占用的提示信息。此时需要更换用户名。与预期结果一致当在注册页面的注册表单的数据都输入完成,每一项的数据都会进行合法性校验,若都校验成功则显示正常,否则会出现对应的提示信息要求修改填写内容若数据都校验正确,则不会出现红色字体的提示信息,否则会在相应的未校验对的输入项下显示对应的提示信息。与预期结果一致当注册表单的数据都校验完成后,点击注册按钮如果注册成功会弹出注册成功的提示框,并且自动跳转到登录界面,在数据库表item_back_user中会添加一条记录,否则会弹出注册失败的弹框信息。与预期结果一致登录在登录页面输入注册时的用户名和密码如果登录成功会跳转进后台管理系统首页,并会出现提示信息显示登录成功。否则登录失败,提示信息显示登录失败,依旧停留在登录页面与预期结果一致后台管理系统添加图书商品功能测试表STYLEREF1\s6SEQ表\*ARABIC\s13添加图书商品测试结果编号模块测试步骤预期结果实际结果图书商品点击图书管理,进入图书商品页面显示出当前商户的所有图书数据与预期结果一致添加数据,填写对应的表单内容提示操作成功,数据库中记录对应数据与预期结果一致选择数据,进行修改会修改数据库表中对应的数据,并且在页面中显示修改后的数据信息。与预期结果一致选择某一条数据,点击删除按钮删除成功会将数据库中对应的数据删除并且页面不在显示此条数据信息与预期结果一致后台管理系统添加图书商品分类功能测试表STYLEREF1\s6SEQ表\*ARABIC\s14添加图书商品分类测试结果编号模块测试步骤预期结果实际结果图书分类进入后台系统后,点击进入图书分类页面图书分类数据以树形结构的形式展现出来。与预期结果一致在图书分类页面,点击添加操作添加成功在数据库item_category中记录相应信息,并提示添加成功信息,页面刷新看到添加的数据,否则提示添加失败信息。与预期结果一致在图书分类页面,点击删除操作删除成功在数据库表中删除对应数据,页面不在显示删除的数据与预期结果一致在图书分类页面,点击修改操作修改成功会相应修改对应数据库表中的数据,并提示修改成功信息,页面显示修改后的数据信息,否则提示修改失败信息与预期结果一致进入分类导入页面,点击导入excel表数据导入成功在图书分类页面的数据会显示为刚刚导入的数据,对应数据库中添加数据,提示导入成功信息,否则提示导入失败信息。与预期结果一致后台管理系统统计分析功能测试表STYLEREF1\s6SEQ表\*ARABIC\s15统计分析测试结果编号模块测试步骤预期结果实际结果统计分析进入后台管理系统后点击统计分析模块,进入页面可以看到以折线图显示的销售金额的图表信息以及以柱状图显示的图书销量的信息与预期结果一致点击页面中的时间选择器,可以选择时间区间当选择时间区间后,页面显示的图表数据信息会改变,显示出选择区间内的数据信息与预期结果一致前台用户系统购物车功能测试表STYLEREF1\s6SEQ表\*ARABIC\s16购物车测试结果编号模块测试步骤预期结果实际结果购物车进入前台用户系统,进入图书商品详细介绍页面,点击加入购物车添加成功会在redis数据库中记录对应信息,并且进入购物车中可以看到添加的图书信息与预期结果一致进入购物车页面,点击删除操作成功删除数据,redis数据库中对应的记录删除,并且购物车中不在显示删除的数据与预期结果一致进入购物车页面,修改商品数量修改成功redis数据库中对应的数据记录会更新,并且页面显示修改后的数据与预期结果一致进入购物车页面,修改商品的数量信息,并且选中相应的数据购物车页面的结算金额中会自动计算出正确的结算金额与预期结果一致前台用户系统支付宝支付功能测试表STYLEREF1\s6SEQ表\*ARABIC\s17支付宝支付测试结果编号模块测试步骤预期结果实际结果支付宝支付在购物车中选择图书商品项进行结算,进入结算页面点击去付款,选择支付宝付款弹出支付宝登录页面与预期结果一致当进入支付宝登录页面时,填写账号密码进行登录,然后付款成功付款页面自动跳转到购买商品的显示页面,查看到图书商品处于代发货状态与预期结果一致致谢总结与展望本论文对基于SpringBoot的图书销售系统的设计与实现进行研究,通过查找资料了解了当前我国网上图书销售的现状以及人们的阅读普遍率,并借鉴查看了其他论文中关于本论文内容的设计与实现,最终对本论文进行了详细的内容需求分析以及实现技术选择。使用了目前流行的技术框架来完成了本系统所设计的内容,并对所有的完成部分进行了功能性测试,结果都达到了预期的目标。但是限于在做毕业设计时自己的技术局限性以及经济上的考虑,在系统的架构使用上并没有使用目前电商网站中的分布式架构,在系统的编写实现中也没有多线程的处理,数据库使用的单一数据库,没有搭建数据库集群,因此系统的健壮性和实用性都会较差。在后续可以根据实际在本系统加入以上所提出的内容,使得系统能更接近真实的软件系统,达到使用的基本标准。参考文献陈锐.企业级信息平台的设计与实现.北京:中国地质大学,2009:1-5.张显霞.国民阅读需求与公共图书馆阅读推广研究[J].大众文艺,2017,(11).192-193.doi:10.3969/j.issn.1007-5828.2017.11.159.范秀娟.我国网上书店的发展现状、问题与策略研究[J].兰州教育学院学报,2018,34(4):50-51,54.doi:10.3969/j.issn.1008-5823.2018.04.021TaivalsaariAcuk.ModelingAndDesignofOnlineBookSalesSystemBasedonUML[J].JournalofInformationSecurityandPrivacy,2009,20(6):133—138朱丽萍,万志伟.网上书店系统的研究与开发[J].数字技术与应用,2013,03:193—194徐艳.网上书店系统设计与实现.电子科技大学,2013Arunachalam,BenerA,HackC.OnlineBookSalesManagementSystem[J].JournalofComputerandInformationManagementSystem,2012,46(4):55—60黄宏丞,裴海洋,吕振.计算机软件开发编程语言选择研究[J].科技风,2018,(7):102,109.doi:10.19392/ki.1671-7341.201807063QiangZ,DanyanC.DesignandImplementationofDistributionNetworkSCADA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代理变更公司合同范本
- 上海品质营销咨询合同范本
- 公司租农田合同范本
- 养兔场建设合同范本
- 第四章 光现象第4节 光的折射(教学设计)-2024-2025学年人教版八年级物理上册
- 2024年中牧实业股份有限公司招聘笔试真题
- 业绩奖励合同范本
- 分期按揭合同范本
- 北京房屋租赁合同合同范本
- 2024年河南驻马店幼儿师范高等专科学校教师招聘考试真题
- 大象版科学六年级下册全册教材整体分析(课件)
- 2022年08月银清科技有限公司招聘24笔试参考题库答案详解版
- 《第十一课-絮絮叨叨满是情课件》小学心理健康教育
- 江苏天嘉宜化工有限公司特大事故警示专题教育课件
- 2023年体育单招英语语法练习专题08 非谓语动词(含解析)
- 如何抓好学生的行为习惯课件
- 商场装修管理规范课件
- 2023年青岛恒星科技学院单招综合素质考试笔试题库及答案解析
- 民族宗教新疆历史课件
- PVC注塑问题的改善措施
- 颈动脉斑块讲稿课件
评论
0/150
提交评论