最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

非常實(shí)用的java自動(dòng)答題計(jì)時(shí)計(jì)分器

 更新時(shí)間:2018年01月16日 14:19:49   作者:guohan_solft  
這篇文章主要為大家詳細(xì)介紹了非常實(shí)用的java自動(dòng)答題計(jì)時(shí)計(jì)分器的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

該小程序使用java語(yǔ)言編寫(xiě),讓用戶計(jì)算10以內(nèi)的加減乘除法,特別適合小學(xué)開(kāi)始學(xué)習(xí)加減乘除法的學(xué)生,能很好地鍛煉他們的運(yùn)算能力,并過(guò)計(jì)分計(jì)時(shí)的游戲性質(zhì)引起學(xué)習(xí)興趣!

運(yùn)行該程序會(huì)彈出一個(gè)窗口,按enter鍵開(kāi)始答題,答完再按enter則進(jìn)行計(jì)分和正確性判斷,并出下一道題!每輪10道題,每題10分,答完自動(dòng)計(jì)時(shí)記分,全程操作只需要按enter鍵,無(wú)其他按鈕,幼兒園小學(xué)生都會(huì)玩!

并且在輸入合法性方面,也做了相關(guān)校驗(yàn)和提示!歡迎大家發(fā)揮想象力,再此基礎(chǔ)上再豐富和完善!

代碼:

package autoScore; 
 
 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Label; 
import java.awt.List; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 
import java.text.DecimalFormat; 
 
 
import javax.swing.JFrame; 
 
public class AutoScore extends JFrame{ 
 Label labRule=new Label();//規(guī)則描述標(biāo)簽 
 Label labA=new Label();//第一個(gè)數(shù)字標(biāo)簽 
 Label labOp=new Label();//加減乘除標(biāo)簽 
 Label labB=new Label();//第二個(gè)數(shù)字標(biāo)簽 
 Label label5=new Label();//等于號(hào)“=”標(biāo)簽 
 Label labWarn=new Label();//輸入合法性校驗(yàn)提示標(biāo)簽 
 Label labQues=new Label();//答題列表標(biāo)簽 
 Label labResult=new Label();//判分標(biāo)簽 
 TextField txtAnswer=new TextField();//輸入答案輸入框 
  
 int total=0;//記錄答題總數(shù) 
 int right=0;//記錄答題正確數(shù)量 
 int error=0;//記錄答題錯(cuò)誤數(shù)量 
 int score=0;//記錄答題總分 
 boolean isOver=false;//一輪結(jié)束后標(biāo)識(shí) 
 boolean isFirst=true;//程序第一次運(yùn)行標(biāo)識(shí) 
  
 long startTime;//每一輪運(yùn)行開(kāi)始時(shí)間 
  
 List listDisp=new List();//答題列表展示框 
 List listScore=new List();//分?jǐn)?shù)展示框 
  
 public static void main(String[] args){ 
  AutoScore score=new AutoScore(); 
 } 
  
 public AutoScore(){ 
  init(); 
  setSize(450,630); 
  setDefaultCloseOperation(EXIT_ON_CLOSE); 
  setVisible(true); 
 } 
   
 public void init(){ 
  setLayout(null); 
  setSize(450,630); 
  
  labRule.setText("規(guī)則:每組十道題,每題10分,按ENTER鍵開(kāi)始,小數(shù)保留2位"); 
  labRule.setBounds(36, 10, 390, 72); 
  labRule.setFont(new Font("Dialog",Font.PLAIN,12)); 
  getContentPane().add(labRule); 
   
  labA.setText("x"); 
  labA.setBounds(36,82,36,36); 
  labA.setFont(new Font("Dialog",Font.PLAIN,24)); 
  getContentPane().add(labA); 
   
  labOp.setText("+"); 
  labOp.setFont(new Font("Dialog",Font.PLAIN,24)); 
  labOp.setBounds(72, 82, 45, 36); 
  getContentPane().add(labOp); 
   
  labB.setText("y"); 
  labB.setFont(new Font("Dialog",Font.PLAIN,24)); 
  labB.setBounds(118, 82, 33, 36); 
  getContentPane().add(labB); 
   
  label5.setText("="); 
  label5.setFont(new Font("Dialog",Font.PLAIN,24)); 
  label5.setBounds(168, 82, 24, 36); 
  getContentPane().add(label5); 
   
   
  labWarn.setFont(new Font("Dialog",Font.PLAIN,12)); 
  labWarn.setBackground(Color.RED); 
  labWarn.setBounds(320, 82, 80, 36); 
  labWarn.setVisible(false); 
  getContentPane().add(labWarn); 
   
  labQues.setText("答題列表:"); 
  labQues.setFont(new Font("Dialog",Font.PLAIN,12)); 
  labQues.setBounds(36, 148, 100, 20); 
  getContentPane().add(labQues); 
   
  labResult.setText("分?jǐn)?shù)統(tǒng)計(jì):"); 
  labResult.setFont(new Font("Dialog",Font.PLAIN,12)); 
  labResult.setBounds(36,420,100,20); 
  labResult.setVisible(false); 
  getContentPane().add(labResult); 
   
  txtAnswer.setFont(new Font("Dialog",Font.PLAIN,24)); 
  txtAnswer.setBounds(216, 82, 100, 36); 
  getContentPane().add(txtAnswer); 
   
   
  listDisp.setFont(new Font("Dialog",Font.PLAIN,16)); 
  listDisp.setBounds(36, 174, 282, 230); 
  getContentPane().add(listDisp); 
   
  listScore.setFont(new Font("Dialog",Font.PLAIN,16)); 
  listScore.setBounds(36,450,282,135); 
   
  MyKey myKey=new MyKey();// 答案輸入框,鍵盤(pán)按鍵監(jiān)聽(tīng)類(lèi) 
  txtAnswer.addKeyListener(myKey); 
   
 } 
  
