版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、項(xiàng)目競賽現(xiàn)場計(jì)分系統(tǒng)Page 2技能目標(biāo) 正確操控程序中的各種數(shù)據(jù)。Page 3知識(shí)目標(biāo)1熟練掌握J(rèn)ava語言中的常量和變量2熟練掌握J(rèn)ava語言中的數(shù)據(jù)類型,并靈活應(yīng)用3熟練應(yīng)用運(yùn)算符和表達(dá)式Page 4項(xiàng)目簡介v依據(jù)提示,為選手輸入10個(gè)評(píng)委打分,系統(tǒng)自動(dòng)對(duì)輸入分?jǐn)?shù)進(jìn)行統(tǒng)計(jì)分析,去掉一個(gè)最高分和一個(gè)最低分,然后輸出該選手的平均成績。v說明:每個(gè)評(píng)委打分都是用戶從鍵盤輸入數(shù)據(jù)。Page 5項(xiàng)目分析v 要完成競賽現(xiàn)場計(jì)分系統(tǒng),第一要完成分?jǐn)?shù)錄入,用戶根據(jù)提示將選手的10個(gè)成績錄入系統(tǒng),并將數(shù)據(jù)保存在數(shù)組當(dāng)中;第二要完成分?jǐn)?shù)的輸出,即輸出“去掉一個(gè)最高分*分,去掉一個(gè)最低分*分,該選手的平均得分
2、*分”,所以本項(xiàng)目由兩個(gè)任務(wù)組成。v 任務(wù)2.1完成競賽現(xiàn)場分?jǐn)?shù)的統(tǒng)計(jì);任務(wù)2.2完成參賽選手成績的輸出。Page 6任務(wù)2.1 統(tǒng)計(jì)競賽現(xiàn)場分?jǐn)?shù)v 2.1.1 任務(wù)簡介v 在唱歌比賽現(xiàn)場,用戶依據(jù)競賽現(xiàn)場計(jì)分系統(tǒng)的提示,將現(xiàn)場10個(gè)評(píng)委對(duì)比賽選手的打分情況準(zhǔn)確的輸入到系統(tǒng)中。v 2.1.2 實(shí)現(xiàn)步驟v 【例2-1】根據(jù)競賽現(xiàn)場計(jì)分系統(tǒng)的提示,用戶將評(píng)委打分錄入系統(tǒng)。Page 7【例2-1】v (1) 定義ScoreInput類,主要功能是用于用戶輸入成績。import java.util.Scanner; class ScoreInput /定義10個(gè)變量分別存儲(chǔ)10個(gè)成績 public s
3、tatic float score1,score2,score3,score4,score5,score6,score7, score8,score9,score10; /*歡迎界面*/ public static void Welcome() System.out.println(*); System.out.println(*歡迎使用競賽現(xiàn)場計(jì)分系統(tǒng)*); System.out.println(*); /*錄入結(jié)束提示*/ public static void inputOver() System.out.println(*錄入結(jié)束*); /*成績錄入方法*/ public static
4、void inputScore() Welcome();Page 8【例2-1】v (1) 定義ScoreInput類,主要功能是用于用戶輸入成績。Scanner sc = new Scanner(System.in); /*將10個(gè)評(píng)委的打分保存到變量中*/ System.out.print (n請(qǐng)輸入第1位評(píng)委打分:); score1 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第2位評(píng)委打分:); score2 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第3位評(píng)委打分:); score3 = sc.nextFloa
5、t(); System.out.print (n請(qǐng)輸入第4位評(píng)委打分:); score4 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第5位評(píng)委打分:); score5 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第6位評(píng)委打分:); score6 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第7位評(píng)委打分:); score7 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第8位評(píng)委打分:); score8 = sc.nextFloat();Page 9
6、【例2-1】v (1) 定義ScoreInput類,主要功能是用于用戶輸入成績。System.out.print (n請(qǐng)輸入第9位評(píng)委打分:); score9 = sc.nextFloat(); System.out.print (n請(qǐng)輸入第10位評(píng)委打分:); score10 = sc.nextFloat(); inputOver(); Page 10【例2-1】v (2) 定義測試類Test,用于測試ScoreInput類是否能正常錄入分?jǐn)?shù),同時(shí)測試分?jǐn)?shù)是否正確保存。public class Test public static void main(Stringargs) /*將分?jǐn)?shù)錄入到
7、競賽現(xiàn)場分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)中*/ ScoreInput.inputScore(); /*將競賽現(xiàn)場分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)已經(jīng)存儲(chǔ)的分?jǐn)?shù)進(jìn)行打印輸出*/ System.out.println(錄入成績分別為:+ScoreInput.score1+、+ScoreInput.score2+、+ScoreInput.score3+、+ScoreInput.score4+、+ ScoreInput.score5+、+ScoreInput.score6+、+ScoreInput.score7+、+ScoreInput.score8+、+ScoreInput.score9+、+ScoreInput.score10); Pa
8、ge 11【例2-1】v 運(yùn)行說明:首先編譯ScoreInput.java,然后編輯Test.java,最后運(yùn)行Test。運(yùn)行結(jié)果如圖2-1和圖2-2所示。圖2-1 運(yùn)行Test.java效果(輸入分?jǐn)?shù)前)圖2-2 運(yùn)行Test.java效果(輸入分?jǐn)?shù)后)Page 12任務(wù)2.1 統(tǒng)計(jì)競賽現(xiàn)場分?jǐn)?shù)v 2.1.3 相關(guān)知識(shí)1Java語言的標(biāo)識(shí)符和關(guān)鍵字2常量與變量3Java語言的數(shù)據(jù)類型4數(shù)據(jù)類型的轉(zhuǎn)換5Java運(yùn)算符與表達(dá)式Page 132.1.3.1 Java語言的標(biāo)識(shí)符和關(guān)鍵字1.標(biāo)識(shí)符 標(biāo)識(shí)符是指可被用來為類、變量或方法等命名的字符序列。換言之,標(biāo)識(shí)符就是用用戶自定義的名稱來標(biāo)識(shí)類、變量
9、或方法等。更簡單的說,標(biāo)識(shí)符就是一個(gè)名字。命名規(guī)則:標(biāo)識(shí)符由字母、數(shù)字、下劃線或美元符號(hào)組成。標(biāo)識(shí)符第一個(gè)字符不能是數(shù)字。Java語言嚴(yán)格區(qū)分英文字母大小寫。標(biāo)識(shí)符不能與關(guān)鍵字(保留字)同名。盡量做到見名知意。Page 142.1.3.1 Java語言的標(biāo)識(shí)符和關(guān)鍵字1.標(biāo)識(shí)符例:以下為合法的標(biāo)識(shí)符:aIdentifier、_Identifier、$Identifier、elseother以下為不合法的標(biāo)識(shí)符:2002WorldCup(數(shù)字開頭)、IdentifierJava(為非法組成部分)、else(關(guān)鍵字) Page 152.1.3.1 Java語言的標(biāo)識(shí)符和關(guān)鍵字2.關(guān)鍵字 Java的
10、關(guān)鍵字對(duì)Java的編譯器有特殊的意義,用來表示一種數(shù)據(jù)類型或者表示程序的結(jié)構(gòu)等,具有專門的意義和用途,不能當(dāng)作一般的標(biāo)識(shí)符使用。練習(xí):以下合法的標(biāo)識(shí)符是:Aabc.clsB. _studentC. 3724a D. classPage 162.1.3.2 常量與變量在程序執(zhí)行過程中其值不能改變的數(shù)據(jù),稱為常量。Java中的常量值是用文字串表示的,它區(qū)分為不同的類型。(1)整型常量十進(jìn)制整數(shù):如123、-456、0。八進(jìn)制整數(shù):以0開頭。如0123。十六進(jìn)制整數(shù):以0 x或0X開頭。如0X123。(2)實(shí)型常量十進(jìn)制數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn)。如0.123??茖W(xué)計(jì)數(shù)法形式:如0.
11、123e3或123E-3,其中e或E之前必須有數(shù)字,之后的指數(shù)必須為整數(shù)。1常 量Page 172.1.3.2 常量與變量(3)布爾型常量有true和false兩種取值,分別表示真、假兩種不同的狀態(tài)。(4)字符型常量用單引號(hào)引起來的一個(gè)字符。如a、2。(5)字符串型常量用雙引號(hào)引起來的一串字符。如”hello”、”123456”。(6)null常量用來表示引用的對(duì)象為空。1常 量Page 182.1.3.2 常量與變量(7)自定義常量定義格式:final數(shù)據(jù)類型 常量名數(shù)值例:final double PI=3.1415926;說明: 常量一旦初始化,不能對(duì)其重新賦值。習(xí)慣上,常量名中所有的字
12、符均大寫。1常 量Page 192.1.3.2 常量與變量 Java語言的變量用于存儲(chǔ)值變化的量。它是在程序運(yùn)行期間,系統(tǒng)為程序分配的一塊內(nèi)存單元,變量名為內(nèi)存單元的名稱,內(nèi)存單元中所裝載的數(shù)據(jù)就是變量的值,它是Java程序中的基本存儲(chǔ)單元。 Java語言中的變量必須先定義后使用,定義變量包括指明變量的數(shù)據(jù)類型和變量名稱,必要時(shí)還可以指定變量的初始數(shù)值。 定義Java變量的語句格式為:數(shù)據(jù)類型 變量名表;例:int a,b,c; String name,password;說明:習(xí)慣上,變量名以小寫字母開頭,若由多個(gè)單詞組成,其他單詞由大寫字母開頭。2變 量Page 202.1.3.3 Java
13、語言的數(shù)據(jù)類型v 在Java語言中,數(shù)據(jù)類型可以分為兩大類:基本類型和擴(kuò)展類型。表2-1列出了常用的Java基本數(shù)據(jù)類型。類型描述取值范圍boolean布爾型只有兩個(gè)值true,falsechar字符型0255byte8位帶符號(hào)整數(shù)-128127之間的任意整數(shù)short16位無符號(hào)整數(shù)-32 76832 767之間的任意整數(shù)int32位帶符號(hào)整數(shù)-231231-1之間的任意整數(shù)long64位帶符號(hào)整數(shù)-263263-1之間的任意整數(shù)float32位單精度浮點(diǎn)數(shù)根據(jù)IEEE 7541985標(biāo)準(zhǔn)double64位雙精度浮點(diǎn)數(shù)根據(jù)IEEE 7541985標(biāo)準(zhǔn)表2-1 Java基本數(shù)據(jù)類型Page 2
14、12.1.3.3 Java語言的數(shù)據(jù)類型1.整型:在Java編程語言中有byte、short、int、long四種整數(shù)類型,這四種整數(shù)類型的區(qū)別在于它們能夠表示的范圍不同。Java中可以在整數(shù)數(shù)值后面加字母l或者L表示長整型long?!纠縤nt salary=197; long salary=197L; long salary=197l; Page 222.1.3.3 Java語言的數(shù)據(jù)類型2.實(shí)型:實(shí)型變量的類型有float和double兩種類型,用來表示有小數(shù)的數(shù)值。其中double型比float型具有更高的精度和更大的表示范圍。如果一個(gè)數(shù)字包括小數(shù)點(diǎn)或指數(shù)部分,或者在數(shù)字后帶有字母F或
15、f(float)、D或d(double),則該數(shù)字文字為浮點(diǎn)類型。浮點(diǎn)數(shù)除非在末尾強(qiáng)制加F或者f表示float,否則默認(rèn)浮點(diǎn)數(shù)都是double類型?!纠縡loat miles=0.9; /Errordouble miles=0.9; double miles=0.9D; double miles=0.9d; float miles=0.9f; 或是float miles=0.9F; Page 232.1.3.3 Java語言的數(shù)據(jù)類型3.字符型:使用char類型可表示單個(gè)字符。一個(gè)char代表一個(gè)16-bit無符號(hào)的(不分正負(fù)的)Unicode字符。占兩個(gè)字節(jié)。Java采用Unicode編碼
16、方式。Unicode編碼采用16位的編碼方式,因此可以對(duì)65536種字符進(jìn)行編碼,能夠容納目前世界上已知的字符集。 Java也提供轉(zhuǎn)義字符,以反斜杠開頭。常用的轉(zhuǎn)義字符見P22表2-3。【例】char kind=I; char c=我;Page 242.1.3.3 Java語言的數(shù)據(jù)類型4)字符串:Java中的字符串常量是作為String類的一個(gè)對(duì)象來處理的5)布爾型:布爾型數(shù)據(jù)只有兩個(gè)值:true和falseboolean b=true;/定義b為布爾型變量,且初值為true布爾型變量的定義,如:Page 252.1.3.3 Java語言的數(shù)據(jù)類型【例2-2】下面程序中用到了前面提到的數(shù)據(jù)類
17、型,并通過屏幕顯示它們的值。public class SimpleTypes public static void main(String args) byte b=0 x55; short s=0 x55ff; int i=1000000; long l=0 xfffL; char c=c; float f=0.23F; double d=0.7E-3; boolean bool=true; System.out.println(b=+b); System.out.println(s=+s); System.out.println(i=+i); System.out.println(l=+l
18、); System.out.println(c=+c);Page 262.1.3.3 Java語言的數(shù)據(jù)類型System.out.println(f=+f); System.out.println(d=+d); System.out.println(bool=+bool); 編譯并運(yùn)行該程序,輸出結(jié)果如圖2-3所示。圖2-3 【例2-2】程序運(yùn)行結(jié)果Page 272.1.3.4 數(shù)據(jù)類型的轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換v 1自動(dòng)類型轉(zhuǎn)換v 整型、實(shí)型、字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換從低級(jí)到高級(jí),轉(zhuǎn)換規(guī)則為v (1) byte或short op intin
19、t。v (2) byte,short或int op longlong。v (3) byte,short,int或long op floatfloat。v (4) byte,short,int,long或float op doubledouble。v (5) char op intint。v 其中,op左邊表示參與運(yùn)算的數(shù)據(jù)類型,op為運(yùn)算符(如加、減、乘、除等),op右邊表示轉(zhuǎn)換成的進(jìn)行運(yùn)算的數(shù)據(jù)類型。Page 282.1.3.4 數(shù)據(jù)類型的轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換【例2-3】自動(dòng)類型轉(zhuǎn)換示例。public class Promotion public static void main(String
20、 args) byte b=10; char c=a; int i=90; long l=555L; float f=3.5f; double d=1.234; float f1=f*b; /float*bytefloat int i1=c+i; /char+intint long l1=l+i1; /long+intlong double d1=f1/i1-d; /float/intfloat,float-doubledouble Page 292.1.3.4 數(shù)據(jù)類型的轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換v 2強(qiáng)制類型轉(zhuǎn)換v 高級(jí)數(shù)據(jù)要轉(zhuǎn)換成低級(jí)數(shù)據(jù),需用到強(qiáng)制類型轉(zhuǎn)換,如: int i;byte b=(b
21、yte)i;/把int型變量i強(qiáng)制轉(zhuǎn)換為byte型v 這種使用可能會(huì)導(dǎo)致溢出或精度的下降,最好不要使用。Page 302.1.3.5 Java運(yùn)算符與表達(dá)式運(yùn)算符是程序中用于執(zhí)行計(jì)算動(dòng)作的符號(hào),它代表了對(duì)數(shù)據(jù)進(jìn)行的某種操作。Java語言的運(yùn)算符十分豐富,按照運(yùn)算符的功能分為以下七類:算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符邏輯運(yùn)算符條件運(yùn)算符位運(yùn)算符其他Page 312.1.3.5 Java運(yùn)算符與表達(dá)式 按運(yùn)算所需的操作數(shù)的個(gè)數(shù)進(jìn)行分類: 一元運(yùn)算符(只需要一個(gè)操作數(shù)) 二元運(yùn)算符(需要兩個(gè)操作數(shù)) 三元運(yùn)算符(需要三個(gè)操作數(shù)) 表達(dá)式是變量、常量、運(yùn)算符組成的符合語法規(guī)則的式子,它執(zhí)行指定的計(jì)算并返
22、回某個(gè)確定的值。表達(dá)式的類型由運(yùn)算符及參與運(yùn)算的操作數(shù)的類型決定。Page 322.1.3.5 Java運(yùn)算符與表達(dá)式v 1算術(shù)運(yùn)算符與算術(shù)表達(dá)式v 算術(shù)運(yùn)算符作用于整型或浮點(diǎn)型數(shù)據(jù),完成算術(shù)運(yùn)算。v (1) 二元算術(shù)運(yùn)算符見表2-4。運(yùn)算符用法描述+op1+op2加op1op2減*op1*op2乘/op1/op2除%op1%op2取模(求余)表2-4 二元算術(shù)運(yùn)算符的使用Page 332.1.3.5 Java運(yùn)算符與表達(dá)式v (2) 一元算術(shù)運(yùn)算符見表2-5。運(yùn)算符運(yùn)算符用法用法描述描述+op正值op負(fù)值+op,op+加1op,op減1表2-5 一元算術(shù)運(yùn)算符的使用Page 342.1.3.
23、5 Java運(yùn)算符與表達(dá)式【例2-4】算術(shù)運(yùn)算符的基本使用。public class ArithmaticOp public static void main(String args) int a=5+4;/a=9 int b=a*2;/b=18 int c=b/4;/c=4 int d=b-c;/d=14 int e=-d;/e=-14 int f=e%4;/f=-2 double g=18.4; double h=g%4;/h=2.4 int i=3; int j=i+;/i=4,j=3 int k=+i;/i=5,k=5 System.out.println(a=+a); System.
24、out.println(b=+b); System.out.println(c=+c); System.out.println(d=+d); System.out.println(e=+e);Page 352.1.3.5 Java運(yùn)算符與表達(dá)式System.out.println(f=+f); System.out.println(g=+g); System.out.println(h=+h); System.out.println(i=+i); System.out.println(j=+j); System.out.println(k=+k); 其運(yùn)行結(jié)果如圖2-4所示。圖2-4 算術(shù)運(yùn)算
25、符示例運(yùn)行結(jié)果Page 362.1.3.5 Java運(yùn)算符與表達(dá)式v 2關(guān)系運(yùn)算符與關(guān)系表達(dá)式v 關(guān)系運(yùn)算符用來比較兩個(gè)值的關(guān)系,組成關(guān)系表達(dá)式,關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean型。當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。例如:101的結(jié)果是true,3!=5的結(jié)果是true,102017的結(jié)果為true。v 關(guān)系運(yùn)算符都是雙目運(yùn)算符,基本用法見表2-6。運(yùn)算符運(yùn)算符用法用法描述描述op1op2大于op1=op1=op2大于等于=op1=op2小于等于=op1=op2等于!=op1!=op2不等于表2-6 關(guān)系運(yùn)算符的使用Page 372.1.3.5 Java運(yùn)算符
26、與表達(dá)式v 3邏輯運(yùn)算符與邏輯表達(dá)式v 邏輯運(yùn)算符包括&、|、!。其中,&、|為雙目運(yùn)算符,實(shí)現(xiàn)邏輯與、邏輯或;!為單目運(yùn)算符,實(shí)現(xiàn)邏輯非。邏輯運(yùn)算符的操作元必須是boolean型數(shù)據(jù),邏輯運(yùn)算符可以用來連接關(guān)系表達(dá)式。v 邏輯運(yùn)算符的基本用法見表2-7。運(yùn)算符運(yùn)算符用法用法描述描述&op1&op2邏輯與|op1|op2邏輯或!op邏輯非表2-7 邏輯運(yùn)算符的基本用法Page 382.1.3.5 Java運(yùn)算符與表達(dá)式邏輯運(yùn)算規(guī)則如下表所示:Op1Op1Op2Op2Op1 & op2Op1 & op2Op1 | op2Op1 | op2! Op1
27、! Op1truetruetruetruetruetruetruetruefalsefalsetruetruefalsefalsefalsefalsetruetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetruefalsefalsetruetruefalsefalsetruetruetruetruePage 392.1.3.5 Java運(yùn)算符與表達(dá)式【例2-5】關(guān)系運(yùn)算符和邏輯運(yùn)算符的基本用法。public class RelationAndConditionOp public static void main(String
28、 args) int a=25,b=3; boolean d=ab;/d=false System.out.println(a5) System.out.println(a/e=+a/e); int f=0; if(f!=0&a/f5) System.out.println(a/f=+a/f); else System.out.println(f=+f); Page 402.1.3.5 Java運(yùn)算符與表達(dá)式其運(yùn)行結(jié)果如圖2-5所示。圖2-5 關(guān)系運(yùn)算符和邏輯運(yùn)算符示例運(yùn)行結(jié)果Page 412.1.3.5 Java運(yùn)算符與表達(dá)式v 4賦值運(yùn)算符與賦值表達(dá)式 賦值運(yùn)算符“ = ”的作用是
29、將一個(gè)數(shù)據(jù)賦值給一個(gè)變量。在賦值運(yùn)算符的左邊是一變量,右邊是一表達(dá)式。 賦值運(yùn)算符又分為賦值運(yùn)算符和擴(kuò)展賦值運(yùn)算符兩種。擴(kuò)展賦值運(yùn)算符如下表所示:運(yùn)算符運(yùn)算符表達(dá)式表達(dá)式功功 能能+=+=op1+=op2op1+=op2op1=op1+op2op1=op1+op2=op1-=op2op1-=op2op1=op1op2op1=op1op2* *= =op1op1* *=op2=op2op1=op1op1=op1* *op2op2/=/=op1/=op2op1/=op2op1=op1/op2op1=op1/op2%=%=op1%=op2op1%=op2op1=op1%op2op1=op1%op2P
30、age 422.1.3.5 Java運(yùn)算符與表達(dá)式練習(xí):1、設(shè)a初值為12,運(yùn)算a*=2+3后a的值為()A60B. 1C. 編譯出錯(cuò)D. 382、設(shè)a初值為12,運(yùn)算a/=a+a后a的值為()A0.5B. 1C. 13D. 0Page 43任務(wù)2.1 統(tǒng)計(jì)競賽現(xiàn)場分?jǐn)?shù)v 2.1.4 知識(shí)拓展v 2.1.4.1 深層次剖析Java語言的標(biāo)識(shí)符v Java語言使用的是Unicode標(biāo)準(zhǔn)字符集中的字符,Unicode字符集最多可以識(shí)別65 536個(gè)字符。其中,前128個(gè)字符與ASCII碼表中的字符對(duì)應(yīng);其余字符中包含了世界上大部分語言 “字母表”中的字母,如漢字中的“禮”字就是Unicode字符集
31、中第31 036個(gè)字符。因此,Java可使用的字符不僅可以是英文字母,也可以是漢字、朝鮮文、俄文、希臘字母以及其他許多語言中的文字。在Java中聲明一個(gè)變量時(shí),使用如下標(biāo)識(shí)符是合法的:v String 姓名=Mr;v int 年齡=24;Page 44任務(wù)2.1 統(tǒng)計(jì)競賽現(xiàn)場分?jǐn)?shù)v 2.1.4.2 位運(yùn)算符v 位運(yùn)算符用來對(duì)二進(jìn)制位進(jìn)行操作,運(yùn)算操作數(shù)應(yīng)是整數(shù)類型,結(jié)果也是整數(shù)類型。Java中提供了如表2-8所示的位運(yùn)算符,在位運(yùn)算符中,除以外,其余均為二元運(yùn)算符。操作數(shù)只能為整型和字符型數(shù)據(jù)。運(yùn)算符運(yùn)算符用法用法描述描述op1按位取反&op1&op2按位與|op1|op2按位
32、或op1op2按位異或表2-8 位邏輯運(yùn)算符的使用Page 45任務(wù)2.1 統(tǒng)計(jì)競賽現(xiàn)場分?jǐn)?shù)v 為了理解位運(yùn)算符的功能,首先應(yīng)掌握運(yùn)算數(shù)據(jù)的二進(jìn)制表示形式。Java使用補(bǔ)碼來表示二進(jìn)制數(shù),補(bǔ)碼的規(guī)定如下:v 對(duì)正數(shù)來說,最高位為0,其余各位代表數(shù)值本身,如+42的補(bǔ)碼為00101010。對(duì)負(fù)數(shù)而言,最高位為1,其余各位代表數(shù)值本身,先把該數(shù)絕對(duì)值的補(bǔ)碼按位取反,然后對(duì)整個(gè)數(shù)加1,即得該數(shù)的補(bǔ)碼,如-42的補(bǔ)碼為11010110。v 若兩個(gè)數(shù)據(jù)長度不同(如short和int型),當(dāng)對(duì)它們進(jìn)行位運(yùn)算時(shí),則系統(tǒng)首先會(huì)將長度短的數(shù)據(jù)的左側(cè)用符號(hào)位填滿。(1) 按位取反運(yùn)算符()(3) 按位或運(yùn)算符(|
33、)(2) 按位與運(yùn)算符(&)(4) 按位異或運(yùn)算符()Page 46任務(wù)2.2 輸出參賽選手成績v 2.2.1 任務(wù)簡介v 在唱歌比賽現(xiàn)場,競賽現(xiàn)場計(jì)分系統(tǒng)根據(jù)用戶輸入的參賽選手的分?jǐn)?shù)進(jìn)行統(tǒng)計(jì)與計(jì)算,最終詳細(xì)輸出10個(gè)評(píng)委的打分列表,同時(shí)以“去掉一個(gè)最高分*分,去掉一個(gè)最低分*分,該選手的平均得分*分”的形式輸出選手的最后成績。v 2.2.2 實(shí)現(xiàn)步驟v 【例2-6】通過分析【例2-1】可以得出,用戶輸入10個(gè)分?jǐn)?shù),用基本相似的下列語句:System.out.print (n請(qǐng)輸入第1位評(píng)委打分:);score1 = sc.nextFloat();Page 47【例2-6】v 重復(fù)了1
34、0次,如果100個(gè)評(píng)委打分甚至更多,那么代碼量是相當(dāng)大的,并且不利于后期維護(hù),通過對(duì)相同部分的代碼進(jìn)行分析,可對(duì)代碼作以下方式的改進(jìn)。import java.util.Scanner; public class ScoreInput /*歡迎界面*/ public static void Welcome() System.out.println(*); System.out.println(*歡迎使用競賽現(xiàn)場計(jì)分系統(tǒng)*); System.out.println(*); /*錄入結(jié)束提示*/ public static void inputOver() System.out.println(*錄
35、入結(jié)束*); /*成績錄入方法*/Page 48【例2-6】v 重復(fù)了10次,如果100個(gè)評(píng)委打分甚至更多,那么代碼量是相當(dāng)大的,并且不利于后期維護(hù),通過對(duì)相同部分的代碼進(jìn)行分析,可對(duì)代碼作以下方式的改進(jìn)。public static float inputScore() int i; float a=new float10; Welcome(); Scanner sc = new Scanner(System.in); /*將10個(gè)評(píng)委的打分保存到數(shù)組中*/ for(i=0;i=9;i+) System.out.print (n請(qǐng)輸入第+(i+1)+位評(píng)委打分:); ai = sc.nextF
36、loat(); inputOver(); return a; Page 49【例2-7】v 【例2-7】競賽現(xiàn)場計(jì)分系統(tǒng)根據(jù)已存的分?jǐn)?shù),按照指定方式計(jì)算并輸出參賽者最終的成績。public class ScoreCount public static void main(Stringargs) int i; float max,min,sum=0,avg=0; float score=new float10; /*從競賽現(xiàn)場計(jì)分統(tǒng)計(jì)系統(tǒng)獲取已經(jīng)存儲(chǔ)的分?jǐn)?shù)*/ score=ScoreInput.inputScore(); /*輸出數(shù)組中的各個(gè)值*/ System.out.println(評(píng)委打分
37、情況如下:); for(i=0;i=9;i+) System.out.print(scorei+ ); System.out.println(); max=min=score0; /*計(jì)算最高分和最低分*/ for(i=1;imax) max=scorei; if(scoreimin) min=scorei; System.out.println(去掉一個(gè)最高分+max); System.out.println(去掉一個(gè)最低分+min); /*計(jì)算該選手去掉最高分?jǐn)?shù)和最低分?jǐn)?shù)后的平均分?jǐn)?shù)*/ for(i=0;i=9;i+) sum=sum+scorei; sum=sum-max-min; av
38、g=sum/8; System.out.println(該選手最后得分+avg); Page 51【例2-7】v 運(yùn)行說明:首先編譯ScoreInput.java,然后編譯ScoreCount.java,最后運(yùn)行ScoreCount。運(yùn)行結(jié)果如圖2-6所示。圖2-6 運(yùn)行ScoreCount.java效果(輸入分?jǐn)?shù)后)Page 52任務(wù)2.2 輸出參賽選手成績v 2.2.3 相關(guān)知識(shí)1數(shù)組概述2一維數(shù)組3二維數(shù)組Page 532.2.3.1 數(shù)組概述v 在程序中,如果需要存儲(chǔ)一個(gè)數(shù)值的話,則可以在代碼中聲明一個(gè)變量來進(jìn)行存儲(chǔ),但是有些時(shí)候,為了程序操作的方便,需要將一組相關(guān)的數(shù)值存儲(chǔ)在一起,這
39、就是數(shù)組出現(xiàn)的最初原因。v 數(shù)組(Array)是Java語言中內(nèi)置的一種基本數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),通俗的理解,就是一組數(shù)的集合,目的是用來一次存儲(chǔ)多個(gè)數(shù)據(jù)類型一致的數(shù)據(jù)。v Java語言中的數(shù)組可以分為一維數(shù)組和多維數(shù)組。Page 542.2.3.2 一維數(shù)組v1一維數(shù)組的定義u方法1:先聲明后創(chuàng)建聲明的格式有下列兩種: (1)數(shù)組元素類型 數(shù)組名稱; (2)數(shù)組元素類型 數(shù)組名稱;例如:int intArray;或int intArray;對(duì)于如上聲明的數(shù)組中的元素是不能被訪問的,必須為它分配內(nèi)存空間,這時(shí)要用到運(yùn)算符new創(chuàng)建數(shù)組,其格式如下:數(shù)組名稱 = new 數(shù)組元素類型數(shù)組元素的個(gè)數(shù);如:
40、intArray=new int3;Page 552.2.3.2 一維數(shù)組方法2:聲明的同時(shí)創(chuàng)建數(shù)組格式如下:(1)數(shù)組元素類型 數(shù)組名稱= new 數(shù)組元素類型數(shù)組元素的個(gè)數(shù);(2)數(shù)組元素類型 數(shù)組名稱= new 數(shù)組元素類型數(shù)組元素的個(gè)數(shù);例如:int intArray=new int3;Page 562.2.3.2 一維數(shù)組v2一維數(shù)組元素的引用數(shù)組元素的引用方式為:數(shù)組名稱下標(biāo);例如:intArray0 、intArray1、intArray2。數(shù)組下標(biāo)可以為整型常量、變量或表達(dá)式。下標(biāo)最小值為0,最大值為數(shù)組長度減1。每個(gè)數(shù)組都有一個(gè)屬性length指明它的長度。如intArray
41、.length指明數(shù)組intArray的長度。Page 572.2.3.2 一維數(shù)組v 3一維數(shù)組的初始化v 對(duì)數(shù)組元素除了可以按照上述的例子進(jìn)行賦值外,也可以在定義數(shù)組的同時(shí)對(duì)其進(jìn)行初始化。例如: int a=1,2,3,4,5;v 該語句用逗號(hào)(,)分隔數(shù)組的各個(gè)元素,系統(tǒng)自動(dòng)為數(shù)組分配一定空間。Page 582.2.3.2 一維數(shù)組v 4一維數(shù)組程序舉例v 【例2-8】將16個(gè)大寫字母賦給一個(gè)一維數(shù)組,并輸出打印數(shù)組。public class OneTest public static void main(String args) char oneArray=new char26; fo
42、r(int i=0;i16;i+) oneArrayi=(char)(A+i); for(int i=0;i16;i+) if(i+1)%5=0) System.out.println(oneArrayi+ ); else System.out.print(oneArrayi+ ); Page 592.2.3.2 一維數(shù)組v 運(yùn)行結(jié)果如圖2-7所示。圖2-7 一維數(shù)組示例運(yùn)行結(jié)果Page 602.2.3.3 二維數(shù)組與C、C+一樣,Java中多維數(shù)組被看作數(shù)組的數(shù)組。例如,二維數(shù)組為一個(gè)特殊的一維數(shù)組,其每個(gè)元素又是一個(gè)一維數(shù)組。下面主要以二維數(shù)為例,來說明多維數(shù)組的應(yīng)用。1二維數(shù)組的定義二維
43、數(shù)組聲明的格式為:數(shù)組元素類型 數(shù)組名稱 ;或:數(shù)組元素類型 數(shù)組名稱;例如:int intArray;或int intArray;與一維數(shù)組一樣,這時(shí)對(duì)數(shù)組元素也沒有分配內(nèi)存空間,同樣要使用運(yùn)算符new來分配內(nèi)存,然后才可以訪問數(shù)組中的每個(gè)元素。Page 612.2.3.3 二維數(shù)組對(duì)多維數(shù)組來說,分配內(nèi)存空間有下面幾種方法。(1) 直接為每一維分配空間,如: int a=new int23;(2) 從最高維開始,分別為每一維分配空間,如: int a=new int2; a0=new int3; a1=new int2; Page 622.2.3.3 二維數(shù)組2二維數(shù)組元素的引用對(duì)于二維數(shù)
44、組中的每個(gè)元素,引用方式為數(shù)組名行下標(biāo)列下標(biāo)其中,下標(biāo)可為整型常數(shù)、變量或表達(dá)式,如a23等。同樣,每一維的下標(biāo)都從0開始。3二維數(shù)組的初始化二維數(shù)組的初始化有兩種方式。(1) 直接對(duì)每個(gè)元素進(jìn)行賦值。(2) 在定義數(shù)組的同時(shí)進(jìn)行初始化。例如:int a=2,3,1,5,3,4,該語句定義了一個(gè)32的數(shù)組,并對(duì)每個(gè)元素賦值。2.2.3.3 二維數(shù)組4二維數(shù)組程序舉例【例2-9】定義一個(gè)二維數(shù)組,并給數(shù)組賦值,輸出打印數(shù)組。public class TwoTest public static void main(String args) int twoArray =new int45; int
45、k=0; for(int i=0;i4;i+) for(int j=0;j5;j+) k+; twoArrayij=k; for(int m=0;m4;m+) for(int n=0;n5;n+) System.out.print(twoArraymn+ ); System.out.println(); Page 642.2.3.3 二維數(shù)組v 運(yùn)行結(jié)果如圖2-8所示。圖2-8 二維數(shù)組示例運(yùn)行結(jié)果Page 65任務(wù)2.2 輸出參賽選手成績v 2.2.4 知識(shí)拓展v 復(fù)合類型數(shù)組元素的動(dòng)態(tài)空間分配和初始化v 一般情況下,復(fù)合類型的數(shù)組需要進(jìn)一步用new運(yùn)算符為數(shù)組元素分配空間并初始化。設(shè)已聲明一個(gè)復(fù)合類型的數(shù)組: 類型 數(shù)組名;v 對(duì)數(shù)組的動(dòng)態(tài)空間分配步驟如下。v (1) 為數(shù)組分配每個(gè)元素的引用空間: 數(shù)組名 = new 類型 數(shù)組大小;Page 66任務(wù)2.2 輸出參賽選手成績v (2) 為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人財(cái)產(chǎn)抵押借款簡易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設(shè)備吊裝運(yùn)輸合同3篇
- 個(gè)人房產(chǎn)買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國建設(shè)銀行北京市分行度社會(huì)招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年農(nóng)業(yè)科技推廣合同會(huì)簽紀(jì)要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購保密及市場共享協(xié)議2篇
- 專業(yè)節(jié)電器產(chǎn)品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強(qiáng)度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動(dòng)化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評(píng)分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計(jì)和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級(jí)語文下冊(cè)《蜘蛛開店》
- 鍋爐升降平臺(tái)管理
- 200m3╱h凈化水處理站設(shè)計(jì)方案
- 個(gè)體化健康教育記錄表格模板1
評(píng)論
0/150
提交評(píng)論