您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页Java面向对象课程设计

Java面向对象课程设计

来源:化拓教育网


淮 海 工 学 院 计算机工程学院

课程设计报告

设计名称: 计算机面向对象设计 姓 名: 学 号: 专业班级: D软件092 系 (院): 计算机工程学院 设计时间: 2011.6.13——2011.6.24 设计地点: 东港机房D2-308

指导教师评语: 成绩: 签名: 年 月 日

计算机面向对象课程设计报告 第 2 页,共 12 页 1.课程设计目的 一、设计目的: Java课程设计是对所学面向对象课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对理论课中所学习到的知识综合运用,实现有一定规模的Java应用。 二、 设计要求: 1、课程设计以小组为单位进行,每小组的人数在3人左右,每个小组中的每位同学要有在课程设计中的明确分工,以便检查。课程设计材料提交的以小组为单位,每人提交一份纸质课程设计报告,每组提交一份课程设计的源代码电子版,报告代码的电子版压缩后以班级-组别-设计名称命名,提交到指导老师处。 2、学生必须完成设计任务,严禁抄袭,一经发现,成绩以不及格计。 3、课程设计期间要严格遵守学校纪律,按时上机,服务机房管理人员管理,不得无故旷课、迟到与早退,课程设计期间缺勤1/3以上者,成绩以不及格记。 三、成绩评定: 通过设计答辩等方式,结合学生的动手能力、分析解决问题的能力和创新精神,由指导教师根据考勤、设计说明书质量、答辩表现以及学习态度等综合评定设计成绩。 成绩分优、良、中、及格和不及格五个级别。 2.课程设计任务与要求: 选题:局域网聊天程序的设计与实现 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。 通过这次设计,要求掌握以下内容: 1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2)类、包、接口的定义与使用 3)一些常用工具类与算法的实现 4)Java的异常处理机制 计算机面向对象课程设计报告 第 3 页,共 12 页 3.课程设计说明书 一、需求分析 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 功能分析: 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的信息 二、概要设计 本程序根据功能设置了两个界面:服务器端和客户端的聊天界面 这儿主要介绍客户端。 模块描述 局域网聊天程序的设计与实现主要包括服务端和客户端,服务端与客户端之间通过套接口Socket(TCP)连接。其中默认IP地址为:127.0.0.1 客户端模块图: 聊天室客户端 连接设置:用户可以设置自己的服务器的IP地址,默认的连接地址为:127.0.0.1; 用户登录:只能在聊天室服务端已开启的情况下,用户才能登录,用户登录之后才能开始聊天,登录后不能再修改用户设置和连接设置; 发送和接收聊天信息:客户端可以给服务器端发送信息,并能收到服务器端发送过来的消息; 退出:关闭所有聊天并退出客户端。 用户登录 连接设置 发送 /接收聊天消息 退出 计算机面向对象课程设计报告 第 4 页,共 12 页 客户端类图: ChatClient -outFrame:JTextArea -userLinkList:UserLinkList -inputBox:JTextField -message=:string -chatServer:string + ChatClient(srvhost :String):public +init():public void +ConnectClient():public void +closeConnection():void +SendMsg(message:String): void 三、详细设计 1.客户端主要包括以下文件,它们的功能如下: (1)ChatClient.java:包含名为ChatClient的public类,其主要功能为定义客户端的界面,添加事件侦听与事件处理。该类定义了ConnectServer()与processConnection()方法实现与服务器的连接与断开连接。当登录到指定的服务器时,调用ClientReceive类实现消息收发,同时该类还定义了SendMsg()方法来向服务器端发送消息。 (2)ClientReceive.java:该类是实现服务器端与客户端消息收发的类。 2.客户端的程序创建了一个Socket对象,用来与服务器端建立连接通信。inputstream用来从Socket的inputstream输入流读取文本行,outputstream向Socket的outputstream输出文本行。客户端从标准输入中读取数据并输出,当读到信息“服务器端:终止”的时候关闭输入输出流 3.In和out是客户端和服务器端通信的关键。 把发送功能写在了发送按钮的事件响应代码中;由于接收是要保持监听状态的,所以把接收功能写在了一个进程中。 快捷键即键盘监听功能写在输入文本框中以实现输入完信息后按enter就能等于发送按钮。

