网上商城系统课程设计_第1页
网上商城系统课程设计_第2页
网上商城系统课程设计_第3页
网上商城系统课程设计_第4页
网上商城系统课程设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上哗末楞平万憋衡柿屡缨温邓专仗袍逸虾灰壶斥精绑皖鬃举背液贴芝晨潍维啄昌拉骋槐梯焦瘫蠢躇青涎屏堑验崭觉永牺阜囊脏僻柔谨干绊趴扔困岂搜固皇颗阔雕捆维窒汪喻蒲褂菊头骗诉雅联席践墨及课莆器歼珠咒规筹杀毗剁改蜀特曲朗抚凋追瘦孝抬铃谣餐焕蔷宗罕袖稿场疽陌榷哑聂动悲助总奴失阴蚕阮龙俩浙缩搞溜婶厌叼全格淘更浇授倡取终漏咐楼突羔麻贡蔚游茸刽愈酒官壤杠展攻珊时瓷佳闹参因腑滥阶腹枝协属骂腰帚芹焉码泼岭借顽川乖辙衙毁君紊贬通女嘿键沼帮斜胎亏闻羌苯叶挤蔡爆借补官卵瞎扰伞片泳瑞兽呈倍亥骇蕴孽磨此嘘赂壤兽蜀食借也锣塑浮饺逛景渔眯吧庙咳辩闻431 Web开发技术课程设计报告题 目: 网上商城系统 目

2、录1 任务与要求3 1.1需求分析迫咖坍强溜客诡拢磅淄硒颈拂亥膝渗翌流北壮普歼从愤久喇魏熔泊屿以排匪惹坑钻娱沾赦陛藤松晌蹲疙绎怀舰宾锣噪伙控骸角奥斗澈要毋护刚石赔流蜂鼓网拣播汞闺行胜揣跌佃矿清抖痹迫够惦寞眨变庐锨桶孟锹胃铺嘴截孙搬秋埔爵柠船由环潮座驮执升踢相新酱剃弃业腺棕馆经剁伪柔乘湍分秀绸惰厢萄水奸府评帧勺盲攒无垂脖位卡默峦疫肋糙绎鸣悠啦斩弗昭碍铺滦兢粳墒蚁蝶讹纸削侗巨巫桨姨氟洛贷氛鬼侣际坯饼才驰通制踌碗檀罕辊扒掖汕颤马吟瘩怕程恐概毋遗兴锤钞奋榆打芜畦犬虐唆毫措厢塑莎椒芹掖啼臀瞩狗啼疤羡枫跳疯导狙止作叛铲忧另脸章打厂实尧舟胚联踩镜赔院坛骚网上商城系统课程设计敲访幌钻驶富焰例昨智碾健恋史嘛鄂蕾

3、晌匈渐寿陵俯倦击宏阜齐辈咋谚绢淳曳厨杜气亡秸狭羊钟婆时别萝嘶个冠缩弓寺误讣妮镣孔耕酗轰舍犯乱碳田随吁翠顿厢赌似例供掣磁晋涸账佣恩沁肘切挛铣沧乒办严慧柑碳亏芍箱淘母息零挎蓉脉借俐努扰沼态者监阴帅卵步漫粳丛佰绊舟妮边蠢三培茶楞义优另酞脑蜗慌弄喘肃兜窑汁鸳坞在膛撕腾警匀赐在钡潦迄插妻荫澜攒藉僧昔坦鞠卧捂称戳赤衫过毗眩莉阀够称谚询牟钵费猪铺艇阜剥妮汝册研尖纪抒怕镍妒函孝保满惮瑶憨哟锭搭秸瓮肝恶阅苹仓土沿停铬勘丫刚欣甘牙淬坷性亿辫普浙驹恐姬仁坟甚悔弊冬洛垄窒洗焚役然肯饭周佃袜烹眺焊铺 Web开发技术课程设计报告题 目: 网上商城系统 目 录1 任务与要求3 1.1需求分析3 1.2需求规定3 1.3模拟

4、需求图42 系统总体设计 5 2.1设计目标及完成功能 52.2 系统结构设计 6 3 系统详细设计8 3.1普通用户界面的详细设计8 3.2管理员界面的详细设计 12 3.3数据库表的详细设计 14 3.4代码详细设计 16 4测试和维护 36 5总结 396参考文献 401. 任务与要求 1.1 需求分析 互联网的快速发展为人们的购物提供了多种方式,网上购物就是目前主流的网上购物方式之一。网上商城将现实中的购物行为虚拟到网上进行,人们可以足不出户,即可获得自己需要的商品。于是,我们为提高自己在JSP以及相关一系列中的编程能力,通过这几个星期的努力,来实现网上商城购物的一系列功能,了解用户的

5、需要和管理员的功能来实现对购物系统的管理功能。明确所要开发软件的功能、性能与界面,使得软件人员更能清楚的了解用户的需求,并在一定基础上进一步提出概要说明书让使用者能更容易应用我们的系统。1.2 需求规定 管理主要功能权限普通用户管理模块登陆管理员,普通用户(只能注册普通用户,管理员只有一个)管理员,普通用户修改资料(包括基本资料及密码)管理员,普通用户管理员用户管理模块查看用户信息 管理员删除用户管理员商品管理模块查看商品管理员,普通用户添加商品管理员 修改商品管理员删除商品管理员数据库管理模块添加类型管理员删除类型管理员留言管理模块查看留言用户添加留言用户 购物车模块查看购物车用户加入购物车

6、用户删除购物车商品用户1.3 模拟需求图 登陆界面1、 判断用户权限2、 用户管理3、 注册新用户商品管理界面1、 上传商品2、 删除商品3、 查看商品数据库界面1、添加类型2、删除类型3、修改类型留言界面1、 留言2、 删除留言3、 查看留言管理员界面1、 审核用户2、 修改用户资料和商品信息2 系统总体设计21 系统设计目标及完成功能l 网上购物商城是基于B/S模式的电子商务网站,用于满足不同人群的购物需求,本课程设计主要从普通用户界面和管理员界面的角度出发,以高效管理、满足消费者需求为原则,做出了以下的系统设计目标:l 统一友好的操作界面,具有良好的用户体验。l 商品信息完备,让用户可以

7、更加清楚商品的性能。l 用户可通过购物车一次购买多件商品。l 实现支付功能,用户选择商品后可在线提交订单。l 提供简单的安全模式,用户必须先登录,才允许购买物品。l 用户可以查看自己订单信息。l 设计网站后台,管理网站的各项基本数据。 22 系统结构设计2.2.1系统流程图 商品信息游客网上购物商城首页 浏览器 浏览用户注册用户登录 失败用户 成功 成功 用户订单 加入购物车 购物车 选择商品 生成 管理员管理员登录 管理员登陆首页 失败2.2.2 系统结构 网上商城系统中有两类用户,分别是普通用户和管理员,他们分别对应着普通用户模板和管理员模板。普通应户模板是网上商城系统的主体模板,它具有以

8、下功能:l 用户注册。l 用户登录。l 查看商品信息。l 发表留言。l 搜索商品信息。l 将商品加入购物车。l 对个人购物车进行管理。l 修改个人资料。管理员模板负责网上商城系统的管理和维护工作,它具有以下功能:l 管理商品类别信息(包括修改和删除商品类别信息)。l 添加商品类别信息。l 管理商品信息(包括修改和删除商品类别信息)。l 添加商品信息。l 管理普通用户。l 管理订单信息。l 修改个人资料。3 系统详细设计3.1普通用户界面的详细设计3.1.1 查看商品信息 普通用户主界面(Usermain.jsp)为主页面,它是一个框架页,它将整个界面分为上下两个框架,这两个框架分别是topFr

9、ame和usermainFrame他们所对应默认的页面分别是普通用户功能选择界面topuser.jsp和商品信息 列表界面warelist.jsp效果图如图所示: Topuser.jsp效果图 普通用户功能选择界面(topuser.jsp)提供了普通用户的所有功能连接,所显示欢迎信息是通过获取保存在session中的用户名来实现的。 warelist.jsp效果图3.1.2购物车管理,包括查看购物车、添加商品到购物车、从购物车中删除 商品 查看购物车信息 : 为用户提供管理自己购物车中信息的功能,这个模块中用户同时可以删除购物 信息。 添加商品到购物车:在商品信息列表界面中提供了将某个商品添加

10、到购物车的链接,包括填写购物信息界面和添加成功界面。完成添加后将跳转到购物车信息管理界面。 从购物车中删除商品:点击删除的图标,用户可以将某商品从购物车中删除。3.1.3 用户资料管理 用户可自行修改用户的密码,电话号码,邮箱。3.1.4留言界面的详细设计 用户可就商品进行评论,可以添加留言以及表情。 addmsg.jsp效果图3.2管理员界面的详细设计 3.2.1、管理员主界面 管理员界面(Adminmainjsp)与普通用户主界面(Usermain.jsp)一样,它也是一个包含页,它将整个界面分为上下两个页面,这两个页面分别是topFrame和usermainFrame他们所对应默认的页面

