Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)-實(shí)驗(yàn)指導(dǎo)書_第1頁
Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)-實(shí)驗(yàn)指導(dǎo)書_第2頁
Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)-實(shí)驗(yàn)指導(dǎo)書_第3頁
Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)-實(shí)驗(yàn)指導(dǎo)書_第4頁
Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)-實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)(微課

版)》實(shí)驗(yàn)指導(dǎo)書

課程號:________________________________

適用專業(yè):______________________________

制定人:________________________________

刖言

一、上機(jī)實(shí)驗(yàn)?zāi)康?/p>

上機(jī)實(shí)驗(yàn)的目的是提高學(xué)生的分析問題、解決問題的能力和動手能力,通過實(shí)踐環(huán)

節(jié)理解Java語言的基本結(jié)構(gòu)和程序設(shè)計(jì)方法。通過親手編程掌握J(rèn)ava語言編程的方法。

二、實(shí)驗(yàn)基本內(nèi)容

為了使學(xué)生在上機(jī)實(shí)驗(yàn)時目標(biāo)明確,本實(shí)驗(yàn)指導(dǎo)書針對課程內(nèi)容編寫了12個實(shí)驗(yàn)。

學(xué)生可以在課內(nèi)機(jī)時先完成抒導(dǎo)書中給出的程序,理解所學(xué)的知識,在此基礎(chǔ)上再編寫

其他應(yīng)用程序。指導(dǎo)書中的12個實(shí)驗(yàn)如下:

1.Java程序運(yùn)行環(huán)境的下載、安裝與配置。

2.狼人殺游戲。

3.汽車租賃系統(tǒng)。

5.美食烹飪大賽。

6.打卡異常提醒功能。

7.智慧農(nóng)業(yè)月度實(shí)際預(yù)算統(tǒng)計(jì)功能。

8.模擬病毒篡改系統(tǒng)文件內(nèi)容。

9.智慧兒童早教育兒識色系統(tǒng)。

10.模擬冰墩墩掛件預(yù)售功能

1L交友網(wǎng)站聊天程序

12.商場物品種類的新增功能

三、實(shí)驗(yàn)任務(wù)與時間安排

《Java程序設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)(微課版)》是一門實(shí)踐性很強(qiáng)的課程,除了在課內(nèi)安

排的實(shí)驗(yàn)外,鼓勵同學(xué)在課外用相關(guān)技術(shù)進(jìn)行編程練習(xí)?!禞ava設(shè)計(jì)基礎(chǔ)與實(shí)戰(zhàn)(微課

版)》上.機(jī)實(shí)驗(yàn)時間為27學(xué)時,與教學(xué)內(nèi)容同時進(jìn)行上機(jī)實(shí)驗(yàn)。

實(shí)驗(yàn)一:Java編程環(huán)境下載、安裝、配置與運(yùn)行

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握J(rèn)DK的安裝步驟;

2.掌握Path環(huán)境變量的配置

3.掌握編譯與運(yùn)行Java程序的方法

4.掌握TntelliJIDEA軟件的使用方法;

5.為后續(xù)java程序的實(shí)驗(yàn)做準(zhǔn)備

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.下載并安裝JDK1.8

(1)使用瀏覽器訪問Oracle官網(wǎng)進(jìn)入Javadownloads頁面選擇Java8版本進(jìn)行

下載。也可使用本書第1章資源包中提供的安裝文件

(2)雙擊運(yùn)行下載的安裝文件進(jìn)行安裝,在安裝過程一可以設(shè)置安裝路徑及選擇

組件,建議初次安裝使用默認(rèn)選項(xiàng)。

2.設(shè)置Path環(huán)境變量

(1)在系統(tǒng)環(huán)境變量的Path變量中增加值為JDK的安裝路徑。

(2)打開cmd命令提示符窗口,輸入命令"javac",若出現(xiàn)以下結(jié)果,則表示安

裝配置成功。

?W-oX

.?;“2kM3】

(<)Nicrwo^tCoivoratlOA.

1周溫:?option???*eurc*f

p箜就斷。,試信?

不簽R任何偽工值?

不生?候歸》3

-?WrtOK?出有鬢?修■正花我行的■作的為41

■prvaHon■F使陽已江時的AP:niiOB

■cp裕定金線用戶集文告”注■觸&修序的長■

-Murce^th<?tf>■H食找?人?義■的俊曹

—BE?H?>■■傳玄?/■力位?

-en6?rs?Mlrs中易》■■著X的幡巾■楮的伯H

-fq-oc:<no?w.a?iXy)■否次行在■至Ufa/或■源.

-t<ro<?ssor,<dass2>.<<Uss3>...J費(fèi)的序等名亭;,渭戮5的情案及內(nèi)

-procvttorpath?

wrmtQC?庭九EMcmy方圣?打的無御

y<ns>田9侑?2

-?<H?>■:ret■生底的宏文ft的心■

r<qn>■建成的4機(jī)驚頭又修的8?

-laplirlt:(runr.rUct)■量?否力?貳引用文ti生成公文河

TCCXlA。<?W>■虎毒文忖使同己才再■碼

-mrc?■發(fā)行版》

VKm本的■文a

AP:。招定的配■

3.使用記事本編寫和運(yùn)行Java程序

(l)使用操作系統(tǒng)提供的記事本作為編輯器。在電腦D盤新建文本文件命名為

HelloWorld,并修改后綴名為.java。在HelloWorld.java中編寫如下代碼。

I."OX

■HtloWorid.javaX+

文件查看0

publicclassHelloWorld{

publicstaticvoid■aln(String[]args){

Sy$tM.out.prlntln(MH<lloWorld!");

}

)

行1,則1100%WStidoM(ClttF)UTF-8

(2)打開命令提示符窗口,進(jìn)入HelloWorld.java所在路徑:d:°

(3)鍵入編譯器和要編譯的源程序文件名:javacHelloWorld.java。按回車健開

始編譯。

(4)在命令提示符窗口鍵入解釋器和要解釋的字節(jié)碼叉件名:javaHello.按回

車鍵即開始執(zhí)行程序并輸出結(jié)果。注意:字節(jié)碼文件區(qū)分大小寫。

kC\WlNDOWS\syst?m32\cmd.X+▼

C:\Ucpr?:\■■>d!

D:\>javacHelloWorld.java

D:\>javaHelloWorld

HelloWorld!

D:\>

4.安裝IntelliJIDEA

(1)使用瀏覽器訪問Jetbrains官網(wǎng)單擊DeveloperTools,選擇IntellijIDEA

(以下簡簡稱IDEA)進(jìn)行下載,也可使用本書第1章資源包中提供的安裝文件。

(2)雙擊運(yùn)行下載的安裝文件進(jìn)行安裝,安裝過程參考教材中步驟。

(3)在IDEA中新建Project,命名為exptOk在exptOl項(xiàng)目下src目錄下新建

類HelloWorld,在HelloWorld.java中編寫如下代碼。

e

c'HelloWorld

Project▼Qc*HelloWorldjava

&

7■?xptD:\ideaProject\java\expt

■publicclassHelloWorld{

>1.idea

>Ioutpublicstaticvoidmain(String[]args){

7:srcSywtam.nut.println(HHpl1nWnrld?;

▼G、HelloWorld

}

mmain(String(]):void

|Bexpt.iml

>IlliExternalLibraries

OScratchesandConsoles

運(yùn)行HelloWord.java的結(jié)果如卜,圖所示。

ftRun-expt-□X

Run:HelloWodd□。

>D:\Tools\JDK\1.8\bin\java.exe...

卜HelloWorld!

>??Processfinishedwithexitcode8

實(shí)驗(yàn)二:狼人殺游戲

【實(shí)驗(yàn)?zāi)康摹?/p>

1.了解Java的數(shù)據(jù)類型

2.掌握各種變量的聲明方式

3.理解運(yùn)算符的優(yōu)先級

4.掌握J(rèn)ava基本數(shù)據(jù)類型。運(yùn)算符與表達(dá)式、數(shù)組的使用方法

5.理解Java程序語法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語法的程序設(shè)計(jì)

方法

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.初始化游戲角色數(shù)組,包括狼人和平民,以及存活狀態(tài)數(shù)組

2.進(jìn)入游戲循環(huán),直到游戲結(jié)束

3.顯示當(dāng)前存活的玩家信息,包括玩家編號和角色

4.狼人行動,輸入要?dú)⑺赖耐婕揖幪?,如果選擇殺死同伴則無效,否則將該玩家

的存活狀態(tài)設(shè)置為死亡

5.判斷游戲是否結(jié)束,如果狼人數(shù)大于等于平民數(shù)則狼人勝利,如果狼人數(shù)為0

則平民勝利

6.如果游戲未結(jié)束,則進(jìn)入平民行動,包括發(fā)言和投票,輸入要投票的玩家編號,

將該玩家的存活狀態(tài)設(shè)置為死亡

7.再次判斷游戲是否結(jié)束

8.游戲結(jié)束,輸出游戲結(jié)束信息狼

人殺游戲運(yùn)行結(jié)果如下圖所示。

81Run-expt-□X

Run:WerewolfGame口Q-

歡迎來到較人條游戲!

當(dāng)前存活斥*,

號2:平民

■3:TK

二4:TK

Asa人請行動(輸入要?dú)⑺赖耐婕页翘枴?

3

比家3已被殺死.

狼人殷利1

游戲結(jié)束,再見!

狼人殺游戲的具體代碼如下

importjava.util.Scanner;

publicclassWerewolfGame)

publicstaticvoidmain(Siring口args){

Scannerscanner=newScanner(System,in);

System.out.printin("歡迎來到狼人殺游戲!“);

//定義游戲角色數(shù)組

Stringf]roles={〃狼人","狼人","平民","平民","平民"};

intnumPlayers=roles,length;

boolean[]isAlive=newboolean[numPlayers];

//初始化狀態(tài)

for(inti=0;i<numPlayers;i++){

isAlive[i]=true;

}

//游戲開始

booleangamcOver=false;

while(!gameOver){

//顯小蘭前狀態(tài)

System.out.printinC\n當(dāng)前存活玩家:”);

for(inti=0;i<numPlayers;i++){

if(isAliveti]){

System,out.println(i+":"+rolesti]);

}

)

//狼人行動

System.out.printin("\n狼人請行動(輸入要?dú)⑺赖耐婕揖幪?:");

intwoIfTarget=scanner,ncxtlnt();

if(roles[wolfTarget].equals("狼人")){

System.out.printin("不能殺死同伴!”);

}else{

isA1ive[wo1fTarget]=false;

System.out.printin("玩家"+woIfTarget+”已被殺死。

”);

)

//判斷游戲是否結(jié)束

intnumWolves=0;

intnumVillagers=0;

for(inti=0;i<numPlayers;i++){

if(isAlive[i]){

if(roles[i].equals("狼人")){

numWolves++;

}else{

numVillagers++;

}

)

)

if(numWolves>numVillagers){

System.out.println(/z\n狼人勝利!”);

gameOver=true;

}elseif(numWolves==0){

System,out.printIn(^Xn村民勝利!”);

gameOver=true;

)

//平民行動

if(!gameOver){

System.out.printlnC\n天亮了,請發(fā)言并投票(輸入要投票的

玩家編號):“);

intvoteTarget=scanner.nextlntO:

if(isAlive[voteTarget]){

System.out.printin("玩家"+voteTarget+”已被投

票出局?!ǎ?;

is/\liveLvoteTarget]=false;

}else{

System.out.printin(“該玩家已經(jīng)死亡或不存在!");

)

//判斷游戲是否結(jié)束

numWolves=0;

numVillagers=0;

for(inti=0;i<numPlayers;i++){

if(isAlive[i]){

if(roles[i].equals("狼人”)){

numWolves++;

}else{

numVillagers++;

}

}

}

if(numWolves>=numVillagers){

System,out.printIn("\n狼人勝利!”);

gameOver=true;

}elseif(numWolves==0){

System,out.println(z,\n村民勝利!”);

gameOver=true;

System.out.printin("\n游戲結(jié)束。再見!");

實(shí)驗(yàn)三汽車租賃系統(tǒng)

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握面向?qū)ο笤O(shè)計(jì)基本步驟

2.掌握類和對象的概念

3.掌握構(gòu)造方法及其直載

4.了解成員變量和成員方法的特性。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】設(shè)計(jì)一個簡單的汽車租賃系統(tǒng),系統(tǒng)包含汽車類和租賃類,

要求如下:汽車類Car:

?屬性:汽車品牌、車型、顏色、租金每R價格、是否被租走

?方法:構(gòu)造方法、獲取車型、獲取顏色、獲取租金價格、是否被租走、租

賃該車

租賃類Rental:

?屬性:租賃天數(shù)、租賃的汽車對象、總租金

?方法:構(gòu)造方法、計(jì)算租金、獲取租賃天數(shù)、獲取租賃汽車、獲取總租金

要求用戶可以查看當(dāng)前可用的汽車并進(jìn)行租賃,租賃時需要輸入租賃天數(shù),系統(tǒng)會

計(jì)算總租金并將租賃的汽車標(biāo)記為已被租走。還車時需要將租賃的汽車標(biāo)記為未被租走。

汽車租賃系統(tǒng)的運(yùn)行截圖如卜所示。

fllRun-expt—□X

Run:二.Test口Q-

CfD:\Tools\J0K\1.8\bin\java.exe...

/1汽車機(jī)貨桑統(tǒng)】

_可機(jī)乍精:

■01.ToyotaCan”工色天

CJ-2.HondaCivic紅色88.0/人

#3.FordFocus鍬色90.O//i

a■輸入你姿機(jī)的下的修號(輸入。運(yùn)出):2

輸入你要租的天數(shù):1

=你機(jī)「一輛紅色Civic共1天

A總機(jī)命:80.。元

【汽車租貨票境】

可祖乍輛:

1.ToyotaCanry黑色188.”天

3.FordFocus極色9。.9/天

輸入你要租的車的(柏人。退出):

汽車類Car.java的代碼如下:

publicclassCar{

privateStringbrand;

privateStringmodel;

privateStringcolor;

privatedoublercntPrice;

privatebooleanrented;

publicCar(Stringbrand,Stringmodel,Stringcolor,doublerentPrice)

this,brand=brand;

this,model=model;

this,color=color;

this.rentPrice=rentPrice;

this.rented=false;

)

publicStringgetModel(){

returnmode1;

)

publicStringgotColor(){

returncolor;

}

publicdoublegetRentPriceO{

returnrentPrice;

)

publicboo1eanisRentedO{

returnrented;

)

publicvoidrent(){

rented=true;

}

publicvoidreturnCar()(

rented=false;

)

)

租賃類Rental.java的代碼如下:

publicclassRental,:

privateintrentalDays:

privateCarcar;

privatedoubletotalPrice;

publicRental(Carcar,intrentalDays){

this,car=car;

this.rentalDays=rentalDays;

this.totalPrice=rentalDays*car.getRentPrice();

car.rent();

)

publicintgetRentalDaysO{

returnrentalDays;

)

publicCargetCarO{

returncar;

publicdoublegetTotalPriceO{

returntotalPrice;

)

publicvoidreturnCar(){

car.returnCar();

}

)

測試類代碼如下:

publicclassTost{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System,in);

Car[]cars=newCar[3];//初始化3輛車

cars[0]=newCar("Toyota","Camry","黑色",100,false);

cars[l]=newCar("Honda","Civic","紅色",80,false);

cars[2]=nsCar("Ford","Focus","銀色",90,false);

while(true){

System.out.printing'【汽車租賃系統(tǒng)】");

System.out.printin("可租車輛;

for(inti=0;i<cars,length;i++){

if(!cars[i].isRentedO){

System.out.println(i+1+”.”+cars[i].getBrand()

+”*+cars[i].getModel()+”"+cars[i].getColor()+""+

cars[i].getRentPrice()+〃/天”);

)

)

System.out.print("輸入你要租的車的編號(輸入0退出):“);

intcarlndex=scanner,nextlnl();

if(carlndex==0){

break;

if(carindex<1||carindex>cars.length){

System,out.printin("該車可租”);

continue;

)

if(cars[carlndex-1].isRentedO){

System,out.printIn(“該車已租”);

continue;

)

System.out.print("輸入你要租的天數(shù);

intrentalDays=scanner,nextlnt();

if(rentalDays<=0){

System,out.printin("租賃天數(shù)不合法!”);

continue;

)

Rentalrental=newRental(cars[carIndex-1],rentalDays);

doubletotalRent=rental.getTotalPrice0;

System.out.printin(*你租了一輛"+cars[carindex-

1].getColor()+”"+cars[carindex-1].getModel()+〃共〃+rentalDays+

〃天〃);

System.out.printIn("總租金:"+totalRent+“元");

cars[carIndex-1].rent();

}

)

實(shí)驗(yàn)四智能圖形設(shè)計(jì)師

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握封裝的概念及其使用

2.了解類的封裝方法

3.掌握OOP方式進(jìn)行程序設(shè)計(jì)的方法

4.了解類的繼承性和多態(tài)性的作用。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.創(chuàng)建一個基類Shape,包含以下屬性和方法:

?屬性:顏色color、是否填充fill、邊框?qū)挾萣ordcrWidih

?方法:構(gòu)造方法、獲取和設(shè)置屬性的方法

Shape.java的代碼如下。

publicclassShape{

protecteddoublearea;

pub1icdoub1egetArea。{

returnarea;

)

)

2.創(chuàng)建Shape的子類Rectangle,包含以卜,屬性和方法:

?屬性:寬度width、高度height

?方法:構(gòu)造方法、獲取和設(shè)置屬性的方法、計(jì)算面積方法areaO

Rectangle,java的示例代碼如下。

publicclassRectangleextendsShape{

privatedoublelength;

privatedoub1ewidth;

publicRectangle(doublelength,doublewidth)[

this,length=length;

this,width=width;

this,area=length*width;

)

)

3.創(chuàng)建Shape的子類Circle,包含以下屬性和方法:

?屬性:半徑radius

?方法:構(gòu)造方法、獲取和設(shè)置屬性的方法、計(jì)算面積方法areaO

Circle,java的代碼如下,

publicclassCircleextendsShape{

privatedoubleradius;

pub1icCircle(doutleradius){

this,radius=radius;

this,area=Math.PI*radius*radius;

}

}

4.創(chuàng)建Shape的子類Triangle,包含以下屬性和方法:

?屬性:三角形三邊a、b、c

?方法:構(gòu)造方法、獲取和設(shè)置屬性的方法、計(jì)算面積方法areaO

publicclassTriangleextendsShape{

privatedoublebase;

privatedoubleheight;

publicTriangle(dcublebase,doubleheight){

this,base=base;

this,height=height;

this.area=0.5*base*height;

)

5.創(chuàng)建一個圖形類管理器ShapeManager,包含以下方法:

?添加圖形方法add(Shapeshape)

?移除圖形方法remove(Shapeshape)

?顯示所有圖形方法display。

?在主函數(shù)中,創(chuàng)建各種不同的圖形對象,添加到圖形管理器中,然后調(diào)用顯示

所有圖形的方法。

ShapeManager.java的代嗎如下。

publicclassShapeManager{

privateShape[]shapes;

publicShapeManager(intsize){

shapes=newShape[size];

)

publicvoidaddShape(Shapeshape,iniindex){

shapes[index]=shape;

}

publicdoublegetlotalAreaO{

doubletotalArea=0;

for(Shapeshape:shapes){

if(shape!=null){

totalArea+=shape,getArea();

)

)

returntotalArea;

)

實(shí)驗(yàn)五美食烹飪大賽

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握抽象類使用。

2.掌握接口的使用。

3.掌握Lambda表達(dá)式用法。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.創(chuàng)建一個抽象類,包含姓名和拿手菜屬性及做菜的抽象方法。

2.創(chuàng)建一個接口,含有做菜種類的方法.

3.創(chuàng)建兩個人張三和李四分別繼承抽象類和實(shí)現(xiàn)做菜接口。

4.實(shí)現(xiàn)抽象類和接口里的方法,并成功打印如下圖所云。

-------比賽開始----------

我是張三我做的是魚肉

用蒸的方式做菜

===========><===========

我是李四我做的是豬肉

用炒的方式做菜

比賽結(jié)束,評委投票

張三

李四

張三

李四

張三

-------->張三勝

美食烹飪大賽的代碼如下。其中抽象

類代碼如下:

abstractpublicclassPeople{

privateStringname;〃姓名

privateStringkind;//拿手菜

publicPeople(Stringname,Stringkind){

this,name=name;

this,kind=kind;

)

publicPeople(){

)

publicabstractvoidknifeO;

publicStringgetNameO{

returnname;

)

publicvoidsetName(Stringname){

this,name=name;

)

publicStringgetKindO{

returnkind;

)

publicvoidsetKind(Stringkind){

this.kind=kind;

)

)

張三實(shí)體類代碼如下:

pubIieclassZhangSannxtnndsPoopInimplpmonts)oFood(

publicZhangSan(){

super();

)

publicZhangSan(Stringname,Stringkind){

super(name,kind);

)

@0verride

publicvoidknifeO{

System.out.printIn("用蒸的方式做菜");

)

?Override

publicvoidmakeFood(Stringname,Stringkind){

System.out.printin("我是"+name+“我做的是"+kind);

)

)

李四實(shí)體類代碼如下:

publicclassLiSiextendsPeopleimplementsDolrood{

publicLiSi(Stringname,Stringkind){

super(name,kind);

)

publicLiSi(){

)

?Override

publicvoidmakeFood(Stringname,Stringkind){

System.out.printIn("我是"+name+“我做的是“+kind);

)

?Override

publicvoidknifeO{

System.out.,printIn("用炒的方式做菜”):

)

)

接口類代碼如下:

pubIicinterfaceDoFcod{

〃做飯過程

voidmakeFood(Stringname,Stringkind);

publicstaticvoidmain(String[]args){

ZhangSanzhangSan=newZhangSan();

LiSiliSi=newLiSi();

System.out.println(*-------比賽開始--------*);

zhangSan.makeFood(“張三","魚肉");

zhangSan.knifeO;

System.out.prin11n(*========><=======*);

1iSi.makeFood("李四","豬肉");

liSi.knifeO;

System.out.Drintln("比賽結(jié)束,評委投票”):

List<String>vote=newArrayUst<>();

vote.add("張三”);

vote,add("李四”);

vote.add("張三”);

vote,add("李四”);

vote.add("張三”);

vote,stream().forEach(System,out::priniIn);

System.out.printing-------->張三勝”);

實(shí)驗(yàn)六打卡異常提醒功能

【實(shí)驗(yàn)?zāi)康摹?/p>

1.理解異常的概念。

2.理解異常的類型。

3.掌握異常處理的方式。

4.了解自定義異常類。

5.掌握常用類的使用方法。

6.掌握日期操作類的使用方法。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.自定義一個異常類并繼承RuntimeExccption。2.使用日期格式化類獲得當(dāng)前

時間。

3.若當(dāng)前時間晚于截止打卡時間,拋出自定義異常,如F圖所示。

當(dāng)前時間:11:52:56

超過早9點(diǎn)不允許打卡

打卡異常提醒功能代碼如下。

publicclassMyExceptionextendsRuntimeException(

publicMyExccptior.O{

)

publicMyExceptior(Strings){

super(s);

}

pub1icstaticvoicmain(String[]args){

SimpleDatcFormatsimplcDatcFormat=new

SimpleDateEormat("HH:iwn:ss");〃日期格式化類

Stringformat=simpleDateFormat.format(nevDate。);〃當(dāng)前時間轉(zhuǎn)成

自定義字符串類型

Dateparse=rull;

try(

parse=simpleDateFormat.parse(“09:00:00");〃截止打卡時間日期

}catch(ParscExccptionc){

e.printStackTraceO;

)

System.out.printIn("當(dāng)前時間:"+format);

if(newDate().after(parse)){〃比較當(dāng)前日期是否大于早9點(diǎn)

try{

thrownewMyExceplion("超過早9點(diǎn)不允許打卡”);//拋出自定義

異常

}catch(MyExceptione){

Systeir.out.printIn(e.getMessage());

)

)

}

實(shí)驗(yàn)七智慧農(nóng)業(yè)月度實(shí)際預(yù)算統(tǒng)計(jì)功能

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握集合的使用。

2.掌握泛型的使用。

3.掌握集合遍歷的方法。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.創(chuàng)建水稻,小爰,玉米三個部門的List預(yù)算集合。

2.收集各部門員工的實(shí)際報(bào)銷金額。

3.使用迭代器計(jì)算各個部門的實(shí)際報(bào)銷金額。

4.匯總所有部門實(shí)際花費(fèi)金額和一共花費(fèi)金額,并輸已打印如下圖所示。

___________本季度總費(fèi)用_____________

玉米部門本季度一共報(bào)稍了:148.57元

水稻部門本季度一共報(bào)俏了:元

小麥部門本季度一共報(bào)請了:89.9元

合計(jì):本年度農(nóng)北部門一共花費(fèi)339.57元

智慧農(nóng)業(yè)實(shí)際預(yù)算統(tǒng)計(jì)管理代碼如下。

publicclassAgricultural(

publicstaticvoidmain(Stringargs[]){

List<Double>rice=newArrayList<>();//水稻部門的實(shí)際總預(yù)算集

DoublericeMcney=0.0;//水稻一共花費(fèi)金額初始變量

rice.add(50.20):〃小李本季度報(bào)銷50.2元。

rice.add(29.58);〃小王本季度報(bào)銷29.58元,

rice,add(20.32);〃小張本季度報(bào)銷20.32元,

Iterator<Douhle>riceiterator=rice,iterator();

while(riccltcrator.hasNcxt()){〃使用迭代器計(jì)算水稻部門總花費(fèi)

riceMoney+=riceiterator,next();

)

List<Double>wheat=newArrayListOO;//小麥部門的實(shí)際總預(yù)算

集合

DoublewheatVoney=0.0;〃小麥一共花費(fèi)金額初始變量

wheat.add(13.12);〃小趙本季度報(bào)銷13.12元。

wheat,add(66.66);〃小錢本季度報(bào)銷66.66元。

wheat,add(10.12):〃小孫本季度報(bào)銷10.12元。

Iterator<Doutle>wheatIterator=wheat,iterator();

while(wheatIterator.hasNexl()){〃使用迭代器計(jì)算小麥部門總花費(fèi)

wheatMoney+=wheatIterator,next();

}

List<Double>corn=newArrayListOO:/./玉米部門的實(shí)際總預(yù)算集

DoublecornMcney=0.0;〃玉米一共花費(fèi)金額初始變量

corn,add(30.32);//小趙本季度報(bào)銷30.32元,

corn,add(95.32);〃小錢本季度報(bào)銷95.32元,

corn.add(14.S3);〃小孫本季度報(bào)銷14.93元,

Iterator<Doutle>corniterator=corn.iterator();

while(cornltcrator.hasNcxt()){〃使用迭代器計(jì)算玉米部門總花費(fèi)

cornMoney?=cornIterator.next();

}

//各部門預(yù)算統(tǒng)計(jì)

Map<String,Dcuble>budget=newHashMapO();

budget,put(“水稻",riccMoney);

budget.put(〃小麥”,wheatMoney);

budget,put(“玉米”,cornMoney);

Iterator<String>budgetIterator=budget.keySet().iterator();

Doubletotal=0.0;〃所有部門一共實(shí)際花費(fèi)總金額初始變量

System,out.println(*本季度總費(fèi)用");

while(budgetiterator.hasNextO){〃迭代器判下一個元素是否有值

Stringkey=budgetiterator,next();〃拿到下一個元素的key

System.out.println(key+”部門本季度一共報(bào)銷了:“+

budget,get(key)+"元”);

total+=budget.get(key);〃拿到該Key對應(yīng)的Map具體值

}

System,out.printIn(,z〃);

System.out.printIn("合計(jì):本年度農(nóng)業(yè)部門一共花費(fèi)"+total+”元

”);

)

)

實(shí)驗(yàn)八模仿病毒篡改系統(tǒng)文件內(nèi)容

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握使用字節(jié)流和字符流讀寫文件。

2.了解其他10流。

3.熟練掌握File類及其用法。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.在D盤目錄下,新建一個名為Bing的txt文件。輸入內(nèi)容111111111111,如下

圖所示。

?計(jì)算機(jī)?軟件(D:,>

如Bing.txt-記事本

文件(E)編稿⑥格式9)查看凹朝助?

111111111111

2.使用File類判斷當(dāng)前目錄下是否含有此文件,有則破壞文件內(nèi)容。

3.創(chuàng)建帶緩沖的讀取字符流讀取文件的第一行內(nèi)容,并打印出來。

4.創(chuàng)建寫入字符流,并寫入“??????????????????????”內(nèi)容。

5.查看控制臺和Bing文本發(fā)現(xiàn)內(nèi)容確實(shí)被篡改破壞,如下圖所示。

讀取到的內(nèi)容--?111111111111

------->破壞成功<--------

困Bing.txt-記事本.

文件(B編案(£)格式Q)查看國)幫助面

9999999999999999999999

模仿病毒篡改系統(tǒng)文件的代碼如卜。

publicclassReadFi1eLineByLineUsingBufferedReader{

publicstaticvoidmain(String[]args){

BufferedReaderreader;〃創(chuàng)建讀取文件緩沖流全局變量

Filefile=newFile(〃D:/bing.txt〃);

if(file,exists。){〃判斷文件是否存在

try{

reader=newBufferedReader(newFileReader(

"D:/bing.txt"));〃實(shí)例化讀取文件緩沖流

Stringline=reader.readLine();〃讀到下一行數(shù)據(jù)

while(line!=null){〃不為空繼續(xù)讀下一行

System,out.printin(,z讀取到的內(nèi)容—》〃+

line);〃打印每一行內(nèi)容

line=reader.readLineO;〃繼續(xù)下一行

)

reader,close。;〃關(guān)閉緩沖流

}catch(lOExceptione){

e.printStackTrace();

1

Writerwriter;〃定義寫入字符流全局變量

(

try(

writer=newFileWriter("D:/bing.txt");〃實(shí)例

化字節(jié)寫入流

writerwrite/?〃寫N

內(nèi)容

System.out.printinC------>破壞成功<--------

〃);

writer,close。;〃關(guān)閉字節(jié)流

}catch(TOExccptione){

e.printStackTrace();

)

)

)

)

)

實(shí)驗(yàn)九智慧兒童早教育兒識色系統(tǒng)

【實(shí)驗(yàn)?zāi)康摹?/p>

1.掌握常用的Swing組件的使用辦法。

2.了解常用的窗體和布局管理器。

3.熟練掌握事件監(jiān)聽器的使用方法。

【實(shí)驗(yàn)要求】

1.預(yù)習(xí)試驗(yàn)內(nèi)容并寫出上機(jī)報(bào)告。

2.實(shí)驗(yàn)中出現(xiàn)的問題及實(shí)驗(yàn)體會。

【實(shí)驗(yàn)內(nèi)容】

1.創(chuàng)建圖形用戶界面,在Applet容器中添加組件標(biāo)簽、按鈕,并使用網(wǎng)格布局管

理器排列組件在容器中的位置。

2.編寫頂層容器Container和中間容器Jpane的CardLayoul(共設(shè)置六種顏色)。

3.要求給點(diǎn)擊按鈕注冊監(jiān)聽器,點(diǎn)擊按鈕時可切換容器中的下一個顏色。效果如

下圖所示。

[⑥|CardLayoutDemo窗口[UJ|回J

1下一張,

智慧兒童早教育兒識色功能代碼如下。

publicclassCardLayoutDemoextendsJFrame{

privateJPanelcardPanel=null;//主要的JPanel,該JPane1的布局管理將

被設(shè)置成CardLayout

privateJPanelcontrolPanel=null;//放按鈕的JPanel

privateCardLayoutcard=null;//CardLayout布局管理器

privateJButtonbtnNext=null;//下一步

privateJPanelpl=null,p_2=null,p_3=null,p_4=null,p_5=null,

p_6=null;//要切換的三個JPanel

publicCardLayoutDemoO(

super(?,CardLayoutDenio窗口”);

try(

//將LookAnd'eel設(shè)置成Windows樣式

UIManager.setl.ookAndFeel("com.sun.java,swing,plaf.windows.WindowsLookAndFee

r);

}catch(Exceptionex){

ex.printStackTraceO;

}

/**創(chuàng)建一個具有指定的水平和垂直間隙的新卡片布局*/

card=newCardLayout(5,5);

cardPanel=newJPancl(card);//JPanel的布局管理將被設(shè)置成

CardLayout

controlPanel=newJPanel();//構(gòu)造放按鈕的JPanel

btnNext=newJButton(〃下一張>");

controlPanel.add(btnNext);

p_l=newJPanel():

p_2-newJPancl(.);

p_3=newJPanel0;

p_4=newJPanel(.);

p_5=nowJPancl();

p_6=newJPanel();

//設(shè)置每頁的顏色

pl.setBackground(Color.GREEN);

p_2.setBackground(Color.MAGENTA);

p3.setBackgi'ound(Color.WHITE);

p_4-setBackground(Color.PINK);

p_5.setBackground(Color.CYAN);

p_6.setBackground(Color.ORANGE);

〃設(shè)置每頁的標(biāo)題名字

p_l.add(newJLabel("綠色”));

p_2.add(newJLabel("紫色"));

p_3.add(ncwJLabcl("白色”));

p_4-add(newJLabel("粉色"));

p5.add(ne\vJLabel("綠色”));

p_6.add(newJLabel("橙色”));

cardPane1.add(pl,"pl");

cardPanel.add(p_2,"p2”);

cardPane1.add(p_3,"p3”);

溫馨提示

  • 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

提交評論