JFrame ActionListener 计算机面向对象课程设计报告 第 5 页,共 12 页 四、用户手册 服务器端: 打开服务器端界面,在文件夹中是ChatServer.java,通过运行文件会有显示服务器已经启动接下来就等待客户端连接反应了,只要有用户请求连接,则会有显示新用户接入,客户端的聊天记录也会在服务器端显示:某某:„.。最后关闭窗口,即可断开服务器、。 客户端: 通过运行文件ChatClient.java,进入客户端窗口后就可以开始与服务器端相互聊天了。 注:图形界面的Application程序,用以实现常见的聊天功能,仅考虑一对一的聊天. 用TextPad作为系统开发环境。 五、测试成果 1.当先运行ChatClient程序时出现显示连接的界面如图一所示(没有开启服务器端) 图一

计算机面向对象课程设计报告 第 6 页,共 12 页 2.运行ChatServer程序得到服务器端等待连接的界面图二所示 图二 3.关闭1中的客户端界面,重新运行得到客户端连接到:127.0.0.1(应该先运行服务器端),如图三所示: 图三 计算机面向对象课程设计报告 第 7 页,共 12 页 4.客户端发送信息,下图四显示的是客户端发送信息后的结果: 图四 5.客户端发送消息,服务器端接收到信息如图五所示: 图五 计算机面向对象课程设计报告 第 8 页,共 12 页 6.服务器端接收到客户端信息后也可以向其传输信息如图六所示: 图六 7.图七所示为客户端接收到服务器所发送的信息: 图七 计算机面向对象课程设计报告 第 9 页,共 12 页 六.附录(源程序清单) 我负责部分的主要代码: 连接服务器 private void ConnectServer() throws IOException { outFrame.setText( \"连接中……\\n\" ); toclient = new Socket(InetAddress.getByName(chatServer),4000); 连接信息显示 outFrame.append( \"连接至: \" + toclient.getInetAddress().getHostName() ); } private void processConnection() throws IOException { // 输出框 inputBox.setEnabled( true ); do { // 读入信息并输出 try { message = ( String ) inputS.readObject(); outFrame.append( \"\\n\" + message ); outFrame.setCaretPosition( outFrame.getText().length() ); } 计算机面向对象课程设计报告 第 10 页,共 12 页 catch ( ClassNotFoundException classNotFoundException ) { outFrame.append( \"\\nUnknown object type received\" ); } } while ( !message.equals( \"服务器端>> TERMINATE\" ) ); } //关闭输入输出流,关闭连接,注意顺序 private void closeConnection() throws IOException { outFrame.append( \"\\n User terminated connection \" ); outputStream.close(); inputStream.close(); toclient.close(); } // 给服务器端发消息 private void sendMsg( String message ) { try { outputS.writeObject( \"客户端>> \" + message ); outputS.flush(); 计算机面向对象课程设计报告 第 11 页,共 12 页 outFrame.append( \"\\n客户端>>\" + message ); } catch ( IOException ioException ) { outFrame.append( \"\\nError writing object\" ); } } //main()方法 public static void main( String args[] ) { ChatClient beginning; if ( args.length == 0 ) beginning = new ChatClient( \"127.0.0.1\" ); else beginning = new ChatClient( args[ 0 ] ); beginning.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); beginning.connectClient(); }

计算机面向对象课程设计报告 第 12 页,共 12 页 4.课程设计心得 经过这次java课程设计的亲自实践,我对自己的不足有了进一步的发现,在设计的过程中不时的会发现不会的知识点,在查找书籍的过程中也是对自己知识的巩固,能帮助自己回忆起老师讲过的内容,在加深印象的基础上更好的通过实践理解。 我负责的客户端程序中只是简单的实行发送接收服务器端的信息。在设计程序之前先要考虑的是这个程序想要实现什么功能,根据要求先画出类图,理清思路,不要一开始就想着去编写源代码,因为在编写的过程中也许就会发现自己还有些遗漏点。在画好类图后再根据类图编辑源代码。在编写过程中,最重要的是细心,并不是一定要做到面面俱到,但也要考虑到作业的需求和现实意义,只有运用到实际应用中,才具有现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们一定要做到步步扎实,要保持清醒的头脑,让自己的每一行代码都能实现自己的意义 。 虽然要求的系统功能能实现,但还是存在一些问题,在这次课程设计的过程中虽然有自己的努力,但也得到了老师和同学的帮助,以及资料书的查询。在做系统的过程中因为基础的不牢固遇到过很多问题,有的是知识存储不足有的考虑不够全面,之所以能完成基本功能的实现是靠着我们小集体的几个人相互讨论,以及老师同学的帮忙。事实说明,只有经过大家一起的努力才能更好更快的实现功能比较完善的程序。在今后的学习中,不要什么都靠自己一个人,要学会向身边的人请教。只有互相帮忙大家才能更快的一起进步。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务