软件体系结构五子棋(共29页).docx

上传人:飞****2 文档编号:15003532 上传时间:2022-05-10 格式:DOCX 页数:29 大小:3.45MB
返回 下载 相关 举报
软件体系结构五子棋(共29页).docx_第1页
第1页 / 共29页
软件体系结构五子棋(共29页).docx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《软件体系结构五子棋(共29页).docx》由会员分享,可在线阅读,更多相关《软件体系结构五子棋(共29页).docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上河南工业大学实验报告(20152016学年-第2学期)课程名称:软件体系结构 课程编号: 地点:6313/6316/6308/6320专业班级软件1学号姓名实验项目名称实验1:五子棋系统C/S风格客户端软件体系结构设计实验日期2015.05.15成绩评定教师签名:日 期:一、 实验目的:验证C/S风格的工作机制。二、 实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。熟悉C/S风格的工作机制,对所考察的系统进行C/S风格客户端软件体系结构设计的验证。(针对不同的特定应用系统具体表述)。三编程环境Windows 7Visual Studio |

2、Dev-C+Eclipse四实验代码package game;import java.awt.Color;import java.awt.Graphics;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .InetAddress;import .Socket;import javax.swing.JFrame;import javax.swing.JOptionPane;import panel.Config;import panel.MyListener;publ

3、ic class GameClient implements Runnable private Socket client;private int port;private String ip;private JFrame frame;private InputStream in;private OutputStream out;private String name;private boolean flag = false;public GameClient(JFrame frame) this.frame = frame;init();/* * 判断是否建立了连接 */private bo

4、olean confirm() throws IOException byte buf = new byte64;int n = in.read(buf);name = new String(buf, 0, n);return (name.length() 0) ? true : false;/* * 接收初始化信息 * * throws IOException */private void resetUI() throws IOException byte buf = new byte64;int n = in.read(buf);/ System.out.println(s);String

5、 numberStrs = new String(buf, 0, n).split(#);/ System.out.println(numberStrs.toString();Config.SIZE = Integer.parseInt(numberStrs0);Config.ROW = Integer.parseInt(numberStrs1);Config.CLOUNM = Integer.parseInt(numberStrs2);frame.setSize(2 * Config.STARTX + Config.CLOUNM * Config.SIZE,Config.STARTY + C

6、onfig.SIZE * (Config.ROW + 1);Config.resetChess(new byteConfig.ROW + 1Config.CLOUNM + 1);frame.paint(frame.getGraphics();public void run() try InetAddress address = InetAddress.getByName(ip);client = new Socket(address, port);in = client.getInputStream();out = client.getOutputStream();if (!confirm()

7、 new MyDialog(frame, 连接服务器失败, true).setVisible(true);return;resetUI();frame.setTitle(五子棋 + 已连接: + name + 的游戏:本机端口号:+ client.getLocalPort();/ 1,设置棋子颜色Config.setColor(Color.WHITE);/ 2,交替下棋MyListener police = new MyListener();while (true) if (flag) frame.addMouseListener(police);while (Config.getX() =

8、-1) Thread.sleep(20);int x = Config.getX();int y = Config.getY();Config.clearNotify();Graphics g = frame.getGraphics();g.setColor(Config.getColor();g.fillOval(x - (Config.SIZE / 2), y - (Config.SIZE / 2),Config.SIZE - 5, Config.SIZE - 5);/ 将位置转换为坐标并发送给服务器端x = (x - Config.STARTX) / Config.SIZE;y = (y

9、 - Config.STARTY) / Config.SIZE;byte buf = new byte2;buf0 = (byte) x;buf1 = (byte) y;out.write(buf);if (Config.isWin(Color.BLACK) new MyDialog(frame, Color.BLACK).setVisible(true); else if (Config.isWin(Color.WHITE) new MyDialog(frame, Color.WHITE).setVisible(true);flag = !flag;frame.removeMouseList

10、ener(police); else byte buf = new byteConfig.ROW + 1Config.CLOUNM + 1;for (int i = 0; i = Config.ROW; i+) in.read(bufi);Config.resetChess(buf);frame.paint(frame.getGraphics();if (Config.isWin(Color.BLACK) new MyDialog(frame, Color.BLACK).setVisible(true); else if (Config.isWin(Color.WHITE) new MyDia

11、log(frame, Color.WHITE).setVisible(true);flag = true; catch (Exception e) e.printStackTrace();new MyDialog(frame, 连接服务器失败, true).setVisible(true);return;public void threadDestory() throws Exceptionin.close();out.close();client.close();private void init() String initValue = new String IP地址:, 127.0.0.

12、1 , 端口:, 7777 ;/ 创建创建账号的对话框MyDialog initDialog = new MyDialog(frame, 请输入对方地址, true, initValue);initDialog.setVisible(true);/ 获得输入数据String nameAndPort = initDialog.getValue();if (nameAndPort = null) return;this.ip = nameAndPort0;try this.port = Integer.valueOf(nameAndPort1);/ 判断端口号是否正确if (port 65536)

13、 String errMsg = 错误的端口号 + nameAndPort1 + 。端口号必须在0和65536之间;JOptionPane.showMessageDialog(frame, errMsg, 错误的端口号,JOptionPane.ERROR_MESSAGE);return; catch (NumberFormatException ex) JOptionPane.showMessageDialog(frame, 输入的端口号不是数字。, 错误的端口号,JOptionPane.ERROR_MESSAGE);return;Config.setPort(port);Config.cle

14、arChess();frame.paint(frame.getGraphics();五实验结果图1河南工业大学实验报告(20152016学年-第2学期)课程名称:软件体系结构 课程编号: 地点:6313/6316/6308/6320专业班级学号姓名实验项目名称实验2:五子棋系统C/S风格服务器软件体系结构设计实验日期2015.05.15成绩评定教师签名:日 期:一、 实验目的:验证C/S风格的工作机制。二、 实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。熟悉C/S风格的工作机制,对所考察的系统进行C/S风格服务器软件体系结构设计的验证。(针对不同的特定应用系统具体表

15、述)。三编程环境Windows 7Visual Studio | Dev-C+Eclipse四实验代码package game;import java.awt.Color;import java.awt.Graphics;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .ServerSocket;import .Socket;import javax.swing.JFrame;import javax.swing.JOptionPane;import panel.C

16、onfig;import panel.MyListener;public class GameServer implements Runnable private ServerSocket server;private Socket client;private JFrame frame;private int port;private String name;private InputStream in;private OutputStream out;private boolean flag = true;public GameServer(JFrame frame) this.frame

17、 = frame;public void threadDestory() throws Exceptionin.close();out.close();client.close();server.close();/* * 确认连接 */private void confirm() throws IOException out.write(name.getBytes();private void sendUI() throws IOExceptionString s=new String(Config.SIZE+#+Config.ROW+#+Config.CLOUNM);out.write(s.

18、getBytes();public void run() init();try server = new ServerSocket(Config.getPort();client = server.accept();in = client.getInputStream();out = client.getOutputStream();confirm();sendUI();/ 设置棋子颜色Config.setColor(Color.BLACK);/ 交替下棋MyListener police = new MyListener();Graphics g = frame.getGraphics();

19、while (true) if (flag) frame.addMouseListener(police);while (Config.getX() = -1) Thread.sleep(20);int x = Config.getX();int y = Config.getY();Config.clearNotify();g.setColor(Config.getColor();g.fillOval(x - (Config.SIZE / 2), y - (Config.SIZE / 2),Config.SIZE - 5, Config.SIZE - 5);/ 发送棋盘给客户端byte che

20、ss = Config.getChess();for (int i = 0; i = Config.ROW; i+) out.write(chessi);if (Config.isWin(Color.BLACK) new MyDialog(frame, Color.BLACK).setVisible(true); else if (Config.isWin(Color.WHITE) new MyDialog(frame, Color.WHITE).setVisible(true);flag = !flag;frame.removeMouseListener(police); else byte

21、 buf = new byte2;in.read(buf);Config.isChessMan(buf0, buf1,(Config.getColor() = Color.BLACK) ? Color.WHITE: Color.BLACK);frame.paint(g);if (Config.isWin(Color.BLACK) new MyDialog(frame, Color.BLACK).setVisible(true); else if (Config.isWin(Color.WHITE) new MyDialog(frame, Color.WHITE).setVisible(true

22、);flag = true; catch (Exception e) e.printStackTrace();new MyDialog(frame, 客户端已下线, true).setVisible(true);return;private void init() String initValue = new String 用户名:, CJN , 端口:, 7777 ;MyDialog initDialog = new MyDialog(frame, 请输入用户名和端口, true, initValue);initDialog.setVisible(true);String nameAndPo

23、rt = initDialog.getValue();if (nameAndPort = null) return;this.name = nameAndPort0;try this.port = Integer.valueOf(nameAndPort1);/ 判断端口号是否正确if (port 65536) String errMsg = 错误的端口号 + nameAndPort1 + 。端口号必须在0和65536之间;JOptionPane.showMessageDialog(frame, errMsg, 错误的端口号,JOptionPane.ERROR_MESSAGE);return;

24、catch (NumberFormatException ex) JOptionPane.showMessageDialog(frame, 输入的端口号不是数字。, 错误的端口号,JOptionPane.ERROR_MESSAGE);return;Config.setPort(port);frame.setTitle(五子棋 + 玩家: + name + 端口号: + port);Config.clearChess();frame.paint(frame.getGraphics();五实验结果图1河南工业大学实验报告(20152016学年-第2学期)课程名称:软件体系结构 课程编号: 地点:6

25、313/6316/6308/6320专业班级学号姓名实验项目名称实验3:五子棋系统UML建模实验日期2015.05.15成绩评定教师签名:日 期:一、 实验目的:深入理解UML建模的思想,熟悉UML建模方法。二、 实验内容:作为实际应用前的一种演练,深入理解UML建模的思想,熟悉UML建模方法,锻炼和培养分析问题、解决问题的能力。针对某个选定的应用系统,对其进行GUI原型建模、域模型建模、用例图及用例文本建模、鲁棒性图建模(可选)方面的验证。三编程环境Windows 7StarUML四实验建模结果用例图:图1动态交互图;图2包图:图3静态类图:图4河南工业大学实验报告(20152016学年-第

26、2学期)课程名称:软件体系结构 课程编号: 地点:6313/6316/6308/6320专业班级学号姓名实验项目名称实验4:五子棋系统详细设计实验日期2015.05.15成绩评定教师签名:日 期:一、 实验目的:深入理解UML建模的思想,熟悉UML建模方法。细化前期设计的有关结果,做出软件的详细规格说明。二、 实验内容:针对某个选定的应用系统,对其进行时序图建模和详细设计级类图建模方面的验证。详细设计是软件设计的具体模块设计阶段,是在作为软件开发前期设计的体系结构设计和总体设计的基础上进行的。目的是要细化前期设计的有关结果,做出软件的详细规格说明。要求具体地验证设计目标系统给定模块的实现过程。三编程环境Windows 7StarUML四实验建模结果时序图:图1详细运行图:图2图3图4图5图6专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

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