版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
哈爾濱理工大學管理學院信息系實習匯報班級信息13-4姓名趙軍學號7月15日
一、實習目的及意義深入理解java開發(fā)的有關(guān)知識,掌握java開發(fā)的基本技術(shù),豐富java開發(fā)的實戰(zhàn)經(jīng)驗。學習SQL的基礎(chǔ)知識及對的的運用措施,和有用的有關(guān)技術(shù),提高自己的工作效率。通過實習,鞏固大學所學專業(yè)的基本知識,提高分析、判斷和處理實際問題的能力,鍛煉自己的實際動手能力,增強自己的團體協(xié)作意識,理解軟件開發(fā)的思索角度和重要流程。為畢業(yè)之后可以更快地進入工作狀態(tài)并且可以更好的工作,打好一定的基礎(chǔ)。二、實習任務(wù)實習期間,通過學習一種簡樸的Java程序——飛機大戰(zhàn),理解和掌握Java編程的基礎(chǔ),如構(gòu)造器、API接口等。最終可以獨立完畢一種小程序。三、實習語言Java的特點Java語言的語法與C語言和C++語言很靠近,使得大多數(shù)程序員很輕易學習和使用Java。另首先,Java丟棄了C++中很少使用的、很難理解的、令人困惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。尤其地,Java語言不使用指針,并提供了自動的廢料搜集,使得程序員不必為內(nèi)存管理而擔憂。2、Java語言是一種面向?qū)ο蟮腏ava語言提供類、接口和繼承等原語,為了簡樸起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定??傊琂ava語言是一種純的面向?qū)ο蟪绦蛟O(shè)計語言。3、Java語言是分布式的Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一種網(wǎng)絡(luò)應(yīng)用編程接口(),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程措施激活)機制也是開發(fā)分布式應(yīng)用的重要手段。4、Java語言是強健的Java的強類型機制、異常處理、廢料的自動搜集等是Java程序強健性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具強健性。5、Java語言是安全的Java一般被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一種安全機制以防惡意代碼的襲擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一種安全防備機制(類ClassLoader),如分派不一樣的名字空間以防替代當?shù)氐耐?、字?jié)代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。6、Java語言是體系構(gòu)造中立的Java程序(后綴為java的文獻)在Java平臺上被編譯為體系構(gòu)造中立的字節(jié)碼格式(后綴為class的文獻),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。7、Java語言是可移植的這種可移植性來源于體系構(gòu)造中立性,此外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)自身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSIC實現(xiàn)的。8、Java是高性能的與那些解釋型的高級腳本語言相比,Java確實是高性能的。實際上,Java的運行速度伴隨JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越靠近于C++。9、Java語言是多線程的在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)立。一般有兩種措施來創(chuàng)立線程:其一,使用型構(gòu)為Thread(Runnable)的構(gòu)造子將一種實現(xiàn)了Runnable接口的對象包裝成一種線程,其二,從Thread類派生出子類并重寫run措施,使用該子類創(chuàng)立的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一種線程均有它的run措施,而run措施中包括了線程所要運行的代碼。線程的活動由一組措施來控制。Java語言支持多種線程的同步執(zhí)行,并提供多線程之間的同步機制(關(guān)鍵字為synchronized)。10、Java語言是動態(tài)的Java語言的設(shè)計目的之一是適應(yīng)于動態(tài)變化的環(huán)境。Java程序需要的類可以動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有助于軟件的升級。此外,Java中的類有一種運行時刻的表達,能進行運行時刻的類型檢查。四、實習時間7月12日——7月15日五、實習地點哈爾濱達內(nèi)科技有限企業(yè)。六、實習企業(yè)簡介達內(nèi)全稱達內(nèi)時代科技集團有限企業(yè),是中國高端IT培訓的領(lǐng)先品牌,致力于培養(yǎng)面向電信和金融領(lǐng)域的Java、C++、C#/.Net、軟件測試、嵌入式、PHP、android等方面的中高端軟件人才。由于達內(nèi)優(yōu)秀的教學效果和行業(yè)領(lǐng)先的經(jīng)營模式贏得了社會各界的廣泛贊譽和好評,榮獲了各界權(quán)威機構(gòu)的頒獎:達內(nèi)成為業(yè)界唯一的一家、、、持續(xù)4年入選德勤評比的“中國高科技高成長50強企業(yè)”、“亞太地區(qū)高科技高成長500強企業(yè)”,獲得首屆中國留學人才歸國創(chuàng)業(yè)“騰飛”獎、中關(guān)村管理委員會指定的“軟件人才培養(yǎng)示范基地”、被《計算機世界》評比的“就業(yè)服務(wù)杰出奉獻獎”、被《中國計算機報》評比的“最具影響力培訓機構(gòu)獎”、被搜狐評為“中國十大教育集團”、被騰訊評為“中國大學生心目中最具影響力的IT品牌”。實習成果部分代碼展示:Games:importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjavax.swing.JFrame;publicclassGamesextendsJFrame{ Worldw=newWorld(); publicGames(){ this.setSize(320,480+30); this.setTitle("飛機大戰(zhàn)"); 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();//創(chuàng)立地圖 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>(); //隨機數(shù) 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(); } //初始狀態(tài) 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; // 構(gòu)造器 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領(lǐng)域,感覺到Java入門是仿佛沒有C,C++入門快,工具也沒有什么TurboC,VisualC++好用,什么JAVA_HOME,CLASSPATH,虛擬機等概念都是初次基礎(chǔ),旁邊的人都很少用Java的。感覺Java就是做App的。讓我不可思議的是JAVA2,JDK,J2SE,J2EE,J2ME等新名詞在自己的腦海里蔓延。搭起Java開發(fā)環(huán)境后,記得剛開始還是用UltraEdit編輯并編譯的慢慢的改用JCreator了,要開始干項目了,此前從書上看到的東西,在項目中有了很好的機會去溫習,開始重要是用Swing,開發(fā)桌面系統(tǒng),放置一種按鈕怎么也放不好,后來才懂得有一種布局管理器。后來開始波及到數(shù)據(jù)庫訪問,JDBC。隨即Java規(guī)范了。最開始下載的規(guī)范是JDBCSpecification,諸多概念一目了然,尤其是DATABASE的事務(wù)性控制,自己對于她的理解慢慢的有了較為深入的理解。對于開發(fā)C/S構(gòu)造,例如,Swing+JDBC,開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),讓我學會開發(fā)兩層構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年房產(chǎn)認購訂金合同
- 2025年粵教新版八年級地理上冊月考試卷含答案
- 2025年滬科版選擇性必修1歷史上冊月考試卷
- 2025年人教A新版九年級歷史下冊階段測試試卷含答案
- 2025年滬科版選修歷史上冊月考試卷含答案
- 2025年人教新課標九年級語文下冊階段測試試卷含答案
- 2025年粵教版高三歷史上冊月考試卷含答案
- 二零二五版嬰幼兒奶粉跨境電商進口合同范本4篇
- 二零二五年度農(nóng)藥企業(yè)信息化管理系統(tǒng)開發(fā)合同
- 二零二五版門窗行業(yè)綠色制造體系建設(shè)合同4篇
- 河道綜合治理工程技術(shù)投標文件
- 專題24 短文填空 選詞填空 2024年中考英語真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護理查房
- 2024年江蘇護理職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 電能質(zhì)量與安全課件
- 醫(yī)藥營銷團隊建設(shè)與管理
- 工程項目設(shè)計工作管理方案及設(shè)計優(yōu)化措施
- 圍場滿族蒙古族自治縣金匯螢石開采有限公司三義號螢石礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 小升初幼升小擇校畢業(yè)升學兒童簡歷
- 資金支付審批單
評論
0/150
提交評論