 class MyKey implements KeyListener{ 
 
  @Override 
  public void keyTyped(KeyEvent e) { 
    
  } 
 
  @Override 
  public void keyPressed(KeyEvent e) { 
   if(e.getSource()==txtAnswer){ 
    if(e.getKeyCode()==KeyEvent.VK_ENTER){ 
     if(isOver || isFirst){ 
      updateQuestion(null); 
     }else if("".equals(txtAnswer.getText())){ 
      labWarn.setText("請(qǐng)輸入答案!"); 
      labWarn.setVisible(true); 
     }else{ 
      labWarn.setVisible(false); 
      if(!isNumber(txtAnswer.getText())){ 
       labWarn.setText("請(qǐng)輸入數(shù)字!"); 
       labWarn.setVisible(true); 
      }else if(total<9){ 
       judge(null); 
       updateQuestion(null); 
      }else{ 
       judge(null); 
       labResult.setVisible(true); 
       scorePerformed(null); 
      } 
     } 
    } 
   } 
    
  } 
 
  @Override 
  public void keyReleased(KeyEvent e) { 
    
  } 
   
 } 
  
  
 int a=0,b=0; 
 String op=""; 
 double result=0; 
 DecimalFormat df=new DecimalFormat("#.00"); 
 /** 
  * 出題方法 
  * @param e 
  */ 
 public void updateQuestion(ActionEvent e){ 
  if(isFirst){ 
   startTime=System.currentTimeMillis(); 
  } 
  if(isOver==true){ 
   listDisp.clear(); 
   listScore.clear(); 
   labResult.setVisible(false); 
   listScore.setVisible(false); 
  } 
  isOver=false; 
  a=(int)(Math.random()*9+1); 
  b=(int)(Math.random()*9+1); 
  int c=(int)(Math.random()*4); 
  switch (c) { 
  case 0: 
   op="+"; 
   result=a+b; 
   break; 
  case 1: 
   op="-"; 
   result=a-b; 
   break; 
  case 2: 
   op="*"; 
   result=a*b; 
   break; 
  case 3: 
   op="/"; 
   result=(a*1.0)/b; 
   //若兩個(gè)數(shù)除不盡,則按四舍五入保留2位小數(shù) 
   if(String.valueOf(result).length()>10){ 
    result=Double.parseDouble(df.format((a*1.0)/b)); 
   } 
   break; 
  } 
  labA.setText(String.valueOf(a)); 
  labB.setText(String.valueOf(b)); 
  labOp.setText(op); 
  label5.setText("="); 
  txtAnswer.setText(""); 
  isFirst=false; 
   
 } 
 /** 
  * 判斷結(jié)果 
  * @param e 
  */ 
 public void judge(ActionEvent e){ 
  try{ 
   double value=Double.parseDouble(txtAnswer.getText()); 
   String resultStr=(total+1)+"、 "+a+op+b+"="+value; 
   if(value==result){ 
    resultStr+=" \t正確"; 
    right++; 
    score+=10; 
   }else{ 
    resultStr+=" \t錯(cuò)誤 正確答案:"+result; 
    error++; 
   } 
   listDisp.add(resultStr); 
   total++; 
  }catch(NumberFormatException ignored){ 
  } 
 } 
 /** 
  * 統(tǒng)計(jì)分?jǐn)?shù) 
  * @param e 
  */ 
 public void scorePerformed(ActionEvent e){ 
  isOver=true; 
  listScore.clear(); 
  listScore.setVisible(true); 
  String exitStr="本次共答題"+total+"道"; 
  listScore.add(exitStr); 
  listScore.add("累計(jì)用時(shí):"+(System.currentTimeMillis()-startTime)/1000+"秒"); 
  listScore.add("答對(duì):"+right+"個(gè)"); 
  listScore.add("答錯(cuò):"+error+"個(gè)"); 
  listScore.add("得分:"+score+"分"); 
  getContentPane().add(listScore); 
  score=0; 
  right=0; 
  error=0; 
  total=0; 
   
 } 
  
