2023年11月28日发(作者:)

java实训收获总结

java实训收获总结

尊敬的各位领导、各位老师、各位同学:

大家好!

在学院领导老师的带领和安排下,我们在上个学期末,到北京进行了为期

10天的专业实习。在实习过程中,我们在专编程技能以及软件开发的总体架构

思想上都收获颇丰。

本次实训我们分为两个阶段,前五天为第一阶段,我们进行了理论知识的

学习,巩固和深化了所学的编程知识。以下谈一谈个人的感受与体会

一、理论知识的学习

在实训进行的前五天,我们上的是java编程的理论课。负责上课的老师言

语风趣幽默而不失严谨,在老师的引导和启发下,我们巩固了之前在学校所学

的编程知识,并加以深化,澄清之前对编程技术认识的一些错误或模糊的概

念。

我们还在课上以javaGUI编程常用的swing框架和JAVA的容器体系作

为切入点,框架作为这期间除了学习一般的编程的知识技巧。在全面的系统的

认识了框架同时补充学习了泛型技术,以及框架中架构思想的知识。在企业的

实际编码过程中,一个个框架构成了软件的基石,只有掌握了几门框架知识,

才能在实践中高效开发,让自己的产品在市场上立于不败之地。

在理论课的学习过程中,我们也暴露了一些问题,比如在学校上课学习

时,对所学知识只是知其然而不知其所以然,不太愿意深钻,和超前学习一些

知识。二、项目开发实战练习

在结束了理论知识的学习之后,后五天我们在实训基地进行了项目开发的

实战练习。

项目的名称是superVCD,是由海辉曾经所接的一个远程音乐唱片管理软件

项目的精简版。虽然有所精简,但是其内容对我们学习仍具有相当的价值,对

我们了解真实的软件的设计规范,编码规范,文档规范以及客户对软件的需求

1 16

很有参考价值。该内容囊括了GUI设计和编码,容器与泛型的知识,规范文档

编写,测试及日志系统,甚至要求我们实现一个专用的轻量级数据库系统,这

无疑是对我们很好的一次历练机会,同时可以积累丰富的知识。

平时我们很少有机会能够完成一个如此规模的项目,所以在这次项目实战

训练中,我的收获也有很多。

第一,我学会了如何规范的编写代码和文档。文档和代码是团队各成员在

项目开发交流合作中的纽带,风格随意混乱的代码和缺失或语义不明的文档会

让团队中的其他成员不能理解和使用自己写的程序,我在平时编写代码比较随

意,并不注重这一点,经历这次实战演练之后,我一定会严格的遵守编码规

范。

第二,我学会了如何理解和分析客户的需求。软件为客户而生,只有理解

了客户的需求才有写出优秀的软件的可能,在这次实战演练中,老师教会了我

们如何组织团队正确的理解和分析客户的需求,并写出完善的需求分析,并用

于项目开发。

第三,我学会了对按照需求对软件架构进行设计,这点我想是我们许多同

学之前都非常欠缺的,因为我们在学校的时编写代码篇幅短小,功能单一,所

以设计思路通常只留于脑内,非常模糊。而在这次项目开发演练中,老师手把

手的教会我如何从需求中抽象出问题,并将之模块化,然后逐步求精,就如同

在实战的过程中,我对项目开发流程有了切实的体会:学会了如何编写规

范合格的代码和文档;学会了了正确理解分析客户需求并设计项目的方法;体

会到了团队合作精神的重要性,明白了组织团队进行项目开发的具体流程,还

了解到了向客户展示产品以及与客户进行沟通的技巧。

经历过这次实习实训,我们不仅在编程的理论知识上有所巩固和深化,更

重要的是有了实战进行项目开发锻炼动手能力的机会,积累了一笔宝贵的经

验。实训虽已结束,但我们的不断学习的征途才刚刚迈出第一步。今后的路还

很长,还有很多机会去实习提高,我们要以更加积极的姿态去充实自己,学

习,不断地迎接挑战。

软件二班某某某

扩展阅读:

java实训总结

JAVA程序设计

业:班级:姓名:项目名称:开始时间:完成时间:指导教师:实训地

