版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨理工大学管理学院信息系实习汇报班级信息13-4姓名赵军学号7月15日
一、实习目的及意义深入理解java开发的有关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及对的的运用措施,和有用的有关技术,提高自己的工作效率。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团体协作意识,理解软件开发的思索角度和重要流程。为毕业之后可以更快地进入工作状态并且可以更好的工作,打好一定的基础。二、实习任务实习期间,通过学习一种简朴的Java程序——飞机大战,理解和掌握Java编程的基础,如构造器、API接口等。最终可以独立完毕一种小程序。三、实习语言Java的特点Java语言的语法与C语言和C++语言很靠近,使得大多数程序员很轻易学习和使用Java。另首先,Java丢弃了C++中很少使用的、很难理解的、令人困惑的那些特性,如操作符重载、多继承、自动的强制类型转换。尤其地,Java语言不使用指针,并提供了自动的废料搜集,使得程序员不必为内存管理而担忧。2、Java语言是一种面向对象的Java语言提供类、接口和继承等原语,为了简朴起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一种纯的面向对象程序设计语言。3、Java语言是分布式的Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一种网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程措施激活)机制也是开发分布式应用的重要手段。4、Java语言是强健的Java的强类型机制、异常处理、废料的自动搜集等是Java程序强健性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具强健性。5、Java语言是安全的Java一般被用在网络环境中,为此,Java提供了一种安全机制以防恶意代码的袭击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一种安全防备机制(类ClassLoader),如分派不一样的名字空间以防替代当地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。6、Java语言是体系构造中立的Java程序(后缀为java的文献)在Java平台上被编译为体系构造中立的字节码格式(后缀为class的文献),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、Java语言是可移植的这种可移植性来源于体系构造中立性,此外,Java还严格规定了各个基本数据类型的长度。Java系统自身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。8、Java是高性能的与那些解释型的高级脚本语言相比,Java确实是高性能的。实际上,Java的运行速度伴随JIT(Just-In-Time)编译器技术的发展越来越靠近于C++。9、Java语言是多线程的在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创立。一般有两种措施来创立线程:其一,使用型构为Thread(Runnable)的构造子将一种实现了Runnable接口的对象包装成一种线程,其二,从Thread类派生出子类并重写run措施,使用该子类创立的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一种线程均有它的run措施,而run措施中包括了线程所要运行的代码。线程的活动由一组措施来控制。Java语言支持多种线程的同步执行,并提供多线程之间的同步机制(关键字为synchronized)。10、Java语言是动态的Java语言的设计目的之一是适应于动态变化的环境。Java程序需要的类可以动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有助于软件的升级。此外,Java中的类有一种运行时刻的表达,能进行运行时刻的类型检查。四、实习时间7月12日——7月15日五、实习地点哈尔滨达内科技有限企业。六、实习企业简介达内全称达内时代科技集团有限企业,是中国高端IT培训的领先品牌,致力于培养面向电信和金融领域的Java、C++、C#/.Net、软件测试、嵌入式、PHP、android等方面的中高端软件人才。由于达内优秀的教学效果和行业领先的经营模式赢得了社会各界的广泛赞誉和好评,荣获了各界权威机构的颁奖:达内成为业界唯一的一家、、、持续4年入选德勤评比的“中国高科技高成长50强企业”、“亚太地区高科技高成长500强企业”,获得首届中国留学人才归国创业“腾飞”奖、中关村管理委员会指定的“软件人才培养示范基地”、被《计算机世界》评比的“就业服务杰出奉献奖”、被《中国计算机报》评比的“最具影响力培训机构奖”、被搜狐评为“中国十大教育集团”、被腾讯评为“中国大学生心目中最具影响力的IT品牌”。实习成果部分代码展示:Games:importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjavax.swing.JFrame;publicclassGamesextendsJFrame{ Worldw=newWorld(); publicGames(){ this.setSize(320,480+30); this.setTitle("飞机大战"); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); this.add(w); this.setVisible(true); Threadt=newThread(w); t.start(); this.addKeyListener(newKeyAdapter(){ @Override publicvoidkeyPressed(KeyEvente){ switch(e.getKeyCode()){ caseKeyEvent.VK_LEFT: w.plane.left=true; break; caseKeyEvent.VK_UP: w.plane.up=true; break; caseKeyEvent.VK_RIGHT: w.plane.right=true; break; caseKeyEvent.VK_DOWN: w.plane.down=true; break; } } @Override publicvoidkeyReleased(KeyEvente){ switch(e.getKeyCode()){ caseKeyEvent.VK_LEFT: w.plane.left=false; break; caseKeyEvent.VK_UP: w.plane.up=false; break; caseKeyEvent.VK_RIGHT: w.plane.right=false; break; caseKeyEvent.VK_DOWN: w.plane.down=false; break; } } }); } publicstaticvoidmain(String[]args){ Gamesgames=newGames(); }}World:importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.util.Random;importjava.util.Vector;importjavax.imageio.ImageIO;importjavax.swing.JPanel;publicclassWorldextendsJPanelimplementsRunnable{ Mapmap=newMap();//创立地图 Planeplane=newPlane(); Vector<Bullet>bullets=newVector<Bullet>(); intBulletCount=0; intBulletStep=8; Vector<Npc>npcs=newVector<Npc>(); intnpcCount=0; intnpcStep=50; Vector<NpcBullet>nbs=newVector<NpcBullet>(); //随机数 Randomr=newRandom(); publicstaticintScore; publicstaticfinalintSTART=0; publicstaticfinalintRUNNING=1; publicstaticfinalintGAME_OVER=2; publicintstatus; BufferedImagestart; BufferedImagegame_over; publicWorld(){ try{ start=ImageIO.read(getClass().getResource("imgs/start.png")); game_over=ImageIO.read(getClass().getResource("imgs/gameover.png")); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } //初始状态 status=RUNNING; } //绘制 @Override publicvoidpaint(Graphicsg){ //绘制地图 map.paint(g); g.setColor(Color.red); g.drawRect(200,12,100,15); intvalue=100-plane.hitcount*10; if(value<0){ value=0; } g.fillRect(200,12,value,15); //积分 g.setColor(Color.white); Fontf=newFont(Font.SANS_SERIF,Font.ITALIC|Font.BOLD,14); g.setFont(f); g.drawString(Score*100+"分",10,30); switch(status){ caseSTART: //绘制飞机 plane.paint(g); g.drawImage(start,160-start.getWidth()/2,200,this); break; caseRUNNING: //绘制飞机 plane.paint(g); for(inti=0;i<bullets.size();i++){ bullets.get(i).paint(g); } for(inti=0;i<npcs.size();i++){ npcs.get(i).paint(g); } for(inti=0;i<nbs.size();i++){ nbs.get(i).paint(g); } break; caseGAME_OVER: g.drawImage(game_over,160-game_over.getWidth()/2,200,this); break; default: break; } } //多线程 @Override publicvoidrun(){ while(true){ map.move(); switch(status){ caseSTART: break; caseRUNNING: plane.move(); addBullet(); for(inti=0;i<bullets.size();i++){ bullets.get(i).move(bullets,npcs); } addNpc(); for(inti=0;i<npcs.size();i++){ npcs.get(i).move(npcs,nbs,plane); } for(inti=0;i<nbs.size();i++){ nbs.get(i).move(plane,nbs); } try{ Thread.sleep(1000/60); }catch(InterruptedExceptione){ e.printStackTrace(); } repaint(); break; caseGAME_OVER: break; default: break; } } } voidaddBullet(){ BulletCount++; if(BulletCount%BulletStep==0){ if(plane.level==1){ Bulletb=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; bullets.add(b); BulletCount=0; } if(plane.level==2){ Bulletb=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2+10; b.y=plane.y-b.y; bullets.add(b); BulletCount=0; } if(plane.level==3){ Bulletb=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; b.xstep-=1; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; bullets.add(b); b.xstep+=1; BulletCount=0; } if(plane.level==4){ Bulletb=newBullet(); b.x=plane.x+plane.w/2-b.w/2-7; b.y=plane.y-b.y; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2+7; b.y=plane.y-b.y; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2-10; b.y=plane.y-b.y; b.xstep-=1; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2+10; b.y=plane.y-b.y; b.xstep+=1; bullets.add(b); BulletCount=0; } if(plane.level==5){ Bulletb=newBullet(); b.x=plane.x+plane.w/2-b.w/2; b.y=plane.y-b.y; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2-5; b.y=plane.y-b.y; b.xstep-=1; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2+5; b.y=plane.y-b.y; b.xstep+=1; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2-10; b.y=plane.y-b.y; b.xstep-=2; bullets.add(b); b=newBullet(); b.x=plane.x+plane.w/2-b.w/2+10; b.y=plane.y-b.y; b.xstep+=2; bullets.add(b); BulletCount=0; } } } voidaddNpc(){ npcCount++; if(npcCount%npcStep==0){ inttype=r.nextInt(8); intdirection=r.nextInt(3); for(inti=0;i<4;i++){ Npcn=newNpc(type); switch(direction){ case0: n.x=-n.w-(50*i); n.y=-n.h-(50*i); n.xstep=3; n.ystep=3; break; case1: n.x=320/2-(150+n.w)/2+(50*i); n.y=-n.h; n.ystep=3; break; case2: n.x=320+(50*i); n.y=-n.h-(50*i); n.xstep=-3; n.ystep=3; break; default: break; } npcs.add(n); } npcCount=0; } }}Map:importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassMap{ intx; inty; BufferedImageimg; // 构造器 publicMap(){ x=0; y=0; try{ img=ImageIO.read(getClass().getResource("imgs/bg.gif")); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }// paint() publicvoidpaint(Graphicsg){ g.drawImage(img,x,y-img.getHeight(),null); g.drawImage(img,x,y,null); }// move() publicvoidmove(){ y++; if(y>img.getHeight()) y=0; } }NPC:importjava.awt.Graphics;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.util.Random;importjava.util.Vector;importjavax.imageio.ImageIO;publicclassNpc{ intx; inty; intw; inth; intxstep=0; intystep=5; BufferedImageimg; BufferedImage[]imgs=newBufferedImage[4]; intindex=0; booleanhit=false;//击中 booleandestroy=false;//销毁 inthitCount=0; Randomr=newRandom(); intrandomNum; inttime; publicNpc(inttype){ try{ img=ImageIO.read(getClass().getResource("imgs/"+type+".png")); for(inti=0;i<imgs.length;i++){ imgs[i]=ImageIO.read(getClass().getResource("imgs/bomb_"+i+".png")); } }catch(IOExceptione){ e.printStackTrace(); } w=img.getWidth(); h=img.getHeight(); y=-h; randomNum=r.nextInt(50)+50; time=0; } publicvoidpaint(Graphicsg){ if(destroy) return; g.drawImage(img,x,y,null); if(hit){ img=imgs[index++]; index=++hitCount/4%5; } if(index>=imgs.length){ destroy=true; } } publicvoidmove(Vector<Npc>npcs,Vector<NpcBullet>nbs,Planeplane){ if(destroy){ npcs.remove(this); World.Score++; return; } time++; if(time%randomNum==0){ NpcBulletnb=newNpcBullet(this,plane); nbs.add(nb); time=0; randomNum=r.nextInt(50)+50; } x+=xstep; y+=ystep; //飞行轨迹 if(y>300){ ystep=-1; xstep=-xstep; } if(y<-250){ npcs.remove(this); } }}Plane:importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassPlane{ intx; inty; intw; inth; BufferedImage[]imgs=newBufferedImage[3]; BufferedImageimg; booleanleft,up,right,down; intindex=0; intlevel=5; booleanhit=false; inthitcount=0; intflas=0; publicPlane(){ try{ for(inti=0;i<imgs.length;i++){ imgs[i]=ImageIO.read(getClass().getResource("imgs/plane"+i+".png")); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } img=imgs[index]; w=img.getWidth(); h=img.getHeight(); x=320/2-w/2; y=405; } publicvoidpaint(Graphicsg){ g.drawImage(img,x,y,null); if(hit){ flas++; img=imgs[index=flas/3%2]; if(flas>11){ hit=false; flas=0; //index=0; } } } publicvoidmove(){ if(left) x-=8; if(up) y-=8; if(right) x+=8; if(down) y+=8; if(x<0) x=0; if(y<0) y=0; if(x>320-w) x=320-w; if(y>480-h) y=480-h; }}Bullets:importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.util.Vector;importjavax.imageio.ImageIO;publicclassBullet{ intx; inty; intw; inth; intxstep=0; BufferedImageimg; publicBullet(){ try{ img=ImageIO.read(getClass().getResource("imgs/bullet.png")); }catch(IOExceptione){ e.printStackTrace(); } w=img.getWidth(); h=img.getHeight(); } publicvoidpaint(Graphicsg){ g.drawImage(img,x,y,null); } publicvoidmove(Vector<Bullet>bullets,Vector<Npc>npcs){ y-=8; x+=xstep; if(y<-h){ bullets.remove(this); } //子弹与敌机碰撞检测 for(inti=0;i<npcs.size();i++){ intx1=npcs.get(i).x; inty1=npcs.get(i).y; intw1=npcs.get(i).w; inth1=npcs.get(i).h; if(x>x1-w&&x<x1+w1){ if(y<y1+h1&&y>y1-h){ //1.移除子弹 bullets.remove(this); //2.npc被击中 npcs.get(i).hit=true; } } } }}NpcBullet:importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.util.Vector;importjavax.imageio.ImageIO;importsun.java2d.pipe.DrawImage;publicclassNpcBullet{ intx; inty; intw; inth; intstep=5; doublesin; doublecos; BufferedImageimg; publicNpcBullet(Npcnpc,Planeplane){ try{ img=ImageIO.read(getClass().getResource("imgs/npcbullet.png")); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } w=img.getWidth(); h=img.getHeight(); x=npc.x+npc.w/2-w/2; y=npc.y+npc.h; intx1=plane.x+plane.w/2; inty1=plane.y+plane.h/2; intdx=x1-x; intdy=y1-y; doubledLine=Math.sqrt(dx*dx+dy*dy); cos=dx/dLine; sin=dy/dLine; } publicvoidpaint(Graphicsg){ g.drawImage(img,x,y,null); } publicvoidmove(Planeplane,Vector<NpcBullet>nbs){ x=(int)(x+step*cos); y=(int)(y+step*sin); //碰撞检测 intx1=plane.x; inty1=plane.y; intw1=plane.w; inth1=plane.h; if(x>x1-w&&x<x1+w1){ if(y>y1-h&&y<y1+h1){ plane.hit=true; plane.hitcount++; nbs.remove(this); } } //边界判断 if(x<-50||y<-50||x>370||y>550){ nbs.remove(this); } } }八、实习心得初次波及Java领域,感觉到Java入门是仿佛没有C,C++入门快,工具也没有什么TurboC,VisualC++好用,什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做App的。让我不可思议的是JAVA2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,要开始干项目了,此前从书上看到的东西,在项目中有了很好的机会去温习,开始重要是用Swing,开发桌面系统,放置一种按钮怎么也放不好,后来才懂得有一种布局管理器。后来开始波及到数据库访问,JDBC。随即Java规范了。最开始下载的规范是JDBCSpecification,诸多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的理解。对于开发C/S构造,例如,Swing+JDBC,开发数据库应用系统,让我学会开发两层构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抗病毒天然产物筛选X研究新策略论文
- 任县驾校b2考试试题及答案
- 2026-2030中国无车承运人行业发展分析及发展趋势预测报告
- 非遗传承的国际交流合作论文
- 共享经济国际拓展研究论文
- 工业缺陷视觉检测缺陷评估方法论文
- 食堂食品安全风险防控
- 定制化地基基础工程协议书
- 法律独家委托协议
- 灵活就业人员社保缴纳知识普及
- 2026年社区专职工作者考试试题附参考答案
- 射频电路元件与工作原理解析
- 2025《医药企业防范商业贿赂风险合规指引》解读课件
- 常州强基计划数学试卷
- 经国济民学习通超星期末考试答案章节答案2024年
- vte的预防与护理
- 电子元器件来料检验规范指导书
- 牛头刨床(机械原理课程设计)完整版
- 消化道早癌筛查知识讲座
- 智能家居装修方案
- 120#溶剂油安全技术说明书
评论
0/150
提交评论