




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、二一 二一一學(xué)年第一學(xué)期信息科學(xué)與工程學(xué)院Java實(shí)驗(yàn)報(bào)告課程名稱: java實(shí)驗(yàn)報(bào)告 班 級(jí): 學(xué) 號(hào): 姓 名: 實(shí)驗(yàn)一 熟悉Java程序的編輯、編譯和運(yùn)行環(huán)境一、 實(shí)驗(yàn)?zāi)康?) 掌握設(shè)置 Java 程序運(yùn)行環(huán)境的方法,并熟悉Java程序的集成開發(fā)工具。2) 掌握編寫、編譯、運(yùn)行簡(jiǎn)單的Java Application和Java Applet程序的方法步驟,初步了解java程序的特點(diǎn)和基本結(jié)構(gòu)。 3) 掌握 Java 基本數(shù)據(jù)類型、運(yùn)算符與表達(dá)式。 4) 理解 Java 程序語(yǔ)法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語(yǔ)法的程序設(shè)計(jì)方法。二、實(shí)驗(yàn)過(guò)程1)編寫一個(gè)Java Application
2、,利用JDK軟件包中的工具編譯并運(yùn)行這個(gè)程序。步驟(1):編寫、編譯Java 源程序。打開Jcreator編輯器,新建一個(gè)java文件,鍵入如下程序代碼: public class Hello public static void main(String args) System.out.println(Hello,World!); 將文件命名為Hello.java,注意保存文件Hello.java到路徑“e:java”下。運(yùn)行結(jié)果:2)編寫一個(gè)Java Applet,使之能夠在瀏覽器中顯示“welcome to Java Applet World”的字符串信息。步驟(1):編寫 HelloW
3、orldApplet.java 程序文件,源代碼如下。 import java.applet.* ; import java.awt.* ; public class HelloWorldApplet extends Applet public void paint(Graphics g) g.drawString(“welcome to Java Applet World,40,20); 步驟(2):保存文件為e:javaHelloWorldApplet.java。編譯該文件,生成HelloWorldApplet.class字節(jié)碼文件。 步驟(3):編寫顯示HelloWorldApplet.
4、calss 的頁(yè)面文件 HelloWorld.html,代碼如下。 步驟(4):在提示符窗口調(diào)用小程序查看器瀏覽 HelloWorld.html 頁(yè)面,觀察 Applet 應(yīng)用程序。運(yùn)行結(jié)果:思考題:1)編程實(shí)現(xiàn):隨機(jī)產(chǎn)生20個(gè)整數(shù)存放到數(shù)組中,然后對(duì)其按照升序進(jìn)行排序,最后對(duì)排序前后的數(shù)組按照每5個(gè)數(shù)的方式輸出。 源程序:import java.util.*;class RandomPx public static void main(String args) int num=new int20; int i,j,temp; Random r=new Random(); for(i=0;i2
5、0;i+) numi=r.nextInt(); for(i=0;i19;i+) for(j=0;jnumj+1) temp=numj; numj=numj+1; numj+1=temp; for(i=0;i=School.getscoreLine()| (s.getscore()96 & s.getcomScore()=300) ) return true; else return false; public static void main(String args) Student s=new Student3; String info=new String4; int i,j; Strin
6、g messInfo; BufferedReader in=new BufferedReader(new InputStreamReader(System.in); StringTokenizer st; School.setscoreLine(550); for( i=0;is.length;i+ ) try messInfo=in.readLine(); st=new StringTokenizer(messInfo); for(j=0;jinfo.length;j+) infoj=st.nextToken(); catch(IOException ex) si=new Student(i
7、nfo0,info1,Float.parseFloat(info2),Float.parseFloat(info3); for(i=0;is.length;i+) if(isEnroll(si) System.out.println(+ +si.id + + 被錄取!); else System.out.println(+ +si.id + + 沒(méi)有錄取!); 運(yùn)行結(jié)果:思考題:1、1) 定義復(fù)數(shù)類Complex,其滿足如下要求(18分):l 復(fù)數(shù)類Complex 的屬性有:RealPart : double型,代表復(fù)數(shù)的實(shí)數(shù)部分ImaginPart : doubl
8、e型,代表復(fù)數(shù)的虛數(shù)部分l 復(fù)數(shù)類Complex 的方法有:Complex( double rp , double ip ) : 構(gòu)造函數(shù),形參 rp 為實(shí)部的初值,ip為虛部的初值。Complex complexAdd(Complex a) :將當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相加,所得的結(jié)果仍是一個(gè)復(fù)數(shù),并將結(jié)果返回給此方法的調(diào)用者。 Complex complexMinus(Complex a) : 將當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相減,所得的結(jié)果仍是一個(gè)復(fù)數(shù),并將結(jié)果返回給此方法的調(diào)用者。public String toString( ) : 把當(dāng)前復(fù)數(shù)對(duì)象的實(shí)部、虛部組合成 a+bi 的字符串
9、形式,其中a 和 b分別為實(shí)部和虛部的數(shù)據(jù)。源程序:import java.io.*;public class Complex double RealPart; double ImageinPart; Complex(double rp,double ip) RealPart=rp; ImageinPart=ip; Complex complexAdd(Complex a) Complex temp; temp=new Complex(RealPart+a.RealPart,ImageinPart+a.ImageinPart); return temp; Complex complexMinu
10、s(Complex a) Complex temp; temp=new Complex(RealPart-a.RealPart,ImageinPart-a.ImageinPart); return temp; public String toString() if (ImageinPart0) return (RealPart+-+Math.abs(ImageinPart)+i); else return (RealPart+ImageinPart+i); public static void main(String args)char operator; try Complex c1=new
11、 Complex(1,2); Complex c2=new Complex(3,4); Complex complexResult = null; operator=(char)System.in.read(); switch(operator) case +:complexResult=plexAdd(c2);break; case -:complexResult=plexMinus(c2);break; System.out.println(complexResult); catch(IOException e) System.out.println(e); 運(yùn) 行 結(jié) 果:實(shí)驗(yàn)三 面向?qū)?/p>
12、象程序設(shè)計(jì)的繼承、多態(tài)等特性的練習(xí)一、實(shí)驗(yàn)?zāi)康?) 掌握類的繼承機(jī)制。2) 熟悉類中成員變量和方法的訪問(wèn)控制。3) 熟悉方法或構(gòu)造方法多態(tài)性。4) 熟悉接口的定義方法。二、實(shí)驗(yàn)內(nèi)容1)編寫程序?qū)崿F(xiàn)如下功能:已知Person類包含三個(gè)公共域變量(姓名、性別、年齡)和一個(gè)構(gòu)造方法,Student類是Person類的派生類,包含兩個(gè)新的公共域變量(學(xué)號(hào)、班號(hào))、兩個(gè)公共方法(構(gòu)造方法、修改年齡、顯示基本信息)和一個(gè)構(gòu)造方法。定義一組學(xué)生對(duì)象,并初始化他們的基本信息,然后依次輸出。源程序:class Person public String name;public String sex;int age
13、;Person(String name,String sex,int age)=name; this.sex=sex; this.age=age;class Student extends Personpublic String sno;public int classno;public void updateAge(int age)this.age=age; Student(String name,String sex,int age,String sno,int classno)super(name,sex,age); this.sno=sno; this.classno
14、=classno; public String toString() System.out.println(name=+name+ sex=+sex + age=+age+ sno=+sno+ classno+classno+ ); return name=+name+ sex=+sex + age=+age+ sno=+sno+ classno+classno+ ; ;public class TestStudentpublic static void main(String args)Student s1=new Student(susan,女,20,20031015123,2); s1.
15、updateAge(21); s1.toString();2) 輸入課本例5-4的源程序,觀察其運(yùn)行結(jié)果,然后將Shape類分別定義為一個(gè)抽象類和接口,然后將源程序進(jìn)行修改,讓其實(shí)現(xiàn)相同功能。源程序:public class TestVirtualInvoke static void doStuff(Shape s) s.draw(); public static void main(String args) Circle c=new Circle(); Triangle t=new Triangle(); Line l=new Line(); doStuff(c); doStuff(t);
16、doStuff(l); class Shapevoid draw()System.out.println(Shape Drawing);class Circle extends Shapevoid draw()System.out.println(Shape Circle);class Triangle extends Shapevoid draw()System.out.println(Shape Triangle);class Line extends Shapevoid draw()System.out.println(Shape Line); */*方法二:使用抽象類abstracta
17、bstract class Shapeabstract void draw(); class Circle extends Shapevoid draw()System.out.println(Shape Circle); /定義Shape抽象類的派生類Circleclass Triangle extends Shapevoid draw()System.out.println(Shape Triangle); /定義Shape抽象類的派生類Triangleclass Line extends Shapevoid draw()System.out.println(Shape Line); */
18、 /定義Shape抽象類的派生類Line/方法三:使用interface接口方法interface Shapepublic void draw(); /定義一個(gè)Shape接口class Circle implements Shape publicvoid draw()System.out.println(Shape Circle); /基于Shape接口利用implements實(shí)現(xiàn)類Circleclass Triangle implements Shape public void draw()System.out.println(Shape Triangle); /基于Shape接口利用imp
19、lements實(shí)現(xiàn)類Triangleclass Line implements Shape publicvoid draw()System.out.println(Shape Line); /基于Shape接口利用implements實(shí)現(xiàn)類Line思考題:(1)某小型公司,主要有三類人員:經(jīng)理、兼職技術(shù)人員和兼職推銷員。這三類人員共同擁有的相關(guān)屬性:姓名、編號(hào); 相關(guān)方法:獲取當(dāng)月薪水的getPay()方法、顯示個(gè)人信息的toString()方法。人員編號(hào)基數(shù)為1000,每創(chuàng)建一個(gè)人員實(shí)例對(duì)象,其編號(hào)屬性的值順序加1。月薪計(jì)算方法:經(jīng)理拿固定月薪8000元;兼職技術(shù)人員按每小時(shí)100元領(lǐng)取月薪
20、;兼職推銷人員的月薪按當(dāng)月的銷售額的4%提成。源程序:import java.util.*;abstract class Employee String name; long no; static long id=1000; abstract double getPay(); Employee(String name) =name;id=id+1; ;class Manager extends Employee double pay=8000;double getPay()return 8000; Manager(String name)super(name); no=id;
21、 public String toString()return name:+name+ no:+no+ pay:8000;class Sale extends Employee long saleNum; double getPay()return saleNum*0.4;Sale(String name,long saleNum)super(name); no=id; this.saleNum=saleNum; public String toString()return name:+name+ no:+no+ pay:+getPay();class Tech extends Employe
22、e long salaryHours; double getPay()return salaryHours*100; Tech(String name,long salaryHours)super(name); no=id; this.salaryHours=salaryHours; public String toString()return name:+name+ no:+no+ pay:+getPay();class EmployApp public static void main(String args)Vector v=new Vector();Employee em;double
23、 numPay=0;v.addElement(new Sale(liping,10000);v.addElement(new Sale(susan,12000);v.addElement(new Tech(linda,40);v.addElement(new Tech(write,20);v.addElement(new Manager(gucci);v.addElement(new Manager(jessica);Enumeration e=v.elements();while(e.hasMoreElements() em=(Employee)e.nextElement();numPay=
24、numPay+em.getPay(); System.out.println(em);System.out.println(總工資:+numPay);實(shí)驗(yàn)四 異常類的定義及處理一、實(shí)驗(yàn)?zāi)康?) 了解異常處理方法。2) 熟悉并掌握常見異常的捕獲方法。3) 熟悉JDK中已經(jīng)定義的若干異常類的層次結(jié)構(gòu)。4) 掌握自定義異常類的創(chuàng)建方法。二、實(shí)驗(yàn)內(nèi)容1) 編寫程序?qū)崿F(xiàn)如下功能:生成并捕獲到NegativeArraySizeException和IndexOutOfBoundsException類型的異常,并顯示捕獲到的異常信息。然后在此基礎(chǔ)上生成并捕獲到NullPointerException類型的異常
25、,并顯示捕獲到的異常信息。源程序:import java.lang.*;import java.io.*;class TestException public static void main(String args) tryoutofBound();arraySize();nullPointer();catch(NegativeArraySizeException e)System.out.println(e.toString();static void outofBound() try int i;int a; a=new int10; for(i=0;i11;i+) ai=i; Syst
26、em.out.println(a+i+=+ ai); catch(IndexOutOfBoundsException e)System.out.println(e.toString(); static void nullPointer() try String s=null; System.out.println(s.length(); catch(NullPointerException e)System.out.println(e.toString(); static void arraySize() throws NegativeArraySizeException try int a;
27、 a=new int-3;catch(NegativeArraySizeException e)throw e;2) 編寫程序?qū)崿F(xiàn)如下功能:計(jì)算兩個(gè)數(shù)之和,參與求和運(yùn)算的每個(gè)數(shù)的值都必須在10-20之間,當(dāng)任意一個(gè)數(shù)超出范圍時(shí),拋出自己的異常。源程序:class MyException extends Exceptionprivate String Msg;public MyException(String message)super(message);Msg=message;public void printMsg()System.out.println(Msg);public class
28、EX6_3void GenerateMyException() throws MyExceptionthrow new MyException(此處發(fā)生異常信息);public static void main(String args)EX6_3 obj=new EX6_3();tryobj.GenerateMyException();catch (MyException e)e.printMsg();思考題:2)編寫一個(gè)程序,用于根據(jù)用戶輸入的命令行參數(shù)數(shù)量來(lái)計(jì)算長(zhǎng)方形、正方形、三角形的面積。如果輸入的參數(shù)個(gè)數(shù)為1、2、3則它們應(yīng)分別對(duì)應(yīng)正方形、長(zhǎng)方形、三角形,如果參數(shù)值為0,則異常處理方法
29、顯示錯(cuò)誤消息。源程序:class NullParameterException extends ExceptionNullParameterException(String Message)super(Message); class TestArea public static void main(String args) shape sh=null;int num;num=args.length;tryswitch(num)case 1:sh=new Zangle(Double.parseDouble(args0); break;case 2:sh=new Longangle(Double.
30、parseDouble(args0),Double.parseDouble(args1);break;case 3:sh=new Triangle(Double.parseDouble(args0),Double.parseDouble(args1),Double.parseDouble(args2);break;case 0:throw new NullParameterException(參數(shù)個(gè)數(shù)為零!);System.out.println(sh.area();catch(Exception e)System.out.println(e.toString();abstract class
31、 shapeabstract double area();class Triangle extends shapedouble a,b,c;Triangle(double a,double b,double c) this.a=a; this.b=b; this.c=c;double area()double s;s=(a+b+c)/2;return(Math.sqrt(s*(s-a)*(s-b)*(s-c);class Longangle extends shapedouble l,w;Longangle(double l,double w) this.l=l; this.w=w;doubl
32、e area()return (l*w);class Zangle extends shapedouble l;Zangle(double l)this.l=l;double area()return l*l;實(shí)驗(yàn)五 流、文件及基于文本的應(yīng)用一、實(shí)驗(yàn)?zāi)康?) 理解數(shù)據(jù)流的概念。2) 理解Java流的層次結(jié)構(gòu)。3) 理解并掌握文件的讀寫操作方法。二、實(shí)驗(yàn)內(nèi)容1) 編寫一個(gè)java Application程序,接受用戶輸入的10個(gè)整數(shù),比較并輸出其中的最大值和最小值。源程序:import java.io.*;public class MaxMainClass /定義一個(gè)包含main方法的Appli
33、cation類MaxMinClassstatic int maxInt(int data,int n)int k=data0; for(int i=0;in;i+)if(kdatai)k=datai;return k; /找到數(shù)組datan中的最大值static int minInt(int data,int n)int t=data0;for(int i=0;idatai)t=datai;return t; /找到數(shù)組datan中的最小值public static void main(String args)int data=new int10; String s=;System.out.p
34、rintln(輸入數(shù)組data10,輸入每個(gè)數(shù)后按回車:);for(int i=0;i10;i+)try BufferedReader in=new BufferedReader(new InputStreamReader(System.in);s=in.readLine();datai=Integer.parseInt(s);catch(IOException e) /利用Integer.parseInt方法將字符串轉(zhuǎn)換為整數(shù)intint k=maxInt(data,10); /調(diào)用maxInt方法,找到data10中最大值int t=minInt(data,10); /調(diào)用minInt方法
35、,找到data10中最小值System.out.println(最大值為:+k+n最小值為:+t); 2) 編寫一個(gè)程序,能將一個(gè)源程序中的空行及注釋去掉,并將處理后的內(nèi)容寫到目標(biāo)文件中。(源文件名稱和目標(biāo)文件名稱均要求以命令行參數(shù)形式輸入)源程序:import java.io.*;class FileCopypublic static void main(String args) tryString s1; int a=0;s1=abc+a;int LineCount=0;BufferedReader input=new BufferedReader(new FileReader(Acces
36、sControl.java);BufferedWriter output=new BufferedWriter(new FileWriter(test1.txt); String c=input.readLine();String s;while(c!=null) s=deleteComment(c); s=s.trim();if (!s.equals() output.write(LineCount+:+deleteComment(c); /刪除評(píng)論 output.newLine(); System.out.println(deleteComment(c); LineCount+; c=in
37、put.readLine(); input.close(); output.close();catch(IOException e)System.out.println(e); static String deleteComment(String s) int pos=0; if(s=null) return s; pos=s.indexOf(/); if (pos0) return s; elsereturn s.substring(0,pos);思考題:1)從一個(gè)文本文件中讀入30個(gè)學(xué)生的姓名和成績(jī),計(jì)算所有學(xué)生的最高分、最低分和平均分,并將結(jié)果寫入另外一個(gè)文件。源程序:import java.io.*;class Student String name; int index;Student(String name,int index)=name;this.index=index; /定義一個(gè)學(xué)生類,包含姓名、分?jǐn)?shù)兩個(gè)域變量和一個(gè)構(gòu)造方法public class Chengji static i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 監(jiān)獄罪犯安全教育體系構(gòu)建
- 2024年數(shù)字特技發(fā)生器資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 產(chǎn)品質(zhì)量控制計(jì)劃
- 幼兒園小班社會(huì)教案逛逛幼兒園
- 2025年公共安全與應(yīng)急管理模擬考試題及答案
- 外科一等獎(jiǎng)護(hù)理品管圈
- 鉆機(jī)投資項(xiàng)目可行性研究報(bào)告(立項(xiàng)備案模板)undefinedundefined
- 美國(guó)教育故事
- 物料進(jìn)出管理流程管理規(guī)范
- 2025年工商管理碩士入學(xué)考試題及答案
- 一汽商用車企業(yè)級(jí)BOM技術(shù)方案V1.7
- 醫(yī)院護(hù)理質(zhì)量考核標(biāo)準(zhǔn)文本1
- 宮腔鏡下子宮內(nèi)膜息肉切除日間手術(shù)臨床路徑(婦科)及表單
- 橋架支吊架安裝標(biāo)準(zhǔn)圖-橋架支吊架圖集
- GB/T 7702.20-2008煤質(zhì)顆粒活性炭試驗(yàn)方法孔容積和比表面積的測(cè)定
- GB/T 4337-2015金屬材料疲勞試驗(yàn)旋轉(zhuǎn)彎曲方法
- GB/T 3608-2008高處作業(yè)分級(jí)
- GB/T 12786-2006自動(dòng)化內(nèi)燃機(jī)電站通用技術(shù)條件
- 2023年鄭州大學(xué)嵩山地質(zhì)實(shí)習(xí)
- (擋土墻)砌石工程施工記錄
- 房地產(chǎn)租賃價(jià)值估價(jià)報(bào)告
評(píng)論
0/150
提交評(píng)論