基于bs结构的在线图书销售系统-工学学士毕业论文.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 bs 结构 在线 图书 销售 系统 工学 学士 毕业论文
- 资源描述:
-
Abstract Online sales system is a classic expression form of E-commerce. And book became the best type of goods of developing E-commerce because of its characteristics. Because of these, Development of Book Online Sales System is necessary. So, in this paper, the topic Has a certain significance and practical value of academic. This paper mainly based on a B / S (Browser / Server) structure Book Online Sales System. The System uses ASP technology development. At first, the paper describes the system design and planning, and analysis of functional modules. And then made an introductory of the interface. And described for the establishment of databases and database connection knowledge at last. Keywords: B/S、ASP、Online Sales、DataBase 1. 在线图书销售系统综述 在线销售系统是目前 Internet 上广泛使用的在线系统之一。 在线销售是信息社会发展的必然要求。国际互联网的开通,为信息社会的飞速发展创造了条件。网民队伍的迅速扩充,无疑为网上售书的发展提供了巨大的市场空间。加上图书因其具有标识精晰、规格统一、特征容易描述、同种商品个体之间无差异等特性而能成为发展电子商务的最为理想的商品类型。因此,网上售书成为各国发展电子商务的首选目标,国际互联网开通后,各国最大的电子商务网站也大都是网上书店。只要网络发展没有停止,网上售书的发展就不会停止。 其次,网上售书因其自身具有的经营上的优势对读者具有强大的吸引力,这也是剌激网上售书发展的重要原因。网上售书对于读者而言,其魅力主要表现在三个方面:一是品种丰富,读者选书的余地大。凡属稍具规模的网上书店,一般都具有良好的网络购书界面,由于不受实物陈列空间的限制,网上书店向读者提供的选书品种往往能数十倍于实物书店,读者可以通过分类查找方式选择自己所需购买的图书。二是购买方便。读者在网上查找到自己所需要的图书后,可立即发出购书信息,网上书店接到订购信息后即可确认,不几天就可收到送达的所购图书。亚马逊书店只需几十秒钟即可向顾客发出确认信息,一小时之内就可将书送到购书者手中。三是售价便宜。在网络售书市场还很不稳定之前,各个经营者都要使用各种手段抢占市场,赔本打折是较为普遍的竞争手段之一。如亚马逊书店对《纽约时报》评选的畅销书以40%~50%的价格出售,这样,消费者自然对网上售书倍加青睐。 2. 系统设计 2.1 目标设计 网上图书销售系统所要实现的功能如下: 2.1.1 系统的用户登录及身份验证要求 一、系统用户注册 二、验证用户的注册信息 三、系统用户进入系统时的身份验证 2.1.2 网上图书销售系统要求 一、允许用户浏览所有图书 二、允许用户按图书种类进行查找 三、允许用户购买自己喜欢的图书 四、系统实现对定单的处理 五、系统完成整个购物流程 2.1.3 图书销售系统的管理子系统要求 一、对管理员的身份进行验证 二、对数据库中的而手书信息进行管理 三、对数据库中的用户信息进行管理 四、对数据库中的定单信息进行管理 2.2 设计思想 2.2.1 Browser/Server结构 图书销售系统的特点就是利用Browser/Server(B/S)结构,实现图书的在线查找,销售,以及图书的在线管理等功能。这种系统的优势在于系统简单、功能强大、扩展能力良好以及能够方便的跨地域操作等性能。 Internet 系统服务器 系统后台数据库 图书销售系统 Internet上的用户 图(2-1) B/S结构的在线图书销售系统应用原理意图 对于本系统,其功能目标是要将图书的销售由传统的商店模式向在线销售的转变,同时还能对销售的定单和图书的种类进行管理。图2-1是本系统的网络应用示意图。 2.2.1 三层结构 Brower/Server的多层结构的应用正是在对C/S结构的总结基础上产生的,并且已经扩展到了B/S应用开发领域。即将应用划分为3层(可以有更多层,但3层最常见):用户界面层、商业逻辑层、数据库层。 一、用户界面层负责处理用户的输入和向用户的输出,这一层通常用前端工具(Visual Basic,Visual C++,ASP等)开发,而我们用VBScirpt脚本语言实现html页面; 二、数据库层负责实际的数据存储和检索。 2.3 系统的功能设计 根据系统的功能的要求,在线图书销售系统可以分为3个模块:用户管理模块、图书销售系统以及在线图书管理系统。图2-2给出了这3个模块之间的关系。 销售系统 用户管理模块 图书销售模块 在线管理模块 图(2-2)在线图书销售系统功能模块图 对于用户管理模块,根据系统的功能分析,它具有的功能应该包括对用户注册的检索、用户注册信息的添加、以及用户注册信息的修改等。 对于在线图书销售系统,根据系统功能分析,它应该具有的功能包括允许用户查找图书信息、浏览图书信息、允许用户购买图书、并对购物车进行管理、最后还能处理用户的定单记录、并发送到后台数据库。具体详见下图(2-4): 用户 图书 购物车 定单 查找图书 购买 结帐 浏览图书 添加 数据库 管理和处理定单 管理员进入 处理完再 送到数据库 图(2-4)在线图书销售系统 对于系统附加的图书管理系统,根据系统的功能分析,它应该具有的功能包括允许管理员浏览整个系统的图书,对图书信息进行修改(包括删除某些图书),以及添加新的图书信息。 2.4网页制作工具Dreamweaver介绍 Dreamweaver是Macromedia公司推出的主页编辑工具。它是一个所见即所得网页编辑器,支持最新的DHTML和CSS标准。它采用了多种先进技术,能够快速高效地创建极具表现力和动感效果的网页,使网页创作过程变得简单无比。值得称道的是,Dreamweaver不仅提供了强大的网页编辑功能,而且提供了完善的站点管理机制,可以说,它是一个集网页创作和站点管理两大利器于一身的超重量级的创作工具。 Dreamweaver提供了强大的设计工具,在不用书写一行代码的情况下,就能够快速创建各种极具动态HTML特性的网页,例如动画和分层等;利用Dreamweaver的目标浏览器检查特性,可以创建兼容性极好的网页,以适用于各种平台和各种浏览器;利用Dreamweaver的Roundtrip HTML技术,用户可以精确控制Dreamweaver生产的网页源代码,例如,在可视编辑器中进行编辑时,可以在HTML检视器中同步地看到Dreamweaver到底为您生成了什么样的源代码,从而杜绝了盲人摸象的弊病。在编辑由其他网页创作工具所生成的网页时,Dreamweaver会尊重其他工具所生成的原代码,不会任意修改它,当然,如果需要,Dreamweaver也仍然可以帮助您“净化”其他工具所生成的垃圾代码。 Dreamweaver是完全可定制的,您可以创建自己的对象和命令,修改菜单和快捷键,甚至可以通过自己书写JavaScript代码来为Dreamweaver创建新的行为和属性面板,以增强Dreamweaver本身的能力。 2.5后台数据库Microsoft Access 在选用Windows NT/2000 网络操作系统时宜使用Microsoft Access。这种数据库能提供关系管理系统RDBMS 核心和一组外围管理工具软件采用标准数据库语言和远程数据访问标准能够实现网络环境下数据库之间互联。互操作具有网络容错完整性检查和安全保密等功能使整个网络数据库的存取更加合理在选择数据库需求比较各种的性能和优缺点并有一个长期的规划和若干年后要实现目标。 3.系统的结构和简介 3.1网站的结构图 首页(DEFAULT.asp) 购买 部分新书预览 管理员登录 用户注册 用户登录 购买页面 定单的预览 用户的预览、修改、添加、删除 图书的预览、修改、添加、删除 用户信息的修改 以上为本网站的基本结构图形。 3.2 首页部分 3.2.1首页的主体部分bookright.asp: 分为两个部分,一个为不同的登录窗体,为用户登录、新用户注册、管理员登录、购物车和留言的入口;一个为新书的预览,在这里用户可以看到书库里的前N本书的简介(这里设置为4本,也可根据页面美观需要自由设置),也可以点击购买,将书本加入购物车中。 3.3 用户管理模块 3.3.1注册网页newusercheck.asp: 在首页中的新用户注册中输入昵称,点击提交则进入注册网页,在里面分别输入您的信息:姓名*、联系电话*、联系地址*、E_mail:*、邮编:*密码:*、确认密码*。 打*的为必须要填写的信息,,在用户填写完后点击提交则可在用户填加网页(newuseradd.asp)中看到所填写的信息,如想修改点击修改,则可。详细如下图(3-1) 图(3-1)用户注册网页 3.3.2用户添加网页(newuseradd.asp): 这一页面表单中信息是从前一页面的表单中提取出来的,“dim name,tel,addr,email,zip,pw1,pw2,temp”就是承接两个表单而定义的变量,在接受信息和用户核实无误后点击提交,则网页打开数据库 dim connstr,conn,rs,sql connstr="dbq="+server.MapPath("mdb/bookshop.mdb")+";defaultdir=;driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr sql="select * from guest " rs.open sql,conn,3,3 将用户信息填加到数据库中 rs.AddNew rs("nicename")=temp rs("name")=name rs("tel")=tel rs("addr")=addr rs("zip")=zip rs("email")=email rs("password")=pw1 。 3.3.3用户登录网页usercheck.asp: 在此网页中实现用户名和密码的核实,功能和newusercheck.asp基本相同,核实正确则回到首页,否则则提示查无此人。界面如下: 图(3-1)用户登录界面 3.4 查询部分 3.4.1图书分类查询(search.asp): 先在首页中选择书的类别点击提交,则可在search.asp中显示此书类的书籍,在书的下面则可填入书名点击查询则可进一步的查找到想的书,此一次的查询结果则在search1.asp中显示出来。 3.4.2书名查询(search1.asp): 实现进一步的查询,若无此书则显示空记录, dim conn,rs,sql,i,connstr,temp connstr="dbq=" & server.MapPath("mdb/bookshop.mdb") & ";driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr 以上代码是为了实现与数据库的连接, set rs=conn.Execute("select * from book where book='" & Request.Form("bookname") & " '") 从书库中查找到书名和book相同的项,并交给记录集rs。 3.5 在线管理模块 3.5.1管理员登录页面(manage.asp): 先在首页中的管理员的文本框中输入“ibm”在密码框中输入“123”,点击提交,则可连接到manage.asp的页面中,静态页面如图: 图(3-2)管理总页面 其中连接属性的设置如下表: 数据库 浏览 修改 添加 删除 图书 blist.asp bupdate1.asp badd.asp bdel.asp 顾客 cllist.asp Cupdate1.asp Cadd.asp Cdel.asp 订单 返回则连接到首页的default.asp。 3.5.2图书库的图书浏览(blist.asp): 插入一个表单,名称为book,动作为连接到bview.asp;插入两个按钮分别为b1,b2,标签为提交和返回;在次页面中是通过后台的数据库显示出来的,主要程序如下: dim conn,rs,sql,i,connstr connstr="dbq=" & server.MapPath("mdb/bookshop.mdb") & ";driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr rs.Open sql,conn,1,1 ; 插入一个单选按钮,名称为bookchage,选定的值为<%=rs(0)%>,也就是书号,当选中一个书名前的按钮时,相当于选中了也选定值相同的书号的书,在点击提交按钮后,在弹出的窗体bview.asp中可以看到书的内容,bview.asp的静态页面设计为: 返回按钮连接是blist.asp页面,整个页面的设置是在一个表单中,动作为bupdate.asp。 3.5.3图书修改页面(bupdate1.asp): 在次页面中可看到书库中所有的书名,点击想要改动的书名前的单选按钮,则在弹出的页面(bupdate2.asp)中看到次书的所有的信息,在相应的地方做出修改后,点击确定后会弹出操作成功提示,返回到管理员界面,修改操作就此完成;首先我们来看一下bupdate1.asp的静态页面,它的静态页面的设置和图书浏览的(blist.asp)是基本相同的只不过在提交时连接是bupdate2.asp页面,在bupdate2.asp页面中打开了后台数据库从而使修改后的信息存入数据库中,以达到修改的目的。 dim conn,rs,sql,i,connstr connstr="dbq=" & server.MapPath("mdb/bookshop.mdb") & ";driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr dim temp temp=Request("bookchange") if temp="" then temp=1 end if sql="select * from book where id=" sql=sql & temp rs.Open sql,conn,3,2 以上的代码就是实现数据库的打开和存储修改后的数据的功能,bupdate2.asp的静态页面和图书浏览的页面也是基本相同的,多了一个更新按钮,如图(3-3) 图(3-3)图书修改页面 3.5.4图书添加页面(badd.asp): 同样添加图书的静态页面于图书浏览页面bview.asp雷同,在点击“提交”按钮后,运行所编写的添加程序,将所添加的书籍加入到后台数据库中,以下为添加的部分程序: dim connstr,conn,rs,sql connstr="dbq="+server.MapPath("mdb/bookshop.mdb")+";defaultdir=;driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr set rs=server.CreateObject("adodb.recordset") rs.open sql,conn,3,3 if rs.EOF=true then rs.MoveLast end if rs.AddNew rs("book")=book rs("author")=author 'rs("date")=date() rs("price")=csng(price) rs("publish")=publish rs("photo")=photo rs("num")=cint(num) rs("memo")=memo rs.Update rs.Close conn.Close set conn=nothing set rs=nothing 在定义了book、author等变量后,从不同的文本框中取出不同的数值交给不同的变量,然后程序检查数据库看看是不是在最后一行,如果不是则不断的向下移,一直到最后一行,进行rs.addnew的操作,将变量中的数值写到数据库中,最后关闭数据库的连接,添加操作到此结束,添加成功后会弹出一个成功对话框,表示添加成功,在添加时一些变量是不能为空的,系统会做提示。页面如下图(3-4): 图(3-4)图书添加页面 3.5.5图书的删除页面(bdel.asp): 在删除页面中重要的是删除程序,与添加页面(bupdate1.asp)静态页面相同,显示的数据库中的书籍的书名,只要点击书名前面的多选框,在提交后,就会被删除,删除成功后会弹出一个操作成功的对话框,复选框对应的书库中书籍的id号,选定值为“on”,只要选定的id的选定值为“on”则删除,以下为删除的部分程序: do while not rs.eof n=trim(cstr(rs("id"))) if request.form(n)="on" then rs.delete rs.update end if set rs=nothing conn.Close set conn=nothing 当返回的request.form(0)和‘on’相同则删除和更新。 3.5.6剩下的顾客的浏览、添加、删除和修改,订单的操作都与图书的操作相同,不在重复,只要修改一下数据库中的表的名称和变量即可。 3.6 购物页面 3.6.1数据库准备 购物车是网上购物的必备,主要用于极力客户购买的图书编号、书名、出版社、作者、数量、单价等信息,并且要计算出总加,以便购书者可以随时掌握自己的购买信息。将客户购买的信息在购买结束后用数据库统一的管理,直接将信息写入数据库,我觉得这样比较简单一些,不足的是会给服务器大的负担。 3.6.2购物车功能的定义 购物车是客户在市场中实施购买活动的辅助工具,购物车的性能的优劣在某种程度上也会影响购买者的购买行为。所以我觉得在设计购物车时,不仅要考虑到功能,也要考虑到多样性和实用性。要可以存放客户选好的图书;要随时更改是否需要购买;要随时改变购买的数量;可以显示目前购物车中的货物的总金额。 3.6.3购书结帐设计 购书结帐是购书者在书店中的最后一步工作,为了将图书送达到客户手中,必须要求客户输入自己的信息(包括出货的地址信息)。一旦客户将基本信息输入完成并提交,则系统将进入结账处理主流程。系统会把清单写入数据库,管理员可以在管理员窗口修改和整理清单。 3.6.4处理逻辑 流程图如下: 开 始 购买吗? 是 更改数量? 否 想继续购物吗? 是 是 结帐 否 填写用户信息 确定 结束 3.6.5页面结构 购物车分为2个页面,一个是物品检查页面(ordercheck.asp),一个是提交页面(shoporder.asp);在提交页面中可看到顾客已经购买的物品,在这里可以更改物品的数量,在检查无误后,可以继续购买或者点击结帐,页面如下图(3-5) 图(3-5)购物车页面 在点击确定后,就可以看到检查页面,在检查页面中可以看到本次购买的物品名字、数量和总价,详细如图(3-6) 图(3-6)购物提交页面 以上为本网站的基本页面的简介。 4. 后台数据库设计 在线图书销售系统采用了Access数据库系统来建立一个bookshop数据库,其中包含了3个数据表。 一、guest客户表,用于存放用户购书的信息: 序号 字段名 含义 类型 长度 备注 0 ID1 记录编号 自动编号 主键 1 guestname 顾客姓名 文本 15 2 guestaddr 顾客地址 文本 3 guestzip 邮编 文本 15 4 guestphone 电话 文本 5 bookname 书名和数量 文本 120 6 data 日期 日期/时间 二、book书库表,用于存放所有的图书的信息。 序 号 字 段 名 含 义 类 型 长 度 备 注 0 ID 图书编号 自动编号 15 主键 1 book 书 名 文本 24 2 author 作 者 文本 50 3 price 出售价格 货币 出售价格 4 publish 出版社 文本 50 5 photo 图片 整型 50 图片文件名 6 num 库存数量 文本 现有库存量 7 class 图书类型 备注 20 8 memo 简介 备注 三、 orders订单表,用于存放用户所订图书的信息。 序号 字段名 含义 类型 长度 备注 0 ID 记录编号 自动编号 15 主键 1 guestname 用户名 文本 15 2 guestaddr 用户地址 文本 50 3 guestzip 用户邮编 文本 50 4 guestphone 用户电话 文本 15 5 bookname 所订书名 文本 50 6 date 订单日期 日期/时间 对于网上书店的后台系统是Web应用系统的重要部分,一个站点的正常运行及信息的更新都要通过后台的管理来实现。后台可以分为新增图书、图书推荐、删除库存、订单管理、整理留言等几个部分。 为了防止非法用户访问后台系统,如果不是管理员等级的用户则无权访问。这样就避免了非法用户通过直接输入文件名进行访问的情况,提高了系统的安全性。 5.网站的部分代码 用户注册代码: <%@ Language=VBScript %> <%option explicit founderr=false temp=request.form("nicename") name=Request.Form("name") if name="" then founderr=true errmsg="姓名不能为空" end if tel=Request.Form("tel") if tel="" then founderr=true errmsg=errmsg & "联系电话不能为空" end if addr=Request.Form("addr") if addr="" then founderr=true errmsg=errmsg & "联系地址不能为空" end if email=Request.Form("email") if email="" then founderr=true errmsg=errmsg & "e-mail不能为空!" end if zip=Request.Form("zip") if zip="" then founderr=true errmsg=errmsg & "邮编不能为空!" end if pw1=Request.Form("password1") pw2=Request.Form("password2") if (pw1="" or pw1<>pw2) then founderr=true errmsg=errmsg & "密码错误!" end if if founderr then Response.Write errmsg %> <%else dim connstr,conn,rs,sql connstr="dbq="+server.MapPath("mdb/bookshop.mdb")+";defaultdir=;driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr set rs=server.CreateObject("adodb.recordset") sql="select * from guest " rs("nicename")=temp rs("name")=name rs("tel")=tel rs("addr")=addr rs("zip")=zip rs("email")=email rs("password")=pw1 rs.Update rs.Close conn.Close set conn=nothing set rs=nothing %> <script language="javascript"> alert("已经成功添加了一条记录!谢谢!") document.location="bookright.asp" </script> <% end if%> 用户信息修改: <%@ Language=VBScript %> <%option explicit dim name,tel,addr,email,zip,pw1,pw2,temp dim founderr,errmsg founderr=false temp=Request.Form("nicename") name=Request.Form("name") if name="" then founderr=true errmsg="姓名不能为空" end if tel=Request.Form("tel") if tel="" then founderr=true errmsg=errmsg & "联系电话不能为空" end if addr=Request.Form("addr") if addr="" then founderr=true errmsg=errmsg & "联系地址不能为空" end if email=Request.Form("email") if email="" then founderr=true errmsg=errmsg & "e-mail不能为空!" end if zip=Request.Form("zip") if zip="" then founderr=true errmsg=errmsg & "邮编不能为空!" end if pw1=Request.Form("password") 'if (pw1="" or pw1<>pw2) then ' founderr=true ' errmsg=errmsg & "密码错误!" 'end if if founderr then Response.Write errmsg %> <%else dim connstr,conn,rs,sql connstr="dbq="+server.MapPath("mdb/bookshop.mdb")+";defaultdir=;driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr 'rs.AddNew rs("nicename")=temp rs("name")=name rs("tel")=tel rs("addr")=addr rs("zip")=zip rs("email")=email rs("password")=pw1 rs.Update rs.Close conn.Close set conn=nothing set rs=nothing %> <% end if%> 图书浏览代码: <%@ Language=VBScript %> <%option explicit on error resume next dim conn,rs,sql,i,connstr connstr="dbq=" & server.MapPath("mdb/bookshop.mdb") & ";driver={microsoft access driver (*.mdb)};" set conn=server.CreateObject("adodb.connection") conn.Open connstr set rs=server.CreateObject("adodb.recordset") sql="s展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




基于bs结构的在线图书销售系统-工学学士毕业论文.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2961405.html