骰子的妙用---課堂答題
阿新 • • 發佈:2017-10-23
nbsp .get main note ext import 繼承 log 重慶
通過兩次的作業,我對類有了更深的理解,進一步的理解了類之間的依賴和繼承關系,這次的作業我是現在作業本上畫好類圖,然後根據自己的需求來建立自己的代碼體系,我發現這樣能夠起到事半功倍的作用。
主要的類有:Test()主類,調用GiftPunish()獎勵懲罰和Qestion()提問類
類圖如下:
代碼如下:
1 package dicehomework2; 2 3 public class Test { 4 5 6 public static void main(String[] args) { 7 Question qe =newTestQuestion(); 8 GiftPunish gp=new GiftPunish(); 9 10 //設定班級學生數,通過學號選取作答的學生 11 qe.setNum(3); 12 qe.roll(); 13 qe.getStuid(); 14 qe.setOutPut(); 15 16 //顯示問題,並提交答案 17 qe.setQuestion(); 18 qe.anwserquestion(); 19 20 21 //由輸入的答案判斷是否正確,並進行獎懲22 int inpu=qe.getInp(); 23 String pta=qe.getPt(); 24 switch (inpu){ 25 case 1: 26 if(pta.equals("武漢")) { 27 System.out.println("恭喜你,答對了,系統正在給你分配獎品!"); 28 gp.gift(); 29 } 30 else{ 31 System.out.println("抱歉,請接受懲罰!"); 32 gp.punish(); 33 } 34 break; 35 case 2: 36 if(pta.equals("渝")) { 37 System.out.println("恭喜你,答對了!"); 38 gp.gift(); 39 } 40 else { 41 System.out.println("抱歉,請接受懲罰!"); 42 gp.punish(); 43 } 44 break; 45 default: 46 System.out.println("error!"); 47 } 48 } 49 50 }
1 package dicehomework2; 2 3 public class GiftPunish { 4 Question q=new Question(); 5 private int shuzi; 6 public void gift() { 7 q.setNum(3); 8 q.roll(); 9 shuzi=q.getStuid(); 10 11 switch(shuzi) { 12 case 1: 13 System.out.println("congraduation!!you get a notebook"); 14 break; 15 case 2: 16 System.out.println("congraduation!!you get a pen"); 17 break; 18 case 3: 19 System.out.println("congraduation!!you get a notebook"); 20 default: 21 System.out.println("sorry,please try again!!"); 22 break; 23 } 24 } 25 26 public void punish() { 27 q.setNum(2); 28 q.roll(); 29 shuzi=q.getStuid(); 30 31 switch(shuzi) { 32 case 1: 33 System.out.println("come on,do 30 push-up!!"); 34 break; 35 case 2: 36 System.out.println("oh,please run 100 laps around the playground!!!"); 37 break; 38 default: 39 System.out.println("sorry,please try again!!"); 40 break; 41 } 42 } 43 44 45 }PunishGift
1 package dicehomework2; 2 import java.util.Scanner; 3 4 public class Question { 5 private int stuid; 6 private int num; 7 String pt; 8 int inp; 9 10 11 12 13 public void roll() { 14 stuid=(int)(Math.random()*num+1); 15 } 16 17 public void setNum(int num) { 18 this.num=num; 19 } 20 21 public int getStuid() { 22 return stuid; 23 } 24 25 public void setOutPut() { 26 System.out.println("你選中的學生的學號是:"+stuid); 27 } 28 29 public void setQuestion() { 30 System.out.println("1、江城是什麽的簡稱?"+"\n"+"2、重慶簡稱什麽?"); 31 } 32 33 public void anwserquestion() { 34 System.out.println("please input the work number!!"); 35 Scanner input=new Scanner(System.in); 36 inp=input.nextInt(); 37 38 switch (inp){ 39 case 1: 40 System.out.println("your choose is question 1"+"\n"); 41 break; 42 case 2: 43 System.out.println("your choose is question 2"+"\n"); 44 break; 45 default: 46 System.out.println("請輸入1或2!"); 47 break; 48 } 49 50 System.out.println("please input the right answer!!"); 51 Scanner nput=new Scanner(System.in); 52 pt=nput.nextLine(); 53 } 54 55 56 //返回inp和pt值 57 public int getInp() { 58 return inp; 59 } 60 61 public String getPt() { 62 return pt; 63 } 64 }Question
實現的圖片如下:
小結:
這次的作業完成比上一次好多了,全部的內容都是自己獨立完成的,花了不少時間,開始找到了寫代碼的感覺,但是發現自己的基礎不是特別牢靠,比如因為不懂方法之間怎麽調用的,然後控制臺提示出錯,後面請教同學才弄懂的;還有就是建GUI對我來說比較難,也是我花時間最多的一部分,現在只建成了一大半,我會多花點時間,在下次課前把它建好。
骰子的妙用---課堂答題