点:评分成绩:综合实训

________计算机软件______

_______06软件()___________________蒋俊涛______________《计事

本》___201某年17_____201某年111___叶老师14#2机房

_______________________

1

一、实训目的

java程序设计是计算机软件的专业核心课程,而且java也是当前软件市

场上较流行和功能很好的一种软件开发语言。经过这个学期的学习后,能不能

把学习的知识综合串联起来,java的实训项目的制作可以有效的检验这一点。

进行综合项目实训可以练习java软件开发的环境和配置,能够把java的面向

对象技术、数据结构、图形界面、线程、网络知识、小应用程序等知识运用到

实践中去,从而更好地理解java的各项知识,达到能够应用自如的地步。进行

3 16

实训的同时还需要查阅大量的文档,可以锻炼同学的自学能力。

二、实训内容

每个同学完成一个小项目,小项目的选题可以从规定题目中,也可以自己

定题目。建议选做的题目如下:

1、画图软件。要求:能够使用菜单功能完成基本图形的绘制(画圆、直线

等),能够画较复杂的图形(如房子),能够有橡皮擦、改变画笔粗细等功能。

2、记事本。仿照windows下的记事本,要求:能够读写文件,文件内容的

复制、剪切和粘贴,能够设置字体的大小和颜色。

3、计算器。仿照windows下的计算器能够完成基本的计算任务,能够完成

平方、开方、求余等一些特殊的运算。

4、万年历。要求:能够查阅农历、阳历和星期。

5、拼图游戏。能够完成拼图游戏,能够设置游戏的级别和时间,记录游戏

用户的成绩。6、扫雷游戏。模仿windows下的扫雷游戏。

7、英汉词典。要求:能够进行英汉单词的互译,进行英语单词的记忆训练

以及一些简单句子的翻译。

8、设计一个俄罗斯方块的游戏。

9、设计一个简单的聊天软件。要求:注册和登陆功能,客户端能够进行通

信。10、动态时钟的制作。要求:仿照手表制作一个时钟。

每个同学也可以自己选择一个题目,要求不能抄袭他人作品,独立完成任

务。

三、课程设计项目内容和简介(在此填入项目名称和进行项目设计的背景

及简单介绍)

四、系统环境(开发、运行的硬件环境和软件环境)

操作系统:windows201;内存:256M

CpuInterCeleron1G;JDK版本:1.5;

五、进度计划及执行情况

日期201-1-7任务安排了解计事本的基本功能,并实现基本的框架功能

实现方法调试结果错误原因分析改正情况日期201-1-8功能实现方法调试结

4 16

果错误原因分析改正情况对文件可以进行正确的读写。刚开始进行文件读写操

作时,用的是字节流,读出来的都是乱码。数据的流使用错了。使用了字符流

解决了问题任务安排实现文件的打开和保存功能文件的打开和保存功能执行情

况对文件进行正确的读写经过查API函数。在JScrollPane中添加文本域控

件。在将JScollPane解决了问题。最后程序能正常运行遇到的问题是:在开始

时,文本域控件JTet没有滚动条进行了整个窗口的布局执行情况基本框架

搭建好了日期201-1-9功能实现方法调试结果错误原因分析改正情况日期

201-1-10功能实现方法调试结果错误原因分析改正情况日期201-1-11

务安排实现字体风格的保存,保证打开后,能保持原来的风格。功能实现方法

调试结果错误原因分析将字体风格保存到另一个文件中,打开文本时,也同时

读取该文件,重新进行字体的设置。遇到过的一次错误是,颜色不能正常显

示,改进过,后来程序可以实现文本打开后字体维持原状。错误的使用颜色的

函数执行情况功能已经实现有待改进可以进行查找和替换还有点功能上的欠缺

查找到到最后一个时。不能返回重新查找任务安排实现查找和替换功能应用的

String常用的几个方法执行情况可以正确进行查找和替换在新建后可以解决

该问题可以对字体的字体,字号,还有字体颜色进行相关设置,新建文件后,

原来的字体颜色还保留着在新建时没有进行颜色的设置任务安排实现字体风格

和小的设置执行情况可以对字体进行正确设置字体名是调用系统的,字号用的

8-99号字,颜色调用java的颜色面板改正情况已经没有问题,可以正常显

示颜色。六、程序清单

.;

.;.;ent;importjava.swing.

;.;

cs;

classMyTetPadetendsFrameimplementsActionListener{

JTetAreatet;JScrollPanejsp;PopupMenupopm;

Datedate=newDate();Stringstr="";Dialogd,About;Choicec1,c2,c3;Buttonbt

5 16

n1,btn2;

StringStr1="宋体",Str2="普通",Str3="15";inttemp=0;

intRed=0,Green=0,Blue=0;

LabellFind=newLabel("查找字符串:");LabellReplace=newLabel("替换字

符串:");TetFieldtFind=newTetField(10);TetFieldtReplace=newTe

tField(10);ButtonbFind=newButton("查找

");ButtonbReplace=newButton("替换");

ButtonbReplaceAll=newButton("替换所有");Dialogdialog;DialogfindD;

publicMyTetPad(Stringstr){

super(str);

tet=newJTetArea();

tet(newFont("宋体",0,15));jsp=newJScrollPane(te

t);add("Center",jsp);

findD=newDialog(this);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

dispose();}});

d=newDialog(this,"字体选择");nds(150,150,320,200);

dowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

ible(false);}}

);

dowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

ible(false);}}

);

c1=newChoice();c2=newChoice();c3=newChoice();GraphicsEnvironment

ge=alGraphicsEnvironment();

6 16

StringfontName[]=ilableFontFamilyNames();for(inti=0;(

c3);

btn1=newButton("确定");btn2=newButton("取消");

out(newGridLayout(5,3));(p1);(btn1);

ionListener(this);ionListener(this);(btn2

);(p2);

About=newDialog(this,"关于");

dowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

ible(false);}}

);

nds(300,300,150,150);

(newLabel("蒋俊涛的计事体1.0版本"));Menumn=newMenu("

");MenuItemmiNewFile=newMenuItem("

MenuShortcut(_N));MenuItemmiOpenFile=newMenuItem("

MenuShortcut(_O));MenuItemmiSaveFile=newMenuItem("

MenuShortcut(_S));MenuItemmiEit=newMenuItem("退

MenuShortcut(_E));(miNewFile);(miOpenFile);mn.

add(miSaveFile);arator();(miEit);

ionListener(this);ionListener(this);

ionListener(this);miE

ionListener(this);Menumn1=newMenu("编辑

");MenuItemmiSelectAll=newMenuItem("

MenuShortcut(_P));MenuItemmiClear=newMenuItem("

MenuShortcut(_S));

7

",new",new",new",new

",new",new

MenuItemmiCopy=newMenuItem("复制

MenuShortcut(_C));MenuItemmiPaste=newMenuItem("粘贴

MenuShortcut(_V));MenuItemmiCut=newMenuItem("剪切

MenuShortcut(_T));MenuItemmiFind=newMenuItem("查找

MenuShortcut(_D));MenuItemmiReplace=newMenuItem("替换

",new",new",new",new",new

MenuShortcut(_R));

MenuItemmiAuto=newMenuItem("自动换行

");ionListener(this);(miSelectAll);(miClea

r);(miCopy);(miPaste);(miCut);arator()

;(miFind);(miReplace);(miAuto);

ionListener(this);ionListener(this);m

ionListener(this);ionListener(this);miCut.a

ddActionListener(this);ionListener(this);

tionListener(this);Menumn2=newMenu("格式

");MenuItemmiFont=newMenuItem("MenuShortcut(_F));

