软件设计毕业设计论文-《大鱼吃小鱼》设计与实现.doc
《软件设计毕业设计论文-《大鱼吃小鱼》设计与实现.doc》由会员分享,可在线阅读,更多相关《软件设计毕业设计论文-《大鱼吃小鱼》设计与实现.doc(30页珍藏版)》请在咨信网上搜索。
目 录 第一部分 设计任务与调研 3 1.1、设计目标: 3 1.2、设计要求 3 1.3、设计内容: 3 1.4. 技术路线(步骤与方法) 3 第二部分 设计说明 4 2.1、类的设计 4 2.2、游戏流程 5 2.2.1主流程 5 2.2.2游戏初始化 6 2.2.3游戏运行 7 2.2.4游戏结束 7 2.2.5生产精灵对象 8 2.2.6键盘按下事件 9 2.2.7键盘弹起事件 9 2.2.8精灵与精灵的碰撞 9 2.2.9世界边界碰撞事件 10 2.3完成类的定义 11 2.4实现SpriteFactory类 13 2.4.1游戏初始化 13 2.4.2键盘按下事件 14 2.4.3键盘弹起事件 15 2.4.5完成游戏运行 15 2.2.6精灵与精灵的碰撞 18 2.2.7精灵与世界边界的碰撞 19 2.2.8完成游戏结束 19 第三部分 设计成果 20 3.1设计编码图: 20 3.2游戏运行结果图 27 第四部分 结束语 28 第五部分 致谢 30 第六部分 参考文献 31 第一部分 设计任务与调研 1.1、设计目标:通过用MyEclipse来设计“大鱼吃小鱼”这个游戏,来熟悉并学会运用MyEclipse这个软件的同时巩固我们专业课java知识.并让我们熟悉对my eclipse和java的运用 1.2、设计要求 1.对游戏中所需类进行设计; 2写出源程序文件; 3.对游戏进行调试和分析 1.3、设计内容:敌方有三类鱼(鲨鱼、橙色鱼和小黄鱼),每一类鱼的对象出现后,在游戏中处于随机自由移动状态,敌方大鱼能吃小鱼;主角为红鱼且红鱼只有一条,玩家通过键盘方向键控制移动,红鱼有两级状态,初始时处于低级状态,只能吃黄鱼,能被蓝鱼或鲨鱼吃掉。初级状态的红鱼经过重重险恶且吃掉一定数量的黄鱼升级后,能吃黄鱼和蓝鱼,但还是能被鲨鱼吃。 1.4. 技术路线(步骤与方法) 游戏界面是一个游戏展现给玩家的平台,所以界面设计是否美观是很多玩家选择一款游戏的重要标准,游戏中界面设计和软件界面设计的要求是一致的,主要有以下几条要求[7]: 1、 界面美观 2、 界面条理 3、 符合玩家操作习惯(界面友好) 在本界面中,包含玩家控制的鱼、自由移动的鱼、玩家信息及一个按钮文字,在本界面设计中,根据手机上的操作习惯,将按钮的位置设置在手机的右下角,玩家的信息设置在屏幕最上方和最右边,而将整个屏幕(包含按钮文字显示区域、玩家信息显示区域)作为游戏区域,以最大限度的利用手机上的屏幕空间,所以本游戏未从屏幕中划分出独立的游戏区域。对于简单的益智游戏,一般不需要设计滚屏,所以该游戏在设计界面上设计为简单的单屏游戏。 游戏逻辑即游戏规则,是游戏编程中最核心的部分,也是最难实现的部分,在游戏程序的开发过程中,大部分时间都是用在游戏逻辑的实现上。 游戏逻辑基于游戏数据结构,从程序开发角度来看,游戏逻辑就是对于游戏数据的规则变换。当然,这些数据的变换需要根据游戏规则进行实现。然后把最终变化的结果以界面的形式显示给最终用户,对于游戏程序来说也就是游戏玩家。 进行游戏逻辑的设计,首先要把游戏规则分析出来,所谓游戏规则,就是在游戏中需要程序设计人员实现的规定和控制,这些可以根据游戏的功能进行实现。“大鱼吃小鱼”游戏需要实现的游戏规则如下: (l) 游戏初始化 (2) 玩家控制的鱼的移动及方向控制 (3) 自由移动的鱼 (4) 大鱼小鱼的碰撞和处理 在程序实际实现时,一般使用方法来组织游戏逻辑相关的代码,也就是将对应的游戏逻辑转换为一个函数或许多函数。由于以上逻辑都比较简单,所以在实际实现时都转换为一个方法。下面依次来讲解以上游戏逻辑的实现,并介绍实现时需要注意的一些问题。 游戏操作指玩家以怎样的形式参与游戏,每个游戏的操作需要根据游戏的规则等进行设计,不过在设计游戏操作以前首先需要考虑的问题,这款游戏中有哪些是需要玩家进行参与的,然后才是以如何的形式进行参与,其次需要考虑不同平台以及不同设备上的操作特点,一定要满足硬件的要求。游戏操作设计的规则如下: 1)、 操作简单 2)、 操作方便 3)、 符合用户操作习惯 4)、 符合设备硬件要求 第二部分 设计说明 2.1、类的设计 游戏中能直接看到的精灵:玩家鱼、电脑鱼、玩家得分文本、玩家等级文本。其中,玩家得分和玩家等级只需要显示分数,可以直接使用CTextSprite类。玩家鱼、电脑鱼创建相应的类。 可以从玩家鱼和电脑鱼抽象出一个鱼类,作为父类。 鱼类继承CSprite类,通过CSprite类的方法操作精灵。 创建一个游戏类,各个类之间的通信在游戏世界类中进行。本游戏是大鱼吃小鱼,该类称为鱼游戏类。 创建一个精灵工厂类,用来生成各种精灵类的对象。这就是“工厂模式”。 2.2、游戏流程 2.2.1主流程 游戏分四个状态:未开始、开始、运行和结束。CGameMain类是控制游戏流程的类,游戏屏幕每刷新一次,调用一次该类的GameMainLoop方法。GameMainLoop根据m_iGameState的值分别调用该类的GameInit、GameRun和GameEnd方法。这三个方法对应初始化游戏、游戏运行和游戏结束这三个状态。GameInit只执行一次。执行后修改游戏状态。屏幕刷新后,进入状态2,开始执行GameRun方法。当玩家积分>=0即玩家鱼不死的时候,GameRun一直被执行。玩家鱼死亡后,调用GameEnd执行一次,清除本局游戏数据,恢复游戏未开始状态。 2.2.2游戏初始化 完成游戏初始工作,界面上的工作:玩家积分和等级显示为0,创建玩家鱼并放置在指定位置,并且把玩家鱼对象加入到FishesWorld对象中。 2.2.3游戏运行 游戏运行中,每刷新一次屏幕,需要根据最新数据,更新玩家得分和等级,移动玩家鱼,删除被吃掉的电脑鱼,当达到相应的时间间隔时,创建新的电脑鱼。 2.2.4游戏结束 将游戏中剩余的精灵删除,包括删除精灵本身和集合中对应的对象。 重新显示游戏开始的提示图片。 2.2.5生产精灵对象 本游戏中的玩家鱼、电脑鱼这两种精灵类的对象都在精灵工厂类中产生。根据参数确定生产何种精灵。右下图是玩家飞机的生产过程,主要是创建对象,复制模板,并设置几个基本属性(碰撞、世界边界、初始位置、初始速度)。 2.2.6键盘按下事件 本游戏中,游戏状态为0时,按下空格键,游戏状态转为1。游戏状态为2时,玩家按下了WSAD键,分别设置玩家鱼的上下左右速度。 2.2.7键盘弹起事件 本游戏中,游戏状态为2时,玩家松开WSAD键,设置玩家飞机对应方向上的速度为0。 2.2.8精灵与精灵的碰撞 本游戏中,玩家鱼设置为发送碰撞,电脑鱼设置为接收碰撞。精灵碰撞时,如果电脑鱼等级比玩家鱼高,则玩家鱼减少积分,反之,玩家鱼增加积分。 2.2.9世界边界碰撞事件 本游戏中,游戏状态为2时,玩家鱼碰到边界停止继续游动。电脑鱼碰到边界,设置该鱼的生命值hp为0。获得该鱼的价值,从玩家鱼当前的得分中减去该值。 2.3完成类的定义 根据下方表格,完成以下各个类的定义。其中,set和get方法在当前任务中实现,其他方法的实现留到后面完成。 鱼类:Fish 继承自CSprite类 属性 private int iHp 鱼的生命值 private int iGrade 鱼的等级 private int iDir 鱼的方向 private float fSpeedX 鱼X轴方向移动速度 private float fSpeedY 鱼Y轴方向移动速度 private float fPointX 鱼X轴方向上的位置 private float fPointY 鱼Y轴方向上的位置 方法 public int getHp() 获得鱼的生命值 public void setHp(const int Hp) 设置鱼的生命值 public int getGrade() 获取鱼的等级 public void setGrade(const int grade) 根据参数设置鱼的等级 public float getMoveSpeedX() 获得鱼X轴方向上速度 public void setMoveSpeedX(float speedX) 设置鱼X轴方向上速度 public float getMoveSpeedY() 获得鱼Y轴方向上速度 public void setMoveSpeedY(float speedY) 设置鱼Y轴方向上速度 public void setDirection(float dir) 根据参数设置鱼的方向 public float getDirection() 获取鱼的方向 public float getPointX() 获得鱼在X轴上的位置 public void setPointX(const float fPointX) 设置鱼在X轴上的位置 public float getPointY() 获得鱼在Y轴上的位置 public void setPointY(const float fPointX) 设置鱼在Y轴上的位置 public virtual void move(int ikey)=0 鱼的移动方法 玩家鱼类:PlayerFish 继承自Fish类 属性 private int iPlayerScore 玩家鱼的积分 方法 public int getPlayerScore() 得到玩家积分 public void setPlayerScore(int score) 设置玩家积分 public virtual void move(int ikey) 玩家鱼移动方法 public void stopMove(int ikey) 玩家鱼停止移动方法 public void eat(Computer *pFish) 玩家鱼吃电脑鱼的方法 public int playScoreTransferLvel() 根据玩家鱼积分得到玩家鱼响应的等级 电脑鱼类:ComputerFish继承自Fish类 属性 private int value 电脑鱼的价值 方法 public int getValue() 获取电脑鱼价值 public void setValue(int value) 设置电脑鱼价值 public virtual void move() 电脑鱼移动 精灵工厂类:SpriteFactory 属性 private static int sId 静态成员变量。缺省值为0,每复制一个精灵时递增一次,用于作为新生成的精灵名称的后缀。例如:fish1, fish2, fish3 方法 public static Fish *getFish(int iType) 获取生产出的精灵。iType:1–玩家鱼2–电脑鱼 鱼的世界类:FishWorld 属性 private PlayersFish playersFish 玩家鱼 private vector<ComputerFish *> computerFishs 电脑鱼集合 public static const int MAX_COMPUTERFISH_NUM 最多电脑鱼数量 private float refreshRate 电脑鱼刷新时间间隔 private float deltaTimeCount 当前累计时间 private CTextSprite *textLevel 游戏等级文本精灵 private CTextSprite *textScore 玩家积分文本精灵 Private CTextSprite *gameStart 开始精灵 Private float fSpeedX 电脑鱼在X方向上的速度 Private float fSpeedY 电脑鱼在Y方向上的速度 方法 public void setRefreshRate(float refreshRate) 设置电脑鱼刷新时间间隔 public float getRefreshRate() 得到电脑鱼刷新时间间隔 public float getDeltaTimeCount() 得到当前累计时间 public void setDeltaTimeCount(float deltaTimeCount) 设置当前累计时间 public CTextSprite *getTextStarGame() 得到开始游戏文本精灵 public void setTextStarGame(CTextSprite *textStarGame) 设置开始游戏文本精灵 public CTextSprite *getTextLevel() 得到玩家鱼等级文本精灵 public void setTextLevel(CTextSprite *textLevel) 设置玩家鱼等级文本精灵 public CTextSprite *getTextScore() 得到玩家鱼积分文本精灵 public void setTextScore(CTextSprite *textScore) 设置玩家鱼积分文本精灵 public PlayersFish *getPlayersFish() 得到玩家鱼 public void setPlayersFish(Fish *playersFish) 设置玩家鱼 public vector<ComputerFish *> getComputerFishs() 得到电脑鱼集合 public void setComputerFishs(vector<ComputerFish *> *computerFishs) 设置电脑鱼集合 public ComputerFish *findComputerFishByName(const char *fName) 根据名字在电脑鱼集合中查找响应的电脑鱼 public Fish *addFish(int key) 添加一条电脑鱼 public int getRandomByGrade() 根据玩家鱼的当前等级返回一个随机值,用于控制在不同等级下出现鱼的种类以及比例 public void setComputerFishSpeadByGrade(ComputerFish *cFish) 设置电脑鱼移动速度根据鱼的等级 在Fish类中定义一些宏,在程序中尽量使用这些常量,而不是直接用数值。这样,既有利于代码的阅读,又便于修改。 2.4实现SpriteFactory类 参考“游戏流程”中“生产精灵对象”一节,完成SpriteFactory类的方法。对于玩家鱼,初始速度设为0,初始位置在游戏屏幕下方边界的中间位置,世界边界设置为屏幕大小(可以通过CSystem类的GetScreenBottom等方法来设置位置)。设置等级为0,玩家得分为0,。玩家鱼设置为发送碰撞。世界边界碰撞模式为停止。 电脑鱼初始速度向左,等级高的鱼速度相对较快所拥有的价值较高,等级低的鱼速度相对较慢所拥有的价值较低。初始位置应该位于屏幕右方,电脑鱼设置为接收碰撞。从相应的电脑鱼模板复制精灵,命名方式:模板名称+sId。 2.4.1游戏初始化 在CGameMain类的GameInit方法中完成游戏初始化。 2.4.2键盘按下事件 在CGameMain类的OnKeyDown方法中完成。键盘按下处理两个事件:一个是游戏的开始;一个是玩家鱼的上下左右移动。完成该任务后,运行程序。 2.4.3键盘弹起事件 在CGameMain类的OnKeyDown方法中完成。完成任务四后按下键盘相应键鱼儿被设置了移动速度,但当松开后就应该取消设置的移动速度。 2.4.5完成游戏运行 在CGameMain类的GameRun方法中完成游戏运行代码。 这三个函数需要自行添加,在定义类时并没有加入。 完成FishWorld中更新文本精灵数据的方法。 完成FishWorld中更新玩家数据的方法。 完成FishWorld中更新电脑鱼的方法 完成FishWorld中删除HP为0的电脑鱼的方法 完成FishWorld中添加电脑鱼的方法 运行游戏,这时候,可以看见不断有电脑鱼出现,并且当我们按下W,S,A,D键时玩家鱼也会随之移动。 2.2.6精灵与精灵的碰撞 在上一个任务中,即使玩家鱼碰到电脑鱼也不会把电脑鱼吃掉,是因为我们没有处理精灵的碰撞事件。 在本任务中,我们通过精灵与精灵的碰撞事件来解决上述问题。在CGameMain类的OnSpriteColSprite方法中完成代码。该方法有两个参数,一个是szSrcName,表示发送碰撞的精灵的名称;一个是szTarName,表示接受碰撞的精灵的名称。根据这两个精灵的名称,可以判断碰撞的精灵是什么类型(因为创建精灵时,命名有规则)。 2.2.7精灵与世界边界的碰撞 在创建敌机精灵和子弹精灵对象时,我们设置了它们的世界边界,以及与世界边界碰撞模式。当它们飞出各自的世界边界时,就会发生精灵与世界边界碰撞事件,对于的方法是CGameMain类中的OnSpriteColWorldLimit方法。 对于碰到世界边界的电脑鱼,我们需要删除此精灵,并从集合删除相应的节点。 本任务的效果主要是优化程序,避免产生过多无用对象,占用电脑资源。 2.2.8完成游戏结束 当玩家鱼的积分<0时,一局游戏结束。对应的方法是CGameMain类的GameEnd方法。然后重新显示“空格开始”图片,游戏环境又重新回到未开始状态。 第三部分 设计成果 3.1设计编码图: BackGround类 GoldFish类 HuJing类 MyFish类 MainFrame主界面类 3.2游戏运行结果图 第四部分 结束语 踉踉跄跄地忙碌了一个月,我的毕业设计课题也终将告一段落。点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙、底层代码的不合理,数不胜数。可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。 毕业设计,也许是我大学生涯交上的最后一个作业了。想籍次机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的毕业指导老师是刘国彦老师,虽然我们是在开始毕设时才认识,但他却能以一位长辈的风范来容谅我的无知和冲动,给我不厌其烦的指导。在此,特向她道声谢谢。 大学生活即将匆匆忙忙地过去,但我却能无悔地说:“我曾经来过。”大学三年,但它给我的影响却不能用时间来衡量,这三年以来,经历过的所有事,所有人,都将是我以后生活回味的一部分,是我为人处事的指南针。就要离开学校,走上工作的岗位了,这是我人生历程的又一个起点,在这里祝福大学里跟我风雨同舟的朋友们,一路走好,未来总会是绚烂缤纷。 第五部分 致谢 本设计工作是在我的老师的悉心教导下完成的,老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心的感谢三年来老师对我们的关心和指导。 老师和主任悉心指导我们完成了项目的进度和工作,在学习和生活上都给与了我们莫大的关心和帮助,起了督促作用,在此衷心感谢老师。 段主任在我们的项目进度中提出了宝贵的意见,给与了我们很多的帮助,在此衷心感谢。 在项目进度过程中,我们大鱼吃小鱼项目小组跟班级游戏开发小组的热情帮助,在此向他们表达感激之情。感谢同学们的支持与帮助,让我们大鱼吃小鱼设计项目得以完成。 在此感谢对我项目支持的各位老师与同学,没有你们就没有我们项目的成果。谢谢你们。 第六部分 参考文献 [1] 朱福喜, 尹为民, 余振坤. Java 语言与面向对象程序设计. 武汉大学出版社, 2002. [2]李刚.疯狂Java讲义[M].电子工业出版社,2009-04. [3]高永强(美).Java编程艺术[M].清华大学出版社,2009-07. [4] Cay S.Horstmann,Gary Cornell 著,陈昊鹏,王浩,姚建平等.Java核心技术卷Ⅱ:高级特性[M].机械工业出版社,2008-12. 30- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大鱼吃小鱼 软件设计 毕业设计 论文 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文