第一篇:java 試題 設(shè)計(jì)投票器
實(shí)例設(shè)計(jì):設(shè)計(jì)統(tǒng)計(jì)投票器。A、功能描述:
有一個(gè)班采用民主投票方法推選班長,班長候選人共4位,每個(gè)人姓名及代號分別為 張三 1,李四 2,王五 3,劉六 4。程序操作員將每張選票上所填的代號(1、2、3、或4)循環(huán)輸入電腦,輸入數(shù)字0結(jié)束輸入,然后將所有候選人的得票情況顯示出來,并顯示最終當(dāng)選者的信息。B、具體要求如下:(1)、編寫候選人類Person,將候選人姓名、代號和票數(shù)保存到類Person(候選人類)中。(2)、輸入數(shù)據(jù)之前,顯示出各位候選人的代號及姓名:(提示:建立一個(gè)候選人類型數(shù)組)如下所示。(3)、循環(huán)執(zhí)行接收鍵盤輸入的班長候選人代號,直到輸入的數(shù)字為0,結(jié)束選票的輸入工作,如下圖所示(4)、在接收每次輸入的選票后要求驗(yàn)證該選票是否有效,即:如果輸入的數(shù)不是0,1,2,3,4這5個(gè)數(shù)字之一,或者輸入一串字母(捕捉異常),應(yīng)顯示出錯誤提示信息:此選票無效,請輸入正確的候選人代號!并繼續(xù)等待輸入。(5)、輸入結(jié)束后顯示所有候選人的得票情況,如下所示(6)、輸出最終當(dāng)選者的相關(guān)信息,如下所示。C、參考圖示: 1:張三【0票】 2:李四【0票】 3:王五【0票】 4:劉六【0票】
請輸入班長候選人代號(數(shù)字0結(jié)束):1 請輸入班長候選人代號(數(shù)字0結(jié)束):1 請輸入班長候選人代號(數(shù)字0結(jié)束):1 請輸入班長候選人代號(數(shù)字0結(jié)束):1 請輸入班長候選人代號(數(shù)字0結(jié)束):2 請輸入班長候選人代號(數(shù)字0結(jié)束):3 請輸入班長候選人代號(數(shù)字0結(jié)束):4 請輸入班長候選人代號(數(shù)字0結(jié)束):5 此選票無效,請輸入正確的候選人代號!請輸入班長候選人代號(數(shù)字0結(jié)束):hello 此選票無效,請輸入正確的候選人代號!請輸入班長候選人代號(數(shù)字0結(jié)束):0 1:張三【4票】 2:李四【1票】 3:王五【1票】 4:劉六【1票】
投票最終結(jié)果:張三同學(xué),最后以4票當(dāng)選班長!
第二篇:六年級下冊信息技術(shù) 教案17 設(shè)計(jì)投票器
設(shè)計(jì)投票器
——初識變量
學(xué)習(xí)目標(biāo)
1、通過計(jì)數(shù)器的設(shè)計(jì),了解Scratch中用變量模塊實(shí)現(xiàn)數(shù)據(jù)的獲取存儲和表達(dá)的過程。
2、通過計(jì)數(shù)器的數(shù)據(jù)可視化設(shè)計(jì),了解Scratch語言中程序初始化的重要性。
3、通過投票選舉活動,引導(dǎo)學(xué)生思考生活中那些問題是值得投票的,如何用科學(xué)的語言解釋投票的結(jié)果。
4、主動邀請他人分享成果,表達(dá)自己的設(shè)計(jì)思路,愿意合作交流。
學(xué)習(xí)重點(diǎn):信息的本質(zhì)概念
讓學(xué)生理解計(jì)數(shù)器設(shè)計(jì)原理。
學(xué)習(xí)難點(diǎn):啟發(fā)學(xué)生利用計(jì)數(shù)器,實(shí)現(xiàn)投票器的設(shè)計(jì)。
學(xué)習(xí)過程:
一、創(chuàng)設(shè)情境,提出主題
在社會民主化的今天,我們的班級活動中少不了各種民主選舉,如班長競選等。我們可以利用Scratch來制作一個(gè)“投票器”軟件,幫助同學(xué)們統(tǒng)計(jì)選票。
二、試一試
設(shè)計(jì)Scratch程序需要創(chuàng)設(shè)舞臺和角色,利用已學(xué)知識為我們的“投票器”構(gòu)建舞臺背景和角色。
活動結(jié)束后,引導(dǎo)學(xué)生用科學(xué)的語言描述投票結(jié)果。
投票活動結(jié)束了,這節(jié)課接下來我們要干什么呢?投票器中有一個(gè)很重要的技術(shù)就是計(jì)數(shù)器,下面請同學(xué)跟老師一起來看一看Scratch中計(jì)數(shù)器是如何設(shè)計(jì)的?
(1)
設(shè)計(jì)計(jì)數(shù)器
1.回憶剛才的活動,如何獲取投票者的投票數(shù)據(jù)?
學(xué)生描述投票結(jié)果
2.獲取投票者的投票數(shù)據(jù)后,如何存貯數(shù)據(jù)呢?
學(xué)生猜想回答
(2)投票器的設(shè)計(jì)
1.沒有投票時(shí),存儲數(shù)據(jù)的變量應(yīng)該為零,設(shè)計(jì)程序的初始化,表明程序初始化得重要性。
學(xué)生按鍵盤中某一個(gè)鍵
2.如何實(shí)現(xiàn)貓的投票結(jié)果的數(shù)據(jù)可視化
學(xué)生新建變量,利用變量的值增加1存儲數(shù)據(jù)
3.測試,進(jìn)一步體會程序初始化得重要性
以下是計(jì)數(shù)器誰的兩個(gè)腳本:
學(xué)生將變量的值設(shè)定為0
三、做一做
利用計(jì)數(shù)器,請同學(xué)自己選擇一個(gè)投票主題,設(shè)計(jì)一個(gè)投票器
教師引導(dǎo)學(xué)生參與程序的設(shè)計(jì),啟發(fā)學(xué)生。
四、分享交流
1.巡視指導(dǎo),解決問題。
從計(jì)數(shù)器設(shè)計(jì)過渡到投票設(shè)計(jì)。
2.組織學(xué)生測試投票器。
互相交流共同幫助修改腳本,測試。
3.展示學(xué)生的投票器,鼓勵有創(chuàng)新的同學(xué)。
五、探一探
結(jié)合已學(xué)知識,我們可以讓“投票器”
更具動感,動手實(shí)踐探究一下吧!
板書設(shè)計(jì)
設(shè)計(jì)投票器
——初識變量
基于“變量”的程序設(shè)計(jì)的一般步驟:
變量的聲明;變量的初始化;變量的賦值和運(yùn)算
第三篇:Java試題A
Java測試題(A卷)
一、單選題(2分/題*20題=40分)
1.下列javaDoc注釋正確的是()
A、/*我愛北京天安門*/ B、//我愛北京天安門*/ C、/**我愛北京天安門*/ D、/*我愛北京天安門**/ 2.下列說法正確的是()
A、JAVA程序的main方法必須寫在類里面 B、JAVA程序中可以有多個(gè)main方法 C、JAVA程序中類名必須與文件名一樣
D、JAVA程序的main方法中如果只有一條語句,可以不用{}(大括號)括起來 3.下列語句執(zhí)行后,變量a、c的值分別是()。
int x=182;int a,c;c=x/100;a=x%10;A、1,2
B、2,1 C、1.82, 2 D、100,82 4.下面哪個(gè)表達(dá)式可用得到x和y的最大值()?
A、x>y?y:x B、x
a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);A、666 B、667
C、677 D、676 6.下列輸出結(jié)果是()
int a = 2 while(a < 5){ switch(a){ case 0: case 3 : a = a + 2;case 1 : case 2 : a = a + 3;default : a = a + 5;} } System.out.print(a)A、5 B、7
C、10
D、1
27.下面是func(int m,int n)方法的定義,方法調(diào)用func(1,4)的返回結(jié)果是()。
int func(int m,int n){
int sum=0;for(int i=1;i<=4;i+=2){ sum+=i;} return sum;} A、1
B、4
C、5
D、10
8.以下定義一維數(shù)組的語句中,正確的是()
A、int a[5]
B、int a[] = new.int[5];C、int a[];D、int a[] = {1,2,3,4,5};
9.分析選項(xiàng)中關(guān)于Java中this關(guān)鍵字的說法正確的是()
A、this關(guān)鍵字是在對象內(nèi)部指代自身的引用 B、this關(guān)鍵字可以在類中的任何位置使用
C、this關(guān)鍵字和類關(guān)聯(lián),而不是和特定的對象關(guān)聯(lián) D、同一個(gè)類的不同對象共用一個(gè)this 10.在Java中,關(guān)于構(gòu)造方法,下列說法錯誤的是()
A、構(gòu)造方法的名稱必須與類名相同 B、構(gòu)造方法可以帶參數(shù) C、構(gòu)造方法不可以重載 D、構(gòu)造方法絕對不能有返回值
11.假設(shè)類A有構(gòu)造方法A(int a),則在類A的其它構(gòu)造方法中調(diào)用該構(gòu)造方法的語句為()
A、A(x)
B、this.A(x)C、this(x)//本類的構(gòu)造方法都是使用this關(guān)鍵字來調(diào)用
法使用的是super 12.下列關(guān)于抽象類的說法正確的是()
A、某個(gè)抽象類的父類是抽象的,則這個(gè)子類必須重載父類的所有抽象方法 B、抽象類中必須存在抽象方法 C、絕對不能用抽象類去創(chuàng)建對象
D、抽象類可以實(shí)現(xiàn)接口,并且可以只實(shí)現(xiàn)接口的部分接口方法 13.下面代碼段
靜態(tài)的變量只有一個(gè)值,常駐內(nèi)存存在的 class HasStatic{
} 輸出的結(jié)果是: private static int x = 101;public static void main(String[] args){
} HasStatic hs1 = new HasStatic();hs1.x++;102 HasStatic hs2 = new HasStatic();hs2.x++;102 hs1 = new HasStatic();hs1.x++;103 HasStatic.x--;System.out.println(hs1.x + hs2.x);
D、super(x)調(diào)用父類的構(gòu)造方
A、103102 B、204
C、205
D、206
14.下面()不是String類提供的合法的方法。
A、equals(String)//判斷是否內(nèi)容相同 B、trim()//去空格的函數(shù) C、append()D、indexOf()//對索引進(jìn)行處理
15.在JAVA中,LinkedList類和ArrayList類同屬于集合框架類,下列()選項(xiàng)中的方法是LinkedList類有而ArrayList類沒有的。A、add(Object o)B、add(int index,Object o)C、remove(Object o)D、removeLast()16.下列哪些說法是正確的?
A、IOException必須被捕獲或拋出
B、java語言聲明變量的同時(shí)必須賦值
C、java 語言不允許同時(shí)繼承一個(gè)類并實(shí)現(xiàn)一個(gè)接口
D、垃圾收集可被隨時(shí)強(qiáng)制執(zhí)行 17.關(guān)于線程狀態(tài)的說法正確的是()
A、使用new剛創(chuàng)建出來的線程是就緒狀態(tài) B、調(diào)用start()方法線程立即處于運(yùn)行狀態(tài) C、提倡調(diào)用stop()方法終止線程
D、線程等待IO輸入會處于線程阻塞狀態(tài) 18.以下代碼: class Message{
String mailmessage;}...Message data;Socket toServer=new Socket(“172.17.96.34”,1001);...ObjectOutputStream out=new ObjectOutputStream(toServer.getOutputStream());out.write(data);
在執(zhí)行上面代碼時(shí)引發(fā)異常NotSerializableException。引發(fā)此異常的可能原因是什么? A.沒有連上服務(wù)器
B.此消息類(Message)聲明不充分 C.輸出套接字可能被破壞
D.寫出到此套接字,不應(yīng)使用ObjectOutputStream 19.關(guān)于JDBC編程,以下說法錯誤的是()。
A、使用Class.forName()方法加載數(shù)據(jù)庫驅(qū)動程序
B、使用DriverManager的getConnection()方法建立與數(shù)據(jù)庫的連接 C、使用Connection的executeQuery(sql)方法執(zhí)行查詢得到ResultSet對象 D、用executeUpdate()執(zhí)行更新、刪除語句不會得到ResultSet對象
20.下面代碼段, class Dog {
} class Beagle extends Dog{ } 如果類Beagle繼承Dog, 并且Beagle類只有一個(gè)構(gòu)造器,下面哪個(gè)是Beagle類合法的構(gòu)造器? A、Beagle(){ } B、Beagle(){ super();} C、Beagle(){ super(“fido”);}
D、不提供構(gòu)造器,使用默認(rèn)的構(gòu)造器。Dog(String name){ }
二、多選題(錯選、漏選不得分,2分/題*10題=20分)
1.下面的說法正確的是()。
A、Java 語言是面向?qū)ο蟮?、解釋?zhí)行的網(wǎng)絡(luò)編程語言。
B、Java 語言具有可移植性,是與平臺無關(guān)的編程語言。C、Java 語言可對內(nèi)存垃圾自動收集。
D、Java 語言編寫的程序雖然是“一次編譯,到處運(yùn)行”,但必須要java的運(yùn)行環(huán)境。2.在Java接口中,下列選項(xiàng)中有效的方法聲明是()。(選擇二項(xiàng))
A、public void aMethod();B、void aMethod();C、protected void aMethod();D、private void aMethod();3.定義變量如下:
char c='w';int i=8;long L=15;float f=8.9f;以下賦值語句正確的是()。
A、i=c+i;B、c=c+i;C、L=f+L;D、f=i+L+f;
4.面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征是()。
A、抽象 B、封裝 C、繼承 D、多態(tài)
5.下面關(guān)于類的說法正確的是()。
A、類是 Java 語言中的一種復(fù)合數(shù)據(jù)類型。B、類中包含數(shù)據(jù)變量和方法。
C、類是對所有具有一定共性的對象的抽象。D、Java 語言的類只支持單繼承。
6.編譯并運(yùn)行下面的程序:
public class A {
} class B extends A { public static void main(String[] args){
} void test(){ } System.out.print(“A”);A a=new B();a.test();
} 以下結(jié)論正確的有().A、子類B定義了與父類A中同名的方法test,java中稱為方法的覆蓋。B、代碼可以編譯運(yùn)行,并輸出結(jié)果:AB。C、代碼可以編譯運(yùn)行,并輸出結(jié)果:A。
D、子類B定義了與父類A中同名的方法test,java中稱為方法的重載。7.下面哪些說法正確()?
A、如果某公共的接口被聲明在一個(gè)源文件中,則接口必須與源文件具有相同的名字。B、如果源文件包含import語句,則該語句必須是除空行和注釋行外的第一個(gè)語句行。C、如果某源文件包含package語句,則該語句必須是第一個(gè)非空、非注釋行。D、接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。8.關(guān)于面向?qū)ο蟮恼f法正確的是()
A、面向?qū)ο缶幊淌穷悂砻枋霈F(xiàn)實(shí)世界中的實(shí)體 B、有多少個(gè)實(shí)體就要創(chuàng)建多少個(gè)類
C、對象的行為和屬性被封裝在類中,外界通過發(fā)送消息來通知對象執(zhí)行某個(gè)任務(wù) D、現(xiàn)實(shí)世界中的某些實(shí)體不能用類來描述 9.下面代碼:
1.class Over { 2.3.4.5.} 6.7.class Over2 extends Over { 8.9.} 哪兩個(gè)選項(xiàng)放在第8行會導(dǎo)致不能編譯? A、public int doStuff(int x, float y){ return 4;} B、protected int doStuff(int x, float y){return 4;} C、private int doStuff(int x, float y){return 4;} D、String doStuff(int x, float y){ return “4”;} E、int doStuff(float x, int y){ return 4;} // 選擇代碼添加在此處 int doStuff(int a, float b){ } return 7;void test(){
} super.test();System.out.println(“B”);
10.以下關(guān)于布局的說法,正確的是()
A、布局管理是為了能自動適應(yīng)窗口大小的變化
B、BorderLayout是邊框布局,他將窗口分為上、下、左、右四部分
C、FlowLayout是流布局,這種布局將其中的組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列
D、GridLayout是網(wǎng)格布局,它以矩形網(wǎng)格形式對容器的組件進(jìn)行布置。容器被分成大小相等的矩形,一個(gè)矩形中放置一個(gè)組件
三、填空題(2分/題*5題=20分)1.補(bǔ)充下面代碼的實(shí)現(xiàn)求數(shù)組中元素的最小值。
int[] x={122,33,55,678,-987};int min=_____999_________;for(int i=1;i } System.out.println(“最小值為:”+min); 2.終止循環(huán)使用關(guān)鍵字____break______,結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)使用關(guān)鍵字____continue______。3.子類中調(diào)用父類被重寫的方法需使用關(guān)鍵字__Super,聲明常量使用關(guān)鍵字___final______。4.自定義的異常類通常繼承自______Execption____________類,方法聲明中拋出異常使用關(guān)鍵字____throw______。 5.內(nèi)部類的特點(diǎn)是內(nèi)部類與外部類共享______外部類的成員變量_________;內(nèi)部類中的實(shí)例變量與外部類的實(shí)例變量重名時(shí),內(nèi)部類中通過“_____________.this.外部類實(shí)例變量名”來引用外部類實(shí)例變量。if(_x[i] 四、問答題(4分/題*5題=20分)1.什么是垃圾,java垃圾回收的工作原理 2.類變量與實(shí)例變量的區(qū)別 3.Vector與TreeSet在存儲結(jié)構(gòu)和存取性能上的區(qū)別 4.IO流分為字節(jié)流和字符流,說明他們的區(qū)別,每一類分別說出兩個(gè)java類 5.什么是線程安全問題?什么情況下容易產(chǎn)生線程安全問題?線程安全問題如何解決? 五、程序題(5分/題*2題=10分) 1.用循環(huán)輸出九九乘法口訣表 2.編寫TCP服務(wù)器端程序,并且每個(gè)連接啟動一個(gè)單獨(dú)的線程來處理。 升級投票器 ——變量的應(yīng)用 學(xué)習(xí)目標(biāo) 1.能讀懂范例中的將移動模塊或旋轉(zhuǎn)模塊插入到Scratch程序設(shè)計(jì)課程《升級投票器》復(fù)合模塊中,控制角色如果按下某一鍵就移動或旋轉(zhuǎn),否則,停止該腳本的設(shè)計(jì)方法。 2.能靈活運(yùn)用Scratch程序設(shè)計(jì)帶有計(jì)時(shí)、顯示結(jié)果等新功能的投票器。 學(xué)習(xí)重點(diǎn) 指導(dǎo)學(xué)生如何來玩,從玩中體驗(yàn)?zāi)_本設(shè)計(jì)的方法。 學(xué)習(xí)難點(diǎn) 幫助學(xué)生在理解腳本設(shè)計(jì)方法的基礎(chǔ)上,修改腳本玩出不同效果。 學(xué)習(xí)過程: 一、談話導(dǎo)入 上節(jié)課我們已經(jīng)設(shè)計(jì)了簡單的投票器,可以實(shí)現(xiàn)基本的投票、計(jì)票功能。小明想為投票器增加計(jì)時(shí)、顯示選舉結(jié)果等新功能,我們一起來實(shí)踐探究一下吧! 二、試一試 學(xué)生閱讀課本第73頁的腳本,嘗試?yán)斫饽_本實(shí)現(xiàn)了什么樣的功能。 勾選計(jì)算器指令前的方框,計(jì)算器即顯示在舞臺上。 三、腳本分析 1、系統(tǒng)變量 計(jì)算器類似于上節(jié)課所學(xué)的“用戶自定義”變量,我們把這種變量稱為“系統(tǒng)變量”。系統(tǒng)變量無須用戶新建,用戶直接使用即可。 2、基于自定義變量的條件判斷 投票結(jié)束時(shí),我們可以根據(jù)變量boy和girl中存儲的數(shù)據(jù)進(jìn)行比較,據(jù)此輸出不同的圖投票結(jié)果。 想一想:當(dāng)boy>girl成立時(shí),顯示男孩獲勝;當(dāng)boy>girl不成立時(shí),男孩獲勝指令會被執(zhí)行嗎? 3、基于計(jì)時(shí)器的等待偵測 腳本的功能: 當(dāng)計(jì)時(shí)器沒有超過60秒時(shí),程序處于等待狀態(tài),一旦條件滿足,即執(zhí)行本指令下面的腳本指令。 四、做一做 輸出投票結(jié)果的多種算法實(shí)現(xiàn) 投票結(jié)束,兩個(gè)變量的大小關(guān)系可能有三種情況,分別對應(yīng)三種選舉結(jié)果:“男孩獲勝”、“女孩獲勝”“未分出勝負(fù),請重新投票”。 五、練一練 系統(tǒng)提供的計(jì)時(shí)器不能真正“停止”,我們能否使用自定義變量達(dá)到“計(jì)時(shí)”的目的? 六、探一探 隨著程序的復(fù)雜度越來越高,多人合作開發(fā)軟件的需求便顯現(xiàn)出來。Scratch為我們提供了合作開發(fā)軟件的可能,實(shí)現(xiàn)方法如下: 1、分工開發(fā)各角色及其腳本,并生成帶腳本的角色文件。 2、在主項(xiàng)目文件或其他文件中,以↑從本地文件中上傳角色的方式,導(dǎo)入角色。 導(dǎo)入角色后,角色的造型以及腳本一并被導(dǎo)入。以小組為單位,合作開發(fā)投票器小程序,并為軟件增加更多的角色,如被選舉人。 七、分享交流 邀請同學(xué)欣賞你的作品。 板書設(shè)計(jì): 升級投票器 ——變量的應(yīng)用 系統(tǒng)變量 基于自定義變量的條件判斷 基于計(jì)時(shí)器的等待偵測 迭代器(Iterator) 迭代器是一種設(shè)計(jì)模式,它是一個(gè)對象,它可以遍歷并選擇序列中的對象,而開發(fā)人員不需要了解該序列的底層結(jié)構(gòu)。迭代器通常被稱為“輕量級”對象,因?yàn)閯?chuàng)建它的代價(jià)小。 Java中的Iterator功能比較簡單,并且只能單向移動: (1)使用方法iterator()要求容器返回一個(gè)Iterator。第一次調(diào)用Iterator的next()方法時(shí),它返回序列的第一個(gè)元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。 (2)使用next()獲得序列中的下一個(gè)元素。 (3)使用hasNext()檢查序列中是否還有元素。 (4)使用remove()將迭代器新返回的元素刪除。 Iterator是Java迭代器最簡單的實(shí)現(xiàn),為List設(shè)計(jì)的ListIterator具有更多的功能,它可以從兩個(gè)方向遍歷List,也可以從List中插入和刪除元素。 迭代器應(yīng)用: list l = new ArrayList();l.add(“aa”);l.add(“bb”);l.add(“cc”);for(Iterator iter = l.iterator();iter.hasNext();){ String str =(String)iter.next();System.out.println(str);} /*迭代器用于while循環(huán) Iterator iter = l.iterator();while(iter.hasNext()){ String str =(String)iter.next();System.out.println(str);} */第四篇:六年級下冊信息技術(shù) 教案18 升級投票器
第五篇:Java學(xué)習(xí)之Iterator(迭代器)的一般用法