您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Java实训项目中国象棋设计报告
广西科技大学鹿山学院面向对象程序设计实训报告题目:网络中国象棋系别:电气与计算机工程系专业班级:计软141班姓名:邓康言学号:20141409成绩评定:指导教师签字:2016年1月10日广西科技大学鹿山学院java实训报告1目录目录1、需求分析................................................21.1开发的背景..............................................21.2算法....................................................21.3要求....................................................32、总体分析与设计..........................................32.1总体设计方案...........................................32.2功能描述................................................42.2.1服务器端............................................42.2.2客户端..............................................42.3算法设计----.........................................42.5系统流程图----.......................................53、数据结构设计............................................53.1功能模块的设计.........................................53.1.1服务器端框架类设计.................................53.1.2服务器线程设计......................................93.1.3服务器代理线程设计..................................93.1.4棋子的开发类设计.................................143.1.5客户端的框架类设计...............................153.1.6客户端的框架类设计...............................173.1.7棋子的规则类设计.................................203.1.8棋盘的规则类设计.................................234、系统实现..................................................54.1服务器端界面............................................274.2客户端界面..............................................27广西科技大学鹿山学院java实训报告24.3未启动服务器,客户端连接失败............................284.4服务器启动..............................................284.5服务器启动客户端成功连接................................294.6显示在线用户............................................294.7不允许重名..............................................304.8发起挑战................................................304.9拒绝挑战................................................314.10接受挑战...............................................314.11对战走棋..............................................324.12不能向正在下棋的用户发起挑战..........................324.13赢棋..................................................334.14认输...................................................334.15服务器关闭.............................................34总结......................................................34参考文献....................................................351、需求分析1.1开发的背景·中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们的工作地点从、时间的限制,原始的那种面对面的下棋方式已经不再适应人们的生活,人们已经开始走向网络象棋博弈·网络象棋有着很多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋爱好者,甚至是不认识。网络让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。1.2算法·指定服务器端口号广西科技大学鹿山学院java实训报告3·支持多人同时在线··显示在线用户信息·显示当前在线所有用户·从在线用户列表中选择玩家进行挑战·接受或拒绝挑战1.3要求·用Java语言实现系统,源程序要有适当的注释,使程序容易阅读·函数功能要划分好(结构化程序设计)·可以增加新功能模块2、总体分析与设计2.1总体设计方案·系统功能模块图:广西科技大学鹿山学院java实训报告42.2功能描述2.2.1服务器端·可以指定服务器端口号。·可以支持多人同时在线。·可以显示在线用户信息。·不允许玩家同名2.2.2客户端·能够通过主机IP号及端口号登陆到服务器。·可以显示当前在线所有用户。·可以从在线用户列表中选择玩家进行挑战。·可以接受或拒绝挑战。·如果对方在和其他玩家对弈中,则应该给与相应的提示信息。·象棋规则一定要严密。·棋子样式采用最普通的橡胶式象棋。棋子为黑色,字为红色和白色2.3算法设计----本程序功能模块根据程序设计的需要。综合程序的实用性、智能化的考虑。将程序划分为8个模块来写。(1)服务器端的框架设计类(2)服务器线程类(3)服务器代理线程类(4)棋子类的开发类(5)客户端的框架设计类(6)客户端线程类(7)棋子的规则类(8)棋盘的设计类广西科技大学鹿山学院java实训报告52.5系统流程图----3、数据结构设计3.1功能模块的设计3.1.1服务器端框架类设计importjava.util.*;importjava.awt.*;//界面包importjava.awt.event.*;//事件处理包importjavax.swing.*;//图形化界面包importjavax.swing.event.*;//图形化界面包事件进行处理importjava.net.*;//网络包importjava.io.*;//IO流广西科技大学鹿山学院java实训报告6publicclassServerextendsJFrameimplementsActionListener{JLabeljlPort=newJLabel(端口号);//创建提示输入端口号标签JTextFieldjtfPort=newJTextField(9457);//用于输入端口号的文本框JButtonjbStart=newJButton(启动);//创建启动按钮JButtonjbStop=newJButton(关闭);//创建关闭按钮JPaneljps=newJPanel();//创建一个JPanel对象JListjlUserOnline=newJList();//创建用于显示当前用户的JListJScrollPanejspx=newJScrollPane(jlUserOnline);//将显示当前用户的JList放在JScrollPane中JSplitPanejspz=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspx,jps);//创建JSplitPane对象ServerSocketss;//声明ServerSocket引用ServerThreadst;//声明ServerThread引用VectoronlineList=newVector();//创建存放当前在线用户的Vector对象publicServer(){this.initialComponent();//初始化控件this.addListener();//为相应的控件注册事件监听器this.initialFrame();//初始化窗体this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidinitialComponent(){jps.setLayout(null);//设为空布局jlPort.setBounds(20,20,50,20);jps.add(jlPort);//添加用于提示输入端口号的标签this.jtfPort.setBounds(85,20,60,20);jps.add(this.jtfPort);//添加用于输入端口号的文本框this.jbStart.setBounds(18,50,60,20);jps.add(this.jbStart);//添加开始按钮this.jbStop.setBounds(85,50,60,20);jps.add(this.jbStop);//添加关闭按钮this.jbStop.setEnabled(false);//将关闭按钮设为不可用}publicvoidaddListener(){this.jbStart.addActionListener(this);//为开始按钮注册事件监听器this.jbStop.addActionListener(this);//为关闭按钮注册事件监听器}publicvoidinitialFrame(){this.setTitle(象棋--服务器端);//设置窗体标题Imageimage=newImageIcon(ico.gif).getImage();this.setIconImage(image);this.add(jspz);//将JSplitPane添加到窗体中jspz.setDividerLocation(250);jspz.setDividerSize(4);//设置分割线的位置和宽度this.setBounds(20,20,420,320);this.setVisible(true);//设置可见性this.addWindowListener(//为窗体关闭事件注册监听器newWindowAdapter(){publicvoidwindowClosing(WindowEvente){if(st==null)//当服务器线程为空时直接退出{System.exit(0);//退出return;}try{广西科技大学鹿山学院java实训报告7Vectorv=onlineList;intsize=v.size();for(inti=0;isize;i++){//当不为空时,向在线用户发送离线信息ServerAgentThreadtempSat=(ServerAge
本文标题:Java实训项目中国象棋设计报告
链接地址:https://www.777doc.com/doc-754177 .html