實驗3 常用類(2學時)
一、實驗目的
1. 熟悉Java中的String、StringBuffer、Math、包裝器類、Scanner類的使用方法。 2. 使用常用類解決一般性的應用問題。 3. 掌握JavaSE API文檔的使用方法。
二、實驗内容
1. 編寫一個Java應用程式。使用者從鍵盤輸入一個整數,程式将判斷這個數是幾位數并輸出其位數,并判斷這個數是否是回文數(是,則輸出“是回文數”,否則輸出“不是回文數”)。回文數是指将該數含有的數字逆序排列後得到的數和原數相同,例如121
21、3223都是回文數。要求:定義兩個方法,一個用于擷取一個整數的位數,一個用于傳回一個整數是否為回文數。
2. 編寫一個程式,由使用者從鍵盤輸入一個字元串,程式輸出該字元串中的大寫英文字母數,小寫英文字母數以及非英文字母數。(使用者鍵盤輸入用Scanner類實作)
3. 在安排教師監考時,需要從一組教師中随機選取n個教師參加監考。要求實作一個類RandomTeacher的靜态方法public static String[] getRandomTeachers(String[] teachers, int n),能夠從teachers中随機選擇n個教師(名字)并傳回。
4. 假設某餐館中每桌顧客點菜記錄的格式為“北京烤鴨:189 西芹百合:15 清蒸鲈魚:80”。編寫一個類的方法,能夠根據點菜内容對應的字元串輸出點菜記錄中每種菜的價格以及總的價格。
5. 編寫一個方法,傳回一個double型的二維數組,數組中的元素通過解析字元串參數獲得。例如,字元串參數:“1,2;3,4,5;6,7,8”,對應的數組為:
d[0,0] = 1.0 d[0,1] = 2.0
d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0
d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0
三、實驗要求
完成程式設計并送出代碼。
項目一
Java語言基礎
一、實驗學習目标
1.熟悉Java開發環境
2.了解和掌握Java的基本資料類型和基本運算
3.掌握Java語言的條件控制語句,循環語句以及轉向語句。 4.了解和掌握數組的基本内容(包括數組聲明,初始化,複制等)。 5.掌握多元數組的定義和使用。
二、實驗裝置
PC
三、實驗内容
(1) 正常測試。即兩個類沒有任何package和import。 (2) 将被調用類加載命名空間,并編譯主類。(以聯編方式) 被調用類存在于正确的命名空間下
被調用類同時存在于正确的命名空間下和與主目錄平行的位置 被調用類的命名空間相對路徑存在于與主目錄不平行的位置。 以不同的classpath順序進行編譯運作。 (3) 配置好相應目錄結構和Java源檔案
在主類中import不同包下的同名類 移去與主類平行的類
在import中指明被調用類或在主類中指明被調用類的命名空間 在主類中import與主類不平行的命名空間。
四、實驗原理
(1) (2) (3) (4) (5) (6) (7)
生成classpath清單
生成類引用表和相對類引用表
引用的類是否使用全名,是則轉向(4),否則轉向(5)
将類全名與classpath清單比對,找到第一個則進行編譯,否則報錯。 将無命名空間類與classpath清單比對,找到則進行編譯,否則轉向(6) 是否在類引用表中用同名類,是則轉向(7),否則轉向(8)
有幾個同名類,一個的話,根據classpath清單和類引用表進行比對,找到第一個符合條件的類進行編譯。一個以上則報錯。
(8) 根據classpath清單和相對類引用表進行比對,看能否找到對應的類。找到一個則
編譯,沒有或者一個以上不同包的同名類則報錯
五、實驗步驟
1.安裝好JDK 5.0後,如果想在系統的任意目錄下編譯和運作編寫好的Java程式,需要先設定環境變量。本實驗将在Windows系統下的環境變量中設定JDK運作路徑( 以使用安裝程式的預設路徑:C:\Program Files\Java\ jdk1.5.0_06為例)。
(1)滑鼠右鍵單擊“我的電腦”,選擇“屬性”,在彈出對話框中選擇“進階”下的“環境變量”,如圖1.1所示。
(2)在“系統變量”中選擇Path,單擊“編輯”按鈕,如圖1.2所示,在彈出對話框中的“變量值”文本框中添加;C:\Program Files\Java\jdk1.5.0_06\bin (如果前一個變量值後已有“;”則将路徑資訊加入即可),單擊“确定”按鈕,如圖1.3所示。
圖1.1
圖1.2
圖1.3 (3)在“環境變量”對話框中單擊“建立”按鈕,如圖1.4所示,在彈出對話框中的“變量名”後輸入java_home,“變量值”後輸入C:\Program Files\Java\jdk1.5.0_06,單擊“确定”按鈕,如圖1.5所示。
圖1.4 (4)在“環境變量”下單擊“建立”按鈕,在彈出對話框中的“變量名”後輸入classpath,在“變量值”後輸入C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar;C:\Program Files\Java\ jdk1.5.0_06\jre\lib\rt.jar; .;,單擊“确定”按鈕,如圖1.6所示。
圖1.5 圖1.6
至此環境變量設定完畢, 可以通過在DOS環境下直接鍵入javac指令按回車來檢查環境變量設定是否成功,如果設定成功則可看到如圖1.7所示結果。
圖1.7 在以後需要通過DOS指令直接編譯和執行Java程式時,隻需進入Java程式所在的存放目錄,通過javac和Java指令編譯和執行相應程式。
運作結果如下:
情況一
:
情況二:
情況三:
情況四:
情況五:
情況六:
情況七:
情況八:
情況九:
六、實驗小結:
總的來說呢,這次做實驗就輕松了很多,做起來比以前熟悉了,但是小錯誤也是難免的,不過很多時候path就解決了。
1、 實驗一:多線程程式設計:炮打飛機
實驗目的:學會使用多線程進行并發程式設計
實驗内容:編寫一個應用程式模拟大炮打飛機。在GUI界面上,飛機水準飛行,用界面上的按鈕控制大炮的運作方向(如向左,向右,向上,向下)。當炮彈碰着飛機後,飛機墜落。
2、 實驗二:資料庫程式設計:書目資訊管理
實驗目的:掌握資料庫程式設計技術。能正确連接配接資料庫,能對資料庫中資訊進行查詢、插
入、删除、修改。
實驗内容:在資料庫中建立一張書目資訊表,包括書名、作者、出版社、出版日期、書
号、價格字段。設計一個GUI界面進行書目管理。在該界面上有四個頁籤,分别是查詢、插入、删除、修改。點選查詢頁籤,出現的界面上有書名、作者、出版社、書号四個文本框,一個按鈕和一個隻讀文本區。文本框内容可以為空,輸入相應的查詢資訊後(例如根據書名查詢可以僅輸入書名),點選界面上的“查詢”按鈕,可以在界面下方的文本區中顯示出符合條件的書目詳細資訊。點選插入頁籤,出現的界面上有書名、作者、出版社、出版日期、書号、價格文本框,一個按鈕。在文本框中輸入資訊後,點選“插入”按鈕,該書目資訊插入資料庫表中。點選删除頁籤,出現的界面上有書名文本框和一個按鈕,輸入書名後點選“删除”按鈕,該書目資訊從資料庫表中删除。點選修改頁籤,出現的界面上有書名、作者、出版社、出版日期、書号、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯資訊。輸入資訊後,點選“修改”按鈕,資料庫表中的相應書目資訊被修改為新值。
3、 實驗三:Applet程式設計:鴨子的移動
實驗目的:掌握Applet程式設計的方法,學會在Applet中繪制圖檔,能采用雙緩沖技術進行圖檔繪制,會在Applet中采用多線程進行動畫顯示。能在Applet中實作動畫的平滑顯示,避免閃爍現象。
實驗内容:在Applet視窗中顯示一隻鴨子圖檔,要求這隻鴨子以每秒100幀的速率水準移動,移到視窗邊界再傳回移動。在視窗中點選滑鼠,鴨子停止移動;再次點選滑鼠,鴨子恢複移動。
4、 實驗四:網絡程式設計:聊天室的實作
實驗目的:會編寫用戶端和伺服器程式實作C/S模式下的通信,會使用多線程進行網絡程式設計。
實驗内容:編寫一個聊天室程式:用戶端界面請自行設計,可使其具有個性化特征; 可在實作基本的聊天室功能的基礎上添加個性化的功能。
學 生 實 驗 報 告 冊
2013——2014學年第1學期
項目名稱: Java Web 學院: 信電
班級:
11計算機科學與技術一班 學号: 155140007 姓名: 伍振東 指導教師: 李竹林 完成時間: 2013/9/28
一、實驗要求
1.用HTML語言編寫如下樣式的網頁
2.可以用Dreamweaver,推薦手動編寫HTML帶代碼
3. 圖檔從清華大學的網站自己取得。 http://www.xiexiebang.com">

