课程设计(论文)任务书软件学院学院软件+电子商务专业二班一、课程设计(论文)题目java课程设计《五子棋带聊天系统》二、课程设计(论文)工作自2010年12月20日起至2010年12月24日止。三、课程设计(论文)地点:软件学院实训中心四、课程设计(论文)内容要求:1.本课程设计的目的(1)掌握Java语言的程序设计方法;(2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。2.课程设计的任务及要求1)课程设计任务:实现一个简单的多用户五子棋的游戏程序,包括如下两个界面设计要求:1、五子棋游戏室界面:用户可以选择对弈桌及角色(执黑、执白、旁观);2、游戏界面:有开始、退出、悔棋、判断胜负;发言及显示区;用户列表区;棋盘绘制区;3、使用Socket来完成服务端和客户端的通信;4、使用多线程技术支持多用户操作;5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接受消息、多人聊天等功能;使用数据库保存用户信息。2)创新要求:以上任务还未完善,悔棋、用户列表区及增强功能板块未完善。今后,参考资料书,实现五子棋网络对战及数据库的利用。3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路--工作原理、功能规划(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,华东交通大学课程设计报告巩固了哪些知识,有哪些提高。(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(7)报告按规定排版打印,要求装订平整,否则要求返工;(8)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)(9)严禁抄袭,如有发现,按不及格处理。4)课程设计评分标准:(1)学习态度:10分;(2)系统设计:20分;(3)编程调试:20分;(4)回答问题:20分;(5)论文撰写:30分。5)参考文献:(1)丁振凡.Java语言实用教程(第2版)[M].北京邮电大学出版社.2008.1(2)丁振凡.Java语言实用教程实验指导(第2版)[M].北京邮电大学出版社.2008.1(3)杨树林等.Java语言最新实用案例教程(第2版)[M].清华大学出版社.2010.76)课程设计进度安排1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料2.程序模块设计分析阶段(4学时):程序总体设计、详细设计3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文学生签名:2010年12月20日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)编程调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差();评阅人:职称:讲师2010年12月25日华东交通大学课程设计报告中文摘要五子棋源于中国。我的这个棋盘是15×15棋盘,横行、竖行都有15个交点,在交点处黑白棋子对弈。在横,竖,斜四个方向若有一方连续超过5个则该方胜利。完成棋盘面板画棋盘,对鼠标注册监听扑捉下棋位,画上棋子。根据下棋位点,将棋子布局模拟成二位数组,对数组进行遍历,判断胜负。棋盘还附加了聊天功能,开启次程序后,便在ChatServer内申请账号,实现与其他户的群聊,采用了多线程技术和Socket实现通信。华东交通大学课程设计报告目录一、课程设计任务及要求..................................................................1二、需求分析......................................................................................12.1棋盘板块..................................................................................................12.2聊天板块..................................................................................................12.3ChatSever................................................................................................12.4编译环境..................................................................................................12.5参考资料..................................................................................................1三、设计思路......................................................................................13.1板块的显示..............................................................................................13.2注册监听..................................................................................................23.3ChatServer...............................................................................................23.4下棋..........................................................................................................2四、详细设计......................................................................................34.1WuZiQi类.................................................................................................34.2ChatSever类...........................................................................................44.3多用户聊天...............................................................................................54.4流程图......................................................................................................6五、运行调试与分析讨论..................................................................7六、设计体会与小结..........................................................................9七、参考文献....................................................................................10华东交通大学课程设计报告第1页一、课程设计任务及要求1、五子棋游戏室界面:用户可以选择对弈桌及角色(执黑、执白、旁观);2、游戏界面:有开始、退出、悔棋、判断胜负;发言及显示区;用户列表区;棋盘绘制区;3、使用Socket来完成服务端和客户端的通信;4、使用多线程技术支持多用户操作;5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接受消息、多人聊天等功能;使用数据库保存用户信息。二、需求分析2.1棋盘板块画一个15×15的棋盘版面,及两个按钮组。初始化:开始、重置、退出;角色选择:黑方、白方、旁观。2.2聊天板块聊天信息显示区,聊天信息输入区。2.3ChatSever模拟服务器:用于桥接不同用户,实现接收用户发出的信息,然后将信息传递到每个用户的聊天窗口。2.4编译环境Eclipse实验室上机在宿舍编写2.5参考资料Java语言使用教程,百度文库资料(五子棋判断胜负算法)。三、设计思路3.1板块的显示画棋盘调用publicvoidpaint(Graphicsg){QiPan(g);}方法画一个15×15的棋盘面版。初始化定义两个PanelP1、P2,在初始化板块将JButton开始、重置,退出加入到P1,将黑方、白方、旁观加入到P2。华东交通大学课程设计报告第2页聊天板块在初始化时定义一个JTextArea和一个JTextField实现聊天功能3.2注册监听对角色选择按钮注册ActionListener监听,设置用户的角色。定义黑子int类型0,白子1。对按钮开始、重置注册ActionListener监听,如果点击开始,用户进入下棋状态,有一方赢了,棋盘上则不能再点击棋子。点击重置,则开始新的一轮。对鼠标注册mouseClicked监听,鼠标点击棋盘时获取下棋的位置。对JTextField注册ActionListener,用户输入聊天信息后,通过Server传递给其他用户,在对话框JTextArea内显示。3.3ChatServerclassServerThreadimplementsRunnable{}类监听线程,监听是否有客户端法过信息来。属性:Vectorthreads向量存储线程Socketsocket服务端口DataInputStreamin输入流DataOutputStreamout输出流intnid用户ID方法:构造器publicServerThread(Socketsocket,Vectorthreads)实现信息的输入、输出实现publicvoidrun()监听客户端是否发信息过来,当客户离开时向其他客户发信息,把客户端的信息发给其他客户。服务器向客户端发信息publicvoidwrite(Stringmsg)获取线程IDpublicintgetID()设置线程IDpublicvoidsetID(intnid)在Chatserver类内调用ServerThread实现对所有来访客户监听,为来访者设置ID,若有离开用户,则在聊天板块广播。3.4下棋用二维数组模拟棋盘chessbody[17][17],黑方下棋,则黑方所下棋位置的值等于旗子的颜色加一,白方类似。最后1代表下了黑棋,2表示下了白棋,0表示没下棋。从横向、纵向、斜方向判断胜负。下完一步判