java實訓報告總結(jié)范文
Java語言程序設(shè)計是大部分高校計算機專業(yè)的一門核心能力課,Java實訓操作又是達成其教學效果的重要環(huán)節(jié)和有效手段。本文是小編為大家整理的java實訓報告范文,僅供參考。現(xiàn)在,一起來看看吧!
java實訓報告范文一
一、實訓目的
1.熟練掌握Java面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)知識。
2.熟練掌握Java中常用的Swing組件的使用方法。
3.熟練掌握Java程序中圖形用戶界面設(shè)計的方法。
4.熟練掌握使用JDBC操作數(shù)據(jù)庫的方法。
5.通過實訓,培養(yǎng)學生分析和解決實際問題的能力,提高調(diào)試和分析應(yīng)用程序的能力,并為后續(xù)Java高級編程等專業(yè)課程的學習奠定良好的基礎(chǔ)。
二、課程設(shè)計報告內(nèi)容
2.1 實訓內(nèi)容
本課程設(shè)計的題目是設(shè)計一個簡化的圖書管理系統(tǒng)。該系統(tǒng)從圖書館管理人員的角度出發(fā),實現(xiàn)對圖書信息、讀者信息的瀏覽、添加、刪除和查詢,同時還可以對讀者借書、還書過程進行操作和控制。設(shè)計內(nèi)容主要包括系統(tǒng)分析、數(shù)據(jù)庫、數(shù)據(jù)表的創(chuàng)建、系統(tǒng)各個窗體的布局及其編碼實現(xiàn)。
系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。該管理系統(tǒng)需要完成的基本功能主要有:
用戶管理:主要包括用戶的添加、修改和刪除。
讀者管理:主要包括讀者信息的瀏覽、添加、刪除和查詢。
圖書管理:主要包括圖書信息的瀏覽、添加、刪除和查詢。
借還書管理:主要包括借書、還書和續(xù)借。
2.2 實訓設(shè)備或軟、硬件
硬件:PⅣ及以上性能的PC機;
軟件:Windows 2000或Windows XP系統(tǒng);JDK工具;JCreator4.0環(huán)境
2.3 功能設(shè)計及思想
首先設(shè)計測試登錄窗口:Text.java
接下來設(shè)計LoginFrame.java(登錄窗口)、MainFrame(主窗體)
Addbookframe.java(圖書入庫窗口)、AddReaders.java(添加讀者窗口)、AddUserframe.java(添加用戶窗口)、Borrowframe.java(借書窗口)、Retumframe.java(還書窗口)、Queryframe.java(圖書查詢窗口)。
導(dǎo)入部分及實現(xiàn)的接口
三、結(jié)論
Java實訓在不知不覺中就結(jié)束了,我感覺自己還有好多東西要學,還有好多的東西不懂呢!這是我大學以來第3次實訓,每次實訓我都感覺學到了好多東西!因為是一天到晚的不間斷訓練,所以記的會非常牢固。不像平時上課,每上兩次的理論課卻只有45分鐘的實際操作。在課上,有老師在前面演示我們都還能跟著做,可輪到我們獨立完成的時候,因為實際操作的少,早就忘光了!我很感謝學校有實訓這樣的安排,把我們這一學期學的東西系統(tǒng)的集中的進行訓練,對我們計算機水平的提高發(fā)揮著重要作用!還要感謝我們的侯老師,侯老師學識淵博,也很有耐心,即使老師講了很多遍的問題,我們不會,老師還是會走進我們給我們耐心的指導(dǎo),還給我們講一些學習java的方法,讓我們知道自己在哪方面不足,需要加強,也讓我們了解到哪些需要認真的學習,那些是重點,不是沒有方向的亂學一通,什么也學不好!
經(jīng)過這次的實訓,我真真確確的感受到了這些開發(fā)工具能讓我們提高工作的效率,更直觀更便捷的切入主題。這次我們學習的是制作圖書信息管理系統(tǒng),由老師給我們指導(dǎo)。當然,在學習的過程中并不是一帆風順的,在這之中,因為要操作的東西很多,有時錯一步,后面的結(jié)果就無法顯示,而自己的耐心與細心又太差,根本檢查不出來是哪里出了錯!這時候,侯老師都會耐心的過來幫助我,我很感謝侯老師也很感謝學校能安排這么優(yōu)秀的侯老師來教我們!只是,我們太頑皮,有很多東西老師講了我們也沒能記住,我想在此說一句:老師,您辛苦了,下學期我們一定認認真真的好好學!
實訓課是在學習與探索中度過的,短暫的15天實訓是結(jié)束了,但其中讓我們學到了許多知識,出現(xiàn)許多未知的為什么,如圖書管理數(shù)據(jù)庫的初步設(shè)置、JDBC和SQL Server服務(wù)器的連接、數(shù)據(jù)備份與還原的步驟,報表的設(shè)計與實現(xiàn)、如何設(shè)置數(shù)據(jù)源、通過ADO訪問數(shù)據(jù)庫的方法、監(jiān)聽器、各種Java Swing組件的使用,綁定控件的屬性設(shè)置、如何實現(xiàn)Click事件、實現(xiàn)它的獲得方法、設(shè)置注冊焦點
監(jiān)聽器、獲取當前日期、以及利用函數(shù)之間的相互轉(zhuǎn)換等等一系列的問題,正是在老師和同學的共同努力之下,我才一步步把問題解決了,最終完成了不可能完成的任務(wù)。
為期15天的實訓課就這樣結(jié)束了,我發(fā)現(xiàn)我對java有了新的認識,以前只知道玩游戲、娛樂和簡單的應(yīng)用。通過這次的實訓,我了解到,要真真正正的掌握這些開發(fā)工具還不是一件簡單容易的事兒,但真正掌握后,它帶個我們的將是無窮的便捷與科技,我喜歡高端便捷的生活。我希望我能做計算機這個萬能機器人的主人而不是奴隸,我會努力加油的!
通過實訓,我不僅鞏固了舊知識,也學到了新的知識,并且把所學的應(yīng)用到實際操作中,提高了我們的實際動手能力和邏輯思維能力。也讓我們對軟件開發(fā)的流程有一定了解,并且對開發(fā)軟件有了一些初步的經(jīng)驗。真正做到了學習與實際應(yīng)用相結(jié)合,真的很感謝老師為我們爭取的這次實訓機會,在這次實訓期間我獲益匪淺。
最后,謝謝老師在實習過程給予的幫助!老師辛苦了!感謝學校,感謝老師給我的幫助,讓我的思想、技能又上了一個臺階!
四、結(jié)束語
《Java圖書管理系統(tǒng)項目》心得:
其實在學習圖書管理系統(tǒng)實訓時,我們就已經(jīng)開展了SQL的學習,雖然它們之間存在不同,但是屬于同一種語言——計算機語言,但是實際上呢!它們的思想是不同的,JAVA只是一種面向?qū)ο笳Z言,而該項目實戰(zhàn)是教我們?nèi)绾沃谱饕粋€實用型的軟件,從實際出發(fā),一步一步的按照老師的規(guī)定進行,按正規(guī)模式的方式制作軟件,從初期的項目分析,書寫可行性報告,到項目分工,最后開始書寫代碼,一天一天的寫編程日記,把每一天遇到或完成的事情記錄下來,一步步設(shè)計完成自已的工作,想象自己是一個程序設(shè)計師,我主要完成界面及其代碼的設(shè)計,而其中有很多東西是我們所不知道,正向所有編程人員一樣,我們是邊學邊作,而且書寫代碼的速度要很快,因為一個項目不應(yīng)該在書寫代碼的方面浪費時間,在這期間很訓練人,因為每天寫代碼時,都寫的一身熱汗,著急呀!可是當完成每天的任務(wù),而多完成時有很大的成就感了,這當然是一個心里成就了,因為我暫時還沒有寫完這個程序了。說真的,我寫完這個圖書信息管理系統(tǒng)時,真的感覺很累了,不過又很輕松了,因為終于完成了,不過在看了其他同學設(shè)計的程序時,心里也感到眾多不足,因為我們設(shè)計的程序,在判斷某些輸入資料時,總是不嚴謹,可能給日后用戶帶來很多不方便,而且在日后的維護工作會很大,這樣的程序,作為一個日后的程序員是不應(yīng)該出現(xiàn)的。
其中,對了SQL語言的使用是相當?shù)闹匾模驗闆]有了SQL語言的支持,對數(shù)據(jù)庫表的操作,是根本無法實現(xiàn)的,對數(shù)據(jù)的增加、刪除、修改,都是一樣的。發(fā)現(xiàn)對于軟件來說,對數(shù)據(jù)庫的操作是至關(guān)重要的,因為有很多軟件都是這樣的,無論是什么都要對數(shù)據(jù)進行操作,統(tǒng)計、分類、查詢、修改、刪除等,而正因為這樣,我在開始寫程序時的SQL基礎(chǔ)不好,所以出現(xiàn)在眾多難題,而翻書查尋便是經(jīng)常事情了,因為知識用到時方恨少了,其實我感覺用JAVA設(shè)計圖形界面,是很費勁的,嗯„„用它作手機游戲看起來還不錯,或者用它網(wǎng)絡(luò)B/S、都是很好的,因為它就是為了網(wǎng)絡(luò)而生的。總的來說,對于開展這樣的實用型項目,我個人認為是非常重要的,這種實訓突破了以前我的思維模式和慣性作法,以前對于程序來說,一開始就制作從來也不計劃,如果遇到了與想象中的不一樣的難題,就把這部分刪除掉,最近制作出來的程序,往往是功能不完善、功能不明確,沒有具體的規(guī)劃和文檔,到最后讓別人很難理解,自已也是很難弄明白。沒有一個良好的程序設(shè)計思想,當然了學習項目實戰(zhàn)后,丟掉了那樣壞毛病,建立了良好的設(shè)計思想和編程過程。有很多不理解現(xiàn)在變成了現(xiàn)在的理解感謝,因為往往一些正確的思想,總是一開始不被人接受,而到最近時才會被理解認同,我也這樣認為了。
通過這次的訓練,掌握運用了java程序設(shè)計的一些思想,了解了Java面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)知識,熟練掌握了Java中常用的Swing組件的使用方法以及Java程序中圖形用戶界面設(shè)計的方法、使用JDBC操作數(shù)據(jù)庫的方法。初步了解了如何將復(fù)雜的問題層層分析成較小的子問題,實現(xiàn)Java編程的實際操作,掌握如何運用Java解決一些常見的編程問題,并學會、掌握分析解決問題的方法,并運用Java的程序結(jié)合自己對Java程序的初步認識與理解進行對照,查找自己與Java程序設(shè)計的偏差與不足之處,培養(yǎng)自己Java的思維。
本次實訓項目通過分析并實現(xiàn)了圖書管理系統(tǒng)。本系統(tǒng)的設(shè)計讓大家了解如何根據(jù)實際問題,分析功能需求,將復(fù)雜的問題分析成子問題,達到模塊化設(shè)計系統(tǒng)功能的目標。同時,可以利用這種方法制作通訊錄管理、課程管理、工資管理、圖書管理等小型管理系統(tǒng),此外,此次實訓培養(yǎng)了我們java 的思維能力,讓我們對java有了更深層次的學習與理解,通過兩周的實訓可以去解決一些簡單的編程問題,并對其出現(xiàn)的錯誤能以與改正和討論同時,也對以前自己朦朧而不解的問題有了很好的理解,也知道了一些貴重的資料為何要施加密碼,如銀行卡。對java的理論有了更深的理解,同時也可以運用本次的實訓設(shè)置一些簡單的系統(tǒng),
總之,我們從這次的實訓中受益匪淺,我對這次實訓還是比較滿意的,它使我學到了很多東西、學到了更深刻的知識,為我以后的學習做了引導(dǎo),點明了方向,我相信在不遠的未來定會有屬于我們自己的一片美好天空!漫漫長路任我行,我需踏實腳下的路,一步步的前行。用現(xiàn)在的付出和汗水去勾畫未來美好的明天。
最后,在侯老師的細心輔導(dǎo)下,我有了很大的進步,知識得到了擴充,認識得到了加深,也使得我的自學能力得到了很大的提高,在此,我向侯老師表示由衷地感謝。
老師您辛苦了!
java實訓報告范文二
一、 課程設(shè)計名稱及主要內(nèi)容:
1、 課程設(shè)計名稱:
時鐘動畫
2、 課程設(shè)計的主要內(nèi)容:
以下題目任選一個:
(1)圖形界面類,如科學計算器、繪圖板、日歷、游戲程序等。
(2)動畫類,編制功能較復(fù)雜、效果較好的Applet動畫程序。
(3)數(shù)據(jù)處理類,如學生學籍、課程成績、圖書編目、倉庫貨物等數(shù)據(jù)錄入查詢程序。
(4)其他類型,自選題目,須經(jīng)指導(dǎo)老師同意。
我所選的題目是動畫類的Applet動畫程序,主要任務(wù)是用Java程序設(shè)計一個時鐘動畫。
二、 程序的設(shè)計思想和流程圖:
1、 設(shè)計思想:
現(xiàn)在的各種時鐘花樣百出,千奇百怪,功能亦是越來越先進了。我很喜歡這些各式各樣的時鐘,所以希望自己也能設(shè)計出一個來。于是,我希望自己能夠用自己所學的Java知識設(shè)計出一個自己的時鐘動畫,即使是最簡單的,但我相信這是暫時的。只要我能夠努力學好Java知識,將來一定能夠設(shè)計出更好更完美的時鐘動畫。
2、 流程圖:
三、 程序介紹:
1、設(shè)計方法及步驟 :
題目分析:
根據(jù)《課程設(shè)計任務(wù)書》要求,分析題目,構(gòu)造出程序的基本思路(算法設(shè)計)。畫出程序
設(shè)計結(jié)構(gòu)框圖。
構(gòu)造數(shù)據(jù)結(jié)構(gòu):
根據(jù)程序結(jié)構(gòu)框圖和題目分析結(jié)果(采用算法),構(gòu)造程序所用各項數(shù)據(jù),各種窗體及他們
之間的聯(lián)系。
構(gòu)造程序框架:
在窗體確定之后,根據(jù)算法設(shè)計出所用各個窗體之間的調(diào)用關(guān)系。
程序設(shè)計:
?、佼嫵龀绦蚬δ芸驁D和結(jié)構(gòu)框圖;
?、诟鶕?jù)框圖設(shè)計程序;
?、劬幾g程序調(diào)試程序,使程序可以使用;
?、芡陚涑绦蚬δ堋?/p>
程序打包:
所設(shè)計程序匯總,將程序分類歸入相應(yīng)子目錄,完成程序所有設(shè)計要求。
2、完成情況:
經(jīng)過一系列的Java程序代碼的設(shè)計,雖然過程中遇到了許多的問題,但是最終解決了所有的問題,準確的設(shè)計出了時鐘動畫,運行情況正常。
3、類的關(guān)系:
“public class AnimatorDemo”是公共類,且是程序中的唯一的一個類。
4、構(gòu)造方法、成員變量和成員方法的功能說明:
“Thread timer”用于顯示時鐘的線程;
“SimpleDateFormat formatter”用于格式化時間顯示; “String lastdate”用于保存當前時間的字符串;
“Font clockFaceFont”用于設(shè)置顯示時鐘里面的數(shù)字的字體; “Date currentDate”用于顯示當前時間;
“Color handColor”用于顯示時針、分針和表盤的顏色; “Color numberColor” 用于顯示秒針和數(shù)字的顏色; “public void init()”用于設(shè)計時鐘格式并捕捉異常;
“public void plotpoints(int x0, int y0, int x, int y, Graphics g)” 用于計算四分之一的圓弧;
“public void circle(int x0, int y0, int r, Graphics g”) 用Bresenham算法來畫圓,其中(x0,y0)是圓的中心,r為圓半徑; “public void paint(Graphics g)”用于運行時鐘程序; “public void start()” applet的啟動方法;
“public void stop()” applet的停止方法;
“public void run()” 線程的run方法。
四、 遇到的問題和解決方法:
1、 問題:
寫程序的時候,由于對有些Java知識不懂,所以有些想要表達的意思無法用Java代碼準確的表達出來,老是出錯或者無法寫下去;
一開始,自己準備的參考資料不足,無法在遇到問題時有效的利用參考資料解決,遇到不懂的問題和不會用程序語言表達的問題時,只能留在那里,無法解決,結(jié)果問題最后越積越多,導(dǎo)致我無法再把程序?qū)懴氯?
一開始,對于老師布置的作業(yè)題目,我不太懂,無法進行有效而且清晰的分析,自然也無法繼續(xù)下去寫程序了,耽誤了較多的時間;
對于要寫流程圖,一開始我并不懂是什么意思,也不知道怎么去寫。
2、 解決方法:
對于那些不懂的Java知識和不會寫的程序,我通過向同學尋求幫助和利用參考資料書,最終都解決了;
對于自己參考資料不足的缺點,我在下課后,去了圖書館借閱有關(guān)方面的Java參考資料書,并且向同學借閱了他們所擁有的資料書,然后又利用自己的電腦上網(wǎng)查找了一些有關(guān)方面的參考知識,終于在最后解決了資料不足的缺點;
對于不懂的題目,我也通過向多個同學進行詢問,最終弄懂了老師布置的題目所要求的內(nèi)容;
至于流程圖,在我向同學詢問過,并且上網(wǎng)進行了一番查找和咨詢后,也總算弄懂了流程圖的含義,并努力寫了出來。
五、 認識、感想、建議:
六、 參考資料:
《精通Java——JDK、數(shù)據(jù)庫系統(tǒng)開發(fā)、Web開發(fā)》
《Java進階教程》
《零起點Java應(yīng)用編程》
《Java程序設(shè)計應(yīng)用基礎(chǔ)教程》
七、 附加源程序:
import java.util.*;
import java.awt.*;
import java.applet.*;
import java.text.*;
public class AnimatorDemo extends Applet implements Runnable
{
Thread timer; // 用于顯示時鐘的線程
int lastxs, lastys, lastxm,
lastym, lastxh, lastyh;
SimpleDateFormat formatter; //格式化時間顯示
String lastdate; // 保存當前時間的字符串
Font clockFaceFont; //設(shè)置顯示時鐘里面的數(shù)字的字體
Date currentDate; // 顯示當前時間
Color handColor; // 用于顯示時針、分針和表盤的顏色
Color numberColor; // 用于顯示秒針和數(shù)字的顏色
public void init()
{
int x,y;
lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;
formatter = new SimpleDateFormat ("yyyy EEE MMM dd hh:mm:ss ");
currentDate = new Date();
lastdate = formatter.format(currentDate);
clockFaceFont = new Font("Serif", Font.PLAIN, 14);
handColor = Color.blue;
numberColor = Color.darkGray;
try {
setBackground(new Color(Integer.parseInt(getParameter("bgcolor"),16)));}
catch (Exception E) { }
try {
handColor = new Color(Integer.parseInt(getParameter("fgcolor1"),16));}
catch (Exception E) { }
try {
numberColor = new Color(Integer.parseInt(getParameter("fgcolor2"),16));} catch (Exception E) { } resize(300,300); // 設(shè)置時鐘窗口大小}
// 計算四分之一的圓弧
public void plotpoints(int x0, int y0, int x, int y, Graphics g)
{
g.drawLine(x0+x,y0+y,x0+x,y0+y);
g.drawLine(x0+y,y0+x,x0+y,y0+x);
g.drawLine(x0+y,y0-x,x0+y,y0-x);
g.drawLine(x0+x,y0-y,x0+x,y0-y);
g.drawLine(x0-x,y0-y,x0-x,y0-y);
g.drawLine(x0-y,y0-x,x0-y,y0-x);
g.drawLine(x0-y,y0+x,x0-y,y0+x);
g.drawLine(x0-x,y0+y,x0-x,y0+y);}
// 用Bresenham算法來畫圓,其中(x0,y0)是圓的中心,r為圓半徑
public void circle(int x0, int y0, int r, Graphics g)
{
int x,y;
float d;
x=0;
y=r;
d=5/4-r;
plotpoints(x0,y0,x,y,g);
while(y>x){
if (d<0) {
d=d+2*x+3;
x++;}
else {
d=d+2*(x-y)+5;
x++;
y--;}
plotpoints(x0,y0,x,y,g);}}
public void paint(Graphics g)
{int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter; String today;
currentDate = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("s",Locale.getDefault()); try {
s = Integer.parseInt(formatter.format(currentDate));
} catch (NumberFormatException n) {
s = 0;}
formatter.applyPattern("m");
try {
m = Integer.parseInt(formatter.format(currentDate));
} catch (NumberFormatException n) {
m = 10;}
formatter.applyPattern("h");
try {
h = Integer.parseInt(formatter.format(currentDate));
} catch (NumberFormatException n) {
h = 10;}
formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");
today = formatter.format(currentDate);
//設(shè)置時鐘的表盤的中心點為(80,55)
xcenter=80;
ycenter=55;
// a= s* pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)
// x = r(cos a) + xcenter, y = r(sin a) + ycenter
xs = (int)(Math.cos(s * 3.14f/30 - 3.14f/2) * 45 + xcenter);
ys = (int)(Math.sin(s * 3.14f/30 - 3.14f/2) * 45 + ycenter);
xm = (int)(Math.cos(m * 3.14f/30 - 3.14f/2) * 40 + xcenter);
ym = (int)(Math.sin(m * 3.14f/30 - 3.14f/2) * 40 + ycenter);
xh = (int)(Math.cos((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 + xcenter); yh = (int)(Math.sin((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 + ycenter); //畫時鐘最外面的圓盤其中心在(xcenter,ycenter)半徑為50
g.setFont(clockFaceFont);
g.setColor(handColor);
circle(xcenter,ycenter,50,g);
//畫時鐘表盤里的數(shù)字
g.setColor(numberColor);
g.drawString("9",xcenter-45,ycenter+3);
g.drawString("3",xcenter+40,ycenter+3);
g.drawString("12",xcenter-5,ycenter-37);
g.drawString("6",xcenter-3,ycenter+45);
// 如果必要的話抹去然后重畫
g.setColor(getBackground());
if (xs != lastxs || ys != lastys) {
g.drawLine(xcenter, ycenter, lastxs, lastys);
g.drawString(lastdate, 5, 125);}
if (xm != lastxm || ym != lastym) {
g.drawLine(xcenter, ycenter-1, lastxm, lastym);
g.drawLine(xcenter-1, ycenter, lastxm, lastym); }
if (xh != lastxh || yh != lastyh) {
g.drawLine(xcenter, ycenter-1, lastxh, lastyh);
g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }
g.setColor(numberColor);
g.drawString("", 5, 125);
g.drawString(today, 5, 125);
g.drawLine(xcenter, ycenter, xs, ys);
g.setColor(handColor);
g.drawLine(xcenter, ycenter-1, xm, ym);
g.drawLine(xcenter-1, ycenter, xm, ym);
g.drawLine(xcenter, ycenter-1, xh, yh);
g.drawLine(xcenter-1, ycenter, xh, yh);
lastxs=xs; lastys=ys;
lastxm=xm; lastym=ym;
lastxh=xh; lastyh=yh;
lastdate = today;
currentDate=null;
}//applet的啟動方法
public void start()
{timer = new Thread(this);
timer.start();
}// applet的停止方法
public void stop()
{timer = null;
}//線程的run方法
public void run()
{Thread me = Thread.currentThread();
while (timer == me) {
try {Thread.currentThread().sleep(1000);}
catch (InterruptedException e) {}
repaint();}
}//注意:這里重寫了update()方法,只是調(diào)用了paint()方法來消除閃爍現(xiàn)象 public void update(Graphics g)
{paint(g);}
}
java相關(guān)文章: