1、 Java 课程设计报告 题 目 剪刀石头布人机对战系统的设计与实现 所在单位所在单位 信息科学系软件工程教研室信息科学系软件工程教研室 教学部主任教学部主任 完成日期完成日期 20201313 年年 9 9 月月 1313 日日 Java 课程设计任务书 任务及要求: 一、设计(研究)内容和要求 内容:内容:编写一个管理软件,使用 GUI 界面,实现信息管理功能。包括对信息的查 询,添加,删除等操作。采用数据库存储数据。 要求:要求: 1 1、软件要求、软件要求 (1)实现界面。进行系统需求分析和系统设计,写出系统分析和设计报告。 (2)实现数据库的连接和应用功能。 (3)实现对数据的查询,
2、添加,删除等功能。 2 2、文档要求、文档要求 (1) 设计程序结构、画出模块图。 (2) 按照指导教师给出的项目文档的模板进行书写。 (3) 参考文献数量不得低于4个。 二、工作量 2 周(10 个工作日)时间 三、计划安排 第 1 个工作日第 2 个工作日:查找相关资料、书籍,阅读示例文档; 设计程序结构、模块图、完成类的设计。 第 3 个工作日第 8 个工作日:完成程序的编码,并且自己调试、测试。穿插进行项 目文档的撰写。 第 9 个工作日:撰写和整理项目文档。 第 10 个工作日:由教师检查软件测试效果、项目文档,给出学生本课程成绩。 指导教师签字: 2013 年 9 月 2 日 目录
3、 题目: 1 1.需求分析 . 1 2.概要设计 . 1 3.详细设计 . 1 4.编码 . 3 5.调试分析 . 5 6.测试结果及运行效果 . 6 7.系统开发所用到的技术 . 8 参考文献 9 附录 全部代码 10 1 题目: 石头剪刀布人机对战系统的设计与实现 1.需求分析 这是一个古老耐玩的游戏,根据一般的常识,首先要有两个人,两个人同时出,然 后,根据双方的出拳,决定谁是赢者,虽然想起来这个游戏很简单,但如何实现 ,还 是有一定难度的。实现这个时针时涉及到几个技术问题: 1. 双方如何出拳 2. 如何同时出拳 3. 如何判断哪方赢了 4. 如何显示结果 剪刀石头布游戏,都是通过两个
4、人同时出拳,然后根据双方出的拳,判定哪方是赢 家。准确性:在实现此的过程中,我们要考虑到,双方是否能同时地出拳,还要就是如 何去判断,准确地知道哪方是赢家.简洁性:在实现此的过程中,我们要考虑到,怎样 使游戏界面更简单,让人更容易明白它怎样去玩。 2.概要设计 在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现: 构造创建服务器端和客户端 创建输入输出流 编写服务器端处理数据的线程方法 绘制游戏界面 绘制界面上的提示 采用此方法设计使程序简洁明了, 使绘制游戏界面时简单化, 更加易于游戏的实现, 程序也更易于读懂。 3.详细设计 3.1 自定义类中子类和其父类的继承关系如图
5、 图 3.1 子类及其父类继承关系图 Thread Service getInputStream Start Run Random getOutputStream Readline 2 3.2 Java 类及自定义类的说明 自定义类: 类名:SocketServer 作用:服务器类 继承的父类:Thread 类 实现的接口:无 类名:Service 作用: 服务器类,它是判定胜负的类 继承的父类:Thread 类 类中成员: String data; BufferedReader inputs; PrintStream outputs; Socket client; 实现的接口:无 类名:Cl
6、ient 作用:客户端类 类中的成员: getInputStream(); getOutputStream(); InputStreamReader (); readLine(); 实现的接口:无 3.3 类中成员及作用 Service 类成员: String data; /接收数据 BufferedReader inputs;/ 读取数据 PrintStream outputs;/输出数据 Socket client;/定义套接字 Client 类成员: 3 String data;/接收数据 Socket client = null;/定义套接字 BufferedReader inputs = null;/ 读取数据 BufferedReader key = null;/ 缓冲数据 PrintStream outputs = null;/输出数据 4.编码 4.1 类获包的加载 加载剪刀石头布游戏设计中用到的类和包,用