實驗五
一、 實驗内容:
從鍵盤上輸入一行字元串。
①将字元按Unicode字典順序排序後輸出。 ②統計每個字元出現的次數和位置。 ③統計含有的單詞個數。 ④正向和反向輸出單詞。
二、 算法思路:
要完成任務①:使用StringTokenizer類的countTokens( )方法和nextToken(),将單詞存儲到String a[ ]數組中,再定義一個空的String b[ ] , 用來存放比較大小後的單詞。
要完成任務③:使用StringTokenizer類中的countTokens( )方法。
要完成任務②:定義charArray[i ]存放字元
intArray[ i]出現字元的次數 addr[i][ ]用來存放出現字元的位置
要完成任務④:可以通過之前定義存儲的String a[ ]和相關簡單算法,輸出正向和反向的單詞。
三、 實驗結果:
四、 程式代碼: import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class TokenTest extends JFrame{
private JLabel promptLabel;
private JTextField inputField;
private JTextArea outputArea;
public TokenTest(){
super("字元串");
Container container=getContentPane();
container.setLayout(new FlowLayout());
promptLabel=new JLabel("輸入一個句子,然後按Enter鍵");
container.add(promptLabel);
inputField=new JTextField(20);
inputField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
StringTokenizer tokens=new StringTokenizer(event.getActionCommand());
int num=100;
int n=0;
num=tokens.countTokens();
String a[]=new String[num];
String b[]=new String[num];
while(tokens.hasMoreTokens())
{
a[n++]=tokens.nextToken();
}
n=0;
int m=0;
while(m{
for(int i=0;i<=n;i++)
{
if(i==n)
b[i]=a[m];
else if(a[m].compareToIgnoreCase(b[i])<0)
{
for(int j=n;j>i;j--)
b[j]=b[j-1];
b[i]=a[m];
break;
}
}
m++;
n++;
}
outputArea.setText("按Unicode字典順序排序後輸出:\n");
for(int i=0;ioutputArea.append(b[i]+" ");
outputArea.append("\n\n單詞個數:"+num);
String buffer=inputField.getText();
char charArray[]=new char[26];
int intArray[]=new int[26];
int addr[][]=new int[26][26];
n=0;
for(int i=0;i{
for(int j=0;j<=n;j++)
{
if(j==n)
{
charArray[j]=buffer.charAt(i);
intArray[j]++;
addr[j][intArray[j]-1]=i;
}
else if(buffer.charAt(i)==' ')
{n--;break;}
else if(buffer.charAt(i)==charArray[j])
{
intArray[j]++;
addr[j][intArray[j]-1]=i;
n--;
break;
}
}
n++;
}
置:");
});
}
outputArea.append("\n\n統計每個字元出現的次數和位置\n"); for(int i=0;ioutputArea.append(charArray[i]+" 次數:"+intArray[i]+" 位
for(int j=0;j{
outputArea.append(addr[i][j]+" ");
}
outputArea.append("\n"); }
String s="\n";
outputArea.append("\n單詞正向輸出:\n");
for(int i=0;ioutputArea.append(a[i]+" ");
outputArea.append("\n\n單詞反向輸出:");
for(int i=0;i{
for(int count=a[i].length()-1;count>=0;count--)
{
s+=a[i].charAt(count);
}
s+=" ";
}
outputArea.append(s); }
container.add(inputField); outputArea=new JTextArea(20,40); outputArea.setEditable(false); container.add(new JScrollPane(outputArea)); setSize(500,500); setVisible(true);
public static void main(String[] args) {
TokenTest application=new TokenTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }
五、 心得體會:
這個程式,應該是我目前所花時間最長編寫出來的程式,從草稿紙上醞釀出算法,到最後在計算機上成功運作,花了3個晚上的時間,其中有一天晚上,本人忘我程式設計到淩晨12:30,當中遇到了很多出乎意料的問題,但是在遇到問題時,我積極思考,反複調試,程式設計開始階段,程式一直異常跳出,我也花了挺多時間找錯誤,也花了不少時間檢驗算法的嚴密性。程式中用紅筆标注的,是我花時間最長的地方,也是本程式的難點和要點。通過這次程式,我很好地深入鑽研了StringTokenizer類的用法,原來使用其對象countTokens()方法和hasMoreTokens()方法一次之後,再次調用這些方法,countTokens()傳回值是0;hasMoreTokens()傳回null。正是由于自己一開始對StringTokenizer類用法的不了解,我才在一開始程式中,異想天開的多次使用了countTokens()方法和hasMoreTokens()方法,導緻程式無法達到我的要求,是以我經曆了漫長而艱辛的調試過程後,我才寫出了本程式,但我覺得,通過這種程式的錘煉,自己的變成能力會有很顯著的提升。
下載下傳Java實驗3.doc
将本文檔下載下傳到自己電腦,友善修改和收藏,請勿使用迅雷等下載下傳。
點此處下載下傳文檔
文檔為doc格式
網址:https://www.xiexiebang.com/a1/201905122/aff693cc5c7a2644.html
聲明:本文内容由網際網路使用者自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的内容,歡迎發送郵件至:[email protected] 進行舉報,并提供相關證據,從業人員會在5個工作日内聯系你,一經查實,本站将立刻删除涉嫌侵權内容。
相關範文推薦
河北北方學院資訊科學與工程學院 《Java程式設計》 實 驗 報 告 實驗學期 2014 至 2015 學年 第 2 學期 學生所在系部 資訊科學與工程學院 年級 2012 專業班級 電子三班 學......
學 生 實 驗 報 告 冊 (理工類) 課程名稱:面向對象程式設計 專業班級:16計算機科學與技術(專轉本) 學生學号: 1613203022 學生姓名: 張義丹 所屬院部: 計算機工程 指導教師: 劉 晶 2......
《Java簡易聊天室》 實驗目的:實作簡單的客服端與服務端通訊,進一步鞏固,加深對Java語言基礎知識的了解,将理論與實際相結合。 實驗要求:能互相之間發送消息,并進行簡單的異常處理......
實驗報告一、 實驗目的
鞏固複習課上所講内容,進一步熟悉面向對象程式設計。
二、 實驗内容
編寫程式求點到原點的距離三、 程式清單及運作結果
abstractclass Distance
{
abstra......
學 生 實 驗 報 告 課程名稱: 學生學号: 所屬院部: (理工類) J2EE程式設計 專業班級: 學生姓名: 資訊技術學院 指導教師: 20 13 ——20 14 學年 第 2 學期 金陵科技學院教務處制......
實驗報告_實驗4 常用類(學生學号_姓名) 一、實驗目的 1.掌握String類的基本構造方法和常用方法的使用; 2.熟悉StringBuffer類的追加、插入、查找、替換、删除等操作; 3.熟悉Math......
北京聯合大學 資訊學院 “面向對象程式設計”課 程上機實驗報告題 目: java上機實驗心得體會姓名(學号):專 業: 計算機科學與技術編 制 時 間: 2012年12月19日版 本: 1.0.0 指......
實驗一、簡單Java程式設計 一、實驗目的 1. 學習使用JCreator開發JAVA代碼。 2. 了解JAVA的運作環境,掌握開發JAVA代碼所需要的相關配置。 3. 在JCreator中輸入習題程式,驗證程式......