欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    某学院面向对象程序设计实训报告.docx

    • 资源ID:957267       资源大小:713.51KB        全文页数:35页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    某学院面向对象程序设计实训报告.docx

    某学院面向对象程序设计实训报告广曲新技人等鹿山考相面向对象程本钱计实制想告题目:网络中国象棋系别:电气与计算机工程系专业班级:计软141班姓名:邓康言学号:20141409成绩评定:指导教师签字:2016年1月1。日目录目录1、 需求分析21.1 开发的背景21.2 算法21.3 要求32、 总体分析与设计32.1 总体设计方案32.2 功能描述422.1服务器端42.3 2.2客户端42.4 算法设计一一42.5 系统流程图一53、 数据结构设计53.1 功能模块的设计53.1.1 服务器端框架类设计53.1.2 2服务器线程设计93.1.3 3服务器代理线程设计93.1.4 棋子的开发类设计133.1.5 客户端的框架类设计153.1.6 客户端的框架类设计173.1.7 棋子的规则类设计203.1.8 棋盘的规则类设计234、系统实现54.1 服务器端界面264.2 客户端界面274.3 未启动服务器,客户端连接失败274.4 4服务器启动284.5 服务器启动客户端成功连接294.6 显示在线用户294.7 不同意重名304.8 8发起挑战304.9拒绝挑战314.10同意挑战314.11对战走棋324.12不能向正在下棋的用户发起挑战324.13赢棋334.14认输334.15服务器关闭34总结34参考文献351、需求分析1.1 开发的背景中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们的工作地点从、时间的限制,原始的那种面对面的下棋方式已经不再习惯人们的生活,人们已经开始走向网络象棋博弈网嘉象棋有着很多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋爱好者,甚至是不认识。网络让对弈的范围更加的广泛,让象棋爱好者能够与更多的象棋爱好者切磋棋艺。1.2 算法指定服务器端口号 支持多人同时在线 显示在线用户信息 显示当前在线所有用户 从在线用户列表中选择玩家进行挑战 同意或者拒绝挑战1.3 要求 用JaVa语言实现系统,源程序要有适当的注释,使程序容易阅读 函数功能要划分好(结构化程序设计) 能够增加新功能模块2、总体分析与设计2.1 总体设计方案系统功能模块图:2.2 功能描述2.3 2.1服务器端 能够指定服务器端口号。 能够支持多人同时在线。 能够显示在线用户信息。 不同意玩家同名2.2.2客户端 能够通过主机IP号及端口号登陆到服务器。 能够显示当前在线所有用户。 能够从在线用户列表中选择玩家进行挑战。 能够同意或者拒绝挑战。 假如对方在与其他玩家对弈中,则应该给与相应的提示信息。 象棋规则一定要严密。 棋子样式使用最普通的橡胶式象棋。棋子为黑色,字为红色与白色2.3算法设计一本程序功能模块根据程序设计的需要。综合程序的有用性、智能化的考虑。将程序划分为8个模块来写。(1)服务器端的框架设计类(2)服务器线程类(3)服务器代理线程类(4)棋子类的开发类(5)客户端的框架设计类(6)客户端线程类(7)棋子的规则类(8)棋盘的设计类2.5系统流程图3、数据结构设计3.1 功能模块的设计3.1.1 服务器端框架类设计importjava.util.*;importjava.awt*;界面包importjava.awt.event.*;事件处理包importjavax.swing.*;图形化界面包importjavax.swing.event.*:图形化界面包事件讲行处理*;网络包importiava.io.*"11)流publicclassSerVerextendsJFrameimplementsActionListenerKabeljlPort=newJLabeI("端口号");创建提示输入端口号标签JTextFieldjtfPort=newJTeXtField("9457");用于输入端口号的文本框3ButtonjbStart=newJBUtton("启动");创建"启动"按钮JButtonjbStop=newJBUttOn("关闭");创建"关闭"按钮JPaneljps=newJPanel.();创建一个JPanel对象JLiStjlUserOnline=newJLiSt();/创建用于显示当前用户的JLiStDScrollPanejspx=newJSCrolIPane(jIUserOnline);/将显示当前用户的JLiSt放在JSCroIlPane中JSplitPanejspz=newJSPIitPane(JSPIitPane.H0RZZ0W4L_5PLiT,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);添加由于输X端口号的文本框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()(thisJbStart.addActionListener(this);为"开始"按钮注册事件监听器this.jbStop.addACtionLiStener(this);为"关闭"按钮注册事件监听器)publicvoidinitialFrame()this.SetTitIe("象棋-服务器端”);设置窗体标题Imageimage=newImageicon("ico.gif").getlmage();this.setlconlmage(image);this.add(jspz);葩JSPlitPane添加到窗体中jspz.SetDividerLocation(250);jspz.setDividerSize(4);设½割线的位置与宽度this.setBounds(20,20,420,320);this.SetVisible(true);设置可见性this.addWindowListener(为窗体关闭事件注册监听器newWindowAdapterOpublicvoidwindowclosing(WindowEvente)if(st=nuU)当服务器线程为空时直接退出SyStem.exit(0);退出return;VeCtOr V=OnlineList;)tryintsize=v.size();for(inti=0;i<size;i+)当不为空时,向在线用户发送离线信息ServerAgentThreadtempSat=(ServerAgentThread)v.get(i);tempSat.dout.writeTF("<#SERVER_DOWN#>");tempSat.flag=false;终止服务器桓理线程st.flag=false"/终止服务器线程st=null;ss.close();关闭ServerSocketV.clear();将在线用户列表清空refreshList();刷新列表)catch(Exceptionee)ee.PrintStackTraceO;)SyStem.exit(0);退出);publicvoidactionPerformed(ActionEvente)if(e.getSource()=this.jbStart)当单击"启动"按钮时this.jbStart_event();elseif(e.getSource()=this.jbStop)单击“关闭”按钮后this.jbStop_event();)publicvoidjbStart_event()单击"启动“按钮的业务处理代码intport=0;try获得用户输入的端口号,并转化为整型Port=Integer.prselnt(this.jtfPort.getText().trim();)catch(Exceptionee)端口号不是整数,给出提示信息DOptionPane.s»。WMeSSageDta(Og(this,“端口号只能是整数","错误",JOptionPane.ERROR_MESSAGE');return;)if(port>65535port<0)断口号不合法,给出提示信息JOPtiOnPane.s/)。WMeSSageDia2og(this,“端口号只能是0-65535的整数错误",JOptionPane.ERRoR_MESSAGE);return;)trythis.jbStart.SetEnabled(False);将开始按钮设为不可用this.jtfPort.setEnabled(false);将用于输入端口号的文本框设为不可用this.jbStop.setEnabled(true);将停止按钮设为可用ss=newSerVerSoCket(POrt);创建SerVerSoCket对象st=newSerVerThread(this);创建服务器线程st.start();启动服务器线程给出服务器启动成功的提示信息JOptionPane.showMeSsageDiaLog(this,"服务踞启动成功","提示",JOptionPane.INFORMATI0N_MESSAGE);)catch(Exceptionee)给出服务器启动失败的提示信息JOPtiOnPane.s力。WMeSSageDiaLog(this,”服务器启动失败错误",JOptionPane.ERROR_MESSAGE);this.jbStart.set

    注意事项

    本文(某学院面向对象程序设计实训报告.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

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

    收起
    展开