java实训聊天系统报告总结

2024-05-18

java实训聊天系统报告总结(共11篇)

篇1:java实训聊天系统报告总结

在编写JAVA聊天室的过程中,让我学到了很多东西,有知识方面的,而更多的是经验。

从以前学习C,到现学习JAVA,有很多的地方不习惯。

主要的就是思想不会转变。

但是还是有很多相似的地方,

比如,如何实现心中所想的东西时,很多函数的编写的方法是类似的,而不同的是JAVA多了继承、多态、封装等等

面向对象的东西。

所以在整体构思方面差异比较大,但是细节方面还是类似的。

编写聊天室让我对面向对象的了解算是更进一步了。

首先:聊天室实现的就是聊天;用户与用户之间实现聊天的功能。

然后:对于聊天这个功能如何实现呢?

1、要实现用户与用户之间的交流,必须要有一个通信实体做出“主动姿态”,主动接受来自其他通信实体的连接请求。

这就是服务端。

2、客户端——用于连接到服务端,然后实现用户之间的通信。

所以这里的服务器和客户端便是两个对象,它们能实现用户之间的通信。

对于总体的构思擦不多就是这样。

所以现在需要的便是一步一步的细化下去。

一、服务端

a) 服务端如何实现主动接受其他通信实体的连接请求?

b) 如何实现客户端之间信息的收发?

c) 服务端应该有些什么样的功能呢?

二、客户端

a) 如何连接到服务端?

b) 客户端应该有些什么样的功能?

当慢慢的思考下去,思想便会慢慢的清楚。

再开始编写的时候,其实头是乱的,摸不着头绪,因为那时候开始的时候便在想:如何写连接?如何写收发信息?如何写连接?等等。

也许这就是学C的时候的习惯思想,那时候写过的最大的程序便是俄罗斯方块,其余的便是在搞算法。

不过当自己慢慢的习惯JAVA的编程思想之后,便是好多了。

对于服务端和客户端的设计

1、服务器端的主要功能:

a) 在特定的端口上进行监听,等待客户端连接。

b) 默认端口为30000 。

c) 向已经连接到服务的用户发送系统消息。

d) 统计在线人数。

e) 当停止服务器时,断开所有的用户连接。

2、客户端的主要功能:

a) 连接到已经开启的聊天服务的服务端。

b) 用户可以配置连接后显示的用户名。

c) 当服务器端开启的话,用户可以随时登陆和注销。

d) 用户可以向所有人或者某一个人发送消息。

主要类和方法:

一、服务端:

1、ChatSever 便是服务器的主框架了。

包括服务器的属于的定义、

组件的组合、事件的处理等等。

2、ServerListen 类是服务端的监听类。

监听客户端是否连接。

3、ServerReceive 类是接收和发送客户端、服务端的消息。

4、LNode 类封装了用户的属性。

5、UserLinkList 类则是封装了对用户操作的方法。

如:添加、查找、删除等;

6 ServerHelp 类这是帮助板块。

二、客户端

1、Client 类 则是客户端的主要框架。

2、UserSet 类 是对用户名的设置和修改。

3、ClientReceive 类 实现客户端和服务端消息的收发。

4、ClientHelp 类 这是帮助板块。

(具体代码就不发了,太多了。)

对于聊天室的编写部分已经完成了,接下来便是完善它的功能和修复它的.一些BUG。

因为发现有很多地方有BUG:

1、客户端无法接收到服务端发出的系统消息。

2、服务端无法收到客户端下线的消息,导致服务端无法删除以下线的客户端。

所以客户端连接重复。

3、当服务端停止服务时,客户端未断线。

4、客户端不能接收到其他客户端的上线和下线消息。

目前发现的BUG就是以上几个。

同时除了BUG以外,还发现很多的不足:

1、客户端的IP设置是不能改变的,所以当服务端换IP时,客户端需要从源代码中去修改,导致不方便。

2、服务端、客户端没有设置快捷按钮,导致每次启动都要通过“菜单”来启动和连接。

3、所有的表现都是以文字表现的不能接收和发送图片。

以上是目前发现的不足点。

希望能在修改之后得到完善。

★ 聊天室系统实训总结

★ 计算机实训系统报告

★ 实训教学论文

★ 财务系统综合实训心得体会

★ 网络安全论文

★ 实训心得体会

★ 实训报告范文

★ 实训心得

★ 实训总结

★ 实训心得体会范文

篇2:java实训聊天系统报告总结

摘要:本文提出并设计了一个局域网聊天工具,并在WINDOWS平台上利用C#编程语言加以实现。

本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。

关键词:局域网;C/S体系结构;文本聊天;文件传输

1、聊天系统的设计与实现

摘要:本文提出并设计了一个局域网聊天系统,并在WINDOWS平台上利用C#编程语言加以实现。

本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。

关键词:局域网;C/S体系结构;文本聊天;文件传输

2、聊天系统系统概述

2.1 开发目标和意义

本设计的主要工作是设计一个基于PC机平台的局域网即时聊天系统,具体是采用C/S模式实现用户之间的通信,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。

