第一篇:河南工業(yè)大學(xué)java實驗四
Henan University of Technology Experiment’s Report
班級
計科1201
姓名:
學(xué)號
201216010506
成績
實驗4—— Java的輸入機制
I 實驗?zāi)康?/p>
(1).Java如何操作文件
(2).了解Java中的輸入機制;如何從控制臺輸入,如何用InputStream和Reader顯示文件中的內(nèi)容。II 實驗內(nèi)容
(1).遞歸遍歷目錄,顯示其中的文件名。
a.源代碼
b.package com.fileTest;c.d.import java.io.File;e.f.public class BianLi { // 遍歷目錄,顯示文件的名字 g.h./** i.* @param args j.*/
k.public static void main(String[] args){ l.m.File f = new File(“D:/360安全瀏覽器下載”);//創(chuàng)建一個File對象 n.listChids(f);//調(diào)用 一個列出目錄的方法 o.p.} q.r.s.t.public static void listChids(File f){ u.v.System.out.println(f.getName());w.x.if(!f.isDirectory()){ //如果 不是目錄,退出
y.z.return;aa.}else{
Henan University of Technology Experiment’s Report
bb.cc.File[] fs = f.listFiles();dd.for(int i=0;i (2).用InputStream的子類讀入一個英文文本文件,并用System.out顯示其中的內(nèi)容。 a.源代碼 b.package com.fileTest;c.d.import java.io.*;e.f.public class Fileinput { g.h./** i.* @param args j.*/ k.public static void main(String[] args)throws IOException l.{ m.o.p.q.r.s.} t.// TODO Auto-generated method stub String file = “src/abc.java”;// 英文本文件 Fileinput d = new Fileinput();//實列化對象 d.readFile(file);// 調(diào)用readFile 方法 n.Henan University of Technology Experiment’s Report u.public void readFile(String fileName)throws IOException{ v.w.x.y.z.aa.bb.cc.dd.ee.ff.gg.hh.ii.jj.kk.ll.mm.nn.} oo.pp.} InputStream in = new FileInputStream(fileName);// 創(chuàng)建字節(jié)流對象 // TODO Auto-generated method stub try{ } int b = 0;while(true){ } if(in!=null)in.close();//關(guān)閉流 b = in.read();//得到內(nèi)容判斷是否結(jié)束 if(b==-1) break;System.out.print((char)b);// 得到內(nèi)容進行處理,轉(zhuǎn)換成字符型 輸出 }finally{ qq.運行截圖 rr.(3).用Reader的子類讀入一個字符文件,并用System.out顯示其中的內(nèi)容。1源代碼 package com.fileTest; import java.io.*; Henan University of Technology Experiment’s Report public class FileReaderBy { } public void readFile(String filename)throws IOException { } // TODO Auto-generated method stub BufferedReader b = null;try{ String line = null;//得到內(nèi)容并判斷是否到流的末尾 b =new BufferedReader(new FileReader(filename),8*1024);/** * @param args * @throws IOException * */ public static void main(String[] args)throws IOException { } // TODO Auto-generated method stub FileReaderBy a = new FileReaderBy();//創(chuàng)建一個對象 a.readFile(“src/fly.txt”);//調(diào)用方法讀入字符文件 while((line = b.readLine())!=null){ //得到的內(nèi)容進行處理 System.out.println(line);// 輸出結(jié)果 } } finally { } if(b!=null)b.close();//關(guān)閉流 運行截圖 Henan University of Technology Experiment’s Report (4).從控制臺輸入Student類的信息,包括學(xué)號、姓名、年齡,如輸入錯誤,提示用戶重新輸入。創(chuàng)建該類,并在toString方法中輸入個人信息。1源 package FileInput; import com.java.ErrorException; public class Students { // 學(xué)號 private long num;//姓名 private String name;//年齡 private int age;public Students(){ } public void setId(long num){ this.num = num;} public void setName(String name){ } public void setAge(int age)throws ErrorException { if(age<0||age>120)this.age= age;this.name = name; throw new ErrorException(); Henan University of Technology Experiment’s Report } } @ Override public String toString(){ } return num+“ ”+name+“ ”+age;//返回個人信息 代碼 public class ByScanner { /** * @param args */ public static void main(String[] args){ // TODO Auto-generated method stub Students s = new Students();Scanner sc = new Scanner(System.in);int id =0;String name=null;;int age =0;String len = null; while(true){ try{ System.out.println(“請輸入學(xué)號”);len= sc.nextLine();id = Integer.parseInt(len); s.setId(id);break;} catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again!”); } } while(true){ try{ System.out.println(“請輸入姓名”);name = sc.next();s.setName(name);break; Henan University of Technology Experiment’s Report } catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again”);} } while(true){ try{ System.out.println(“請輸入年齡”); age = sc.nextInt();s.setAge(age);break;} catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again”);} } System.out.println(“該學(xué)生的信息為:”+ s.toString()); } } 運行截圖 (5).增加(1)中的功能,顯示文件的大小,目錄的話顯示其中包括的所有文件的大小。注意顯示文件大小的單位(KB或MB)。 a.源代碼 b.package filebianli;c.Henan University of Technology Experiment’s Report d.e.import java.text.DecimalFormat;f.import java.io.*;g.public class Bianli h.{ i.public long getFileSizes(File f)throws Exception{//取得文件大小 j.long s=0;k.if(f.exists()){ l.FileInputStream fis= new FileInputStream(f);m.s= fis.available();n.} else { o.f.createNewFile();p.System.out.println(“文件不存在”);q.} r.return s;s.} t.// 遞歸 u.public long getFileSize(File f)throws Exception//取得文件夾大小 v.{ w.long size = 0;x.File flist[] = f.listFiles();y.for(int i = 0;i < flist.length;i++)z.{ aa.if(flist[i].isDirectory())bb.{ cc.size = size + getFileSize(flist[i]);dd.} else ee.{ ff.size = size + flist[i].length();gg.} hh.} ii.return size;jj.} kk.public String FormetFileSize(long fileS){//轉(zhuǎn)換文件大小 ll.DecimalFormat df = new DecimalFormat(“#.00”);mm.String fileSizeString = “";nn.if(fileS < 1024){ oo.fileSizeString = df.format((double)fileS)+ ”B“;pp.} else if(fileS < 1048576){ qq.fileSizeString = df.format((double)fileS / 1024)+ ”K“;rr.} else if(fileS < 1073741824){ ss.fileSizeString = df.format((double)fileS / 1048576)+ ”M“;tt.} else { uu.fileSizeString = df.format((double)fileS / 1073741824)+ Henan University of Technology Experiment’s Report ”G“;vv.} ww.return fileSizeString;xx.} yy.zz.public long getlist(File f){//歸求取目錄文件個數(shù) aaa.bbb.ccc.ddd.eee.fff.ggg.hhh.iii.jjj.kkk.lll.mmm.nnn.ooo.ppp.qqq.rrr.sss.ttt.uuu.vvv.www.xxx.yyy.zzz.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.System.out.println(f.getName());long size = 0;File flist[] = f.listFiles();size=flist.length;for(int i = 0;i < flist.length;i++){ if(flist[i].isDirectory()){ size = size + getlist(flist[i]);size--;} } return size;} public static void main(String args[]){ Bianli g = new Bianli();try { long l = 0; File f = new File(”D:/360安全瀏覽器下載“);if(f.isDirectory()){ //如果路徑是文件夾的時候 System.out.println(”文件個數(shù) “ + System.out.println(”目錄“);l = g.getFileSize(f);System.out.println(”目錄的大小為:“ + } else { System.out.println(” 文件個數(shù) 1“);System.out.println(”文件“);l = g.getFileSizes(f);System.out.println(”文件的大小為:“ + } g.getlist(f));g.FormetFileSize(l));g.FormetFileSize(l)); Henan University of Technology Experiment’s Report jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp.qqqq.} catch(Exception e){ e.printStackTrace();} } } rrrr.運行截圖 ssss.tttt.III 在本次實驗中的問題和解決方法 那個第四題 當輸入學(xué)號如果是0開頭,那輸出結(jié)果就會被舍棄因為不是一個數(shù),如果非要輸入0開頭的學(xué)號,還沒找到解決的辦法,解決了那個輸學(xué)號空格問題,解決年齡超過一定數(shù)和負數(shù)問題,文件顯示大小出現(xiàn)的問題,看了下博客園的寫的。IV心得體會 Java 博大進深,不懂的很多的,繼續(xù)努力學(xué)習(xí)吧 #include int stepLength = 0; Henan University of Technology Experiment’s Report int j = 0; while(arv[1][j]!= 0){ stepLength = stepLength * 10 +(arv[1][j]timeStart));free(arr);return 0;} double wtime(void){ double now_time;struct timeval etstart;struct timezone tzp;if(gettimeofday(&etstart , &tzp)==-1){ perror(”not successful!n"); } now_time =((double)etstart.tv_sec)+((double)etstart.tv_usec)/1000000;return now_time;} 外語學(xué)院 (一)學(xué)院簡介 學(xué)院擁有專任教師94人,其中碩士生導(dǎo)師8人,教授及副教授40人;博士及在讀博士18人,具有碩士學(xué)位教師74人,具有博士學(xué)位教師6人。專人教師中30多人次曾到英國、美國、澳大利亞等國外著名大學(xué)的進行訪學(xué)或培訓(xùn)。常年聘有5-6名英、美、日等國的外籍教師。學(xué)院積極探索教學(xué)內(nèi)容、手段和方法的改革,教學(xué)水平不斷提高,近3年來共有9人次獲得省級教學(xué)技能大獎賽,先后有15位教師榮獲“河南省教學(xué)技能大賽” 一、二等獎,3位教師為河南省教育廳學(xué)術(shù)技術(shù)帶頭人,1位教師學(xué)獲“河南省教學(xué)標兵”,3人獲校級教學(xué)標兵。22人次獲河南工業(yè)大學(xué)教學(xué)大獎賽一、二等獎。 學(xué)院承擔英語、日語專業(yè)研究生和本科生教學(xué),還承擔著全校研究生英語、本專科生的公共英語、英語雙學(xué)位及全校第二外語日語和俄語的教學(xué)任務(wù)。 英語專業(yè)于1996年開設(shè),是河南省工科院校中最早開設(shè)本專業(yè)的學(xué)校之一。2005年增設(shè)口譯方向,2010年增設(shè)筆譯方向。2007年招收外國語言及應(yīng)用語言學(xué)二級學(xué)科碩士研究生,2011年招收外國語言文學(xué)一級學(xué)科碩士點碩士研究生。目前學(xué)院招收2個本科專業(yè):英語專業(yè)、日語專業(yè)。 學(xué)院資料室專業(yè)書籍和音像資料豐富,教學(xué)設(shè)備先進,擁有同聲傳譯及多媒體語言實驗室達26個。設(shè)有翻譯及語言測試研究所、中國政法大學(xué)法律英語教學(xué)與測試研究中心河南工業(yè)大學(xué)分中心等科研機構(gòu)。 (二)招生專業(yè) 英語專業(yè)(文史 四年制本科)培養(yǎng)目標: 英語專業(yè)培養(yǎng)具有自主學(xué)習(xí)能力和跨文化交際能力,能在外事、經(jīng)貿(mào)、文化、新聞出版、教育、科研、旅游等領(lǐng)域從事翻譯、研究、教學(xué)、管理工作的高素質(zhì) 德才兼?zhèn)涞膽?yīng)用型人才。本專業(yè)的學(xué)生具備扎實的英語基礎(chǔ)、嫻熟的英語語言技能與較強的文化意識,同時具備相關(guān)專業(yè)的基本知識和技能。 培養(yǎng)模式與特色: 為了適應(yīng)現(xiàn)代化建設(shè)和改革開放對人才的要求,英語專業(yè)以語言加專業(yè)為辦學(xué)特色,采用“英語+經(jīng)貿(mào)”、“英語+翻譯”培養(yǎng)模式。其中,翻譯方向分為口譯和筆譯,入校第四學(xué)期期末,經(jīng)測試后劃分具體方向。 本專業(yè)人才培養(yǎng)模式以“國際導(dǎo)向、應(yīng)用為主”為定位,以學(xué)生綜合能力培養(yǎng)為基點,以英語應(yīng)用能力培養(yǎng)為主線,以外語專業(yè)技能知識為主體,重點培養(yǎng)學(xué)生GPC能力:通用能力(General ability、專業(yè)能力(particular ability)和核心能力(Core ability),構(gòu)建知識和技能貫通的有機整體,形成脈絡(luò)清晰的專業(yè)課程模塊,最大限度保證學(xué)生知識和能力的循序形成和鞏固拓展,進階發(fā)展。 專業(yè)方向 英語專業(yè)(經(jīng)貿(mào)方向): 本專業(yè)旨在培養(yǎng)適應(yīng)經(jīng)濟建設(shè)需要既懂外語又懂經(jīng)貿(mào)知識的厚基礎(chǔ)、寬口徑的應(yīng)用型人才,使學(xué)生具有堅實的英語語言基礎(chǔ)和熟練的聽、說、讀、寫、譯的能力,掌握經(jīng)貿(mào)基礎(chǔ)理論,既能繼續(xù)深造又能在畢業(yè)后迅速適應(yīng)工作。 英語專業(yè)(翻譯方向): 翻譯方向分口譯和筆譯。 通過講授口譯基本理論、口譯背景知識、口譯基本技巧、相關(guān)口譯知識以及對學(xué)生進行同傳入門基本訓(xùn)練,結(jié)合口譯實踐,使學(xué)生掌握口譯的基本理論、專題連續(xù)傳譯的技能以及同傳基本技巧,學(xué)會口譯記憶方法、口頭概述,以及口譯應(yīng)對策略,提高學(xué)生的邏輯思維能力、話語分析能力、語言組織能力和雙語表達能力。使學(xué)生能就重大題材進行準確、流暢的交替?zhèn)髯g以及一般外事活動的同聲傳譯。 通過講授翻譯基本理論,英漢翻譯技巧、漢英翻譯技巧、文學(xué)翻譯、商務(wù)筆譯、科技翻譯等,培養(yǎng)具有扎實的語言基礎(chǔ),廣博的文化知識,嫻熟的筆譯技能,能夠勝任外事、商貿(mào)、科技、文化、教育等單位翻譯工作的高素質(zhì)應(yīng)用型人才。 日語專業(yè)(文史 四年制本科)培養(yǎng)目標: 在提高學(xué)生日語語言文學(xué)修養(yǎng)的同時,培養(yǎng)具有扎實語言功底、掌握廣博中日社會文化知識、具備較強跨文化交際能力,能在外事、經(jīng)貿(mào)、文化、新聞出版、教育、旅游等部門從事翻譯、研究、教學(xué)、管理工作的高素質(zhì)應(yīng)用型日語專門人才。 培養(yǎng)模式與特色: 實行“學(xué)程分段、分類培養(yǎng)”的培養(yǎng)模式。在第一階段(第一、二學(xué)年)淡化專業(yè),主要開設(shè)通識基礎(chǔ)課程、學(xué)科專業(yè)基礎(chǔ)課程,在第二階段(第三、四學(xué)年)主要開設(shè)專業(yè)主干課程、專業(yè)特色課程、公共任選課程和實踐教育課程,使專業(yè)教育得到延伸和拓展,提高學(xué)生的專業(yè)技能,滿足學(xué)生的興趣和愛好,促進學(xué)生個性發(fā)展。 為適應(yīng)市場需求,提高學(xué)生就業(yè)能力,開設(shè)翻譯理論與實踐、日語商務(wù)貿(mào)易口譯、日語會議口譯等課程。同時對于日語口語等實用性較強的課程,打破傳統(tǒng),實行“分子班”等超小規(guī)模的教學(xué)模式,模擬真實現(xiàn)場環(huán)境,分級授課,提高學(xué)生實際應(yīng)用能力。 (三)學(xué)生學(xué)習(xí)與培養(yǎng) 我院重視學(xué)生第二課堂教育,組織豐富多彩課外的活動。學(xué)院品牌項目:英語文化節(jié),包含有英文演講比賽、英文歌曲比賽、英語話劇比賽、世界文化巡禮、英文電影展播等,學(xué)院還組織周末文化廣場、假面舞會、圣誕晚會、迎新晚會、新生文化節(jié)、趣味運動會等活動;我院學(xué)生在各類英語競賽中取得優(yōu)異成績,朱斐曾獲得 “CCTV杯全國英語演講比賽”河南賽區(qū)一等獎;陳一浩獲得“21世紀聯(lián)想杯”全國英語演講比賽二等獎,馬暢獲得第三屆“新東方·托業(yè)杯”英語口語大賽華中區(qū)二等獎,吳亞樂等獲賽扶世界杯中國站創(chuàng)新公益大賽全國總決賽三等獎等。 學(xué)院重視學(xué)生寒暑假社會實踐活動和專業(yè)實踐。假期遵循重點組隊與分散實踐相結(jié)合的原則,精心策劃,突出重點,講究實效。以“社會調(diào)查型、義工志愿型、學(xué)以致用型”等幾方面開展暑期社會實踐活動。根據(jù)大 一、大 二、大三年級不同的特點按要求分別實踐。其中大一學(xué)生主要是了解和認識社會。大二學(xué)生主要是體驗社會生活,大三利用所學(xué)專業(yè)開展職業(yè)實踐。我院組織開展“七彩太陽照亮孩子“灰暗”的心靈”、“了解牛奶加工制作,宣傳牛奶安全知識調(diào)查”、“中原經(jīng)濟區(qū)調(diào)研”、“和諧大移民,無限黨恩情”等社會實踐活動,多項活動得到了媒體、電視臺的報道。同時學(xué)院積極為學(xué)生搭建專業(yè)實踐平臺,組織學(xué)生參加“中國鄭州國際少林武術(shù)節(jié)”、“中國保險精英圓桌大會”、“世界斯諾克巡回賽鄭州公開賽”等活動的翻譯志愿服務(wù),常年和我校國際交流與合作處共同承擔“發(fā)展中國家糧食安全研修班”、“發(fā)展中國家中國少林武術(shù)培訓(xùn)班”、“發(fā)展中國家糧食儲藏技術(shù)培訓(xùn)班”等國家援外項目的志愿翻譯工作。 (四)就 業(yè) 我院畢業(yè)生2965人,在校本科生649人,研究生26人。畢業(yè)生中,我院97屆畢業(yè)生王凱波在國務(wù)院港澳事務(wù)辦公室工作;2001屆畢業(yè)生陳發(fā)家考取北京第二外國語大學(xué)研究生,畢業(yè)后成為北二外聘任的唯一位僅有碩士學(xué)位的教師;2002屆畢業(yè)生嚴毓輝當選廣州形象大使; 2004屆畢業(yè)生吳鵬任香港新宇集團董事、常務(wù)副總經(jīng)理,曾為公司創(chuàng)造1億兩千萬港幣的經(jīng)濟凈收入;2004屆畢業(yè)生陳潤森任央視第七套軍事農(nóng)業(yè)頻道經(jīng)典欄目“致富經(jīng)”的主編。 2009屆畢業(yè)生王新慧考取西安外國語大學(xué)研究生;2010屆畢業(yè)生彭薇考取廣東外語外貿(mào)大學(xué)研究生,婁世威、磨惟偉考取北京外交學(xué)院雙學(xué)位;2011屆畢業(yè)生趙欣欣考取中山大學(xué)研究生,吳亞考取香港中文大學(xué)研究生。2012屆畢 業(yè)生宋歌考取上海外國語大學(xué)研究生,燕琳考取對外經(jīng)貿(mào)大學(xué)研究生,任軍營考取中國人民大學(xué)研究生等。 (五)重大成果 近五年來,外語學(xué)院現(xiàn)已完成了1項國家教育部大學(xué)英語改革項目《高校大學(xué)英語學(xué)習(xí)能力培養(yǎng)之研究》(教育部高教司,主持,結(jié)項),現(xiàn)承擔國家教育科學(xué)規(guī)劃教育部重點研究項目《基于“全語言”教學(xué)法的英語特色教學(xué)研究》。主持完成了4項省級教改項目,其中3項獲河南省教育廳教學(xué)成果二等獎。完成廳級教研項目22項,出版教材11部,發(fā)表133篇其中教研論文 27 篇。大學(xué)英語和基礎(chǔ)英語被評為校級精品課程。2011年高級英語被評為河南省精品課程。2011年,外語學(xué)院獲得 “全國五一巾幗標兵崗”稱號。 (咨詢電話:0371-67756797 67756798) 實驗3 常用類(2學(xué)時) 一、實驗?zāi)康?/p> 1.熟悉Java中的String、StringBuffer、Math、包裝器類、Scanner類的使用方法。2.使用常用類解決一般性的應(yīng)用問題。3.掌握JavaSE API文檔的使用方法。 二、實驗內(nèi)容 1.編寫一個Java應(yīng)用程序。用戶從鍵盤輸入一個整數(shù),程序?qū)⑴袛噙@個數(shù)是幾位數(shù)并輸出其位數(shù),并判斷這個數(shù)是否是回文數(shù)(是,則輸出“是回文數(shù)”,否則輸出“不是回文數(shù)”)。回文數(shù)是指將該數(shù)含有的數(shù)字逆序排列后得到的數(shù)和原數(shù)相同,例如12121、3223都是回文數(shù)。要求:定義兩個方法,一個用于獲取一個整數(shù)的位數(shù),一個用于返回一個整數(shù)是否為回文數(shù)。 2.編寫一個程序,由用戶從鍵盤輸入一個字符串,程序輸出該字符串中的大寫英文字母數(shù),小寫英文字母數(shù)以及非英文字母數(shù)。(用戶鍵盤輸入用Scanner類實現(xiàn)) 3.在安排教師監(jiān)考時,需要從一組教師中隨機選取n個教師參加監(jiān)考。要求實現(xiàn)一個類RandomTeacher的靜態(tài)方法public static String[] getRandomTeachers(String[] teachers, int n),能夠從teachers中隨機選擇n個教師(名字)并返回。 4.假設(shè)某餐館中每桌顧客點菜記錄的格式為“北京烤鴨:189 西芹百合:15 清蒸鱸魚:80”。編寫一個類的方法,能夠根據(jù)點菜內(nèi)容對應(yīng)的字符串輸出點菜記錄中每種菜的價格以及總的價格。 5.編寫一個方法,返回一個double型的二維數(shù)組,數(shù)組中的元素通過解析字符串參數(shù)獲得。例如,字符串參數(shù):“1,2;3,4,5;6,7,8”,對應(yīng)的數(shù)組為: 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 三、實驗要求 完成程序設(shè)計并提交代碼。 實驗五 一、實驗內(nèi)容: 從鍵盤上輸入一行字符串。 ①將字符按Unicode字典順序排序后輸出。②統(tǒng)計每個字符出現(xiàn)的次數(shù)和位置。③統(tǒng)計含有的單詞個數(shù)。④正向和反向輸出單詞。 二、算法思路: 要完成任務(wù)①:使用StringTokenizer類的countTokens()方法和nextToken(),將單詞存儲到String a[ ]數(shù)組中,再定義一個空的String b[ ] , 用來存放比較大小后的單詞。 要完成任務(wù)③:使用StringTokenizer類中的countTokens()方法。 要完成任務(wù)②:定義charArray[i ]存放字符 intArray[ i]出現(xiàn)字符的次數(shù) addr[i][ ]用來存放出現(xiàn)字符的位置 要完成任務(wù)④:可以通過之前定義存儲的String a[ ]和相關(guān)簡單算法,輸出正向和反向的單詞。 三、實驗結(jié)果: 四、程序代碼: 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(“輸入一個句子,然后按回車鍵”); 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;i outputArea.append(b[i]+“ ”); outputArea.append(“nn單詞個數(shù):”+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(”nn統(tǒng)計每個字符出現(xiàn)的次數(shù)和位置n“);for(int i=0;i outputArea.append(charArray[i]+” 次數(shù):“+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;i outputArea.append(a[i]+“ ”); outputArea.append(“nn單詞反向輸出:”); 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); } } 五、心得體會: 這個程序,應(yīng)該是我目前所花時間最長編寫出來的程序,從草稿紙上醞釀出算法,到最后在計算機上成功運行,花了3個晚上的時間,其中有一天晚上,本人忘我編程到凌晨12:30,當中遇到了很多出乎意料的問題,但是在遇到問題時,我積極思考,反復(fù)調(diào)試,編程開始階段,程序一直異常跳出,我也花了挺多時間找錯誤,也花了不少時間檢驗算法的嚴密性。程序中用紅筆標注的,是我花時間最長的地方,也是本程序的難點和要點。通過這次程序,我很好地深入鉆研了StringTokenizer類的用法,原來使用其對象countTokens()方法和hasMoreTokens()方法一次之后,再次調(diào)用這些方法,countTokens()返回值是0;hasMoreTokens()返回null。正是由于自己一開始對StringTokenizer類用法的不了解,我才在一開始程序中,異想天開的多次使用了countTokens()方法和hasMoreTokens()方法,導(dǎo)致程序無法達到我的要求,所以我經(jīng)歷了漫長而艱辛的調(diào)試過程后,我才寫出了本程序,但我覺得,通過這種程序的錘煉,自己的變成能力會有很顯著的提升。 1、實驗一:多線程程序設(shè)計:炮打飛機 實驗?zāi)康模簩W(xué)會使用多線程進行并發(fā)程序設(shè)計 實驗內(nèi)容:編寫一個應(yīng)用程序模擬大炮打飛機。在GUI界面上,飛機水平飛行,用界面上的按鈕控制大炮的運行方向(如向左,向右,向上,向下)。當炮彈碰著飛機后,飛機墜落。 2、實驗二:數(shù)據(jù)庫編程:書目信息管理 實驗?zāi)康模赫莆諗?shù)據(jù)庫編程技術(shù)。能正確連接數(shù)據(jù)庫,能對數(shù)據(jù)庫中信息進行查詢、插 入、刪除、修改。 實驗內(nèi)容:在數(shù)據(jù)庫中創(chuàng)建一張書目信息表,包括書名、作者、出版社、出版日期、書 號、價格字段。設(shè)計一個GUI界面進行書目管理。在該界面上有四個選項卡,分別是查詢、插入、刪除、修改。點擊查詢選項卡,出現(xiàn)的界面上有書名、作者、出版社、書號四個文本框,一個按鈕和一個只讀文本區(qū)。文本框內(nèi)容可以為空,輸入相應(yīng)的查詢信息后(例如根據(jù)書名查詢可以僅輸入書名),點擊界面上的“查詢”按鈕,可以在界面下方的文本區(qū)中顯示出符合條件的書目詳細信息。點擊插入選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。在文本框中輸入信息后,點擊“插入”按鈕,該書目信息插入數(shù)據(jù)庫表中。點擊刪除選項卡,出現(xiàn)的界面上有書名文本框和一個按鈕,輸入書名后點擊“刪除”按鈕,該書目信息從數(shù)據(jù)庫表中刪除。點擊修改選項卡,出現(xiàn)的界面上有書名、作者、出版社、出版日期、書號、價格文本框,一個按鈕。輸入的書名必須是已存在的,否則會彈出消息框顯示出錯信息。輸入信息后,點擊“修改”按鈕,數(shù)據(jù)庫表中的相應(yīng)書目信息被修改為新值。 3、實驗三:Applet編程:鴨子的移動 實驗?zāi)康模赫莆誂pplet程序設(shè)計的方法,學(xué)會在Applet中繪制圖片,能采用雙緩沖技術(shù)進行圖片繪制,會在Applet中采用多線程進行動畫顯示。能在Applet中實現(xiàn)動畫的平滑顯示,避免閃爍現(xiàn)象。 實驗內(nèi)容:在Applet窗口中顯示一只鴨子圖片,要求這只鴨子以每秒100幀的速率水平移動,移到窗口邊界再返回移動。在窗口中點擊鼠標,鴨子停止移動;再次點擊鼠標,鴨子恢復(fù)移動。 4、實驗四:網(wǎng)絡(luò)編程:聊天室的實現(xiàn) 實驗?zāi)康模簳帉懣蛻舳撕头?wù)器程序?qū)崿F(xiàn)C/S模式下的通信,會使用多線程進行網(wǎng)絡(luò)編程。 實驗內(nèi)容:編寫一個聊天室程序:客戶端界面請自行設(shè)計,可使其具有個性化特征; 可在實現(xiàn)基本的聊天室功能的基礎(chǔ)上添加個性化的功能。第二篇:河南工業(yè)大學(xué)外語學(xué)院
第三篇:Java實驗3
第四篇:Java實驗5
第五篇:java上機實驗