欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    小游戏五子棋JAVA程序设计.doc

    • 资源ID:72426596       资源大小:2.04MB        全文页数:26页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    小游戏五子棋JAVA程序设计.doc

    小游戏五子棋JAVA程序设计滨江学院 Java程序设计实习课程设计题目 小游戏五子棋 学生姓名 bb 学 号 20112346002 院 系 滨江学院计算机系 专业年级 网络工程一班 指导教师 方忠进 二一三 年 6 月 20 日引言1 1。需求分析11.1 基本需求分析11.2 高级需求分析22 开发环境22.1 开发环境及运行环境22.1.1 开发环境22.1。2 运行环境23 总体设计23。1 系统设计思想23。2 系统总体设计33.3 功能模块及流程43。3。1 系统主要模块43.3.2 服务器端作用53.3。3 客户端作用63.3。4 系统主流程74 详细设计74。1 客户端界面设计84.2 客户端网络设计94。3 棋盘类设计94。4 系统各模块之间的关系105 软件展示105。1 游戏界面展示105。2关键代码.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。116 总结语20参考文献2422基于Java的“网络五子棋"游戏的设计和实现网络版客户端引言 随着经济社会的迅速发展,人们生活水平有了很大的提高,人们的生活观念也发生了巨大的改变。高品质的生活、现代化得生活方式成为人们共同追求的目标;休闲、娱乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。棋类项目作为一种智力型项目,可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。一些项目比如五子棋等等,由于项目本身互动的特点,一直被人们所喜爱,因此得以生存和发展,成为许多人喜爱的休闲娱乐性棋类项目。 而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。休闲类网络游戏集合了益智性、趣味性、互动性、娱乐性于一体,已经成为多数人群的选择的休闲方式.借此,本论文在分析了当前计算机网络的蓬勃发展和人们对于休闲娱乐性生活方式的追求,以java为工具,以精美的界面,以常规安全的socket建立连接,设计更为益智的网络五子棋游戏,增强了趣味性和益智性.1 需求分析需求分析作用软件需求分析是软件开发周期的第一个阶段,也是关系到软件开发成败的最关键一步。只有通过了软件需求分析,才能把软件的功能和性能由总体的概念性和理论性描述转化为具体的规格说明,从而建立软件开发的基础.实践证明,需求分析工作进行得准确程度,在很大程度上决定了软件开发的成败。软件需求分析的任务就是让用户与开发者明确开发的是一个什么软件。具体的说,就是通过对问题及其环境的理解、分析与综合把握,建立逻辑模型,完成软件的逻辑方案设计。1.1 基本需求分析软件的界面简洁明了而不失精美,操作简单容易,功能按钮名称简单易懂,棋盘的大小,棋子的样式.1.2 高级需求分析现有的网络编程模式主要分成两类:一种是基于C/S(Client/Server)模式,另一种是B/S (Browser/Server)模式。网络五子棋系统应用于局域网,对交互性要求很高,本系统选用了C/S 模式进行实现,网络内部使用TCP/IP 方式利用Socket提供的服务,使用Java Graphics类进行用户图形界面的搭建。系统分成两个部分,分别为服务端程序以及客户端程序7。结合实际情况,将服务器端的程序和客户端的程序放在一起,便可以更为方便的建立游戏和参与游戏,有效解决了在局域网中服务器未开启,则无法进行游戏的缺陷。五子棋网络游戏主要分为两个部分,游戏服务端和游戏客户端。游戏服务端主要存储所有连线客户的相关信息及各种状态,并负责游戏客户之间数据的传递,具有创建服务器、系统设置、连接服务器、我要参赛等等功能;游戏客户端提供客户连接服务器,并能与联网玩家进行游戏。由于将服务器端和客户端程序放在一起,所以可以减少界面绘制的冗余代码,使得客户端和服务器端使用相同的界面。故客服端也具有创建服务器、系统设置、连接服务器、我要参赛等功能.2 开发环境及运行环境2.1。 开发环境 AMD Athlon(tm) 2.10GHz,2G内存,80G硬盘 Microsoft Windows 7 JDK 1.60 Eclipse2。2 运行环境 Intel Pentium core及以上处理器,128M以上内存,20G以上硬盘 Microsoft Windows 9X/NT操作系统 1024768或以上的屏幕分辨率3。.总体设计总体设计是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分析中提出的逻辑模型,合理地完成物理模型的设计。这个阶段的主要目标是将反映了用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必须的技术资料.总体设计应遵循以下原则: 整体性:软件是作为统一整体而存在的.因此,在总体设计中要从整个软件的角度去考虑. 灵活性:为保持软件长久的生命力,要求该软件具有很强的环境适应性。为此,该软件必须具有较好的开放性与结构的可变性. 可靠性:可靠性是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。 经济性:经济性是指在满足游戏软件需求的前提下,尽可能地减少对游戏的开销.3。1 系统设计思想通过服务器的连接,不同的玩家可以连接到各自想参加比赛的服务器地址,并开始各自的游戏。通过安全的SOCKET连接交换数据。通过多线程,使得每个对战的双方不会受到第三方数据的干扰.本系统的功能能够实现一个在网络上供客户进行对战的五子棋网络游戏,因为是C/S 模式的网络游戏,客户只要连接到服务器上,就能选择任何其它用户已创建好的游戏进行对战游戏。在C/S模式游戏中,Server一般提供所有用户的全部信息,并能提供客户之间的信息转发.客户之间的通讯必须通过Server进行,因为多个客户能够连接到同一台Server上,所以Server必须用Thread 负责每个用户的通讯和消息处理。客户连接成功,Server利用特定的客户Thread连接不断从客户读取数据,实现客户和服务器或者客户与客户之间的信息的交互。客户端同样采用的是线程控制的思想,在每一个客户端连接上服务器后,就为此客户端启动一个网络收发数据线程。系统设计设计框架如下图所示:WZQ_ClientWZQ_ServerWZQ_ClientWZQ_ClientWZQ_Client服务客户用户通过TCP与服务器建立连接,通过SOCKET与服务器交互数据图3.2.1-1 网络五子棋设计框架图3.2 系统总体设计系统使用Socket 技术以及java 多线程机制进行客户与服务端之间信息的交互,但一个真正实用程序必须针对具体应用定制一套协议用于用户程序之间进行交互,而该协议的定制往往是编写程序的关键也是核心内容,该协议的完善决定程序是否能够正常运行。所谓协议就8是程序之间交互的信息的格式规定, 服务端和客户端都遵循该协议才能够进行对话, 通俗讲是人类之间的语言。本网络游戏可以分为两个部分:服务器和客户端。服务器主要存储所有连线客户的相关信息及各种状态,并负责游戏客户之间数据的传递,具有创建服务器、系统设置、连接服务器、我要参赛等等功能;客户端提供客户连接服务器,并能与联网玩家进行游戏.信息交换如图所示: 客户端发送连接状态信息和聊天信息 客户端服务器服务器端转发其他客户端信息图3.2。21 客户端与服务器端的信息交换图3.3 功能模块及流程3。3。1 系统主要模块根据上面的系统的设计要求,可以将此网络五子棋游戏分为以下五个模块:初始化模块:建立棋盘数组并清零;初始化界面并在屏幕上画出棋盘,加载音乐等.主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中。玩家落子模块:即用户在指定落子区域单击后,程序就会得到该棋子的坐标,并且将棋盘数组中坐标处记录棋子的颜色,1代表白色,2代表黑色,以说明是哪一方下的棋子。胜负判断模块:根据预先设定的五子棋规则,判断游戏输赢。网络模块9:网络功能的实现,使两台不同计算机的用户通过网络连接,实现网络对弈的功能。3.3.2 服务器端作用服务器端10主要通过建立流连接来连接客户端,与客户端进行相互通信、转发信息.接收客户端的信息,接收信息后按照此客户端的要求将信息发送到相应的客户端,服务器端起到了中转的作用。玩家进入游戏界面时,如果玩家不想进入别人已经建立好的游戏中,那也可以自己从界面中建立一个自己的游戏,等待其他玩家的进入.首先输入你要建立游戏的IP地址,输入自己的名字,这样一个自己的游戏就建立了,如果有玩家加入游戏,系统会提示某某玩家进入,这时你可以选择开始游戏或者继续等待。游戏各模块功能跟客服端的模块相同。3.3.3 客户端作用玩家进入游戏界面时,首先提示用户连接服务器,当玩家连接上服务器后,就会在界面右上角给出用户的初始玩家名,在聊天内容框中会给出用户提示,玩家可以创建游戏或者加入建立好的游戏。游戏各模块功能如下表3.3。3-1:表3.3.3-1 客户端模块功能模块名称功能UserPad用于显示服务器发送过来的当前连接上服务器的用户,即活动玩家的玩家名称。chatPad用于显示服务器发送过来的提示信息以及用户公聊或私聊的内容。chessPad用于绘制棋盘及棋子,以及当前的提示信息。inputPad用于用户选择要公聊或私聊的对象,即所有人或某一具体的玩家,输入要发送的消息,发送给服务器,通过服务器转发出去。controlPad用于对当前的游戏界面进行实时的控制,包括:创建服务器、系统设置、连接服务器、我要参赛等。 以上功能模块在界面中的展示如下图所示:inputpadusrpadcontrolpadChatpadchesspad图3.3。31 用户操作界面3.3.4 系统主流程玩家进入游戏,选择是否为服务器,是则等待其他玩家加入,否则等待其他玩家建立服务器。进入服务器后点参赛,进入对弈阶段.对弈结束,从新开始.系统主流程如下图:开始是否建立服务器等待是否有服务器是否有玩家加入判断胜负否从新开始是游戏结束是是否一方退出一方胜利一方胜利图3。3.41 网络五子棋游戏流程图4 详细设计4.1 客户端界面设计游戏客户端主要用于玩家信息的初始化,玩家的操作状态的定义,包括结构组织游戏客户端的界面,实现定义游戏控制按钮,完成定义键盘的事件。主要方法: launchFrame()方法 用在启动玩家客户端时,为用户发送连接服务器信息,并且加载背景音乐等。 actionPerformed(ActionEvent e)方法 用于客户端玩家单击控制按钮的功能的实现。该方法主要用来实现玩家修改名字、创建游戏、我要参赛、系统设置等各个按钮的功能. keyPressed(KeyEvent e)方法 用于实现聊天功能,当玩家输入聊天信息到输入框中后,按回车键可以发送消息.此事件中主要处理了两个行为,一是当玩家选择某玩家进行私聊时的处理,二是当用户选择所有人进行公聊时的处理。.4。2 客户端网络设计网络客户端主要用于接收和发送服务器消息.主要方法如下: connect(String,int)用于服务器的连接.第一个参数是要连接的服务器的IP地址,第二个参数是连该服务器的端口号。玩家用此方法连接上服务器,玩家启动一个线程用来接收服务器发送过来的消息。 restart() 用于游戏重新开始,在此方法中要求将重新初始化信息,并且进行棋盘清理操作。 send(int,String)用于发送此玩家的消息状态给服务器。第一个参数是消息类型,第二个参数是消息内容.消息类型有如下几种如表5.31: 表4.2-1 消息类型类型发送消息类型0代表修改客户端名字1代表客户端建立游戏2代表客户端加入游戏3代表向游戏对方通告客户端已加入4代表客户端放弃游戏5代表客户端对游戏对方发送过来的放弃操作进行断开6代表游戏一方向另一方发送棋盘状态7代表游戏一方向另一方发送时间信息 doMessage(DatagramPacket)用于接收从服务器端发送过来的消息.4。3 棋盘类设计棋盘类主要用于绘制棋盘的。 paint(Graphics) 方法用来绘制棋盘、棋盘的背景图片和棋子位置。因为采用了双缓冲技术,有效的消除加载图片时的窗口闪烁。 clearBoard()方法用于初始棋盘和一些变量的操作。 select()方法设置其按钮状态的. isFull()方法用于判断当前棋盘是否已无法落子。如果当前棋盘已满,则通知玩家此局游戏流局. judge(int,int,int) 方法用于判断当前棋子落下时是否游戏胜负已分。如果游戏获胜,则方法返回真值;否则返回假值。4.4 系统各模块之间的关系ChessServer类,ChessClient类,NetClient类,ChessPad类等类之间的交互实现了系统的主要功能.服务器端模块的实现,主要的类是ChessPad类和ChessClient类。ChessClient类实现了玩家单击按钮功能及界面的组织;ChessPad类用于绘制棋盘和玩家的落子位置。客户端主要用到的是这三个类:ChessServer类、ChessClient类和NetClient类。服务器类和客户端类用Socket编程实现的信息交换.其他功能都是在用户连接服务器后由游戏客户端类自动调用其类来实现的。5. 游戏界面展示 游戏开始的界面,能够看到上面的各个不同的功能按钮,界面如下图:图6.3-1 游戏开始界面 输入玩家昵称,同时建立服务器,服务器按钮变成灰色,如下图:图6.32 建立服务器有玩家加入服务器,但是还没有参赛,如下图:图6.3-3 加入服务器 两个玩家都参赛,“我要参赛"变成灰色,显示玩家名字,如下图:图6。3-4 加入游戏 游戏一方获胜,系统提示,如下图:图6.3-5 游戏一方获胜 玩家在相互对话,如下图:图6。3-6 玩家对话5.1关键代码import .*;import java。io。*;import java.applet.*;import java。awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListenerint color_Qizi=0;/旗子的颜色标识 0:白子 1:黑子int intGame_Start=0;/游戏开始标志 0未开始 1游戏中int intGame_Body=new int1616; /设置棋盘棋子状态int m=1;Button b1=new Button(”开始”);Button b2=new Button(”重新开始");Label lblWin=new Label(" ");Checkbox ckbHB=new Checkbox3;Button exist = new Button(”退出”); CheckboxGroup ckgHB=new CheckboxGroup();public void init()setLayout(null);addMouseListener(this);add(b1);b1.setBounds(330,50,80,30);b1。addActionListener(this);add(b2);b2。setBounds(330,90,80,30);b2.addActionListener(this);ckbHB0=new Checkbox("执白”,ckgHB,false);ckbHB0。setBounds(320,20,60,30);ckbHB1=new Checkbox("执黑”,ckgHB,false);ckbHB1。setBounds(380,20,60,30);ckbHB2=new Checkbox("观看",ckgHB, false);add(ckbHB0);add(ckbHB1);add(ckbHB2);ckbHB0.addItemListener(this);ckbHB1.addItemListener(this);add(lblWin);lblWin。setBounds(330,180,80,30);lblWin.setBackground(Color.red);lblWin.setText(”胜利者!");/没有显示?ckbHB2。setBounds(440, 20,60, 30);add(exist);exist。setBounds(330,130,80,30);exist.addActionListener(this);Game_start_csh();setSize(500,600); setVisible(true);public void itemStateChanged(ItemEvent e)if (ckbHB0。getState()) /选择黑子还是白子color_Qizi=0;elsecolor_Qizi=1;public void mousePressed(MouseEvent e)public void mouseClicked(MouseEvent e)Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e。getY();if (e。getX()<20 | e.getX()300 | e。getY()<20 | e。getY()>300)return;if (x1%2010)x1+=10;if(y1%2010)y1+=10;x1=x1/2020;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1)public void actionPerformed(ActionEvent e)Graphics g=getGraphics();if (e.getSource()=b1)Game_start();elseGame_re();if(e.getSource()=exist)Game_re();/color_Qizi=m;lblWin.setText(Get_qizi_color(color_Qizi)+”输了!”);intGame_Start=0;public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)public void paint(Graphics g)draw_qipan(g);public void set_Qizi(int x,int y) /落子if (intGame_Start=0) /判断游戏未开始return;if (intGame_Bodyx/20y/20!=0)return;Graphics g=getGraphics();if (color_Qizi=1)/判断黑子还是白子g.setColor(Color.black);color_Qizi=0;elseg.setColor(Color。white);color_Qizi=1;g.fillOval(x-10,y-10,20,20);intGame_Bodyx/20y/20=color_Qizi+1;if (Game_win_1(x/20,y/20)) /判断输赢1lblWin.setText(Get_qizi_color(color_Qizi)+”赢了!”);intGame_Start=0;if (Game_win_2(x/20,y/20) /判断输赢2lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!”);intGame_Start=0;if (Game_win_3(x/20,y/20)) /判断输赢3lblWin.setText(Get_qizi_color(color_Qizi)+”赢了!”);intGame_Start=0;if (Game_win_4(x/20,y/20)) /判断输赢4lblWin.setText(Get_qizi_color(color_Qizi)+”赢了!");intGame_Start=0;public String Get_qizi_color(int x)if (x=0)return "黑子”;elsereturn "白子”;public void draw_qipan(Graphics G) /画棋盘 1515G。setColor(Color.lightGray);G。fill3DRect(10,10,300,300,true);G。setColor(Color。black);for(int i=1;i16;i+)G。drawLine(20,20*i,300,20*i);G.drawLine(20i,20,20i,300);public void Game_start() /游戏开始intGame_Start=1;Game_btn_enable(false);b2。setEnabled(true);public void Game_start_csh() /游戏开始初始化intGame_Start=0;Game_btn_enable(true);b2。setEnabled(false);ckbHB0。setState(true);for (int i=0;i<16 ;i+ )for (int j=0;j16 ;j+ )intGame_Bodyij=0;lblWin。setText("");public void Game_re() /重新开始游戏repaint();Game_start_csh();public void Game_btn_enable(boolean e) /设置组件状态b1。setEnabled(e);b2。setEnabled(e);ckbHB0.setEnabled(e);ckbHB1。setEnabled(e);public boolean Game_win_1(int x,int y) /横向判断输赢int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ )if (x1>15)break;if (intGame_Bodyx1+iy1=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i5 ;i+ )if (x11)break;if(intGame_Bodyx1-iy1=intGame_Bodyxy)t+=1;elsebreak;if (t>4)return true;elsereturn false;public boolean Game_win_2(int x,int y) /纵向判断输赢int x1,y1,t=1;x1=x;y1=y;for (int i=1;i5 ;i+ )if (x1>15)break;if (intGame_Bodyx1y1+i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i5 ;i+ )if (x1<1)break;if(intGame_Bodyx1y1-i=intGame_Bodyxy)t+=1;elsebreak;if (t4)return true;elsereturn false;public boolean Game_win_3(int x,int y) /左斜判断输赢 int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ )if (x115)break;if (intGame_Bodyx1+iy1i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i5 ;i+ )if (x1<1)break;if(intGame_Bodyx1iy1+i=intGame_Bodyxy)t+=1;elsebreak;if (t4)return true;elsereturn false;public boolean Game_win_4(int x,int y) /左斜判断输赢 int x1,y1,t=1;x1=x;y1=y;for (int i=1;i<5 ;i+ )if (x1>15)break;if (intGame_Bodyx1+iy1+i=intGame_Bodyxy)t+=1;elsebreak;for (int i=1;i<5 ;i+ )if (x11)break;if(intGame_Bodyx1iy1i=intGame_Bodyxy)t+=1;elsebreak;if (t>4)return true;elsereturn false;<applet code=”wuziqi.class”height=500 width=600>6 总结语通过几个月的对软件系统的设计和实现,一个能够完成网络对弈的五子棋游戏基本实现.全部的总结工作,具体概括如下:论文首先研究对比了网络五子棋游戏的具体优势,分析了C/S和B/S模式的各自的优缺点.对应系统的具体要求,构建了基于C/S模式的网络五子棋对战的基本设计。采用了网络编程中的一种,Socket编程,分析了Socket通信的基本原理及实现.因此选择了TCP协议作为通讯方式,为了确保数据传输的高效性、实时性和安全性,对玩家信息的交换及聊天信息都采用的是UDP协议进行传输。完成了网络五子棋对弈系统的总体的方案设计,以Java为编程语言基础,以Eclipse为五子棋游戏的开发工具,完成了系统各模块的设计,其中包括服务器模块、客户端模块以及美化界面方面的设计。虽然网络五子棋这款游戏实现了基本的设计,但是需要改进的地方还有很多,我个人认为需要改进的地方有以下几点:可以在游戏初始界面加入一个游戏大厅的列表,这样用户在进入游戏时可以选择可以看见的服务器列表,而省去了用户直接输入服务器的麻烦。对游戏逻辑模块进行优化,进一步提高可扩展性,以适应将来新的需求和变化参考文献1 耿祥义、张跃平:Java基础教程(第2版),清华大学出版社,2007。05,P10P122 Harvey M.Deitel,P。J.Deitel:Java大学基础教程,刘晓莉,周璐,钱方,等译,机械工业出版社,2006.01,P20P253 吴春煌:科技论文写作,中山大学出版社,2001。07,P15P354 Oaks, Scott:java Threads,Third Edition,OReilly Media Inc,2004。03,P12P205 冯博、应群:面向对象的Java网络编程。清华大学出版社,2004。11,P152P155 6 孙更新等:Java毕业设计指南与项目实践,科学出版社,2008.03,P78P887 单文仁:Java在我国的应用现状和发展趋势,科技成果纵横,2007。02,P132P1558 孙卫琴:JAVA面向对象编程,电子工业出版社,2006。07,P65P699 朱福喜、黄昊著:Java项目开发与毕业设计指导,北京:清华大学出版社,2008.05,P54P6510 郭骅:Java网络编程中的若干问题,电子与电脑,2007.11,P36P4011 雨枫技术教程网:五子棋算法探讨,2009.09,P230P235

    注意事项

    本文(小游戏五子棋JAVA程序设计.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开