局域网聊天系统,是在局域网内部使用的,用户之间用来交流的一个系统,一般都具有文本聊天和文件传输功能。

局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。

2.2 C#编程编程

通常的通信系统,都采用客户机/服务器(C/S)体系结构,C/S结构是这样的一种结构:它包括客户机和服务器。

客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。

Client/Server结构是当前数据库应用程序

中极为流行的一种方式。

尤其是网络技术的发展,使得当前很多系统都采用这种方式进行构造,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理的利用系统资源。

另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。

Client/Server模型最终可归结为一种“请求/应答”关系。

一个请求总是首先被客户发出,然后服务器总是被动地接收请求,返回客户需要的结果。

在客户发出一个请求之前,服务进程一直处于休眠状态。

一个客户提出请求后,服务进程被“唤醒”并且为客户提供服务,对客户的请求做出所需要的应答。

3、聊天室的系统概要

1.首先可以打开登陆界面,并且有可以用于交互的界面,可以用于登陆,注册;登陆进去之后,可以修改用户的基本信息;登陆进去的用户,可以任意的向同一网络内的其他用户发送信息!登陆进去的用户可以查询自己的聊天记录,并且定期删除自己的聊天记录。

2.没有登录的用户可以新的注册,密码错误的用户可以进行邮箱的验证,忘记密码的用户可以修改自己的密码

3.可以修改自己的密保问题,并且可以自己定义密保问题

4.可以修改发送的字体颜色,并且在信息栏目可以显示自己的用户信息

4、系统设计

4.1 系统功能结构

本系统中主要包括两个部分:服务器端和客户端。

(1) 服务器端的功能包括:

① 验证登录:检查登陆信息是否正确,并向客户端返回登陆信息,如信息正确。

就将在线用户发给该用户,并将该用户的状态发给各在线用户。

同时在服务器端显示出来。

② 处理注册信息:用户提交注册信息后,自动验证是否重名,如果重名则返回提示,

如果不重名则将信息加入数据库。

③ 发布系统消息:将此用户上线、下线消息发给各客户端,并在服务器端显示在线用户信息。

④ 保存聊天记录:在接收到用户保存聊天记录申请的同时自动保存聊天记录为文本文件。

服务器功能结构如下图1-1所示:

图1-1 服务器端功能结构图

(2) 客户端的功能包括:

① 用户登录:建立与服务器的连接并登陆,能显示登陆错误信息。

② 用户注册:建立与服务器连接并提交注册信息,注册成功后自动登录。

③ 界面显示:登录成功后,自动显示在线用户列表。

④ 发送消息:选择要发送对象后,可以发送文本消息或者文件。

⑤ 接收消息:收到其他用户消息后,提醒并显示。

接收文件时可以选择接收或拒绝。

⑥ 聊天记录的保存:用户下线前自动向服务器发送申请保存聊天记录。

客户端功能结构如下图2-2所示。

图2-2 客户端功能结构图

4.2 系统业务流程分析

首先又服务器开启服务,监听局域网中客户端的连接请求,客户端连接后,登陆或者处理注册信息,并返回操作结果,客户端注册或者登陆成功后,显示聊天窗体,此时各客户端将自主的监听局域网中的用户,实时更新自己的用户列表并显示,各个客户端之间的信息交流不再通过服务器转发,而是自主通信。

局域网聊天系统的业务流程图如图3-3所示。

图3-3 系统业务流程图

4.3 数据库设计

(1) 数据库表的设计

系统需求主要体现在用户的注册、登录、发送消息、接收消息、聊天记录的保存等方面,而本系统发送消息,接收消息,聊天记录保存均有客户端自主完成,因此不需要体现在数据库中,这样数据库只需储存用户的信息即可。

所以只需要建立1个表:用户表。

(2)存储过程和触发器的设计存储过程是指将常用的;登录验证(loginProcedure):在用户;用户注册(regProcedure):用户注册时;5、总结;通过这次开发,我第一次深入的去思考一个软件的构成;我充分认识到开发前的需求分析、框架设计、技术选择;参考文献;(美)特罗尔森(AndrewTroelsen).;刘骏,颜钢锋.基于Socket的网络编程

(2) 存储过程和触发器的设计 存储过程是指将常用的或复杂的数据库操作,预先用sql语句写好并用一个指定的名称存储在数据库中,以后在调用存储过程时,只需要指定存储过程的名称和参数即可。

本系统主要有登录验证、用户注册两个存储过程。

登录验证(loginProcedure):在用户登录时,由服务器调用,验证用户的用户名和密码是否正确。

用户注册(regProcedure):用户注册时,由服务器调用添加新用户。

5、总结

通过这次开发,我第一次深入的去思考一个软件的构成与实现,以前网上聊QQ的时候从来没想过如何实现它的功能,等到让自己来做的时候发现其中任何一个环节都很重要。

整个设计过程是不断学习,不断发现问题、分析问题、解决问题的过程。

使我受益良多。

设计期间有许多的感触、想法、经验,教训,对以后的学习、工作有很大的益处。

我充分认识到开发前的需求分析、框架设计、技术选择等环节是多么重要,如果这些前期工作分析充分、设计良好,考虑周全,将会大大提高开发人员的开发效率,使开发思路更明确,开发过程更简单,同时也可避免一些不必要的错误。

