题目:java计算器应用程序
简介:通过本程序可以实现计算器的基本功能。程序是Frame类的子类。使用GridLayout的布局方式对组件进行布局,用Panel类的容器存放按扭、文本框组件,程序中也用到大量的else-----if语句。
2、 设计说明:
一实验目的
通过实训能够结合实例进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。
二实验内容
编写一个实现计算器应用程序
三 程序介绍及其功能的实现
程序需要导入import java.awt.*、 import java.awt.event.*、 import java.lang.*、 import javax.swing.*包。①程序的基本框架是:首先定义一个Frame类的子类,之后声明三个面板的布局,即定义了GridLayout类的三个对象gl1、gl2、gl3。之后是定义了Panel类的容器的四个对象p0、p1、p2、p3,其中p0用来存放显示屏文本框组件,p1采用gl1布局,用来存放删除和归零按钮,p3采用gl3布局,用来存放数字按钮和运算符按钮,p2采用gl2布局,用来存放其它功能按钮键按钮。②具体的实现过程是:⑴、程序定义了JTextField类的对象tf1和TextField类的对象tf2及26个button类的按钮,在Counter类的构造方法中分别对各个对象进行了初始化,对面板进行了合适的布局,各个按钮也相应的添加到相应的容器中,在实例化所有按钮、设置其前景色的同时并注册监听器。
⑵、对各个组件进行相应的设计之后,即程序运行之后的可视化界面完成之后开始实现程序内部的事件过程,即接口的实现。定义了一个名为 Bt的类来实现接口,程序在actionPerformed( )方法中对各个按钮和文本框组件的具体方法进行实现,程序中不断的用else—if语句对按钮 *** 作事件的实现,并对事件的异常进行处理。
3.程序清单
import java.awt.*
import java.awt.event.*
import java.lang.*
import javax.swing.*
public class Counter extends Frame
{
//声明三个面板的布局
GridLayout gl1,gl2,gl3
Panel p0,p1,p2,p3
JTextField tf1
TextField tf2
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26
StringBuffer str//显示屏所显示的字符串
double x,y//x和y都是运算数
int z//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m//记忆的数字
public Counter()
{
gl1=new GridLayout(1,4,10,0)//实例化三个面板的布局
gl2=new GridLayout(4,1,0,15)
gl3=new GridLayout(4,5,10,15)
tf1=new JTextField(27)//显示屏
tf1.setHorizontalAlignment(JTextField.RIGHT)
tf1.setEnabled(false)
tf1.setText("0")
tf2=new TextField(10)//显示记忆的索引值
tf2.setEditable(false)
//实例化所有按钮、设置其前景色并注册监听器
b0=new Button("Backspace")
b0.setForeground(Color.red)
b0.addActionListener(new Bt())
b1=new Button("CE")
b1.setForeground(Color.red)
b1.addActionListener(new Bt())
b2=new Button("C")
b2.setForeground(Color.red)
b2.addActionListener(new Bt())
b3=new Button("MC")
b3.setForeground(Color.red)
b3.addActionListener(new Bt())
b4=new Button("MR")
b4.setForeground(Color.red)
b4.addActionListener(new Bt())
b5=new Button("MS")
b5.setForeground(Color.red)
b5.addActionListener(new Bt())
b6=new Button("M+")
b6.setForeground(Color.red)
b6.addActionListener(new Bt())
b7=new Button("7")
b7.setForeground(Color.blue)
b7.addActionListener(new Bt())
b8=new Button("8")
b8.setForeground(Color.blue)
b8.addActionListener(new Bt())
b9=new Button("9")
b9.setForeground(Color.blue)
b9.addActionListener(new Bt())
b10=new Button("/")
b10.setForeground(Color.red)
b10.addActionListener(new Bt())
b11=new Button("sqrt")
b11.setForeground(Color.blue)
b11.addActionListener(new Bt())
b12=new Button("4")
b12.setForeground(Color.blue)
b12.addActionListener(new Bt())
b13=new Button("5")
b13.setForeground(Color.blue)
b13.addActionListener(new Bt())
b14=new Button("6")
b14.setForeground(Color.blue)
b14.addActionListener(new Bt())
b15=new Button("*")
b15.setForeground(Color.red)
b15.addActionListener(new Bt())
b16=new Button("%")
b16.setForeground(Color.blue)
b16.addActionListener(new Bt())
b17=new Button("1")
b17.setForeground(Color.blue)
b17.addActionListener(new Bt())
b18=new Button("2")
b18.setForeground(Color.blue)
b18.addActionListener(new Bt())
b19=new Button("3")
b19.setForeground(Color.blue)
b19.addActionListener(new Bt())
b20=new Button("-")
b20.setForeground(Color.red)
b20.addActionListener(new Bt())
b21=new Button("1/X")
b21.setForeground(Color.blue)
b21.addActionListener(new Bt())
b22=new Button("0")
b22.setForeground(Color.blue)
b22.addActionListener(new Bt())
b23=new Button("+/-")
b23.setForeground(Color.blue)
b23.addActionListener(new Bt())
b24=new Button(".")
b24.setForeground(Color.blue)
b24.addActionListener(new Bt())
b25=new Button("+")
b25.setForeground(Color.red)
b25.addActionListener(new Bt())
b26=new Button("=")
b26.setForeground(Color.red)
b26.addActionListener(new Bt())
//实例化四个面板
p0=new Panel()
p1=new Panel()
p2=new Panel()
p3=new Panel()
//创建一个空字符串缓冲区
str=new StringBuffer()
//添加面板p0中的组件和设置其在框架中的位置和大小
p0.add(tf1)
p0.setBounds(10,25,300,40)
//添加面板p1中的组件和设置其在框架中的位置和大小
p1.setLayout(gl1)
p1.add(tf2)
p1.add(b0)
p1.add(b1)
p1.add(b2)
p1.setBounds(10,65,300,25)
//添加面板p2中的组件并设置其的框架中的位置和大小
p2.setLayout(gl2)
p2.add(b3)
p2.add(b4)
p2.add(b5)
p2.add(b6)
p2.setBounds(10,110,40,150)
//添加面板p3中的组件并设置其在框架中的位置和大小
p3.setLayout(gl3)//设置p3的布局
p3.add(b7)
p3.add(b8)
p3.add(b9)
p3.add(b10)
p3.add(b11)
p3.add(b12)
p3.add(b13)
p3.add(b14)
p3.add(b15)
p3.add(b16)
p3.add(b17)
p3.add(b18)
p3.add(b19)
p3.add(b20)
p3.add(b21)
p3.add(b22)
p3.add(b23)
p3.add(b24)
p3.add(b25)
p3.add(b26)
p3.setBounds(60,110,250,150)
//设置框架中的布局为空布局并添加4个面板
setLayout(null)
add(p0)
add(p1)
add(p2)
add(p3)
setResizable(false)//禁止调整框架的大小
//匿名类关闭窗口
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e1)
{
System.exit(0)
}
})
setBackground(Color.lightGray)
setBounds(100,100,320,280)
setVisible(true)
}
//构造监听器
class Bt implements ActionListener
{
public void actionPerformed(ActionEvent e2)
{
try{
if(e2.getSource()==b1)//选择"CE"清零
{
tf1.setText("0")//把显示屏清零
str.setLength(0)//清空字符串缓冲区以准备接收新的输入运算数
}
else if(e2.getSource()==b2)//选择"C"清零
{
tf1.setText("0")//把显示屏清零
str.setLength(0)
}
else if(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数
{
x=Double.parseDouble(tf1.getText().trim())
tf1.setText(""+(-x))
}
else if(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim())
str.setLength(0)//清空缓冲区以便接收新的另一个运算数
y=0d
z=0
}
else if(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim())
str.setLength(0)
y=0d
z=1
}
else if(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim())
str.setLength(0)
y=0d
z=2
}
else if(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值
{
x=Double.parseDouble(tf1.getText().trim())
str.setLength(0)
y=0d
z=3
}
else if(e2.getSource()==b26)//单击等号按钮输出计算结果
{
str.setLength(0)
switch(z)
{
case 0 : tf1.setText(""+(x+y))break
case 1 : tf1.setText(""+(x-y))break
case 2 : tf1.setText(""+(x*y))break
case 3 : tf1.setText(""+(x/y))break
}
}
else if(e2.getSource()==b24)//单击"."按钮输入小数
{
if(tf1.getText().trim().indexOf('.')!=-1)//判断字符串中是否已经包含了小数点
{
}
else//如果没数点有小
{
if(tf1.getText().trim().equals("0"))//如果初时显示为0
{
str.setLength(0)
tf1.setText((str.append("0"+e2.getActionCommand())).toString())
}
else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何 *** 作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString())
}
}
y=0d
}
else if(e2.getSource()==b11)//求平方根
{
x=Double.parseDouble(tf1.getText().trim())
tf1.setText("数字格式异常")
if(x<0)
tf1.setText("负数没有平方根")
else
tf1.setText(""+Math.sqrt(x))
str.setLength(0)
y=0d
}
else if(e2.getSource()==b16)//单击了"%"按钮
{
x=Double.parseDouble(tf1.getText().trim())
tf1.setText(""+(0.01*x))
str.setLength(0)
y=0d
}
else if(e2.getSource()==b21)//单击了"1/X"按钮
{
x=Double.parseDouble(tf1.getText().trim())
if(x==0)
{
tf1.setText("除数不能为零")
}
else
{
tf1.setText(""+(1/x))
}
str.setLength(0)
y=0d
}
else if(e2.getSource()==b3)//MC为清除内存
{
m=0d
tf2.setText("")
str.setLength(0)
}
else if(e2.getSource()==b4)//MR为重新调用存储的数据
{
if(tf2.getText().trim()!="")//有记忆数字
{
tf1.setText(""+m)
}
}
else if(e2.getSource()==b5)//MS为存储显示的数据
{
m=Double.parseDouble(tf1.getText().trim())
tf2.setText("M")
tf1.setText("0")
str.setLength(0)
}
else if(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR
{
m=m+Double.parseDouble(tf1.getText().trim())
}
else//选择的是其他的按钮
{
if(e2.getSource()==b22)//如果选择的是"0"这个数字键
{
if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做 *** 作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString())
y=Double.parseDouble(tf1.getText().trim())
}
}
else if(e2.getSource()==b0)//选择的是“BackSpace”按钮
{
if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString())//可能抛出字符串越界异常
}
else
{
tf1.setText("0")
str.setLength(0)
}
}
y=Double.parseDouble(tf1.getText().trim())
}
else//其他的数字键
{
tf1.setText(str.append(e2.getActionCommand()).toString())
y=Double.parseDouble(tf1.getText().trim())
}
}
}
catch(NumberFormatException e){
tf1.setText("数字格式异常")
}
catch(StringIndexOutOfBoundsException e){
tf1.setText("字符串索引越界")
}
}
}
public static void main(String args[])
{
new Counter()
}
}
4、调试结果
5、实习体会
时间不停流逝,java实训工作即将落下帷幕,回头看我们的实训经历,我获取了很多知识和为人处世的道理,为了帮助我们发现工作中存在的问题,我们不妨来写java实训心得体会,那么大家的java实训心得体会要怎么写呢?下面是我为大家整理的“计算机专业学生Java实训心得体会”,供您参考,希望能够帮助到大家。
计算机专业学生Java实训心得体会 篇1在本学期我们进行了为期三周的java实训。回首本学期的java学习,虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对java有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。除此以外,我知道了什么叫团队,怎样和团队分工合作同时我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这也是第一次让我亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也是受益菲浅的,在短短的三周中相信这些宝贵的经验会成为我今后成功的重要的基石这对于我的学业,乃至我以后人生的影响无疑是极其深远的。
这次实训虽然是我们的第一次,心得体会不过同学们表现不错,由此看来,我们在进入大学的这几个月里学到了不少的专业知识,只是自己感觉不到而已。对于所学专业,我们不能过于自卑和担忧,否则会妨碍自己学习。实训是学习java的重要环节,有利于我们巩固专业知识、掌握工作技能,提高就业筹码。
我把本次为期三周的实训看作是“理论与实践相结合的桥梁”。通过这周的实训和学习,我知道了此次实训的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践 *** 作。正所谓“百闻不如一见”,经过这次自身的切身实践,我才深切地理会到了“走出课堂,投身实践”的必要性。平时,我们只能在课堂上与老师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然!限制了我们网络知识水平的提高。但是课本上所学到的理论知识是为我们的实际 *** 作指明了方向、提供相应的方法,真正的职业技巧是要我们从以后的实际工作中慢慢汲取的。而针对实际 *** 作中遇到的一些特殊的问题,我们不能拘泥于课本,不可纯粹地“以本为本”。
在这次实训中我得到了许多收获,我第一次体会到java工程师的工作是什么样子的,也发现了很多不曾注意到的细节,在实训的演示过程中,我对作为一名java工程师注意的事项应该从小事做起、从基本做起。把职业能力训练与职业素质有机的结合起来。相信这对我接下来学习专业知识会起到很有效的帮助,在接下来的几个月里,我会以作为一名职业人的身份在这几个方面要求自己,严格自我,向java工程师靠近。
而经过这次实训,让我明白如果是一个完整项目的开发,必须由团队来分工合作,否则,即费力又费时还做不好这个项目。因此不管在工作中还是在生活中要和老师、同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。
实训结束了感觉虽然辛苦,但很充实。我想这就是java工程师的工作。我也体会到java工程师成功地完成一个任务的那种兴奋,那种小有成就的感觉是只有置身其中的人才能体会的。
总之,这次实训为我提供了与众不同的学习方法和学习体会,个人简历从书本中面对现实,为我将来走上社会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识,提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有路”。我相信在不久的未来,会有属于我自己的一片天空。
我希望计算机专业的同学在以后的学习或工作中以务实的态度给提供更多的机会锻炼自己,为大家的成才与就业奠定坚实的基础并希望同学们要做好角色定位,将自己所学的知识,学熟、学精。
多学习和收集与项目有关的资料,来提高自己的业务水平,同时多请教经验丰富的老师,使他们好的经验能够对自己起到借鉴作用,在他们的帮助下,能够很快的培养自己的管理技能及节省时间,避免做无用功,也可以让自己了解很多项目管理上的捷径,从而减少自己会遇到的挫折和错误。
20xx—20xx学年度第一学期生物教研组工作计划
指导思想
以新一轮课程改革为抓手,更新教育理念,积极推进教学改革。努力实现教学创新,改革教学和学习方式,提高课堂教学效益,促进学校的内涵性发展。同时,以新课程理念为指导,在全面实施新课程过程中,加大教研、教改力度,深化教学方法和学习方式的研究。正确处理改革与发展、创新与质量的关系,积极探索符合新课程理念的生物教学自如化教学方法和自主化学习方式。
主要工作
一、教研组建设方面:
1、深入学习课改理论,积极实施课改实践。
2、以七年级新教材为“切入点”,强化理论学习和教学实践。
3、充分发挥教研组的作用,把先进理念学习和教学实践有机的结合起来,做到以学促研,以研促教,真正实现教学质量的全面提升。
4、强化教学过程管理,转变学生的学习方式,提高课堂效益,规范教学常规管理,抓好“五关”。
(1)备课关。要求教龄五年以下的教师备详案,提倡其他教师备详案。要求教师的教案能体现课改理念。
(2)上课关。
(3)作业关。首先要控制学生作业的量,本着切实减轻学生负担的精神,要在作业批改上狠下工夫。
(4)考试关。以确保给学生一个公正、公平的评价环境。
(5)质量关。
5、加强教研组凝聚力,培养组内老师的团结合作精神,做好新教师带教工作。
二、常规教学方面:
1、加强教研组建设。兴教研之风,树教研氛围。特别要把起始年级新教材的教研活动作为工作的重点。
2、教研组要加强集体备课,共同分析教材,研究教法,探讨疑难问题,由备课组长牵头每周集体备课一次,定时间定内容,对下一阶段教学做到有的放矢,把握重点突破难点.
3、教研组活动要有计划、有措施、有内容,在实效上下工夫,要认真落实好组内的公开课教学。
4、积极开展听评课活动,每位教师听课不少于20节,青年教师不少于40节,兴“听课,评课”之风,大力提倡组内,校内听随堂课。
5、进一步制作、完善教研组主页,加强与兄弟学校的交流。
我们将继续本着团结一致,勤沟通,勤研究,重探索,重实效的原则,在总结上一学年经验教训的前提下,出色地完成各项任务。
计算机专业学生Java实训心得体会 篇2时间犹如白驹过隙,学习Accp 5.0课程已经一个月有余了。在这一个多月的时间里,我学习了计算机基础、进入软件编程世界和使用Java语言理解程序逻辑三门课程。其中最重点的就是使用Java语言理解程序逻辑这门课程,这可以说是我第一门正式接触的编程语言,虽然以前学过CC++,但这仅限于浅尝辄止而已,根本就没有去深层次的了解过,连一个简单的程序背着书都不会编写。Java这门课程是我进入软件编程世界的第一道坎,因此我必须要发扬笨鸟先飞,持之以恒的精神来学习它,争取把第一只拦路虎给消灭了。
为了学好Java语言,我自认为还是比较刻苦的,基本上每天九点之前就来到了中心机房上机,把书上的代码反复地练习,书上的代码看似简单,但是有时候照着书敲上去一编译运行却不是这里出错就是那里有问题,高的焦头烂额的更令人郁闷的是,有时候编译没有问题,但是运行的时候却报错了,这种情况十有八九是因为一些情况没有考虑清楚:有时候我们定义的是整型变量,输入却输入了非整型变量有时候是因为数组的下标越界有时候是什么空指针异常……这些情况使得初学编程的我痛不欲生,有好几次一冲动差点把机器给砸了,但是一想到把电脑砸坏了还得赔偿就忍住了,所以大家有时候遇到问题不能解决的时候千万不要冲动。
计算机专业学生Java实训心得体会 篇3经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。
在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。
本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。
通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练 *** 作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。
有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓当局者迷,旁观者清,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。
俗话说:要想为事业多添一把火,自己就得多添一捆材。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向。
这次实训,我们更多学到的是不懂就要问和自己应该尽自己的全力去尝试,哪怕失败,也要尽自己的全力,和身边的同学一起探讨而不是抄袭,团队合作和发挥团队意识,最后在自己的努力下终于运行成功,这种感觉美不可言,心情愉悦至极,有很强的成就感。
最后,我自己感觉这次实训的收获还是很大的,我相信在不久的将来我们会有自己的一片天空。
计算机专业学生Java实训心得体会 篇4在甲骨文盈佳科技学习JAVA软件开发也有一段时间了,现在java面向对象的学习结束了,我对java有了初步的认识了。面向对象是个很严肃的问题,就向上下级关系一样,下级在有的方面就得遵守上级的指令做事,这样就便于管理,更是提高了生产的效率。
面向对象和面向过程最大的区别在与,面向对象大大降低了程序的难度。开始是面向过程的编程设计,常常是一个文件就包含了所有的功能,看起来实现还是蛮简单,很是方便,但是随着后面的程序的运用越来越广,这就大大的加大了程序的难度,提高的编程成本。不过在有的时候,对小的问题还是可以使用面向过程来编程的。
面向对象是按照哲学层面上设计的。它按照事物的本来面目的一些属性和方法,所以在后面规模越来越大的时候,更合理。面向对象的三大主要特征:继承、封装、多态。继承就是子类对父类的扩展和延续。封装就是类内部对类外部的屏蔽。多态就是对借口的使用,借口的使用就是更好的实现了程序的设计。
因为我现在只是学到了面向对象这块的内容,现在结束了,写了一个简单的个人体会。
计算机专业学生Java实训心得体会 篇5在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了JAVA暑期实训,现在已经结束了。
回首上学期的java学习,重点还是在学习概念等一些常识性的东西,Application应用程序和Applet小程序,它的开发工具、数据类型、变量、接口、输入输出流等。学会分析异常,抛出异常,后期主要是小程序运用,Gui界面设计和事件。我觉得这两种程序结构有很大的不同,不管是体系结构还是运行方式,都有很大的区别,而我主要偏向于小程序的学习。因为我感觉它实用性比较大,可以做出很多不错的游戏、运用程序等,而且它比较灵活。当然学知识不能仅凭自己的爱好和一时兴趣,要一步一个脚印、认认真真、踏踏实实,理论与实践相结合。在掌握课本实例和内容之后,要有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象编程语言。不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性,而且它比较的经典和强悍。
这次实训,面对老师布置的任务,一开始有些慌张和无措。不过,事后我首先想到这和课本上的某些知识具有结合点,回忆和分析了老师教过的算法和具体实施方法,并综合考虑了其他的方面。在编写时,一个小小的符号、一个常量变量的设定,这都无不考量着我的细心和严谨。所以学习JAVA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。
在此次实训中,我意识到一个好的编程人员要善于沟通和团结拼搏。实训结束后,我觉得要学好一门计算机语言必须牢记以下几点:
计算机专业学生Java实训心得体会 篇61、项目一定要全新的项目,不能是以前做过的。
2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统。
3、在开发时要和企业的开发保持一致。
4、在做项目的时候不应该有参考代码。
长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。
一、项目的地位
因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。
他们欠缺的主要是两点:
(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。
(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。
解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。
二、如何选择项目
项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据java的研究和实践经验总结,选择项目的时候要注意以下方面:
1、项目不能太大,也不能太小
这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。
2、项目不能脱离实际应用系统
项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。
3、项目应能覆盖所学的主要知识点
学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。
4、最后综合项目一定要是实际应用系统
学员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。
三、java怎么选择项目
这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。
我们可以采用倒推的方式来分析:
(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目
(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务。
(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目。
(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。
好了,把上面的分析用正向描述就是:
日常教学和练习中学习和掌握的知识——演示项目——分阶段项目——综合项目——胜任企业实际开发需要。
附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。
上面阐述了java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:
1、真项目
项目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的,应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。
java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。
2、真流程
开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。
java的主力老师都是实战出身,在java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。
3、真环境
开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。
java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的teamleader,大家分工合作,共同完成项目。
4、真开发
这是java最与众不同的一点,java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以java非常强调:项目一定要让学生动手写出来。
java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:
(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。
(2):java选用的项目基本都是企业最新的项目,很多都是java的学生和企业在同期开发,所以是不配发源代码的。这样也断绝了学生的依赖思想,认认真真去开发。可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!
事实上,java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级erp都有开源的,而且很多都是大师级的作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这么做,效果也就不好了。
当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习java开发的学生,所以java根据多年的培训经验,友情提示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲的,就算讲过看过,但是自己做不出来,那都不算会。
(3):java在课堂上除了带领学生去分析设计外,还会分析一些重点、难点功能的实现机制和原理,然后指导学生去实现。
5、真技术
java在每个项目中,特别会抽取有难度的部分让学生们在老师指导下实现,专门啃硬骨头,那才能真正锻炼学生的开发能力。
比如:在做oa类的项目时,会重点去做工作流、公文收发、在线office控制等;在做crm类项目时:会重点去做销售自动化和市场块的业务;在做人力资源类项目的时候会重点去做人力跟踪和人力评测模型等。
java在每个项目中,都会使用目前企业最新最流行的技术,按照最新的难度去要求,从而让学员能更符合企业的需要。
6、真经验
java的项目都是企业最新的真实项目,经过开发训练,学员能够积累足够的真实的开发经验,以胜任企业的工作需要。在进行项目分析时,还会全面讲解项目所要求的业务,让学员从业务和技术上都能充分积累。
7、真实力
作为就业培训,项目的好坏对培训质量的影响非常大,常常是决定性的作用。这篇文章是关于在学习java软件开发时练习项目的总结,简单总结为以下几点:事实上,不采用有源代码的教学性项目对java的要求非常高。试想一下,如果项目分发下去,老师带着分析后,学生都不会做会出现什么样的后果?这对java的教学质量提出了极高的要求,如果教学质量达不到让学员独立开发的水平,对依靠质量取胜和口碑发展的java将是毁灭性的。
另外一个,由于是全真的项目,在开发的过程中,肯定会有很多的问题出现,这些都要老师去解决,由于不像教学项目那样预先做好,又需要老师能很快地解决各个问题,这对老师的真实开发水平有极高的要求,这可是需要真功夫的。
总结:
总之,java通过真实的项目,真实的开发环境和开发流程,指导学员去真正开发,让学员得到真正的锻炼,收获真正的开发能力。
有了真正的开发能力——能够胜任企业的实际需要——高薪好工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)