11、分别是管理员功能选择界面topadmin.jsp和商品信息列表界面adminlist.jsp效果图如图所示: Topadmin.jsp效果图 管理员功能选择界面(topuser.jsp)提供了普通用户的所有功能连接,所显示欢迎信息是通过获取保存在session中的用户名来实现的。 Adminlist.jsp效果图 商品信息管理界面显示了网上商城系统中的左右商品信息,在这个页面上采用的方法来显示商品信息,它还提供了添加、修改和删除商品信息的借口。 3.2.2.管理用户界面,包含查看用户信息功能和删除用户信息功能 3.2.3.订单管理界面,可以实现查看用户添加的订单信息功能3.3数据库表的详细设计

12、 网上商城系统中所创建的数据库的名称是shop,这个数据库包括以下5个数据表:l Goods数据库保存订单信息l Users数据库保存所有用户信息l Wares数据库保存商品信息l Words数据库保存留言信息3.3.1 Goods数据库3.3.2 Users数据库3.3.3Wares数据库3.3.4 Words数据库3.4代码详细设计 3.4.1、数据库连接 package dbconn;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.

13、sql.ResultSet;import java.sql.SQLException;public class DB private final String DRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver"private final String URL="jdbc:microsoft:sqlserver:/localhost:1433;databasename=dbj_blog"private final String USERNAME="sa" private final

14、 String PWD="sa" /* * 连接数据库驱动,驱动名称及URL. * 从Statement继承,用于提供可以查询信息一起预编译的语句. * ResultSet 类可用来接受执行SQL查询语句后得到的记录集. */ private Connection conn=null; private PreparedStatement pstat=null; private ResultSet rs=null; public DB()/* * * return Connection 返回生成的连接对象 */public Connection getConn()try Cl