本设计在查阅了大量的文献后进行理论研究的同时,借鉴了其他聊天程序的功能、吸取了其他聊天程序的优缺点,利用TCP/IP协议中的TCP协议,即面向连接的服务,进行数据的传输,对网络中数据的传输过程。

篇3:Java在线聊天系统分析

本文将讨论一种基于JAVA的SOCKET局域网聊天工具的设计和实现方法, 基于SOCKET的聊天软件可以为原有的企业局域网提供一种安全、快速的通信模式, 它无需改动原先局域网硬件, 而是通过成本低廉、使用方便的特点, 进一步减轻局域网通信负荷, 提升局域网使用效率, 解决局域网内部的通信需求。

系统分析

1. C/S模型

通常的通信工具, 都采用客户机/服务器 (C/S) 体系结构, C/S结构是这样的一种结构:它包括一个客户机 (或前端) , 一个服务器 (或称后端) , 客户机的作用是访问和处理远程服务器上的数据, 服务器的作用是接收和处理客户机的数据请求。有时, 可能有多个客户向同一个服务器同时请求服务, 这就需要服务器决定怎样处理这些请求。Client/Server结构最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成, 这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来, 任何客户机都可以通过访问服务器而获得所需的信息。Client/Server模型最终可归结为一种“请求/应答”关系。一个请求总是首先被客户发出, 然后服务器总是被动地接收请求, 返回客户需要的结果。如下图所示:

2. Java TCPSocket通信流程描述

(1) C/S两端通过Socket机制进行连接

1) 客户端的编程流程:

(1) 创建Socket对象, 向Server的监听端口请求;

(2) 通过向新Socket中读写数据与Server端通信;

(3) 关闭Socket, 结束与Server端;

2) 服务器端的编程流程:

(1) 打开Server Socket, 创建一个服务器型套接字和一个普通套接字, 服务器型套接字在指定端口为客户端请求的Socket服务;

(2) 等待来自客户端的Client端的请求;

(3) 接收Client端的请求, 用返回的Socket建立连接;

(4) 通过向Socket中读写数据来与Client端通信;

(5) 关闭Socket, 结束与当前Client端的通信;

(6) 关闭Serket Socket对象结束监听服务。

(2) 具体流程描述

如图3-2所示:

3. 多线程编程技术

Java里面实现多线程, 有2个方法

(1) 继承Thread类

4 用户界面设计

本文的主要界面设计如下:

总结

在当前信息技术的飞速发展, 一个具有简单、使用的局域网通信工具是非常实用的, 本文说开发的在线聊天系统虽然简单的实现了群发和单聊功能, 但是从聊天系统的发展上看, 信息之间的通信和协助已经成为未来人们相互沟通、联系的重要发展方向, 我们应当重视对它的研究和开发。

篇4:java实训聊天系统报告总结

关键词:企业实践 Java软件项目开发岗位 职业能力 教学改革

笔者积极响应学校号召,暑期期间到济南维库软件科技有限公司进行了一个月的企业实践,顺利完成企业的工作任务,现将一个月的实践收获总结如下。

一、转化角色,虚心、耐心、专心做一线有责任心的企业员工

1.遵守企业制度,认真承担并履行责任

在一个月的企业实训中,笔者谨记学校领导的嘱托,严格要求自己,认真遵守企业制度,从未发生迟到、请假、早退现象,进入公司后将自己由受人尊重的老师转变为一名初到公司的企业员工,做到慎独、慎微、慎初,强化工作责任心,主动处理好分内与分外的相关工作,勤奋扎实地工作,不敷衍应付,认真对待工作中的每一个问题,完成企业交给的每一个工作任务。

2.不畏工作困难,耐心解决项目开发中的各种问题

企业实训为真实软件开发项目:山东高速集团采购系统。由于项目庞大复杂,涉及知识点琐碎,项目开发工作困难重重,笔者认真细致学习企业教师讲解的知识点,分析需求说明书,钻研软件算法和代码的实现,面对项目中遇到的各种错误代码和异常,耐心查错排错,认真解决软件开发过程中出现的各种错误,并及时记录解决方案和问题,为下一步软件开发工作和教学实训积累了丰富的经验。

3.放下教师架子,虚心向企业有经验老师请教

学校主要工作是教书育人,企业工作是开发高质量软件产品。工作任务的不同,使笔者慢慢放下了教师的架子,主动地向实践操作能力较强的“小兄弟”请教。虽然他们年龄较小,学历不高,却有丰富的项目开发经验。笔者向他们虚心请教,反复讨教工作中不明白的问题,从他们那里学到了课本上没有的工作技巧和技术,更领略了他们一丝不苟、沉着耐心和认真细致的工作作风。

二、企业实践锻炼内容

企业实训内容主要基于目前软件公司的热点需求——Java软件开发岗位进行设计和选取,包括相关知识内容的培训和山东高速集团采购系统项目的实训两部分内容,具体知识包括:Java知识(JDK的安装配置、Myeclipse开发工具使用、数据类型和运算符、流程控制、面向对象开发)、HTML知识、MYSQL知识和SSM知识(JSP应用、Sevlet应用、Spring-MVC应用、Spring依赖注入、Mybats框架应用及整合)。