 /** 
  * 校驗(yàn)輸入是否位數(shù)字 
  * @param numberStr 
  * @return 
  */ 
 public boolean isNumber(String numberStr){ 
  boolean isNumber=true; 
  try{ 
   Double.parseDouble(numberStr); 
  }catch(NumberFormatException e){ 
   isNumber=false; 
  } 
  return isNumber; 
 } 
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)快速排序過(guò)程分析

    Java實(shí)現(xiàn)快速排序過(guò)程分析

    今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)快速排序過(guò)程分析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • SpringBoot快速接入DeepSeek?api(帶頁(yè)面)保姆級(jí)教程

    SpringBoot快速接入DeepSeek?api(帶頁(yè)面)保姆級(jí)教程

    這篇文章主要介紹了如何在Java端接入DeepSeek?API,包括申請(qǐng)APIkey、項(xiàng)目結(jié)構(gòu)展示、編寫(xiě)controller和前端界面、以及測(cè)試啟動(dòng)項(xiàng)目的過(guò)程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • MyBatis實(shí)現(xiàn)兩種查詢樹(shù)形數(shù)據(jù)的方法詳解(嵌套結(jié)果集和遞歸查詢)

    MyBatis實(shí)現(xiàn)兩種查詢樹(shù)形數(shù)據(jù)的方法詳解(嵌套結(jié)果集和遞歸查詢)

    樹(shù)形結(jié)構(gòu)數(shù)據(jù)在開(kāi)發(fā)中十分常見(jiàn),比如:菜單數(shù)、組織樹(shù), 利用 MyBatis 提供嵌套查詢功能可以很方便地實(shí)現(xiàn)這個(gè)功能需求。本文主要介紹了兩種方法,感興趣的可以了解一下
    2021-09-09
  • SpringBoot中隨機(jī)鹽值+雙重SHA256加密實(shí)戰(zhàn)

    SpringBoot中隨機(jī)鹽值+雙重SHA256加密實(shí)戰(zhàn)

    本文主要介紹了SpringBoot中隨機(jī)鹽值+雙重SHA256加密實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • java中如何對(duì)Map的key順序排序

    java中如何對(duì)Map的key順序排序

    大家都知道Map排序的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于java中如何對(duì)Map的key順序排序的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • springboot整合Mybatis-plus的實(shí)現(xiàn)

    springboot整合Mybatis-plus的實(shí)現(xiàn)

    這篇文章主要介紹了springboot整合Mybatis-plus的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Spring Cloud 覆寫(xiě)遠(yuǎn)端的配置屬性實(shí)例詳解

    Spring Cloud 覆寫(xiě)遠(yuǎn)端的配置屬性實(shí)例詳解

    這篇文章主要介紹了Spring Cloud 覆寫(xiě)遠(yuǎn)端的配置屬性的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • java框架之maven是用來(lái)做什么的

    java框架之maven是用來(lái)做什么的

    這篇文章主要介紹了java之maven是用來(lái)做什么的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java中Lambda表達(dá)式并行與組合行為

    Java中Lambda表達(dá)式并行與組合行為

    這篇文章主要介紹了Java中Lambda表達(dá)式并行與組合行為,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • Java拼接字符串時(shí)如何去掉最后一個(gè)多余的逗號(hào)

    Java拼接字符串時(shí)如何去掉最后一個(gè)多余的逗號(hào)

    當(dāng)我們遍歷拼接字符串的時(shí)候,最后會(huì)多出一個(gè)我們添加的字符(比如逗號(hào)),下面通過(guò)實(shí)例代碼給大家介紹Java拼接字符串時(shí)去掉最后一個(gè)多余的逗號(hào),感興趣的朋友跟隨小編一起看看吧
    2024-12-12

最新評(píng)論

苏尼特左旗| 图木舒克市| 莆田市| 镇平县| 崇州市| 天等县| 徐闻县| 余干县| 紫金县| 毕节市| 洛阳市| 彩票| 罗城| 阿图什市| 仲巴县| 宜州市| 泰宁县| 科尔| 高阳县| 合江县| 赤峰市| 都兰县| 甘洛县| 岢岚县| 肃南| 平武县| 凤城市| 茂名市| 都安| 建始县| 岳普湖县| 原阳县| 镇巴县| 方城县| 华宁县| 车险| 福鼎市| 仁化县| 鹤庆县| 长海县| 漯河市|