MenuItemmiColor=newMenuItem("MenuShortcut(_K));

MenuItemmiTime=newMenuItem("MenuShortcut(_T));

ionListener(this);ionListener(this);miTime

.addActionListener(this);(miFont);(miColor);(miT

8

字体色选择入时间关于",new",new",new

",ionListener(this);(miAbout);

FileDialogfindDlg=newFileDialog(this);Panelp5=newPanel();Panelp6=newP

anel();Panelp7=newPanel();out(newGridLayout(1,2,30,30));p5.a

dd(lFind);(tFind);(bFind);ionListener(this);b

ionListener(this);(lReplace);(tReplace);

(bReplace);(bReplaceAll);(p7);

ionListener(this);

ionListener(this);ionListener(this);

out(newGridLayout(2,1,10,10));izable(false);f

(p5);(p6);

nds(100,100,260,190);//弹出PopupMenu

popm=newPopupMenu();

MenuItemOpenFile=newMenuItem("打开

");MenuItemSaveFile=newMenuItem("保存

");MenuItemSelectAll=newMenuItem("全选");MenuItemCopy=newMenuItem("

");MenuItemPaste=newMenuItem("粘贴");MenuItemCut=newMenuItem("剪切

");ionListener(this);ionListener(this);

ionListener(this);ionListener(this);Paste.

addActionListener(this);ionListener(this);(OpenFile

);(SaveFile);(SelectAll);(Copy);(Past

(mn3);setMenuBar(Bar);setSize(800,600);setVisible(true);}

classMyMouseEventetendsMouseAdapter{

MyTetPadmyParentFrame;MyMouseEvent(MyTetPadmyf){

myParentFrame=myf;

}

publicvoidmouseReleased(MouseEvente){

if(pTrigger())

((Component)rce(),

(),());}

}

publicvoidactionPerformed(ActionEvente){

StringstrCmd=ionCommand();if(("新建")){

tet(newFont(Str1,,15));te

eground();tet("");}try{

if(("打开")){

openFile();}

if(("保存")){

saveFile();}

}catch(IOEceptione1){}if(("退出")){

System.eit(0);

}

if(("全选")){

teAll();}

if(("清空")){

tet("");}

if(("复制")){

str=teectedTet();}

if(("粘贴")){

10 16

te(str,teetPosition());}

if(("剪切")){

str=teectedTet();

teeRange("",teectionStart(),te

ectionEnd());

}

if(("字体")){

ible(true);}

if(("颜色选择")){

Colorc=alog(this,"颜色选择",);

te

eground(c);Red=();Green=en();Blue=e()

;}

if(rce()==tFind||rce()==bFind){

find();return;}

if(rce()==tReplace||rce()==bReplace){

tetFocus();

Strings1=t();if

(teectedTet().equals(t())){

intstart=teectionStart();teeRange(s1,te

ectionStart(),teectionEnd());

te(start,start+());}else

find();return;}

if(rce()==bReplaceAll){

tetFocus();

Strings1=t();str=tet();

StringstrFind=t();intstart=0;

intend=();

11 16

intlen=();intcount=0;

if(start找到!","替换提示",_NO_OPTION);else

nfirmDialog(findD,"共替换字符"+count+".","

换提示",_NO_OPTION,_);return;}

if(("查找")){ible(true);}

if(("替换")){

ible(true);}

if(("插入时间")){

tet(tet()+date);}

if(("确定")){

Strings1="",s2="",s3="";ints;

s1=ectedItem();Str1=s1;

(s1);s2=ectedItem();if(("粗体

"))s=1;

elseif(("斜体"))s=2;

elseif(("粗体与斜体"))s=3;elses=0;Str2=s2;

s3=ectedItem();

tet(newFont(s1,s,nt(s3)));Str3=s3;

ible(false);}

if(("取消")){

ible(false);}

if(("关于")){

ible(true);}

if(("自动换行")){

teeWrap(true);}}

publicvoidopenFile()throwsIOEception{

Stringstr1="",str2="",string="";intn=0;Colorc;

FileDialogfd=newFileDialog(this,"打开对话框",);

12 16

ible(true);

Filefile=newFile(ectory()+e());

str1=(e()).substring(0,(e()).length()-

4);FilefStyle=newFile(ectory()+str1+".css");FileReaderfileRe

ader=newFileReader(fStyle);

BufferedReaderbr=newBufferedReader(fileReader,4096);while((str2=

adLine())!=null){

string+=str2;

}

();

n(string);

StringTokenizerstr3=newStringTokenizer(string,"/");String[]str4=newSt

ring[6];while(eTokens()){

str4[n]=tToken();n++;}

(str4[0]);Str1=str4[0];Str2=str4[1];Str3=str4[2];

Red=nt(str4[3]);Green=nt(str4[4]);Blue=In

FileReaderfr=newFileReader(file);

BufferedReaderbufr=newBufferedReader(fr,4096);te

t("");Stringtets="",s;

while((s=ne())!=null){

tet(newFont(Str1,temp,nt(Str3)));te

ts+=s+"n";}

tet(tets);();}

publicvoidsaveFile()throwsIOEception{

FileDialogfd=newFileDialog(this,"保存对话框",);

ible(true);

Filefile=newFile(ectory()+e()+".t

t");FilefileStyle=newFile(ectory()+e()+".css");file

NewFile();

FileWriterfw=newFileWriter(file);

BufferedWriterbufw=newBufferedWriter(fw);FileWriterfstyle=newFileWrit

er(fileStyle);BufferedWriterbufw2=newBufferedWriter(fstyle);String

temp="/"+Str1+"/"+Str2+"/"+Str3+"/"+Red+"/"+Green+"/"+Blue+"/";

(temp,0,());();();

Strings=te

t();(s,0,());();();}

publicvoidfind(){

tetFocus();str=tet();

StringstrFind=t();intend=();

intlen=();

intstart=teectionEnd();if(start==end)start=0;

for(;start

七、综合实训总结文章(不少于1000)

14 16

Java实训感想

通过一周的实训,虽然实训的时间不长,但是总体上收获是很大的,我们

java课程学到的只是java和皮毛,一开始我还没有信心完成。后来看到书

到有一个关于计事本的小例子,我仔细看了之后。对计事本有了一个大体的了

解,在初训的实候知道自己应该做一个什么样的计事本了,在实训的过程中也

遇到了不少困难,通过查API文档和看书,解决了问题,在写到字符的查找的

替换时后,用到了上课时学到的知识,对字体的风格的保存里面的颜色分离和

还原方法,是通过查API文档获得的,现在我所写的计事本只实现在一些基本功

能。简单的复制粘贴,字体风格的设置,还有就是查找和替换功能以及一些字

体风格的保存.对文件的操作基本都用到了。

在实现记事本的功能过程中,也不是很顺利,基本的文件读写和保存文档

的复制、粘贴、删除等功能还比较容易实现,但如何改变字体、字体颜色和背

景颜色,就比较麻烦了,要实现字体颜色和背景颜色,首先要调用系统的调色

板,再进行设置。但如何调用系统调色板?我是通过查阅帮助文档来找到其调

用方法的。像自动换行、设置字体等都是通过方法来调用,给相关事件加上监

听,在进行响应事件。整个程序中方法才是最关键的,也是最困难的。所以像

查找、替换、转到几个功能我都不知道用什么方法,也由于时间有限,没有完

成其功能。总体的感觉是对java有了一个全新的认识,现在感觉用java做小

的图形用户程序有些缺陷,但是在其的应用方面。尤其是有网络方面的应用,

在整个实训我也尝试过做一个小的画图软件。但是由于时间关系还有一个是自

身的知识的欠缺,最终这个事情被搁浅下来了。最后还是进行计事本的编写。

由于在做画图软件时花了不了时间,所以现在的计事本的功能不是很全,如果

有更多的时间,我会把这个记事体再完善一下,再把画图软件也做出来。实训

的时间不长,但是我会在课外把它们的功能完善。然后再学习一下java和网络

的编程,体验java的前沿技术。

在学习的过程中也体会到,遇到问题也要请教。不然的话自己一个人去做

的话会花很多的时间,我在做这个记事本的时间,其中也问到过许多问题,通

过同学的帮助下解决了,提高了程序的开发进程。其他的同学有问题的话我也

15 16

是给他们尽量解决。我认为学习知识的过程当中就应该是相互学习相互进步

的。Java是面在的主流技术我会努力将它学好,现在我缺乏的是坚持不懈的精

神,周贤军给了我很大的影响,我会向他学习,虽然学习java的路还很找,但

我会继续走下去。

16 16