三、企业实践锻炼收获与心得

1.课程设置应与岗位需求相匹配

高等职业院校人才培养模式定位于技术技能型人才的培养,为地方区域经济服务,为地方社会经济发展提供人才保障和智力支持,因此专业课程的设置应该以岗位工作任务和岗位能力需求为出发点。以Java软件开发岗位为例,目前学校开设的都是传统的数据库知识和web前端知识课程,但是IT技术发展迅速,真正的软件开发大多通过相关框架实践,如SSM框架、SSH框架等,因此,学校要适应目前社会的需求,与时俱进,及时更新课程标准和授课内容。

2.教师实践操作水平是培养高素质技术技能性人才的重要因素之一

目前企业对参加职业技能大赛获奖学生毕业生比较青睐,所以企业高职院校的评价主要通过高职院校技能大赛进行,而学生技能大赛成绩的结果反映了教师的实践操作水平。俗话说“老师要给学生一杯水,自己首先要有一桶水”,因此教师应首先提高个人实践操作水平,而提高教师实践操作水平的主要方式之一就是通过企业实践锻炼。据悉,山东省在不久的将来将启动高职院校教师职业技能大赛,因此教师要将提高实践操作水平作为自己以后工作的努力方向。

四、未来的努力方向

1.基于企业岗位需求进行教学改革

(1)教学模式和教学方法遵循职业发展规律。高职院校推行“工学结合、知行合一”的人才培养模式,因此要基于企业工作岗位和工作任务进行教学改革。

第一,推行教、学、做一体化教学模式。在教学中,应该以培养学生的职业能力为主,师生双方边教边学边做,理论和实践交替进行,直观和抽象交错出现,理中有实,实中有理,突出学生动手能力和专业技能的培養,充分调动和激发学生学习的兴趣,使学生真正变成学习的主人。要培养学生的终生学习和持续发展能力,推行教、学、做一体化教学模式对加强学生的动手操作能力和解决实际问题的能力有很大好处。

第二,推行翻转课堂教学方法。为提高学生的主动性和创新能力,在教学过程中,推行翻转课堂的教学方法,将学习任务布置给学生课下完成。学生利用信息化技术查阅需要的材料,还可以在网络上与别的同学讨论,完成老师分配的任务,并在课上分享任务完成过程和心得体会。由老师进行评论,师生间还可以进行充分的交流,这样可以满足学生的个性需要,有利于学生创新能力的培养。

(2)教学过程基于软件开发工作过程。将教学过程与企业软件开发过程相结合,教学过程围绕企业真实的软件开发项目展开,将要学习和掌握的知识技能,转化为一项项工作任务,学生分组按照行动导向的六个步骤(资讯-计划-决策-实施-检查-评估)进行,使学习任务既是一个完整的学习过程,又是一个工作过程,教师成为学生学习的引导者和促进者。

2.技能操作的提升与社会岗位前沿技术的了解

(1)技能操作的提升。以后,笔者将会继续积极参加企业实践锻炼,参加省级培训,完成每5年必须累计不少于6个月到企业或生产服务一线实践的目标,通过企业真实工作过程提高自己的实践操作水平和职业能力,并将其应用到教学过程、实验实训过程和学生技能大赛中。

(2)社会岗位前沿技术的了解。为推导社会技术的变化和教学知识的更新,在以后的工作中要经常深入企业,了解企业的生产组织方式、工艺流程、产业发展趋势等基本情况,熟悉企业岗位职责、操作规范、技能要求、用人标准、管理制度、企业文化等,学习所教专业在生产实践应用中的新知识、新技术、新工艺、新材料、新设备、新标准等,及时更新人才培养方案、课程标准,适应社会岗位对教学知识的需求。

五、小结

篇5:JAVA聊天室实验报告

班 级:学 号:姓 名:

****** ******** ***

目录:

一、实验目的.......................................................3

二、所需技术.......................................................3

三、需求分析.......................................................3

四、系统设计.......................................................4

1、服务器结构..................................................4

2、客户端结构..................................................4

五、实现细节.......................................................5

1、客户端细节...................................................5

2、服务器细节...................................................6

六、系统展示.......................................................7

七、实验小结.......................................................9

Rain153 WeChat 聊天室系统一、实验目的:

1、使用Java技术完成聊天室系统,深入学习使用Java语言。

2、使用Java 的多线程机制,深入理解Java多线程技术的应用。

3、使用GUI,对JFrame的深入学习。

4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发。

5、使用C/S架构,对网络编程有一定的了解。

二、所需技术

本系统要求使用java技术开发。所需知识包括java程序设计语言、swing基本GUI组件、多线程编程、socket编程、集成开发环境使用eclipse。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的服务器。

三、需求分析

开发一个类似QQ 的聊天室系统,即WeChat聊天系统。该系统应具有如下功能:

1、2、用户注册、登录 群聊;

3、私聊;

4、服务器发送系统消息;

5、服务器踢人;

6、保存日志;

