JAVA程序設(shè)計實驗指導(dǎo)書v_第1頁
JAVA程序設(shè)計實驗指導(dǎo)書v_第2頁
JAVA程序設(shè)計實驗指導(dǎo)書v_第3頁
JAVA程序設(shè)計實驗指導(dǎo)書v_第4頁
JAVA程序設(shè)計實驗指導(dǎo)書v_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗一:安裝與熟悉j2sdk實驗?zāi)康模? 了解和使用j2sdk1.6.0(jdk)環(huán)境。2 熟悉j2sdk集成環(huán)境的基本命令、功能和基本用法。并學(xué)會配置path 等環(huán)境變量3 學(xué)習(xí)并熟練掌握使用j2sdk環(huán)境進(jìn)行java程序開發(fā)的全過程(包括:源程序的編輯、編譯、調(diào)試、運(yùn)行和結(jié)果查看)。4 掌握java應(yīng)用程序的構(gòu)成特點實驗內(nèi)容1. j2sdk開發(fā)包的安裝(可選)2. 查看系統(tǒng)環(huán)境變量的配置3. 編寫一個java程序,掌握在jdk開發(fā)包支持下編譯和運(yùn)行的過程實驗數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 寫出在你的系統(tǒng)中,java.exe和javac.exe的安裝位置 答: c:program f

2、ilesjavajdk1.6.0_18bin2. 寫出運(yùn)行java程序所需的基本系統(tǒng)配置java_home=c:program filesjavajdk1.6.0_18classpath=.;c:program filesjavajdk1.6.0_18libtools.jar; c:program filesjavajdk1.6.0_18libdt.jar; c:program filesjavajdk1.6.0_18jrelibrt.jarpath=%path%;c:program filesjavajdk1.6.0_18bin2 調(diào)試下面程序,指出錯誤public class hellow

3、orldapp public void static main(string args) system.out.println(“hello world!”);錯誤1:class 應(yīng)該寫成 class錯誤2:void 和 static 位置寫反了錯誤3:string應(yīng)該寫成 string錯誤4:system 應(yīng)該寫成 system3寫出調(diào)試過程1) 編譯命令 javac helloworldapp.java2) 運(yùn)行命令 java helloworldapp3) 修改后的源程序 public class helloworldapp public static void main(string

4、args) system.out.println(hello world!); 4添加文檔注釋,用javadoc工具生成html文件,寫出添加注釋后的源程序文件。/* *一個向控制臺輸出字符串的應(yīng)用程序 */public class helloworldapp public static void main(string args) system.out.println(hello world!); 日期: 年 月 日 日期: 年 月 日實驗三:java語言編程基礎(chǔ)實驗?zāi)康模?. 綜合掌握變量、數(shù)據(jù)類型、表達(dá)式以及基本程序結(jié)構(gòu)的應(yīng)用2. 掌握類的方法定義實驗內(nèi)容1. 掌握變量定義、賦值表達(dá)式的

5、應(yīng)用。2. 掌握移位表達(dá)式的應(yīng)用。3. 掌握控制語句的應(yīng)用。4. 掌握有關(guān)類的方法定義及方法使用的形式。5. 理解變量作用域范圍。6. 掌握scanner類的使用方法。實驗數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 分析下面的程序,寫出運(yùn)行結(jié)果public class ch22 public static void main(string args) boolean x,y,z; int a=12,b=24; x=(ab); y=(a!=b); z=(a+b=36); system.out.println(x=+x); system.out.println(y=+y); system.out.pr

6、intln(z=+z); x=falsey=truez=true2寫出下面程序運(yùn)行的結(jié)果 class expression public static void main(string args) int a=25, b=20, e=3, f=0;boolean d=ab;system.out.println(a=25,b=20,e=3,f=0);system.out.println(因為關(guān)系表達(dá)式 a5)system.out.println(因為e 非0 且a/e 為8 大于5,所以輸出 a/e +a/e);if (f!=0 & a/f5)system.out.println(a/f = +

7、a/f);elsesystem.out.println(因為f 值為0,所以輸出 f = +f);因為關(guān)系表達(dá)式 ab 為假,所以其邏輯值為 : false因為e 非0 且a/e 為8 大于5,所以輸出 a/e 8因為f 值為0,所以輸出 f = 03假如一個顏色值包含了紅黃蘭三個分量,每個分量范圍在0至256,可以定義一個int類型(4個字節(jié))的變量color,利用它的從低到高連續(xù)三個字節(jié)分別表示三個顏色分量的值,請編寫程序利用移位表達(dá)式求出每個顏色的值各是多少。int color=0x00f1ad07,red=0,yellow=0,blue=0;red=color & 0x000000ff

8、;yellow= color & 0x0000ff00;blue= color & 0x00ff0000;biaodashi= 0x000000ff;red=color & biaodashi;yellow= color & (biaodashi8); /0x0000ff00blue= color & (biaodashi8; /0x0000ff00 blue=blue16; /0x00ff0000 system.out.println(red=+red); system.out.println(yellow=+yellow); system.out.println(blue=+blue);

9、red=7yellow=173blue=2415 編寫程序,讀入任一個整數(shù)并將其各位數(shù)字之和賦給一個整數(shù)并輸出各位上數(shù)字及數(shù)字和。import java.util.scanner;public class apublic static void main(string args) scanner sc = new scanner(system.in);system.out.println(請輸入一個整數(shù): );int num = sc.nextint();int a,b,c,m;a=num/100;b=num%100/10;c=num%100%10;m=a+b+c;system.out.pri

10、ntln(a=+a);system.out.println(b=+b);system.out.println(c=+c);system.out.println(m=+m);5編寫程序,接受任意從鍵盤輸入的若干整數(shù),請使用冒泡排序算法完成對這些整數(shù)排序,并輸出排序結(jié)果。import java.util.scanner;public class mypublic static void main(string args) scanner sc = new scanner(system.in);system.out.printf(請輸入要排序整數(shù)個數(shù): ); intnum=sc.nextint();

11、int arr=new intnum;for(int i=0;i0;i-)for(j=0;jarrj+1)temp=arrj;arrj=arrj+1;arrj+1=temp;system.out.println(冒泡排序的結(jié)果是:);for(i=0;ilen;i+)system.out.println(arri+ );6定義一個類,實現(xiàn)方法完成輸出素數(shù)的要求:按照每行5個,輸出n以內(nèi)的所有素數(shù)。(注:n作為方法的參數(shù)傳入)。根據(jù)題目,補(bǔ)充完成下面程序。 public class primenumber public void listprime (int n) /添加代碼,將生成的n以內(nèi)的所有

12、素數(shù)輸出到控制臺int m;/ 變量n為要判斷的數(shù)字int temp=0;/記錄輸出的素數(shù)個數(shù)a: for (int f = 2;f=n; f+) for (m = 2; m =f / 2; m+) if (f % m = 0)continue a;/ 如果能被整除則變量n肯定不是素數(shù),跳出內(nèi)層循環(huán)system.out.print(f + + t);/輸出素數(shù)temp+;if(temp%5=0)system.out.println(); public static void main(string args) primenumber n =new primenumber(); n.listpr

13、ime(10); 7調(diào)試并寫出下面程序運(yùn)行的結(jié)果public class variable static int i=10;public static void main(string args) int k=10;system.out.println(i=+i);system.out.println(k=+k);system.out.println(i=+i);system.out.println(k=+k); i=10k=10i=10 日期: 年 月 日實驗四:面向?qū)ο缶幊袒A(chǔ)一實驗?zāi)康模? 掌握類的定義和生成機(jī)制2 了解構(gòu)造函數(shù)的作用實驗內(nèi)容1. 簡單類的定義。2. 對象創(chuàng)建和使用。3.

14、 使用關(guān)聯(lián)類進(jìn)行屬性的定義。4. 訪問控制修飾符的作用。5. 掌握靜態(tài)屬性、方法和初始化器的特點。6. 包的應(yīng)用實驗數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 寫一個名為rectangle的類表示矩形。其屬性包括寬width、高h(yuǎn)eight和顏色color,width和height都是double型的,而color則是string類型的。要求該類提供計算面積的方法getarea()方法,以及修改width和height的值及獲得width和height當(dāng)前值的方法。要求:(1) 使用構(gòu)造函數(shù)完成各屬性的初始賦值(2) 使用getter和setter的形式完成屬性的訪問及修改public class

15、 rectangle private double width;private double height;private string color; public rectangle(double width, double height, string color) this.width = width;this.height = height;this.color = color;public double getwidth() return width;public void setwidth(double width) this.width = width;public double

16、 getheight() return height;public void setheight(double height) this.height = height;public double getarea()double area;return area=width*height;public static void main(string args) rectangle a=new rectangle(2.0,3.0,red);system.out.println(a.getarea();一個fan有自己的品牌和型號,其功能有start,stop,speed,start和stop可以

17、改變fan的狀態(tài)status(on/off),speed可以調(diào)整fan的速度(檔級在0、1、2、3),請分析并提供fan類的定義。并編寫程序?qū)ζ溥M(jìn)行測試。public class fan private string band; private string type;private string status ;private int speed;public fan(string band,string type,string status,int speed)this.band=band;this.type=type;this.status=status;this.speed=speed

18、;public string start()return status;public string stop()return status;public void speed(int a)this.speed=a;public static void main(stringargs)fan t=new fan(ss,dd,off,1);system.out.printf(%s,%s,%b,%d,t.band,t.type,t.status,t.speed); 解釋下面的程序運(yùn)行結(jié)果輸出為什么是null public class my string s; public void my() s =

19、 constructor; public void go() system.out.println(s); public static void main(string args) my m = new my(); m.go(); 調(diào)用者沒有傳遞值2.寫出程序運(yùn)行結(jié)果class staticdemo static int x;int y; static x=10;public static int getx() return x;public static void setx(int newx) x = newx;public int gety() return y;public void s

20、ety(int newy) y = newy;public static void main(string args) system.out.println(靜態(tài)變量x=+staticdemo.getx();system.out.println(實例變量y=+staticdemo.gety(); /非法,編譯時將出錯staticdemo a= new staticdemo();staticdemo b= new staticdemo();a.setx(1);a.sety(2);b.setx(3);b.sety(4);system.out.println(靜態(tài)變量a.x=+a.getx();sy

21、stem.out.println(實例變量a.y=+a.gety();system.out.println(靜態(tài)變量b.x=+b.getx();system.out.println(實例變量b.y=+b.gety();靜態(tài)變量x=10靜態(tài)變量a.x=3實例變量a.y=2靜態(tài)變量b.x=3實例變量b.y=42.一個計算機(jī)商店銷售很多品牌的計算機(jī),每臺計算機(jī)都應(yīng)該記錄其配置信息,包括處理器、主板、顯示器、內(nèi)存、硬盤等基本設(shè)備,每個設(shè)備都有自己的品牌、價格、型號信息,請你嘗試構(gòu)造合適的類并利用組合的方法來表示計算機(jī),并為該計算機(jī)類添加計算價格(各設(shè)備價格之和)、打印配置信息等方法。要求:將定義的類都

22、放在一個包product內(nèi)。cpu.javapackage product;public class cpuprivate string brand;private double value;private string type;public cpu(string brand,double value,string type)this.brand=brand;this.value=value;this.type=type;public string getbrand()return brand;public string gettype()return type;public double

23、getvalue()return value;public void print()system.out.println(brand:+getbrand()+t+value:+getvalue()+t+type:+gettype();/system.out.println(brand:);hardware.javapackage product;public class hardwareprivate string brand;private double value;private string type;public hardware(string brand,double value,s

24、tring type)this.brand=brand;this.value=value;this.type=type;public string getbrand()return brand;public string gettype()return type;public double getvalue()return value;public void print()system.out.println(brand:+getbrand()+t+value:+getvalue()+t+type:+gettype();/system.out.println(brand:);mainboard

25、 .javapackage product;public class mainboard private string brand;private double value;private string type;public mainboard (string brand,double value,string type)this.brand=brand;this.value=value;this.type=type;public string getbrand()return brand;public string gettype()return type;public double ge

26、tvalue()return value;public void print()system.out.println(brand:+getbrand()+t +value:+getvalue()+t+type:+gettype();/system.out.println(brand:);monitor .javapackage product;public class monitorprivate string brand;private double value;private string type;public monitor(string brand,double value,stri

27、ng type)this.brand=brand;this.value=value;this.type=type;public string getbrand()return brand; public string gettype()return type;public double getvalue()return value; public void print()system.out.println(brand:+getbrand()+t+value:+getvalue()+t+type:+gettype();/system.out.println(brand:);ram.javapa

28、ckage product;public class ramprivate string brand;private double value;private string type;public ram(string brand,double value,string type)this.brand=brand;this.value=value;this.type=type;public string getbrand()return brand;public string gettype()return type;public double getvalue()return value;p

29、ublic void print()system.out.println(brand:+getbrand()+t+value:+getvalue()+t+type:+gettype();/system.out.println(brand:);computer.javapackage product;public class computerprivate cpu cp;private hardware hard;private mainboard main;private monitor mon;private ram ra;public computer()this.cp=new cpu(a

30、tm,232.2d,xora878);this.hard=new hardware(westdigital,300.2d,pc222);this.main=new mainboard(aim,321.2d,x-32);this.mon=new monitor(voa,900.2d,w-ss);this.ra=new ram(kingsdon,127.2d,s-24);public void kprint()cp.print();hard.print();main.print();mon.print();ra.print(); public double sum() double i=cp.ge

31、tvalue()+hard.getvalue()+main.getvalue()+mon.getvalue()+ra.getvalue();return i;public static void main(string args)computer com=new computer();com.kprint();system.out.printf(計算機(jī)硬件的總價格是:%f¥,com.sum();brand:atmvalue:232.2type:xora878brand:westdigitalvalue:300.2type:pc222brand:aimvalue:321.2type:x-32br

32、and:voavalue:900.2type:w-ssbrand:kingsdonvalue:127.2type:s-24計算機(jī)硬件的總價格是:1881.000000¥ 日期: 年 月 日實驗五:面向?qū)ο缶幊袒A(chǔ)二實驗?zāi)康模?. 掌握抽象類和抽象方法的特點2. 掌握最終類3. 理解類的繼承4. 父類和子類的轉(zhuǎn)化實驗內(nèi)容假定銀行的一個存取款系統(tǒng)有兩類客戶,一類是現(xiàn)金用戶,一類是信用卡用戶。銀行對每個客戶都要登記其姓名name,并為之分配一個唯一的賬戶號碼aid,現(xiàn)金用戶還要記錄其卡的類型(工資卡、借記卡、理財卡),而信用卡用戶則根據(jù)其信用級別有一定的透支限額lineofcredit(a級1000

33、0元、b級5000元、c級2000元、d級1000元)。每種客戶都可以實現(xiàn)存deposit、取withdraw、和查詢余額getbalance和交易歷史showtransactions(信用卡用戶還可以查詢透支情況findoverdraw和信用showcredit情況)要求。對于現(xiàn)金用戶,每次取款操作只能在賬戶實際額度balance內(nèi)操作,允許現(xiàn)金用戶改變自己的帳戶類型。實驗數(shù)據(jù)記錄及分析(或程序及運(yùn)行結(jié)果)1. 分析有那些屬性和方法可以作為兩個子類的共同屬性和方法,然后寫出抽象類account的定義。兩種卡的構(gòu)造方法方案:1) account(string name, string aid,

34、 string category)category:cash, creditaccount a=new cashaccount(“zhangsan”,”00001”,”cash”)2) account(string name, string aid)aid: cas0001,cal0001,cam0001, cr000011) cashaccount(string name, string aid, string category)category: 工資卡、借記卡、理財卡cashaccount caa=new cashaccount(“zhangsan”,”00001”,” 工資卡”)2.分

35、析cashaccount有那些新增的屬性和方法,定義一個繼承于account的子類cashaccount。3.你認(rèn)為信用等級是否可以作為一個類存在,如果是,請定義。class enum creditlevel 成員變量;gold(20000),silver(10000),bronze(6000),iron(3000),normal(2000),zero(0);構(gòu)造2. 分析creditaccount有那些新增的屬性和方法,然后定義一個繼承于account的子類creditaccount,添加增加的屬性和方法。請按照要求編寫一個程序用你所定義的類完成下列業(yè)務(wù)操作。(1) 用account作為類型

36、定義兩個變量,分別引用creditaccount和cashaccount的對象,并完成存款500元的操作。cashaccount a=new cashaccount(張三,006,理財卡,1000);a.deposit(500); creditaccount b=new creditaccount(李四,007,b,600); b.deposit(500); (2) 分別用類型轉(zhuǎn)換機(jī)制,將上述創(chuàng)建的對象用creditaccount和cashaccount類型的變量引用。完成取款200元的操作。cashaccount a=new cashaccount(張三,006,理財卡,1000);a.wi

37、thdraw(200);creditaccount b=new creditaccount(李四,007,b,600); b.withdraw(200); (3) 每個對象再次取款400元,請輸出各自的余額。 張三取款400成功!900李四取款400成功!500(4) 查看creditaccount對象的透支額,并顯示其可以透支的最大限額。b.getoutline();李四的可透支額為5000(5) 列出其中一個賬戶的交易歷史。賬戶名李四transaction時間:mon dec 05 23:44:47 cst 2011,業(yè)務(wù)類型:存款,金額500creditaccount66848ctran

38、saction時間:mon dec 05 23:44:47 cst 2011,業(yè)務(wù)類型:取款,金額200creditaccount66848ctransaction時間:mon dec 05 23:44:47 cst 2011,業(yè)務(wù)類型:取款,金額400creditaccount66848cimport java.util.date;public class transaction public static final string types=存款,取款,查詢,轉(zhuǎn)賬;public static final int type_deposit=0; public static final in

39、t type_withdraw=1;public static final int type_touzhi=2;public static final int type_query=0;public static final int type_transfer=0;private int type;/業(yè)務(wù)類型private date createtime;/業(yè)務(wù)發(fā)生時間private int amount;/業(yè)務(wù)涉及的金額public transaction(int type, int amount) super();this.type = type;this.createtime = new

40、 date();this.amount = amount;public date getcreatetime() return createtime;public void setcreatetime(date createtime) this.createtime = createtime;public int getamount() return amount;public void setamount(int amount) this.amount = amount;overridepublic string tostring() return transaction時間:+create

41、time+,業(yè)務(wù)類型:+typestype+,金額+amount+;public class account private string name; private string aid; private string category; private int balance; public account() public account(string n,string a,string c,int b) =n; this.aid=a; this.category =c; this.balance=b; public account(string n,string a

42、) =n; this.aid=a; public void deposit(int amount) this.balance+=amount; return; /一個取款方法,將存款額從余額減去 public void withdraw(int amount) this.balance-=amount; /返回一個賬戶的當(dāng)前余額 public int getbalance() return this.balance; public void showtransactions() ; public static void main(string args) account b

43、=new account(魯寧,001,credit ,1000); b.withdraw(100); b.deposit(150); system.out.println(b.getbalance();import java.util.arraylist;import java.util.list;import java.util.scanner;public class cashaccount extends account private int balance;private string name;private string aid;private string type;priv

44、ate listtrans=new arraylist();public cashaccount(string n,string a, string t,int b) =n; this.aid =a; this.type =t; this.balance=b;public void getcashaccount()system.out.println(此賬號的詳細(xì)信息為);system.out.println(賬號的名稱是+name+,賬號為+aid+,賬號類型為,現(xiàn)金賬號的+type+類型);public void deposit(int d)this.balance =

45、this.balance +d;system.out.println(+存款+d+成功!);trans.add(new transaction(transaction.type_deposit,d); public void withdraw(int s) if(this.balance s) this.balance =this.balance-s; system.out.println(+取款+s); trans.add(new transaction(transaction.type_withdraw,s); else system.out.println(您的賬號余額不足,請重新輸入); public void settype(string t) this.type =t; public void gettype() system.out.println(現(xiàn)在的賬戶類型為+this.type); public int getbalance() return this.balance ; public string getname() return 賬號+ ; public void showtransactions() system.out.println(賬號名+t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論