软件工程课程设计连连看.doc_第1页
软件工程课程设计连连看.doc_第2页
软件工程课程设计连连看.doc_第3页
软件工程课程设计连连看.doc_第4页
软件工程课程设计连连看.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

编写 王海涛日期 2015 01 06 审核 日期 批准 日期 受控状态 是 发布版次 1 0日期 编号 连连看软件需求分析说明书连连看软件需求分析说明书 变更记录变更记录 日期版本变更说明作者 2015 01 061 0初始版本王海涛 签字确认签字确认 系统模块对应章节对应部门负责人签字 1 概述概述 1 1 目的目的 本需求规格说明书编写的目的是为了清晰地说明本次开发 连连看软件 要实现的所有 功能 同时对软件所需实现的功能模块做了全面的描述 它是后续开发工作和验收工作的依据 文件 1 2 背景背景 待开发的软件系统的名称 连连看游戏 开发者 软件 1214 班 邢玮 用户 连连看游戏玩家 本说明书的预期读者为 用户 程序开发人员 1 3 术语定义术语定义 直连消除 两个相同的图标在同一行或同一列 并且中间没有其它图标 可以消除 一折连消除 两个相同的图标仅经过一个转弯 可以消除 二折连消除 两个相同的图标经过两个转弯 可以消除 1 4 参考资料参考资料 1 Java 核心技术 1 5 任务概述任务概述 1 5 1 目标目标 打开连连看软件 用户可以选择游戏难度 点击相应的按钮进行游戏 系统向用户发出当 前难度提示 用户点击确定后进入游戏界面 系统开始计时 游戏开始 当时间结束时 游戏 结束 用户选择两个一样的图标进行消除 系统会自动判断用户所选择的图标是否满足直连 一 折连 二折连消除 若满足 则消除这两个图标 当用户消除所有的图标 返回本次游戏用时 和得分 用户可以单击任意一个图标两次来重置所有的图标 在游戏的主界面 用户可以查看用户的由高到低三次游戏成绩 也可以查看开发人员的信 息 在游戏开后的任意时刻 用户都可以选择回到主界面或者退出程序 1 5 2 用户的特点用户的特点 连连看软件的用户很广泛 所有明白连连看游戏规则的人都可以进行游戏 1 5 3 假定和约束假定和约束 本产品由个人来完成 要求在两周之内来完成 目前是单机版 不支持多人游戏 1 6 运行环境运行环境 简要说明本产品的运行环境 包括硬件环境和支持环境 的规定 1 6 1软件环境软件环境 名称名称版本版本语种语种 操作系统Windows7 及以上 语言Java 运行环境JDK JRE1 7 0 及以上 1 6 2硬件环境硬件环境 硬件配置硬件配置最低配置最低配置推荐配置推荐配置 1CPU P4 1 0G1CPU P4 2 0G Mem 512MMem 1G 客户端 HD 40GHD 120G 1 6 3接口接口 用户界面 1 7 需求规定需求规定 1 7 1对功能的需求对功能的需求 1 7 1 1系统功能层次模块图系统功能层次模块图 1 7 1 2客户端模块功能的描述客户端模块功能的描述 1 7 1 2 1主界面主界面 客户端显示 1 简单难度 2 中等难度 3 困难难度 4 历史成绩 5 关于作者 6 退出 1 7 1 2 2简单游戏简单游戏 客户端向用户提示 在 150 秒内完成所有消除 在用户点击确定后 游戏开始 系统向用户显示剩余时间 在用户不点击任何图标 的情况下 时间和分数每一秒都会减少一个单位 用户每消除一对图标 时间就会 增加一秒 分数也会增加 用户双击同一个图标 使所有图标重置 当所有图标都 消除之后 系统返回通关成功的信息 通关时间和成绩 若时间结束时 还有未消 除的图标 则系统向用户返回游戏结束信息 游戏时间结束 用户点击确定后 系统返回排行榜信息 1 7 1 2 3中等游戏中等游戏 客户端向用户提示 在 150 秒内完成所有消除 向左并拢 在用户点击确定后 游戏开始 系统向用户显示剩余时间 在用户不点击任何图标 的情况下 时间和分数每一秒都会减少一个单位 用户每消除一对图标 时间就会 增加一秒 分数也会增加 且所有的图标都会向左并拢 用户双击同一个图标 使 所有图标重置 当所有图标都消除之后 系统返回通关成功的信息 通关时间和成 绩 若时间结束时 还有未消除的图标 则系统向用户返回游戏结束信息 游戏 时间结束 用户点击确定后 系统返回排行榜信息 1 7 1 2 4困难游戏困难游戏 客户端向用户提示 在 150 秒内完成所有消除 每消除一对重置一次 在用户点击确定后 游戏开始 系统向用户显示剩余时间 在用户不点击任何图标 的情况下 时间和分数每一秒都会减少一个单位 用户每消除一对图标 时间就会 增加一秒 分数也会增加 而且所有的图标都会重置一次 用户双击同一个图标 使所有图标重置 当所有图标都消除之后 系统返回通关成功的信息 通关时间和 成绩 若时间结束时 还有未消除的图标 则系统向用户返回游戏结束信息 游 戏时间结束 用户点击确定后 系统返回排行榜信息 1 7 1 2 5历史成绩历史成绩 用户点击 历史成绩 按钮 系统显示迄今为止的三次最好成绩 1 7 1 2 6关于作者关于作者 用户点击 关于作者 按钮 系统向用户显示本软件开发者的信息 1 7 1 2 7退出游戏退出游戏 用户点击 退出游戏 按钮 程序自动退出 1 7 2对非功能性的需求对非功能性的需求 1 7 2 1 对性能的规定对性能的规定 1 7 2 1 1 精度精度 所有数据均为整型 1 7 2 1 2 时间特性要求时间特性要求 及时响应 1 7 2 1 3 灵活性灵活性 无 1 7 2 2 输入输出要求输入输出要求 鼠标操作即可 1 7 2 3 数据管理能力要求数据管理能力要求 由高到低存放用户的 8 次记录 1 7 2 4 故障处理要求故障处理要求 针对玩家异常操作 进行异常处理 1 两次点击同一个图标 重置界面 2 点击两个不同的图标 a b 再次点击其它图标时 会判断与 b 的连通性 3 点击不连通的图标 不进行操作 1 7 2 5 其他专门要求其他专门要求 编写 邢玮日期 2015 01 07 审核 日期 批准 日期 受控状态 是 发布版次 1 0日期 2015 01 07 编号 连连看系统设计说明书连连看系统设计说明书 变更记录变更记录 日期版本变更说明作者 2015 01 061 0初始版本邢玮 2009 01 071 1添加了一些算法邢玮 签字确认签字确认 系统模块对应章节对应部门负责人签字 目目 录录 1引言引言 4 1 1编写目的 4 1 2背景 4 1 3基线 4 1 4范围 4 1 5定义 4 1 6参考资料 4 2总体设计总体设计 4 2 1概述 4 2 1 1功能描述 4 2 1 2运行环境 5 2 1 3开发环境 5 2 2设计思想 7 2 2 1总体技术架构 7 2 2 2总体功能框架 7 2 2 3总体业务流程 8 2 2 4关键技术与算法 8 3系统功能设计系统功能设计 10 3 1XXXX 模块 10 3 1 1XXX子模块 10 4数据库设计数据库设计 10 5类图设计类图设计 11 6接口设计接口设计 11 6 1用户接口 11 6 2外部接口 11 7运行设计运行设计 11 7 1系统初始化 11 7 2运行控制 11 7 3系统结束 11 8系统出错处理设计系统出错处理设计 12 8 1出错信息 12 8 2补救措施 12 9系统维护设计系统维护设计 12 9 1检测点的设计 12 9 2检测专用模块的设计 12 10尚待解决的问题尚待解决的问题 12 2 引言引言 2 1 编写目的编写目的 本说明书目的在于明确说明系统各功能的实现方式 指导开发员进行编码 本说明书的预期读者为开发者和测试等 2 2 背景背景 待开发软件系统的名称 连连看软件 此软件系统任务开发者 邢玮 此软件系统任务用户 不详 2 3 基线基线 连连看需求分析说明书 v1 0 2 4 范围范围 无 2 5 定义定义 连连看 玩家点击两个相同的图标 系统判断能否消除 判断规则 直连消除 两个相同的图标在同一行或同一列 并且中间没有其它图标 可以消除 一折连消除 两个相同的图标仅经过一个转弯 可以消除 二折连消除 两个相同的图标经过两个转弯 可以消除 2 6 参考资料参考资料 属于本项目的其他已发表的文件 本文件中引用的其他文献 资料以及软件开发标准 3 总体设计总体设计 3 1 概述概述 3 1 1 功能描述功能描述 系统包括的范围一个客户端和服务器端 实现实时信息传递 3 1 2 运行环境运行环境 3 1 2 13 1 2 1软件环境软件环境 3 1 2 23 1 2 2硬件环境硬件环境 名称名称版本版本语种语种 操作系统Windows7 及以上 语言Java 运行环境JDK JRE1 7 0 及以上 硬件配置硬件配置最低配置最低配置推荐配置推荐配置 客户端1CPU P4 1 0G1CPU P4 2 0G Mem 512MMem 1G HD 40GHD 120G 3 2 设计思想设计思想 3 2 1 总的业务流程总的业务流程 连连看总的流程是 1 玩家选择游戏难度 简单游戏 中等游戏 困难游戏 系统向玩家提示所选择的游戏规 则 并开始倒计时 游戏开始 1 简单游戏 玩家选择两个相同的图标 系统判断是否满足消除条件 玩家可以选择点击 任意一个图标两次来重置游戏界面 当玩家在时间结束前消除所有的图标 通关成功 若时间 结束时玩家没有消除所有图标 则系统返回游戏结束信息 最后系统向玩家显示游戏成绩 玩 家可选择退出游戏或返回主界面 2 中等游戏 玩家选择两个相同的图标 系统判断是否满足消除条件 每当一对图标被消 除后 所有可向左移动的图标均向左并拢 玩家可以选择点击任意一个图标两次来重置游戏界 面 当玩家在时间结束前消除所有的图标 通关成功 若时间结束时玩家没有消除所有图标 则系统返回游戏结束信息 最后系统向玩家显示游戏成绩 玩家可选择退出游戏或返回主界面 3 困难游戏 玩家选择两个相同的图标 系统判断是否满足消除条件 每当一对图标被消 除后 整个游戏界面会被刷新一次 玩家可以选择点击任意一个图标两次来重置游戏界面 当 玩家在时间结束前消除所有的图标 通关成功 若时间结束时玩家没有消除所有图标 则系统 返回游戏结束信息 最后系统向玩家显示游戏成绩 玩家可选择退出游戏或返回主界面 2 历史成绩 系统向玩家显示迄今为止的三次最好成绩 3 关于作者 系统向玩家显示软件开发者信息 4 退出游戏 系统自动结束本程序的线程 3 2 2 系统功能框架系统功能框架 系统功能层次图 3 2 3 关键技术与算法关键技术与算法 3 2 3 1 判断图标消除的算法判断图标消除的算法 直连 判断两点是否在同一水平线或铅直线 若在则判断两点间是否存在非 0 节点 不存在则 可以直连 否则不能直连 一折连 先判断两节点是否为对角相邻关系 x 0 x 1 1 y 0 y 1 1 若是则判断相 邻两节点是否为 0 有一个为 0 则可以一折连 若不为对角相邻关系 则分别判断两点与其所 在水平线与铅直线之间的交点 x 0 y 1 与 x 1 y 0 与两点是否可实现直连 若有 一点可以双向直连 则两节点可以一折连 二折连 遍历其中一个节点水平线和铅直线上所有值为 0 的节点 x 1 i i y 1 并判断 x 1 i i y 1 与 x 0 y 0 能否一折连 与 x 1 y 1 能否直连 均能则可以二折连 否则判断下一节点 若均不成功 则不能二折连 3 2 3 2 线程控制线程控制 时间控制 时间变量每秒减一 为 0 退出游戏并弹出结束界面 3 2 3 3 JFrame 可视化界面可视化界面 在界面上添加按键二维数组 其值为图标名称 为 0 则无图标 3 2 3 4 打包生成随机数矩阵算法打包生成随机数矩阵算法 获取最大值 max 最小值 min 生成组数 sum 以及每个数出现次数 num 建立随机数组 point sum 从 min 到 max 循环 循环变量 i 每次生成 4 个 0 sum 的随机数 tmp 并且当 point tmp 0 时 point tmp i 否则重新生成改组随机数 最后得到随机数组为 point sum 其值为 min max 没个数出现 num 次 3 2 3 5 界面重置算法界面重置算法 遍历游戏界面矩阵 将值不为 0 的节点的值存入数组 num 中 创建数组 point 循环 for i 0 num i 0 i 生成随机数 tmp 判断 point tmp 是否为 0 为 0 则 point tmp num i 否则重新生成随机数 且 i 返回数组 point 遍历游戏界面矩阵 将 point 的值依次赋予值不为 0 的节点 并刷新界面图标 3 2 3 6 图标消除算法 当两图标可连通时执行 图标消除算法 当两图标可连通时执行 简单游戏将矩阵对应节点值置为 0 并且对应按键执行 setVisible false 中等游戏将矩阵对应节点值依次往左推 且最右端的非 0 值置为 0 并且对应按键 所在行最右端执行 setVisible false 困难游戏将矩阵对应节点值置为 0 并且对应按键执行 setVisible false 然后重 置界面 4 系统功能设计系统功能设计 4 1 客户端功能设计客户端功能设计 连连看系统客户端功能连连看系统客户端功能 功能名称功能简述相关技术 主界面显示所有功 能按钮 客户端显示如下按钮 简单游戏 中等游戏 困难游戏 历史成绩 关于作者 退出游戏 Java 可视化编程 游戏按钮的功能 玩家点击不同的按钮来触发不同 难度的游戏模式 JButton 监听器 历史成绩按钮的功 能 向玩家显示迄今为止玩家的三次 最好成绩 JButton 监听器 字节流文件读写 关于作者按钮的功 能 向玩家显示本软件开发者的信息JButton 监听器 游戏结束界面 向玩家显示本次游戏的成绩 如 果是新纪录则提示 显示 返回 主界面 按钮和 退出游戏 按 钮 字节流文件读写 JButton 监听器 退出游戏按钮结束当前游戏的线程JButton 监听器 5 类设计类设计 5 1 Easy 类类 5 2 Center 类类 5 3 Hard 类类 5 4 End 类类 5 5 Line 类类 5 6 Random 类类 5 7 Replay 类类 5 8 Start Game 类类 6 接口设计接口设计 6 1 用户接口用户接口 系统界面 6 2 外部接口外部接口 无 7 运行设计运行设计 8 系统出错处理设计系统出错处理设计 8 1 出错信息出错信息 出错处理包括以下 1 游戏能正常运行 但存在死局 即无能消除的图标 2 计时进程退出失败 3 计分存档为空 4 未读取到 img 文件 8 2 补救措施补救措施 1 添加重置界面的方法 2 将中断线程改为终止线程 Runnable stop 3 8 次计分全部置 0 9 尚待解决的问题尚待解决的问题 未找到 img 文件 即时通程序说明文档即时通程序说明文档 1 文件组成 文件组成 MessageServer java 服务器端程序 MessageSendThread java 服务器端程序的转发线程 每个用户的独立线程存放在一个集合中 LogIn java 客户端登陆窗口 ChatAll java 客户端群聊窗口 SingleTalk java 私人聊天窗口 里面继承了字体设置 截屏等类 CellRenderer java 客户端 JList 的渲染器类 SendFileTCPThread java 发送文件的线程 ReciveFileTCPThread java 接收文件的线程 SendPicTCPThread java 发送图片的线程 RecivePicTCPThread java 接收图片的线程 CaptureScreen java 群聊室截屏的文件 与私人聊天截屏不一样 SoundPlay java 声音播放的文件 用于读取声音文件 FontAttrib java 私聊室字体设置类 ChatFileFilter java 发送图片选择的文件过滤类 显示特定格式的图片 Sounds 文件夹 存放声音文件和音乐文件 Pics 文件夹 存放所有的图片文件 TempPics 文件夹 存放发送过来的临时图片 TempCutPics 文件夹 存放发过来的临时截图图片 2 运行说明 运行说明 首先 运行 MessageServer java 服务器程序 实现群聊私聊信息的监视 群信息的发布和公告信息的发布等 然后 运行 LogIn java 登录窗口 登陆成功后进入群聊天室 实现群聊功能 点击 JList 的列 表项实现单人聊天 进入单人聊天的界面 可以实现一对多的聊天 而且实现音乐播放 设置字体 插入图片 发 送图片 截屏等功能 3 文件使用说明文件使用说明 文件夹里面有四个文件夹 Sounds 文件夹 存放声音文件和音乐文件 Pics 文件夹 存放所有的图片文件 TempPic 文件夹 存放发送过来的临时图片 TempCutPics 文件夹 存放发过来的临时截图图片 由于程序运行过程中要用到音乐 图片文件 所以使用相对路径 不使用绝对路径 如 private static String soundPath System getProperty user dir File separator sounds File separator new File soundPath 决别诗 au new ImageIcon soundPath sendFile jpg 里面的 TempCutPics 和 TempPic 文件夹不要删除 那是程序里面默认使用的文件夹 只要不改变里面的文件名称和路径 项目应该可以完整运行 文档编号 文档编号 文档编号 文档编号 TYUT SE CASE 003TYUT SE CASE 003TYUT SE CASE 003 连连看安装和使用手册连连看安装和使用手册连连看安装和使用手册连连看安装和使用手册 2015 01 132015 01 132015 01 13 北京中软国际教育科技有限公司北京中软国际教育科技有限公司 目录目录 目录 28 1 引言引言 29 1 1 编写目的 29 1 2 本文档适用读者 29 1 3 术语定义 29 2 产品简介产品简介 29 2 1 产品简介 29 2 2 使用流程介绍 30 3 产品安装产品安装

温馨提示

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

评论

0/150

提交评论