7、保存聊天信息;

四、系统设计

1、服务器结构

启动服务器监听AppServer服务器控制监听窗体ServerFrameConnection处理所有用户请求

服务器端结构图示

2、客户端结构

启动客户端ChatClient用户登录窗体Login用户聊天主窗体ChatRoom时钟窗体ClockRegister用户注册窗体Windowclose用户窗体监听器

客户端结构图示

1、AppServer.java

为服务器端监听类,负责服务器的启动,包括启动监听端口、服务器监控界面。

2、ServerFrame.java 为服务器监控窗体,负责监控服务器运行状态。

3、Connection.java 为服务器连接处理的具体实现。

4、ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。

5、Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。

6、Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。

7、ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器的Connection合作。

8、Windowclose 为ChatRoom.java的内部类,负责监听聊天室界面的操作,当用户退出时返回给服务器信息。

9、Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。(可选)

五、实现细节

概述:聊天室主要功能的实现:从界面输入登录信息,然后与服务器建立Socket连接(连接时应指定服务器的IP地址和端口号,而客户端socket的端口由本方操作系统从空闲端口中确定),服务器端的“倾听Socket”收到连接请求后,一般会接受连接请求,并生成一个服务端socket,专门负责与此客户端socket的通信。一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相应的处理(如登录、转发信息等)。服务方也可以根据需要,通过socket的输出流发信息和请求给客户端(公告)。客户方和服务方都可以通过关闭本方的socket而结束一次通讯过程。为了实现多客户在线的请求,使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程专门负责处理。

一)客户端细节

1、注册:

当选择注册时,Register界面等待用户输入注册信息,并将信息封装成Register_Customer类,然后通过建立在Socket的连接之上的对象输出流将用户注册信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在数据库中查找该用户名是否已经注册,然后将注册信息加入数据库,最后将注册结果返回给客户端。客户端显示注册结果。

2、登录:

当选择登录时,客户端由Login 界面等待用户输入登录信息后,封装成Customer对象类然后通过建立在Socket的连接之上的对象输出流将用户登录信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在对象型数据库中查找该用户名是否已经注册,然后将注册用户的信息与登录请求信息进行密码验证,在登录成功后将该用户添加到在线用户列表,最后将登录结果返回给客户端。若登录成功,客户端将启动聊天室主界面。

3、聊天 a、发送聊天信息:私聊功能需在在线列表中选中私聊聊天对象,并勾选私聊选项。群聊功能取消对私聊功能的勾选即可。当用户点击完发送按钮后,程序开始将当前用户名、聊天对象、聊天内容、表情和是否私聊进行封装,然后获取Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。

b、接收聊天信息:用一个单独的接收线程实现,客户端必须随时接收服务器发来的消息,而读取消息的方法采用的是阻塞式方法,若在事件处理程序中读(占用的是事件处理线程)则会使程序在此后无法响应用户操作,所以需要生成一个单独的线程专门用于读取处理消息。而发送消息的方法则是将消息放入操作系统的发送缓冲区后就返回的,所以发送执行的相当快,可以在事件处理线程中直接调用。发送和接收可以同时进行。二)服务器端细节

1、注册:创建一个File文件类,载入“user.txt”,再用对象输入流ObjectInputStream包装File文件类,将存储在“user.txt”得向量对象Vector中载入内存中,现在系统中的向量就是对象型数据库,存储着每条用户信息对象。判断是否是第一个注册用户,判断用户名是否已经存在,判断用户名是否为系统关键字,用户名有效后 写入数据库,并给客户端返回信息,关闭Socket连接。

2、登录:去数据库读用户数据,打开用户数据库文件“user.txt”,将用户数据对象集载入内存,以供下面的程序使用。验证用户名是否存在,验证用户密码是否正确,验证用户是否已经登录,验证是否已经超过最大登录人数,如果以上验证全部正确,返回客户端信息,关闭Socket连接。

3、退出:接收退出信息,当用户退出时,客户端将会用基于Socket的对象输出流发给服务器退出对象,把用户从在线列表中删除,更新在线列表。

4、聊天:接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Message中提出消息类型,再根据类型将消息强制转化ChatMessage,调用ChatMeaage中方法,获取目的客户名称列表,根据目的地用户名从用户名、socket键值表中获取socket,再通过socket将Message转发到相应的用户。

六、系统展示

1、注册

客户端注册界面

2、登录

客户端登录界面

3、聊天界面

聊天界面

4、服务器界面

服务器管理界面

服务器用户信息管理界面

七、实验小结

本次实验是比较复杂的一个题目,采用C/S架构设计的聊天室,使用增量迭代方式开发,从初始的0.1版到最终的2.0正式版。通过本次实验,对C/S架构有了较深的认识,也对多线程编程、网络编程、GUI的认识更清晰。在项目中遇到很多问题,在解决问题的过程中,对Java也渐渐的熟悉,尤其是对各种异常的处理更是对自己的一种锻炼。在此次实验中应用了很多上课时未讲到的知识,自己查阅API,阅读JDK源码学习方法的使用让自己收获颇丰。由于这是一个人的项目,虽然在项目的实施上很自由,可到问题没有人讨论,耗费了很多精力,不过这也是提高自己的好方法。

篇6:java聊天室设计总结

大二第一学期末我们进行了为期两周的java实习,这次的实习内容是设计一个多人聊天室。在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此老师布置了制作一个有简单聊天功能的网络聊天程序的课程;而且通过制作该程序还能更好的学习网络软件编程知识。

一、设计内容

利用java语言实现聊天室程序。聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。设计的聊天室能实现用户登录,显示登录用户列表,以及发送聊天信息和显示聊天信息的功能。并可以选择接收信息的用户进行单发或群发的功能,运行程序,登录服务器后,可以从列表中选择单个或多个用户进行聊天,它是图形界面,线程,流与文件系统等技术的综合应用。

二、实现功能

1、启动服务器端,接收客户端发来的信息,并在服务器端窗体显示客户端聊天信息,再吧信息返给在线用户。

2、启动客户端,进入客户端页面,输入用户名,点击登录按钮,在显示在线用户列表内显示用户名。

3、发送编辑框输入发送内容,单击发送按钮,启动输出流,把信息发送出去,同时把发出的信息追加到聊天内容文本域内,显示用户名,时间和发送内容。

4、聊天信息文本域,在线用户显示域和发送信息的文本域加了滚动条,其中聊天信息文本域,发送信息的文本域的文字能自动换行。

5、别的客户端发来信息是通过输入流读取信息,并截取发来信息的用户名及信息,用户名加到在线用户列表上显示在线,信息追加到聊天内容文本域内,显示用户名,时间和发送内容。

三、设计收获

篇7:java实训报告

随着自动化技术的不断发展,电子产业对工艺生产的要求越来越高。本次实训主要熟悉手工焊锡的常用工具的使用及其与修理。手工电烙铁的焊接技术,能够独立的简单电子产品的安装与焊接。熟悉电子产品的生产流程,印制电路板设计的和方法,能够读懂电路原理图,熟悉元器件实物,常用电子器件的类别、型号、规格、性能及其使用范围,并会简单的元器件测量,掌握焊接工艺的编排,电路调试过程。能够识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。培养检测能力及一丝不苟的科学作风。

第一章JAVA开发环境

1.1NetBeans IDE简介

NetBeans 由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。

NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言。

由于Java的跨平台性,在任一平台中编写的Java程序可以很好的移植到其他平台上。为了运行程序,计算机上必须安装JVM,它包含Java运行时的解释器与及时编译器,二者构成Java的运行环境。如图1.1所示:

=

图1.1Java的运行环境

{

JFileChooser fc = new JFileChooser();

int r=fc.showOpenDialog(this);

if(r== JFileChooser.APPROVE_OPTION){

File file=fc.getSelectedFile();

try{jTextArea1.read(new FileReader(file),null);}

catch(IOException e){}

}

} void saveFile()//保存文件函数 {

JFileChooser fc=new JFileChooser();

int r=fc.showSaveDialog(this);

if(r== JFileChooser.APPROVE_OPTION){

File file=fc.getSelectedFile();

try{jTextArea1.write(new FileWriter(file));}

catch(IOException e){}

}

} 2.2计算器

要求编写一个模拟计算器Applet,使用面板和网络布局,添加一个文本框,10个数字按钮(0~9),四个加减乘除按钮,一个等号,一个清除按钮。计算器效果如图2.2:

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt){

show(4);}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt){

show(5);}

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt){

show(6);}

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt){

show(7);}

private void jButton9ActionPerformed(java.awt.event.ActionEvent evt){

show(8);}

private void jButton10ActionPerformed(java.awt.event.ActionEvent evt){

show(9);}

//点击小数点按钮

private void jButton11ActionPerformed(java.awt.event.ActionEvent evt){

String text=jTextField1.getText();

if(text.lastIndexOf(“.”)==-1)//判断该数字是否已经有小数点

jTextField1.setText(text+“.”);

}

//点击运算符

private void jButton12ActionPerformed(java.awt.event.ActionEvent evt){

t1=Double.parseDouble(jTextField1.getText());//将第一个数转换成Double类型保存在t1中

jTextField1.setText(“ ”);

图3.1文件打开

图3.2文件保存

3.2计算器调试

篇8:java实训报告

我们在学校机房进行了为期三周的JAVA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,Application应用程序和Applet小程序,它的开发工具,数据类型,变量,接口,输入输出流,学会分析异常,抛出异常,后期主要是小程序运用,Gui界面设计和事件。我觉得这两种程序结构有很大的不同,不管是体系结构还是运行方式,都有很大的区别,我主要偏向于小程序的学习,呵呵,因为感觉它用处比较大,可以做出好多好多好玩的游戏,运用程序等,且它灵活。呵呵,当然学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。

这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

篇9:java实训总结

学号:

专业班级:

实习单位:

实习时间:

陈育伟20096361信息与计算科学1班高博教育2012-7-1——2012-7-1

42012年 7 月 14 日

一、实习目的通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse 开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

二、实习主要流程

1、公司管理规则,程序员素质,程序员编码规范;

2、需求开发与管理;

3、面向对象分析与设计,面向对象编程的特性;

4、javaSE、javaWeb、页面设计-JSP页面;

5、数据库设计、SQL应用;

6、软件需求分析与设计;

7、项目实战

三、实习内容

Oracle数据库

数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。

Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结

果。

Oracle服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管Oracle始终在不断发展,但目前Oracle服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的Oracle十分适合于访问Internet上的数据库。

java与SQL的应用

Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。

控制技术-Servlet技术

1)什么是Servlet?

