第一篇:java報告
實驗六
題目:圖形用戶界面
目的:
1、掌握圖形組件的使用
2、掌握布局管理器的使用方法
3、掌握Java事件處理機制
內容:設計實現一個具有基本計算功能的計算器
實驗七
題目:輸入輸出
目的:掌握常用字節流和字符流的創建與使用
內容:從文件in.txt中讀取內容,再將它寫到文件out.txt中。in.txt采用本地平臺默認的字符編碼,而out.txt分別采用和本地平臺不同的UTF-8編碼以及和和本地平臺相同的字符編碼。
實驗八
題目:多線程
目的:了解線程的概念、線程的生命周期
掌握多線程的編程
實驗九
題目:多媒體
目的:掌握基本圖形的繪制方法
掌握圖像的顯示、聲音的播放
實驗十
題目:數據庫和網絡
目的:掌握使用JDBC技術訪問數據庫
掌握基于TCP協議的Socket網絡編程
第二篇:JAVA報告
JAVA
一、需求分析
課程設計報告
——簡單的計算器
學號:
用java設計并實現類似Windows自帶計算器。
具體功能包括:四則運算(加、減、乘、除);退格(Backspace)、初始化(CE);求平方根(sqrt)、倒數(1/x)。
二、總體設計
主類:Calculator
內部類:
類名:CalculatorFrame 繼承的父類:JFrame 類名:CalculatorPanel 繼承的父類:Panel 類名:InsertAction 實現的接口:ActionListener 類名:CommandAction 實現的接口:ActionListener
三、運行效果
四、程序源代碼
import java.awt.*;import java.awt.event.*;import javax.swing.*;
public class Calculator { public static void main(String[] args){ CalculatorFrame frame=new CalculatorFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);} }
class CalculatorFrame extends JFrame { public CalculatorFrame(){ setTitle(“Calculator”);//設置窗體的標題為“Calculator” CalculatorPanel panel=new CalculatorPanel();//創建一個面板 add(panel);pack();} }
class CalculatorPanel extends Panel { public CalculatorPanel(){ setLayout(new BorderLayout());//設置邊界布局管理
result=0;lastCommand=“=”;start=true;flag=true;
display=new JButton(“0”);display.setEnabled(false);add(display,BorderLayout.NORTH);//將display按鈕放置在容器的NORTH方位 //聲明內部類
ActionListener insert=new InsertAction();ActionListener command=new CommandAction();
panel=new JPanel();//創建一個面板
panel.setLayout(new GridLayout(4,5));//設置面板的布局管理 //將按鈕添加到面板JPanel上 addButton(“7”,insert);addButton(“8”,insert);addButton(“9”,insert);addButton(“/”,command);addButton(“CE”,command);
addButton(“4”,insert);addButton(“5”,insert);addButton(“6”,insert);addButton(“*”,command);addButton(“Backspace”,command);
addButton(“1”,insert);addButton(“2”,insert);addButton(“3”,insert);addButton(“-”,command);addButton(“sqrt”,command);
addButton(“0”,insert);addButton(“.”,insert);addButton(“=”,command);addButton(“+”,command);addButton(“1/x”,command);
add(panel,BorderLayout.CENTER);//將面板JPanel添加到容器的CENTER方位 } private void addButton(String label,ActionListener listener){ JButton button=new JButton(label);button.addActionListener(listener);//注冊動作事件接口
panel.add(button);//將按鈕添加到panel面板上 } private class InsertAction implements ActionListener { public void actionPerformed(ActionEvent event){ //事件處理代碼
String input=event.getActionCommand();if(start&&flag){ display.setText(“");start=false;} if(flag)display.setText(display.getText()+input);} } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent event){ //事件處理代碼
String command=event.getActionCommand();
if(command.equals(”CE“)){ display.setText(”0“);start=true;flag=true;command=”=“;} else if(start&&flag){ if(command.equals(”-“)){ display.setText(command);start=false;} else if((command.equals(”1/x“)||command.equals(”sqrt“))&&flag)calculate(Double.parseDouble(display.getText()),command);else if(flag)lastCommand=command;} else { if(command.equals(”Backspace“)&&flag){ String s=display.getText();char[] s1=s.toCharArray();if(s.length()>=2){ String s2=new String(s1,0,s.length()-1);display.setText(s2);} else { display.setText(”0“);start=true;} } else if(flag){ calculate(Double.parseDouble(display.getText()),command);
lastCommand=command;start=true;} } } }
public void calculate(double x,String command){ if(lastCommand.equals(”+“))result+=x;else if(lastCommand.equals(”-“))result-=x;else if(lastCommand.equals(”/“)){ if(x!=0)result/=x;else { display.setText(”除數不能為0“);start=false;flag=false;return;} } else if(lastCommand.equals(”*“))result*=x;else if(command.equals(”1/x“)){ if(x!=0)result=1/x;else { display.setText(”除數不能為0“);start=false;flag=false;return;} } else if(command.equals(”sqrt“)){ if(x>=0)result=Math.sqrt(x);else { display.setText(”函數輸入無效“);start=false;flag=false;return;} } else if(lastCommand.equals(”=“))result=x;
display.setText(”"+result);} private JButton display;private JPanel panel;private double result;private String lastCommand;private boolean start;private boolean flag;}
五、心得體會
……
第三篇:java學習報告
經過一個學期的學習,Java的課程已經結束了??墒俏抑?,學習java的路上,我們才剛剛起步。學Java之前我聽許多人說Java很難,學了之后我感覺Java確實不容易,想學好它并非易事。
學習java天賦是很重要,但不是絕對的至少我是這么認為的!我想說的是我認為態度決定一切,Java的J2SE是Java的核心基礎,學好SE部分對Java后期的深入學習非常重要。在SE部分,有許多的知識要點:類的概念、類的繼承、多態、接口、面向對象等等。對于這一階段的學習,除了課堂上的聽講,最最重要的是代碼的實踐,通過編寫代碼來理解上述所說的知識點的,將抽象的東西變成可以被你理解,應用的工具,熟能生巧嘛。
其次,學習的方法也很重要!好的方法會事半功倍哦!例如在編寫代碼的過程中可能會有這樣那樣的問題,遇到問題請教別人是一種不錯的方法,但是,我認為最好不要馬上請教身邊的高手。自己先試著想辦法解決,分析問題,對癥下藥,讓自己有解決問題的成就感!但也不要在某個問題上發費太多的時間和精力,那樣會使你產生挫敗感,喪失學習的興趣。在適當的時候請教高手,你會受益良多!
再次,對于資源的使用,也是提高學習效率的方式。SUN公司提供了專門的API文檔,供開發者學習JAVA,遇到沒見過的類、接口或者某個方法,就可以通過查詢API文檔獲得幫助!不要忽視API文檔,它是你學習JAVA很重要的幫手!網絡也是另一種寶貴的資源,你可以下載一些JAVA的視頻教程來復習和鞏固知識、上網查詢你解決不了的問題、到相關的論壇轉轉,發表你未解決的問題,聽聽高手的想法!
其實在剛接觸Java時,自己確實有點暈,但經過一段時間學習,逐漸走出了迷霧。剛開始學習循環時,我覺得那一塊很不熟悉,做題時,思路半天才理出來。經過一段時間的練習,我漸漸的走出了第一個迷霧。但是到了第六章,我徹底暈了,看書看得也一知半解暈暈乎乎的。類與對象是在學了第七、八章后弄清的。到了最后一章,學到字符串時,傳遞參數真讓我暈啊,然后我又是練習,最后略微弄明白了點。我總結了我學Java的特點:先是不懂,后明白,再次不懂,又明白,又一次暈,最后弄清。經過三起三落,經過幾個迷霧之后,我對Java也有了更為深入的了解,就學會了Java。
我覺得把Java學會的關鍵一點就是堅持練習。學習Java時每天必須保證一定量的練習,我們老師也說學習編程語言沒有捷徑可走。真的,只有每天反復操作了,經常寫代碼了,我們在遇到問題時才有一定的思路。欲速則不達,學習編程語言需要一個比較漫長的階段,不能一步登天,這需要一個過程,在這個過程中慢慢積累經驗,扎實基礎。不要以為寫出了一個簡單的小程序,就認為自己已經學的很好了,這只不過是在你學習編程過程中一個小小的實踐。不要滿足于現狀,要不斷完善自己的知識體系,善于總結實踐經驗。要端正自己的學習態度,是主動去學,而不是被動!提高自學能力。學習編程的秘訣是:編程、編程、再編程。不僅要多實踐,而且要快實踐。
我們在看書的時候,不要等到完全理解了才動手敲代碼,而是應該在看書的同時敲代碼,程序運行的各種情況可以讓更快更牢固的掌握知識點。程序代碼是軟件開發最重要的成果之一,其中滲透了程序員的思想與靈魂。當你學習一個類以后,你就可以自己寫個簡單的例子程序來運行一下,看看有什么結果,然后再多調用幾個類的方法,看看運行結果,這樣非常直觀的把類給學會了,而且記憶非常深刻。然后不應該滿足把代碼調通,你應該想想看如果我不這樣寫,換個方式,再試試行不行。記得哪個高人說過學習編程就是個破壞的過程,把書上的例子,自己學習Documentation編寫的例子在運行通過以后,不斷的嘗試著用不同的方法實現,不斷的嘗試破壞代碼的結構,看看它會有什么結果。通過這樣的方式,你會很徹底的很精通的掌握Java。舉個例子,我們都編過Hello World,一開始很多同學不是很理解為什么main方法一定要這樣來定義public static void main(String[] args),能不能不這樣寫?我剛也有這樣的疑問。想知道答案嗎?很簡單,你把main改個名字運行一下,看看報什么錯誤,然后根據出錯信息進行分析;把main的public取掉,在試試看,報什么錯誤;static去掉還能不能運行;不知道main方法是否一定要傳一個String[]數組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數名稱的,也可以把args改成別的名字,看看運行結果如何。我當初學習Java的時候就是這樣做的,把Hello World程序反復改了七八次,不斷運行,分析運行結果,最后就徹底明白為什么main方法是這樣定義的了。這樣雖然比較費時間,不過一個例子程序這樣反復破壞幾次之后。我就對這個相關的知識徹底學通了。有時候甚至故意寫一些錯誤的代碼來運行,看看能否得到預期的運行錯誤。這樣對于編程的掌握是及其深刻的。
當然學習環境對學習效率也很重要。在學習的這段日子,我感觸很多,我們班的學習氛圍還不錯,有時候大家一起討論、學習、共同進步,有問題也可以詢問助教,比自己一個人閉門造車來的更有效果!講師在授課之余,還傳授很多其他方面的知識,大大擴展了我們的見識,增加了學習的興趣!
學習是一個日積月累的過程,只有從菜鳥做起,一步步的來,才能在學習JAVA的道路上留下你深深的腳印,在學習中享受!人之所以能,是相信能!同時在學習過程中應該注意的幾點有:
1)首先是java環境的配置,對于已經習慣雙擊“setup”進行安裝的我們來說,安裝完畢后就可以使用軟件了,但是java不是這樣,安裝完java jdk后需要對你所在的操作系統進行環境的配置,設置一些最最基本的環境運行變量。測試環境變量的配置是否正確。
2)添加你應用所需的功能擴展jar包。
3)配置好應用需要的dll動態鏈接庫文件。
4)在項目建立初期進行輸出打包測試,這樣做的好處在于:應用軟件的最終運行狀態是軟件需要發布,并可以在其他用戶的計算機正確的運行,項目初期就進行輸出、安裝測試可以提早發現軟件的非編碼錯誤,另一點是將軟件初期的GUI操作發布給用戶,可以讓用戶提出一些寶貴的軟件功能、界面上的整改意見,這樣可以使軟件更貼合用戶的需求。
5)多多閱讀相關知識點的英文資料,當然好的中文資料也是不可少的。
6)多多訪問一些技術論壇,國內還是有一些不錯的純技術論壇的,在哪里你可以看到java的方方面面,及時更新自己的知識,“沖刷”自己的頭腦是非常必要的,國外的技術論壇有時候需要翻墻才能訪問,需要提前準備好翻墻的工具。不過我發現臺灣的java論壇比國內的好,從版面的設置到人的參與性都比國內的要好,學習討論的氛圍也很濃厚。
7)多多寫寫問題總結,這樣可以使自己加深對問題解決方法的理解,說不定哪天你會有更好的方法來解決問題。
8)多多學習別人的源代碼,要知道社會發展到今天都是后人站在前人肩膀上作出來的成就,必須要清楚的知道現在的工作都是靠一群人開發才能完成的,學習別人的代碼可以少走彎路,使自己更快的成長。
9)看一些技術的原理性東西,當然這個取決于你自己想從深層次的方面去應用技術還是泛泛的應用就行,每次都想快速的掌握他,雖然短時間里看起來很“繁榮”,但是當需要深入應用時就會發現心有余力而力不足,所以在適當的時間看一些技術原理性的東西是非常有必要的。
10)最后是一個個人習慣,在今天你打開計算機前或打開IDE前,先想好今天要完成哪些工作,昨天的問題解決了嗎?如果沒有是否有了新的思路?軟件代碼的備份也很重要。
學習java就是件耗時間的事兒,如果不肯投入自己的時間,根本不可能在短時間就把java給學好了。有時候只是很簡單的想法,但是要付出的很多很多才能把我的想法給實現了,所以我就決定要好好的把這件事情給做好了。我相信我是能做好的。前提是我必須要放下其他的東西,不能和同學一起出去玩兒,不能看電影,不能在網上浪費時間,不能做的事情,實在是太多了,以前我認為自己是個意志不堅定的人,現在,就有一個機會來證明我自己不是那樣的人,我能長久的堅持去做一件事情,而且不懼所遇到的困難。學習是一個很反復的過程,不斷的出現錯誤,不斷的調試,不斷的迷茫,不斷的清晰,這些都是必須要要經歷的
第四篇:Java課程設計報告
課 程 設 計
課程名稱 Java語言課程設計 題目名稱 人事管理系統的設計與實現 學生學院 應用數學學院 專業班級 學 號 學生姓名 指導教師 劉科峰
2014 年 10 月 29
日 一.設計內容
自學Swing圖形界面設計和數據庫程序設計。開發用于某單位的人事管理系統。該系統要求實現以下功能:
1.員工信息管理包括:員工信息一覽表、新員工的建立、修改 2.薪資福利管理:考勤與薪資的連動計算、薪資與福利的設置
3.考勤假期管理:考勤項目錄入, 實現考勤信息的查詢、統計、匯總 4.人事報表管理:按照員工性別,數目,薪酬自動生成相關報表, 可自定義統計分析條件并可對歷史報表進行管理。
設計亮點
1.null布局方式
Swing圖形界面設計中有很多布局方式,通過本次學習了解到了FlowLayout,BorderLayout,GridLayout以及null布局,就這四種布局方式而言,null布局的優點在于可以將組建的位置精準到坐標值,可以把組件放到任意想放置的位置,另外可以通過null去設置組件的大小,相較于其他布局方式來說是一個很大的優勢。但同時它的缺點在于不能根據Frame的大小變化而改變位置。
2.組件部分屬性的設計
Swing中有很多方法是用來實現組件屬性設置的,比如button.setVisible(false);按鈕通過調用這個方法實現不可見,這是我此次課程設計中的一個亮點,因為組件是沒有設置大小的方法的,只有依靠于相應的布局方式才能改變它的大小,通過設置多幾個按鈕設為不可見,將所要可見按鈕實現大小以及位置的控制是一種很好的方法。
二、設計方案
1主界面(只列出界面設計方面的代碼)
JPanel panel=new JPanel();JTable table=null;JButton ibtn=new JButton(“員工信息”);JButton cbtn=new JButton(“考勤管理”);JButton mbtn=new JButton(“薪資管理”);JButton tbtn=new JButton(“人事報表”);ImageIcon rtou = new ImageIcon(“rentou.jpg”);
JLabel imgLabel=new JLabel(rtou);
//上面代碼定義了一個面板與四個標簽,并引入了一個圖片
panel.setLayout(new FlowLayout());//設置面板為流布局
panel.add(ibtn);panel.add(cbtn);panel.add(mbtn);panel.add(tbtn);panel.setBackground(Color.GRAY);
//將按鈕加到面板中,設置面板為灰色
this.add(imgLabel,BorderLayout.CENTER);this.add(panel,BorderLayout.SOUTH);this.setBounds(300, 180, 600, 350);this.setVisible(true);this.getContentPane().setBackground(Color.GRAY);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/*圖片標簽以邊框布局放置在中間,將面板也以邊框布局放置在下面,可見,灰色,點擊關閉程序*/
(2)查詢員工界面(只列出界面設計方面的代碼)
Label idlabel = new JLabel(“ID”);JLabel namelabel = new JLabel(“姓名”);JLabel bumenlabel = new JLabel(“部門”);JLabel zhiweilabel = new JLabel(“職位”);
JTextField idfiled = new JTextField(8);JTextField namefield = new JTextField(8);JComboBox bumenbox =new JComboBox();JComboBox zhiweubox = new JComboBox();
JButton btn=new JButton(“查詢”);JButton ibtn=new JButton(“添加”)
JPanel spanel=new JPanel();JPanel vpanel=new JPanel();
/*定義和各個組件,4個標簽,兩個文本框,兩個復選框,兩個按鈕,兩個面板容器*/ spanel.setLayout(new FlowLayout());
vpanel.setLayout(new FlowLayout(FlowLayout.CENTER,45,25));
bumenbox.addItem(“");
bumenbox.addItem(”管理部“);
bumenbox.addItem(”生產部“);
bumenbox.addItem(”業務部“);
zhiweubox.addItem(”“);
zhiweubox.addItem(”部長“);
zhiweubox.addItem(”副部長“);
zhiweubox.addItem(”普工“);
spanel.add(idlabel);
spanel.add(idfiled);
spanel.add(namelabel);
spanel.add(namefield);
spanel.add(bumenlabel);
spanel.add(bumenbox);
spanel.add(zhiweilabel);
spanel.add(zhiweubox);
spanel.add(btn);
vpanel.add(ibtn);
spanel.setBackground(Color.GRAY);
vpanel.setBackground(Color.GRAY);
//將各個組件放進對應面板,設置相關屬性
this.add(spanel,BorderLayout.NORTH);
this.add(vpanel,BorderLayout.SOUTH);
this.setBounds(300, 180, 600, 350);
this.setVisible(true);
this.getContentPane().setBackground(Color.GRAY);
//將面板以邊框布局放入框架中,設置屬性(3)增加員工信息界面
JPanel panel=new JPanel();
JLabel timeLabel=new JLabel(”時間“);JLabel allnumLabel=new JLabel(”員工總數“);
JLabel staffMoLabel=new JLabel(”考勤“);JLabel entryLabel=new JLabel(”全勤“);
JLabel quitLabel=new JLabel(”缺勤“);JLabel mwLabel=new JLabel(”性別比例“);
JLabel manLabel=new JLabel(”男“);
JLabel womanLabel=new JLabel(”女“);JLabel proportionLabel=new JLabel(”男女比例“);JLabel distributionLabel=new JLabel(”人員部門分布“);JLabel mdpLabel=new JLabel(”管理部“);
JLabel pdpLabel=new JLabel(”生產部“);JLabel bdpLabel=new JLabel(”業務部“);JLabel xmLabel=new JLabel(”項目“);JLabel xzLabel=new JLabel(”細則“);JLabel stLabel=new JLabel(”數據統計“);
JTextField timeFiled = new JTextField(8);
JTextField allnumFiled = new JTextField(8);JTextField entryFiled = new JTextField(8);JTextField quitFiled = new JTextField(8);JTextField manFiled = new JTextField(8);JTextField womanFiled = new JTextField(8);JTextField proportionFiled = new JTextField(8);JTextField mdpFiled = new JTextField(8);JTextField pdpFiled = new JTextField(8);JTextField bdpFiled = new JTextField(8);// 定義所需組件
public Selectrenshi(String tablename){
super(”人事管理“);
panel.setLayout(null);
panel.setBackground(Color.GRAY);
panel.add(xmLabel);
panel.add(xzLabel);
panel.add(stLabel);
panel.add(timeLabel);
panel.add(timeFiled);
panel.add(allnumLabel);
panel.add(allnumFiled);
panel.add(staffMoLabel);
panel.add(entryLabel);
panel.add(entryFiled);
panel.add(quitLabel);
panel.add(quitFiled);
panel.add(mwLabel);
panel.add(manLabel);
panel.add(manFiled);
panel.add(womanLabel);
panel.add(womanFiled);
panel.add(proportionLabel);
panel.add(proportionFiled);
panel.add(distributionLabel);
panel.add(mdpLabel);
panel.add(mdpFiled);
panel.add(pdpLabel);
panel.add(pdpFiled);
panel.add(bdpLabel);
panel.add(bdpFiled);
//將組件加到相應面板中
xmLabel.setBounds(120,20,100,30);
xzLabel.setBounds(240,20,100,30);
stLabel.setBounds(360,20,100,30);
timeLabel.setBounds(120,50,100,30);
timeFiled.setBounds(360,50,100,30);
allnumLabel.setBounds(120,100,100,30);
allnumFiled.setBounds(360,100,100,30);
staffMoLabel.setBounds(120,150,100,30);
entryLabel.setBounds(240,150,100,30);
entryFiled.setBounds(360,150,100,30);
quitLabel.setBounds(240,200,100,30);
quitFiled.setBounds(360,200,100,30);
mwLabel.setBounds(120,250,100,30);
manLabel.setBounds(240,250,100,30);
manFiled.setBounds(360,250,100,30);
womanLabel.setBounds(240,300,100,30);
womanFiled.setBounds(360,300,100,30);
proportionLabel.setBounds(240,350,100,30);
proportionFiled.setBounds(360,350,100,30);
distributionLabel.setBounds(120,400,100,30);
mdpLabel.setBounds(240,400,100,30);
mdpFiled.setBounds(360,400,100,30);
pdpLabel.setBounds(240,450,100,30);
pdpFiled.setBounds(360,450,100,30);
bdpLabel.setBounds(240,500,100,30);
bdpFiled.setBounds(360,500,100,30);
//采用null布局,設置組建坐標值
this.add(panel,BorderLayout.CENTER);
this.setBounds(300, 100, 600, 600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setBackground(Color.GRAY);
//將面板放入框架,設置相應屬性(4)員工考勤界面
JLabel idlabel = new JLabel(”ID“);JComboBox idbox =new JComboBox();CheckTable model = null;
JButton wbtn=new JButton(”修改“);
JButton cbtn=new JButton(”查詢“);JButton mbtn=new JButton(”創建薪資表“);JButton rbtn=new JButton(”創建人事表“);
JScrollPane scrollpane = null;JPanel spanel=new JPanel();JPanel vpanel=new JPanel();JTable table=null;spanel.add(idbox);panel.add(wbtn);spanel.add(cbtn);vpanel.add(mbtn);vpanel.add(rbtn);spanel.setBackground(Color.GRAY);vpanel.setBackground(Color.GRAY);this.add(spanel,BorderLayout.NORTH);this.add(vpanel,BorderLayout.SOUTH);this.setBounds(300, 180, 600, 350);this.setVisible(true);this.getContentPane().setBackground(Color.GRAY);
(5)選擇考勤表界面
JLabel checklabel = new JLabel(”選擇考勤表“);JLabel newlabel = new JLabel(”創建考勤表“);JComboBox timebox =new JComboBox();JTextField newfield = new JTextField();JButton btn=new JButton(”確認“);JButton nbtn=new JButton(”創建");JPanel spanel=new JPanel();spanel.add(checklabel);
spanel.add(timebox);
spanel.add(btn);
spanel.add(newlabel);
spanel.add(newfield);
spanel.add(nbtn);
checklabel.setBounds(30,90,100,30);
timebox.setBounds(180,90,100,30);
btn.setBounds(360,90,100,30);
newlabel.setBounds(30,200,100,30);
newfield.setBounds(180,200,100,30);
nbtn.setBounds(360,200,100,30);
this.add(spanel);
this.setBounds(300, 180, 600, 350);
this.setVisible(true);
三、結果和數據處理
四、結論
1.Swing圖形界面
圖形用戶界面(GUI)是程序不可或缺的一部分,它便于用戶和程序的交互。在Swing界面中是以Frame為框架,采用合理的布局方式(FlowLayout,BorderLayout,GridLayout,null),將Panel加入框架之中,而實現界面的各個組件將調用各種方法設置自身屬性實行可視化界面以及加入到面板之中。再通過事件監聽器實現事件的監聽預處理機制。
2.數據庫
在這次課程設計中哦我主要負責Swing圖像界面,對于數據庫只做了最簡單的了解。程序中采用了最流行的關系型數據庫mysql,雪化了mysql的建立,刪除,與修改以及使用sql語言對數據庫進行一些簡單的操作,將按鈕等設置的監聽事件與數據庫相連接。
五、問題與討論
1.組件的方法調用
在這次課程設計中,用到了很多的組件,例如Button,Jlabel,TextField,ComBox,等。Swing圖形界面也確實提供了很多方法去設置相關組件的屬性,例如label.setVisible(false);設置標簽不可見等很多方法,只要查看API文檔幾乎就能實現很多功能,但是對于按鈕等最常見的組件來說設置大小如果不依靠相關布局方式很難設置,我在程序中之所以運用了很多的bull布局方式就是為了實現組件大小的設置,如果說能有一個方法直接設置組件大小而不受其他組件或容器影響就能使代碼很簡潔了。2.相對布局
在編寫圖像界面的程序的時候,我用了很多的布局方式,有FlowLayout,BorderLayout,GrirLayout,null等,其中null布局用的最多。null布局的優點在于可以將組建的位置精準到坐標值,可以把組件放到任意想放置的位置,另外可以通過null去設置組件的大小,相較于其他布局方式來說是一個很大的優勢。但同時它的缺點在于不能根據Frame的大小變化而改變位置。其他三種布局方式雖然實現了歲Frame大小變動而改變組件大小及位置但是不容易控制,如果null布局能實現相對布局就是很好的一種布局方式了。
第五篇:java社會實踐報告
java社會實踐報告1
剛剛出校門找實習單位的時候總有這種或那種的想法,要找什么樣什么樣的單位,結果到頭來一個多月快過去了,還沒有找到實習單位,直到3月25號,青鳥的老師推薦我去未名信息科技開發有限公司參加面試,有筆試和面試,通過層層的技術考核,在我的努力下終于得到了面試人員的肯定,順利的加入了未名公司。員工聚餐那天張總的一些話讓我感觸深刻,他說在部門的時候先全面發展,等過段再看看自已精于哪個方面,然后向那個方向努力發展。我進入了軟件部,成為了一名程序員,一周的公司框架練習,我又加入了哈理工數字化建設的項目中,前期主要是實施,后期進行二次開發。剛開始覺的實施很簡單,熟悉了一周項目以后,只覺得人家的網站開發的真好,和同事們參加了幾次江蘇金智公司的培訓以后,我才發現原來不是那么回事,它這里主要是做數字化校園硬件建設、數字化校園基礎平臺、綜合數據應用系統、業務系統集成等等,簡單的說就是三大平臺,統一身份認證,實現全校信息整合以及全校數據資源共享。
來公司有一段時間了,我自己的感覺還有一些同事的介紹我感覺我們軟件部真是高手如云,那些開發人員都具有相當豐富的項目經驗,相信由他們的帶領,我這一次實習肯定會有很多的收獲。為其將近一周的學習,終于對三大平臺有了一定認識了,開始接觸oracle數據庫,學習sun公司開發的ODI工具,進行數據整合的時候把我弄得暈頭轉向,原來我們在學校學的那點技術其實基礎中基礎,不過接觸起來可能相對會比較容易上手一些。
通過和大家一段時間的相處,我深切地感受到,軟件部是一個團結、上進、充滿活力的集體。每天大家都是笑臉相迎,即使面臨很大的工作壓力,辦公室里仍然會聽到笑聲;面對客戶,大家總是熱情真誠;面對技術上的困難,大家總是互相幫助,直至解決難題。整個部門和睦相處,就像一個溫馨的大家庭。而部門領導就是這個家庭中的家長,給每個人很大的空間自由發揮。從他們身上,我真正體會到了敬人、敬業、高效、高水平服務的真實意義,體會到了服務部服務、奉獻的意義,體會到了創造完美、服務社會的服務理念,知道了什么是創新就是生活。特別令我感動的是,每當我遇到困難向大家求助時,誰都會無私的告訴我。
我很慶幸自己能在這樣有限的時間里,在這么和諧的氣氛中工作、學習,和同事們一起分享快樂,分擔工作。所以我努力向同事學習,不懂就問,認真完成領導和同事交給我的每一項工作。項目經理和同事也都盡力幫助我,給我講授一些經驗和開發的技巧。剛開始的時候有點手忙腳亂,不是這邊搞錯就是那邊忘了,都是同事幫我糾正。由于后來心態的調整和熟練了,慢慢地學得差不多了。每天早上7點左右踏著學校的廣播走出我呆了三年的校園,然后晚上6點左右又踏著哈理工的廣播走出校園,真是好懷念校園的生活,什么壓力也沒有,也不用每天花那么多時間在公交上。
來這個公司雖然才短短一個月,收獲挺多的,由對項目的一竅不通到現在對它的流程以及相關的技術都有所了解,也讓我深深體會到了溝通自學的重要性。所以我們每一步都有要集中注意力,爭取把每一步都做好。
最后感謝單位領導和部門領導以及同事對我的支持和幫助,我會繼續努力的。
java社會實踐報告2
一、實訓目的
通過對java語言、JavaWeb、金倉數據庫KingbaseES V6.1.1應用設計及SQL語言的復習和鍛煉,并且通過使用elipse 開發平臺設計庫存管理系統項目,以達到充分熟悉開發平臺及其應用設計。同時掌握并實踐軟件項目設計規范及其開發流程:需求分析、概要設計、詳細設計、代碼編寫、系統測試及軟件手冊編寫,以便提前適應軟件公司開發流程、環境和工作要求
二、實訓內容
1、公司管理規則,程序員素質,程序員編碼規范; 2、需求開發與管理;3、面向對象分析與設計,面向對象編程的特性; 4、javaSE、javaWeb 5、數據庫設計、SQL應用 6、軟件需求分析與設計 7、項目實戰
三、實習收獲總結
經過一周的實習培訓,讓我們收獲頗豐,作為即將步入工作崗位的大三學生,我們了解了企業項目的工作過程,為以后的實踐打下基礎,積累寶貴經驗。同時我們也初步掌握了金倉數據庫的功能和使用方法。通過對金倉數據庫KingbaseES數據庫的學習,掌握應用程序的部署:包括數據庫的設計、安裝數據庫、創建數據庫對象、數據導入等。加深理解了Tomcat的使用方法,包括中間件服務安裝及配置。
開始學習后也并非是想象中那樣順利,開始的學習讓我異常感到學習任務的艱巨,因為學習中我們遇到了很多以前未曾遇到的難點,有時難免冥思苦想也無濟于事,通過我們小組的積極努力協作,同時請教老師和其他同學,我們順利的化解了一道道的`障礙。
這讓我不斷的對學習技術又有了新的認識:學習中我們必須邊總結邊學習,開始階段對老師交代的任何方法和類都不要放過,不管是否簡單與否都要樂于地接受,因為老師肯定有他的道理,相信老師走過的路比我們長,那么其經驗也就肯定比我們豐富。上課時一定要專心聽講,一個關鍵的知識點聽漏了,可能會使一個人在課下花很多時間去消化,這樣也就會花掉做其他事情的大量時間,同時也使得學習不能和老師的講的課程同步,以至出現以后就跟不上老師講課的進度而掉隊。所以學習中我們寧可先勞其筋骨,苦其心志,餓其體膚,也不能掉隊跟不上學習進度。我克服了Java學習上的一道道難關,課上認真聽講,摘好必要的筆記,并通過自己課后的不斷消化學習,現在自己已經基本掌握了一定的java的基礎知識,并且能應用到相應的項目開發中,對項目開發的一些相關文檔也有了一定的了解,。
實訓即將結束,我非常感謝XX在我校的校內實訓,給我們一次親身實踐的機會同時給我們以后就的就業之路打下一定基礎,通過這次實訓也讓我更加的明白的團隊的重要性,要想做好一件事就要付出百分之百的努力,最后再一次感謝王老師教給我們新的知識以及在實訓中對我們的幫助。
java社會實踐報告3
剛剛出校門找實習單位的時候總有這種或那種的想法,要找什么樣什么樣的單位,結果到頭來一個多月快過去了,還沒有找到實習單位,直到3月25號,青鳥的老師推薦我去未名信息科技開發有限公司參加面試,有筆試和面試,通過層層的技術考核,在我的努力下終于得到了面試人員的肯定,順利的加入了未名公司。員工聚餐那天張總的一些話讓我感觸深刻,他說在部門的時候先全面發展,等過段再看看自已精于哪個方面,然后向那個方向努力發展。我進入了軟件部,成為了一名程序員,一周的公司框架練習,我又加入了哈理工數字化建設的項目中,前期主要是實施,后期進行二次開發。剛開始覺的實施很簡單,熟悉了一周項目以后,只覺得人家的網站開發的真好,和同事們參加了幾次江蘇金智公司的培訓以后,我才發現原來不是那么回事,它這里主要是做數字化校園硬件建設、數字化校園基礎平臺、綜合數據應用系統、業務系統集成等等,簡單的說就是三大平臺,統一身份認證,實現全校信息整合以及全校數據資源共享。
來公司有一段時間了,我自己的感覺還有一些同事的介紹我感覺我們軟件部真是高手如云,那些開發人員都具有相當豐富的項目經驗,相信由他們的帶領,我這一次實習肯定會有很多的收獲。為其將近一周的學習,終于對三大平臺有了一定認識了,開始接觸oracle數據庫,學習sun公司開發的ODI工具,進行數據整合的時候把我弄得暈頭轉向,原來我們在學校學的那點技術其實基礎中基礎,不過接觸起來可能相對會比較容易上手一些。
通過和大家一段時間的相處,我深切地感受到,軟件部是一個團結、上進、充滿活力的集體。每天大家都是笑臉相迎,即使面臨很大的工作壓力,辦公室里仍然會聽到笑聲;面對客戶,大家總是熱情真誠;面對技術上的困難,大家總是互相幫助,直至解決難題。整個部門和睦相處,就像一個溫馨的大家庭。而部門領導就是這個家庭中的家長,給每個人很大的空間自由發揮。從他們身上,我真正體會到了敬人、敬業、高效、高水平服務的真實意義,體會到了服務部服務、奉獻的意義,體會到了創造完美、服務社會的服務理念,知道了什么是創新就是生活。特別令我感動的是,每當我遇到困難向大家求助時,誰都會無私的告訴我。
我很慶幸自己能在這樣有限的時間里,在這么和諧的氣氛中工作、學習,和同事們一起分享快樂,分擔工作。所以我努力向同事學習,不懂就問,認真完成領導和同事交給我的每一項工作。項目經理和同事也都盡力幫助我,給我講授一些經驗和開發的技巧。剛開始的時候有點手忙腳亂,不是這邊搞錯就是那邊忘了,都是同事幫我糾正。由于后來心態的調整和熟練了,慢慢地學得差不多了。每天早上7點左右踏著學校的廣播走出我呆了三年的校園,然后晚上6點左右又踏著哈理工的廣播走出校園,真是好懷念校園的生活,什么壓力也沒有,也不用每天花那么多時間在公交上。來這個公司雖然才短短一個月,收獲挺多的,由對項目的一竅不通到現在對它的流程以及相關的技術都有所了解,也讓我深深體會到了溝通自學的重要性。所以我們每一步都有要集中注意力,爭取把每一步都做好。
實習,是開端也是結束。展現在自己面前的是一片任自己馳騁的沃土,也分明感受到了沉甸甸的責任。在今后的工作和生活中,我將繼續學習,深入實踐,不斷提升自我,努力創造業績,繼續創造更多的價值。
java社會實踐報告4
這個學期的最后兩周是學校安排的Java實訓課程,主要地點是在機房,這次我們任務是作一個網吧計費管理系統,該系統實現的功能主要有上下機管理,機器維護和管理,卡維護管理,登錄界面設計等,我們這次主要以組的形式分工合作的方式來完成這個項目,與此同時,我也很榮幸的擔當的一個項目組的組長,自然要做的東西要比普通同學要多一些!
那么在這次完成項目中,我們做了那些工作,有從中得到了那些經驗呢?
1. 任務分配
由于這次項目是團隊性的工作,所以在開工前我們一定要分配好任務,布置好環境,讓一些公用的東西統一起來,所以開工前的分配工作非常重要,雖然這僅僅是一個小的程序,但是卻能從中體驗出來我們的團隊合作性!
2. 我們的設計方案與測試心得
1).登錄功能:
登錄功能是一個程序的主入口,雖然從程序上來看并不是很復雜,但是確實一個程序的價值的最有力度的體現,雖然我們這個界面通過了老師的測試,但是,古人云:文好題一半,正是這個道理,所以必要的界面風格還是需要的,這讓我們知道,在以后的編程實際中,值最求質量的同時,審美觀還是要重視的,畢竟程序不是做給自己用的!
2) .上下機管理:
這是整個程序最難的部分,所以在編程前一定要
有充分的準備,我們專門設計了一個草圖,給出數據庫的具體定義形式,并嘗試用各種方案實現預期效果,最終選出最佳的參考設計方案!盡管如此,在測試中還是出現了許多的問題,比如下機中途出現下機失敗現象,導致測試不能很好的繼續進行,雖然我們之前已對此做出了大量的測試工作,但是也未能很好的發現代碼中的問題,這點讓我們真正了解到,學習一定要投入,編碼與測試也一樣,不能三心二意,測試的工作設置比編碼更為的重要!所以在以后的編程中一定要注意此類問題,一定要專心!
3).用戶管理:
該功能在測試順利通過,盡管如此,我們在最初設計時候產生過一個爭議的話題,要不要一個超級管理員?這個功能最要管理的對象是針對管理員的,與卡管理是不同的,所以這一點是非常重要的,更具測試用例上,這一點并沒有提及,但是從實際情況考慮,普通用戶不可以刪除和添加普通用戶的,這一個設計也并不是太難,當初的設想是,在建立用戶表時給出一個rype字段,專門存放用戶類型信息,該用戶登錄窗體時,檢索數據庫表中的type字段的值是否為管理員,如果是,添加用戶管理功能,否者不讓用戶管理在列表中顯示!但是由于某些原因,再后來設計的時候把他忘記了,通過這一點可以看出,在學習中要學會舉一反三,老師給的測試用例只不過是對我們功能的基本檢測,我們不能僅限于次,故我們一定要打開我們的思維,充分的發揮我們的想象,無論功能能否實現,最重要的是我們嘗試了!還有就是善于總結!
4).機器維護:
主要功能是添加機器,這個和添加用戶雷同,在這里不做闡述!
5).卡管理:
正如上面所說,與用戶管理不同的是,他們的管理對象是不同的,要突出說明的是:卡管理中需包含金額等信息,這將在統計管理,上下機管理中都有很大的用處,由于該功能是我親自完成,我會在下文中重點介紹,故這里不做闡述
6). 統計管理:
主要實現功能是統計某個時間段的總消費金額,總的上機時間等信息!在測試中發現了許多的問題,比如:時間輸入為20xx.12.32不符合日期的規范,這里沒有做出檢查,這點讓我們知道了在編程過程中定要認真的思考分析,在測試中仔細的檢查,同時也給了我們更深入地了解了編程的關鍵!
7).參數設計:
該功能主要是實現網吧計費所用到的費率問題而設計的。在測試中,我們發現了一點的錯誤,就是在輸入參數的時候發現小數輸入形式的驗證問題,這一點其實是我們的馬虎,因為在做卡管理時設計了一個方法是數字驗證的,卡號當然不能出現小數點,而在做統計管理設計和費率調整時,為了方便,就直接從方法中調用了該方法,從而沒有過多的去思考,這也是測試失敗的一個重要原因,所以我們編程過程中一定要注意好這個問題!
8).幫助設計:
幫助功能是一個程序的引導,所以其類容一定要符合程序本身的特征,我們測試中發現我們的幫助文檔其實和程序間還是存在一絲的偏差的!
3. 提交項目后的感想
現在,我們的項目已經提交了,并且基本通過了老師的大便要求,不管我們做的怎么樣,我們都應該能從中學到一些東西!
這次我所負責的任務主要是卡維護管理,該項目涉及到的知識及技術主要要求有使用Java技術開發,使用的數據庫(access,sqlserver)保存數據,集成開發環境使用可視化gui界面設計的主流工具(如eclipse等等)。開發應用Java語言,jdbc數據庫,使用集成開發工具的基本知識和技能!系統采用了c/s體系結構。
在之前,我由于機器原因沒有連接數據庫,而是直接在本機上寫好代碼段,然后在別人的機器上測試,所以在連接的時候出現了諸多的問題,還有就是這次是團隊性工作,由于大家都有數據連接的代碼,每個人都有自己的代碼段,這在做集成測試的時候并沒有帶來多大的麻煩,但是當我們需要修改代碼數據連接時,這么多的代碼段,一點一點的修改定時帶來的不變,所以我們后悔當時沒有做好相關工作,但是,后來我們還是一點一點的查找與修改,把這一點彌補了上來,最終實現了同一個類的調用,從而解決了這個問題,可是不管怎么說,最初做的還是有點欠缺,還有就是作為團隊性的工作,團隊間團結合作是最重要的,這也是小組項目能否順利完成的最最重要的因素!所以無論是自己的代碼還是調用別人的額方法,一定要在組內達到統一性,并且在實現各自的功能模塊時,不能各做各的,互相幫助是少不了的,沒有人的思維是絕對完善的,只有大家的智慧才是更具有價值性的!所以在這次團隊合作中,我們學到知識的同時,也學到了小組間的融洽關系與想好學習的好的風氣,這也是將來搞團隊性工作必不可少的!
4. 我在這次項目實訓中的個人想法和看法!
在這次項目實訓中,我獲得了許多知識,首先我更深刻的了解了Java語言的各功能的具體應用,最主要的是對可視化gui界面設計。這次我做的功能是卡的維護與管理,該應用的功能主要有,卡的添加,卡的修改,卡的信息查詢與卡的刪除等功能!在這次設計中我也發現了許多的問題,如在上兩次的心得中提到的:連接數據庫后對rs.getString(2)和rs.getDouble(5);方法只能調用一次,還有就是計算總金額和保留小數點后面的位數問題!我設計的時候基本都先把可能多次用到的功能塊定義成方法放在同一個類里面,然后在編寫時直接調用已定義好的方法,這樣的好處是如果要改變某個功能設計,就不需要全部改動代碼了,只要改變該方法就行了,但這樣做同時也帶來了一個缺點,就是該功能的靈活性不強,事實也證明了這一點,正如上面所說,在參數設計的時候,費率的輸入調用就產生了一定的問題,這也是我的一個舒服大意。
我的卡維護功能順利的通過了老師的測試,當然從這次實訓來看,我的卻學到了很多的東西,無論是在Java學習方面還是在團隊工作安排的方面都有了不菲的成績,這一點是不可否認的!但是Java的學習,不僅僅是學習概念等一些常識性的東西,如開發工具、數據類型、變量、接口、輸入輸出流等,最重要的還是要在學習中發現問題,學會分析異常,拋出異常,對程序運用,Gui界面設計和線程等等都要有深刻的了解。
通過這次實訓,我發現了許多問題,同時也獲得了更多的知識,當然最重要的是從中得到了更多的心得體會!雖然這個項目并不是很難,實訓的時間也僅僅只有兩個星期,但是這對于我個人來說也是對計算機編程語言有了進一步的認識。在實訓學習期間,我發現高深的東西還有很多很多,等待著我自己去發掘。對于JAVA語言,我會更加努力。
實訓只是我們學習Java的一個檢測自己的平臺,同時也是一個更好的自主學習的機會!我相信從中能得到很多的知識!
當然學知識不能僅憑自己的愛好和一時興趣,要一步一個腳印、認認真真、踏踏實實,理論與實踐相結合。