版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建龍巖市公安局永定分局招聘招聘警務(wù)輔助人員34人考試參考試題及答案解析
- 2026云南保山電力股份有限公司校園招聘50人考試參考試題及答案解析
- 2026北京中關(guān)村第三小學(xué)永新分校招聘考試備考試題及答案解析
- 2026青海智特安全環(huán)境技術(shù)服務(wù)有限公司招聘技術(shù)員6人考試備考題庫及答案解析
- 人工關(guān)節(jié):骨科植入領(lǐng)域的技術(shù)革命與臨床實(shí)踐
- 2026云南昭通市水富市文化館城鎮(zhèn)公益性崗位人員招聘1人考試參考題庫及答案解析
- 2026年西安高新區(qū)第三初級中學(xué)校園招聘考試備考題庫及答案解析
- 2026年德宏職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題帶答案解析
- 2026年順德區(qū)陳村鎮(zhèn)青云小學(xué)招聘數(shù)學(xué)臨聘教師備考題庫及一套答案詳解
- 2026年重慶雙福農(nóng)產(chǎn)品批發(fā)市場有限公司招聘備考題庫及完整答案詳解1套
- 山東省濟(jì)南市2024年1月高二上學(xué)期學(xué)情期末檢測英語試題含解析
- 供應(yīng)鏈管理工作計(jì)劃與目標(biāo)
- 口腔門診醫(yī)療質(zhì)控培訓(xùn)
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- HGT4134-2022 工業(yè)聚乙二醇PEG
- GB/T 15231-2023玻璃纖維增強(qiáng)水泥性能試驗(yàn)方法
- 小學(xué)教職工代表大會提案表
- ESC2023年心臟起搏器和心臟再同步治療指南解讀
- 《泰坦尼克號》拉片分析
- GB/T 2624.1-2006用安裝在圓形截面管道中的差壓裝置測量滿管流體流量第1部分:一般原理和要求
- 基層版胸痛中心建設(shè)標(biāo)準(zhǔn)課件
評論
0/150
提交評論