一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。

javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。

2)Servlet的生命周期

一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。

页面设计-JSP页面

1)MVC 模式

为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制

器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。

2)JSP技术的强势

(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

3)JSP技术的弱势

(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。

四、实习总结

通过这一期的实训,虽然实训的时间不长,但是总体上收获挺大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。

当我们正式准备学习实训java编程技术时,让我倍感兴奋,毕竟java是自己以后想主攻技术,所以自然也就非常的亢奋。刚开始实训的第一天,同学们就推荐我为组长,我感觉肩上责任之重大,那一刻起,我就决心带领我们小组,奋战我们的实训路。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我们遇到了很多以前未曾遇到的难点,有时难免冥思苦想也无济于事,通过我们小组的积极努力协作,同时请教老师和其他同学,我们顺利的化解了一道道的障碍。

这让我不断的对学习技术又有了新的认识:学习中我们必须边总结边学习,开始阶段对老师交代的任何方法和类都不要放过,不管是否简单与否都要乐于地接受,因为老师肯定有他的道理,相信老师走过的路比我们长,那么其经验也就肯定比我们丰富。上课时一定要专心听讲,一个关键的知识点听漏了,可能会使一个人在课下花很多时间去消化,这样也就会花掉做其他事情的大量时间,同时也使得学习不能和老师的讲的课程同步,以至出现以后就跟不上老师讲课的进度而掉队。所以学习中我们宁可先劳其筋骨,苦其心志,恶其体肤,也不能掉队跟不上学习进度。

在这里,我非常感谢实训的指导老师,在老师的帮助和指导下,我克服了Java学习上的一道道难关,课上认真听讲,摘好必要的笔记,并通过自己课后的不断消化学习,现在自己已经基本掌握了java的基础知识,并且能独立的开发出系统。

实训即将结束了,我非常怀念厦门万策在南昌大学的校内实训,在实训的这短短两周的时间里,我每一天过的都市踏实的,充实的;我相信,只要我秉持艰苦奋斗,为理想拼搏的精神,尽管在未来的java路上荆棘丛丛,我一定可以披荆斩刺,度过重重难关,实现自己未来的理想!

实习是为将来打基础的重要阶段,珍惜自己每一个工作的机会,不论什么人,什么学历,从事什么工作,好好的表现、展示自己的能力,不要错过好的机遇。没有一件事情是轻轻松松的,但每一件事都是让人成长的,经历一段过程,喜悦或是艰辛,尽管经历的方式不尽相同,但它的结果是相同的,我们都会因涉事而成长。

通过实习,我自身发生了重大的转变。首先,进入公司,你就是一名职业人,不再是一名学生,你要具备一名职业人应具备的素养,不迟到不早退是必然的,而且还要时刻严格要求自己,公司的规定要严格遵守。然后,在技术上也有了很大的提高,学习了很多公司自己的框架和工具,这都是一些前辈的宝贵经验。而且所作的软件应用性更强。所以,我要坚定自己的信念,在公司好好实习,争取提早转正,我相信我会在JAVA开发这条路上走的更长更远。

有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:“要想为事业多添一把火,自己就得多添一捆材”。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少

篇10:JAVA实训总结

姓名:孙尊路

班级:软件111

学号:1132304117

在为期一周的实训后,给我最大感触的是只要坚持去做,总有办法能完成。在实训中,我们做的是商品购物的一个网站,其功能类似于先前做的新闻管理网站,主要包括添加,查询,修改,删除等几个功能。在实训中,遇到了很多的问题,首先人员的分配时很重要的,只有明白自己做的模块,熟悉自己要做哪些功能?如何去做?然后小组之间互相讨论,最终形成一个统一的商品管理网站的构想。在实训过程中,我负责的是后台代码的实现,在一开始,就遇到了很多的错误,经过组员的讨论,错误一点一点的给克服啦!虽然中间出现了一些不同的见解,但是根据项目的需要,我们经过了逐个的筛选,最终达成了一致意见。我觉得一个成功的网站必须有一个足够丰富的数据库,数据库的创建也是必需的一个步骤,如果数据库都存在问题的话,可想而知,麻烦是很大的。实训中发现,平时所学的基础知识是多么的重要,只有牢牢地掌握书本上的基础知识,才能在实训中,不会磕磕绊绊,才能够理解代码的含义,找出相应的错误。

这次实训,我们更多学到的是不断地就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识。最后在自己的努力下,终于基本上成功了,心情也是有点小愉悦。

篇11:Java程序设计实训报告

JAVA语言程序实训报告

专业: 信息管理与信息系统

班级:

姓名:

学号:

指导老师:

前 言

面向对象程序设计是软件编程技术中的一项非常关键的技术。面向对象程序设计中的继承,封装,多态等很接近于人的语言和思维,更容易让人理解和使用。并且,面向对象程序设计更加符合现代软件大规模开发的需求,有利于软件使用。

Java的诞生是对传统计算机模式的挑战,对计算机软件开发和软件产业都产生了深远的影响,Java语言是面向对象程序设计语言中的代表,发展迅速。随着Internet的飞速发展,Web的广泛应用,而Java语言在Web应用方面所表现出来的强大特征,使得Java语言成为Web开发的主流技术。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

本次实训是配合Java程序设计课程,帮助我们深入学习掌握Java语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,不仅培养学生实际分析问题、编程和动手能力,而且还提高了学生的综合素质。

如今,我们所面临的问题有:不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要,没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。解决的方法就是通过实训和练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足。我们应该明白软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以Java非常强调:项目一定要让学生动手写出来。

希望同学们在老师的带领下,能够将理论与实践联系起来,把我们课本上所学到的知识运用到实践中,在实践中检验真知。

2014年6月10日

目 录

一.实训目的.....................................................................................二.功能分析.....................................................................................三.系统设计.....................................................................................四.测试数据及运行结果..................................................................五.主要源程序.................................................................................六.实训总结与心得体会..................................................................一.实训目的

1.掌握Java语言的面向对象特征,包括Java语言中类、对象、继承、多态、接口和内部类,图形绘制等重要概念及应用实践。

2.掌握Java语言编程基础,包括数据类型、变量、运算符、字符串、数组、控制结构、访问权限修饰符,基本数据类型的转换,类的定义,对象的创建,通过类的对象调用类中的方法等内容。

3.掌握如何使用Java语言编写图形用户界面,利用Java丰富的图形组件创建交互性较好的用户界面。

掌握面对不同的事件处理进行不同事务处理,及每种事务处理的过程。

4.掌握如何使用不同的布局管理器,方便地设计出各种控件组织方式的界面。

掌握如何创建图形的界面,如何进行图形的绘制,怎样对图像进行处理。5.进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战 经验。学习有用的相关技术,提高自己的学习效率和工作效率。6.巩固Java课程所学基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。

7.经过这个学期的学习后,能不能把学习的知识综合串联起来,java的实训项目的制作可以有效的检验这一点。进行综合项目实训可以练习java软件开发的环境和配置,能够把java的面向对象技术、数据结构、图形界面、小应用程序等知识运用到实践中去,从而更好地理解java的各项知识,达到能够应用自如的地步。进行实训的同时还需要查阅大量的文档,可以锻炼同学的自学能力。

二.功能分析

该黑白棋游戏主要可以实现黑白棋的对弈,要求有黑白两色棋子,保存所有已下的棋子,包括在棋盘上的所有棋子和被踢掉的棋子,若落子没有造成踢子,包括所有被这个棋子踢掉的棋子及这个棋子本身。如果踢子,则保存所有被踢的棋子,在游戏的过程中也可以显示对战双方的当前的棋子个数,提醒对战双方的时限。同时,该游戏还具有悔棋的功能。

三.系统设计

1.棋盘界面设计:基于Panel类定义一个面板子类,在其中利用Graphics类的drawLine()方法绘制棋盘格线,利用fillOval()方法绘制棋盘四角的星位。为面板创建监听器,为一个按钮注册ActionEvent事件监听器,实现单击鼠标布子、单机一个重新开局等操作。

2.棋盘功能设计:控制面板类,包含标签、手数、悔棋按钮、重新开始按钮。

3.棋盘界面的实现方法:通过Chesspoint类获得实际棋子的位置。3.棋盘功能的实现方法:利用JFrame将棋子显示出来,Chess对围棋界面外观进行初始化之后即可创建围棋对象。

四.测试数据及运行结果

1.围棋图形用户界面,如图5.1所示:

图5.1 用户界面

2.黑白棋对弈,如图5.2所示:

e.界面左边的对话框提示可选择棋盘大小功能,如图5.3所示:

图5.3 棋盘大小选择界面

五.主要源程序

1.Chess类是此程序的主类之一,用来初始化棋盘的外观: import java.awt.*;import javax.swing.JFrame;

public class Chess extends JFrame { Chessboard qipan = new Chessboard();;

// 初始化外观

public Chess(){

this.setTitle(“围棋程序”);

this.setLayout(new BorderLayout());

this.setSize(qipan.getSize());

public int getWidth(){ return size + controlPanel.getWidth()+ 35;} public int getHeight(){ return size;} //绘制棋盘外观

public Chessboard(){„} public void addNotify(){

super.addNotify();

offscreen = createImage(size, size);

offg = offscreen.getGraphics();} „„ } 3.Chesspoint类用来通过x和y取得黑白棋子的位置: public class Chesspoint { public static int black=0,white=1;int x,y;int color;public Chesspoint(int i,int j,int c){

x=i;

y=j;

color=c;}

public String toString(){

String c=(color==black?“black”:“white”);

return “[”+x+“,”+y+“]:”+c;} 六.实训总结与心得体会

上一篇:病理报告格式下一篇:职业学校学籍自查报告