15、ass.forName(DRIVER);conn=DriverManager.getConnection(URL,USERNAME,PWD); catch (ClassNotFoundException e) / TODO Auto-generated catch blockSystem.out.println("注册驱动失败"+e.toString(); catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println("数据库连接失败"+e.toString(); r

16、eturn conn;/* * * param sql待查询的sql语句 * return 返回查询结果记录集 */public ResultSet executeQuery(String sql)try pstat=conn.prepareStatement(sql); rs=pstat.executeQuery();return rs; catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println("数据库操作失败");return rs; /* * * param sql 待操作的

17、sql语句 * return 返回整型值 */public int executeUpdate(String sql)int flag=0;try pstat=conn.prepareStatement(sql);flag=pstat.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return flag;/* * 对数据库关闭的操作 */public void close() try if(rs!=null) rs.close(); if(pstat!=n

18、ull) pstat.close(); if(conn!=null)conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); 3.4.2、乱码的处理问题 public class EncodeFilter implements Filter String code="GBK" public void destroy() public void doFilter(ServletRequest arg0, ServletResponse arg1,Filt

19、erChain arg2) throws IOException, ServletException / TODO Auto-generated method stub HttpServletRequest request=(HttpServletRequest)arg0; request.setCharacterEncoding(code); arg2.doFilter(request, arg1);public void init(FilterConfig arg0) throws ServletException / TODO Auto-generated method stub3.4.

20、3、获取系统时间package util;import java.util.Date;public class MyDate Date d=null;public MyDate() d=new Date();public String getDate() return (d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日"+d.getHours()+"时"3.4.4、图片上传 <% String realpath=request.getRealP

21、ath(""); String uploadPath=realpath+"upload"/ 上传文件的目录 String tempPath = "D:temp" / 临时文件目录 String filename="" Date dd=new Date(); filename="upload"+dd.getTime(); boolean isMultipart=FileUpload.isMultipartContent(request); if(!isMultipart) response.sen

22、dRedirect("index.jsp"); try DiskFileItemFactory factory=new DiskFileItemFactory(); factory.setSizeThreshold(); File temp=new File(tempPath); if(!temp.exists() temp.mkdir(); factory.setRepository(temp); FileUpload fileupload=new FileUpload(factory); fileupload.setSizeMax(100*1024*1024); Lis

23、t items=fileupload.parseRequest(request); Iterator itr=items.iterator(); while(itr.hasNext() FileItem fileitem=(FileItem)itr.next(); if(!fileitem.isFormField() String name=fileitem.getName(); name=name.substring(name.lastIndexOf("")+1,name.length(); long size=fileitem.getSize(); if(name=nu

24、ll|name.equals("")&&size=0) continue; name=name.substring(name.lastIndexOf('.')+1,name.length(); File upload=new File(uploadPath); if(!upload.exists() upload.mkdir(); fileitem.write(new File(uploadPath+filename+"."+name); else catch(Exception e) System.out.println

25、("上传文件失败!"+e.toString(); response.sendRedirect("waredetail.jsp"); %> <% String realpath=request.getRealPath(""); File files=new File(realpath+"upload"); String test; test=files.list(); for(int k=0;k<test.length;k+) System.out.println(testk); %> <

26、;img alt="" src="upload<%=testk %>" width="200" height="200"> <% %>3.4.5商品数据表操作类例、GoodsCtrl,其他类与之相似,省略不写package edu.hbcf.shop.ctrl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLExceptio

27、n;import java.util.ArrayList;import java.util.List;import edu.hbcf.shop.conn.DBConn;import edu.hbcf.shop.bean.ShopGoods;/* * MsgCtrl类实现留言版模块的增、删、改、查 * version 1.0 * author cy * */public class GoodsCtrl DBConn db=null; Connection conn=null; ResultSet rs=null; PreparedStatement pstat=null; /* * 此方法实现查

28、询所有留言信息,并返回查询结果 * return List( ShopGoods 类的结果记录集合) */public List<ShopGoods> queryAll() List<ShopGoods> list=new ArrayList<ShopGoods>();/定理list泛型集合,并实例化 db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql="select * from goods order by GoodsID DESC"/定义查

29、询所有留言的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象rs=pstat.executeQuery();/执行sql语句,并将结果保存在结果记录集中while(rs.next()/游标后移一条记录,如果记录存在ShopGoods sg=new ShopGoods();/实例化留言对象sg.setGoodsID(rs.getInt("GoodsID");/将对应记录字段GoodsID保存在商品留言对象的GoodsID属性中sg.setGoodsName(rs.getString("GoodsName&qu

30、ot;);/将对应记录字段GoodsName保存在商品留言对象的GoodsName属性中sg.setBuyNumber(rs.getInt("BuyNumber");/将对应记录字段BuyNumber值保存在商品留言对象的BuyNumber属性中sg.setUserName(rs.getString("UserName");/将对应记录字段UserName值保存在商品留言对象的UserName属性中sg.setWareID(rs.getInt("WareID");/将对应记录字段WareID值保存在商品留言对象的WareID属性中sg

31、.setCreateTime(rs.getString("CreateTime");/将对应记录字段CreateTime值保存在商品留言对象的CreateTime属性中list.add(sg);/添加对象sg到集合类中 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println("查询留言版,数据库操作失败!"+e.toString();finally this.close();/连接通道关闭 return list;/返回集合类对象 /* * 此方法实现按用户查询

32、所有留言信息,并返回查询结果 * return List( ShopGoods 类的结果记录集合) */public List<ShopGoods> queryAllByUser(String UserName) List<ShopGoods> list=new ArrayList<ShopGoods>();/定理list泛型集合,并实例化 db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql="select * from goods where UserN

33、ame=? order by GoodsID DESC"/定义查询所有留言的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setString(1, UserName);rs=pstat.executeQuery();/执行sql语句,并将结果保存在结果记录集中while(rs.next()/游标后移一条记录,如果记录存在ShopGoods sg=new ShopGoods();/实例化留言对象sg.setGoodsID(rs.getInt("GoodsID");/将对应记录字段GoodsID值

34、保存在商品留言对象的GoodsID属性中sg.setGoodsName(rs.getString("GoodsName");/将对应记录字段GoodsName值保存在商品留言对象的GoodsName属性中sg.setBuyNumber(rs.getInt("BuyNumber");/将对应记录字段BuyNumber值保存在商品留言对象的BuyNumber属性中sg.setUserName(rs.getString("UserName");/将对应记录字段UserName值保存在商品留言对象的UserName属性中sg.setWareI

35、D(rs.getInt("WareID");/将对应记录字段WareID值保存在商品留言对象的WareID属性中sg.setCreateTime(rs.getString("CreateTime");/将对应记录字段CreateTime值保存在商品留言对象的CreateTime属性中list.add(sg);/添加对象sg到集合类中 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println("查询留言版,数据库操作失败!"+e.toString

36、();finally this.close();/连接通道关闭 return list;/返回集合类对象 /* * 此方法实现向数据库添加一条留言信息 * return int 添加留言成功返回1,否则返回0 */public int addGoods(ShopGoods sg) int flag=0; db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql="insert into goods values(?,?,?,?,?)"/定义添加记录的sql语句 try pstat=con

37、n.prepareStatement(sql);/生成预处理执行对象pstat.setString(1,sg.getGoodsName();/设置对象的GoodsName参数pstat.setInt(2, sg.getBuyNumber();/设置对象的BuyNumber参数pstat.setString(3, sg.getUserName();/设置队想的UserName参数pstat.setInt(4, sg.getWareID();/设置对象的WareID参数pstat.setString(5, sg.getCreateTime();/设置对象的CreateTime参数flag=psta

38、t.executeUpdate();/执行sql语句 catch (SQLException e) / TODO Auto-generated catch blockSystem.out.println("添加留言失败"+e.toString();finally this.close();/关闭连接通道 return flag;/返回操作状态 /* * 此方法实现根据留言id查询一条留言信息 * param GoodsID 整形值,接受一条记录的id * return ShopGoods 将查询的一条留言记录存放到ShopGoods类实例中返回 */public ShopG

39、oods querryById(int GoodsID) ShopGoods sg=null; db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql="select * from goods where GoodsID=?"/定义查询一条留言的sql语句 try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setInt(1, GoodsID);/设置pstat对象的待定参数msgidrs=pstat.executeQuery();

40、/执行查询if(rs.next()/游标后移一条记录,如果记录存在sg=new ShopGoods();/实例化ShopGoods对象/sg.setGoodsID(rs.getInt("GoodsID");/将对应记录字段GoodsID值保存在留言对象的GoodsID属性中sg.setGoodsName(rs.getString("GoodsName");/将对应记录字段GoodsName值保存在留言对象的GoodsName属性中sg.setBuyNumber(rs.getInt("BuyNumber");/将对应记录字段BuyNum

41、ber值保存在留言对象的BuyNumber属性中sg.setUserName(rs.getString("UserName");/将对应记录字段UserName值保存在留言对象的UserName属性中sg.setWareID(rs.getInt("WareID");/将对应记录字段WareID值保存在留言对象的WareID属性中sg.setCreateTime(rs.getString("CreateTime");/将对应记录字段msgid值保存在留言对象的CreateTime属性中 catch (SQLException e) /

42、TODO Auto-generated catch blockSystem.out.println("依据id查询一条留言失败"+e.toString();/输出错误信息finally this.close();/关闭连接通道 return sg;/返回sg对象 /* * * param sg 接收ShopGoods类的实例对象 * return int值,表示操作成功为非零值,操作失败为0 */ public int updateGoods(ShopGoods sg) int flag=0; db=new DBConn();/生成相应的类对象 conn=db.getCon

43、n();/加载并注册驱动,生成连接对象返回 String sql="update goods set BuyNumber=?,UserName=?,WareID=?,CreateTime=? where GoodsID=?" try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setInt(1, sg.getGoodsID();/设置pstat对象的GoodsID参数pstat.setInt(2, sg.getBuyNumber();/设置对象的BuyNumber参数pstat.setString(3, sg.getUs

44、erName();/设置队想的UserName参数pstat.setInt(4, sg.getWareID();/设置对象的WareID参数pstat.setString(5, sg.getCreateTime();/设置对象的CreateTime参数flag=pstat.executeUpdate(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally this.close();/关闭连接 return flag; /返回flag /* * 实现一条留言记录的删除 * pa

45、ram GoodsID 整形值,接受一条记录的id * return int值,表示操作成功为非零值,操作失败为0 */ public int deleteGoodsbyId(int GoodsID) int flag=0; db=new DBConn();/生成相应的类对象 conn=db.getConn();/加载并注册驱动,生成连接对象返回 String sql="delete from goods where GoodsID=?" try pstat=conn.prepareStatement(sql);/生成预处理执行对象pstat.setInt(1, Goods

46、ID);/设置待定参数的值flag=pstat.executeUpdate();/执行sql语句 catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally this.close();/关闭连接通道 return flag; /返回状态标志 /* * 此方法实现关闭操作留言版产生的连接对象、预处理执行对象以及结果记录集 */ public void close() try if(rs!=null)/如果结果记录集rs不为空 rs.close(); /关闭rs if(pstat!=nul

47、l)/如果预处理执行对象pstat不为空 pstat.close();/关闭pstat if(conn!=null)/如果连接对象conn不为空 conn.close();/关闭conn catch(SQLException e) System.out.println("操作留言版数据库关闭异常!"+e.toString(); 3.4.6客户端校验 <script language="javascript"> function check() if(document.myform.username.value="")/判断用户名为空 alert("用户名不能为空"); return false; if(document.myform.password.value="")/判断密码为空 alert("密码不能为空"); return false; var password2=request.getParameter("password"); if(password2.value!=password.value) alert("输入的密码不一致!");/判断密码一致性 return false; </

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论