日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java实现计分_非常实用的java自动答题计时计分器

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现计分_非常实用的java自动答题计时计分器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該小程序使用java語言編寫,讓用戶計算10以內的加減乘除法,特別適合小學開始學習加減乘除法的學生,能很好地鍛煉他們的運算能力,并過計分計時的游戲性質引起學習興趣!

運行該程序會彈出一個窗口,按enter鍵開始答題,答完再按enter則進行計分和正確性判斷,并出下一道題!每輪10道題,每題10分,答完自動計時記分,全程操作只需要按enter鍵,無其他按鈕,幼兒園小學生都會玩!

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

@H_301_7@

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();//規則描述標簽

Label labA=new Label();//第一個數字標簽

Label labOp=new Label();//加減乘除標簽

Label labB=new Label();//第二個數字標簽

Label label5=new Label();//等于號“=”標簽

Label labWarn=new Label();//輸入合法性校驗提示標簽

Label labQues=new Label();//答題列表標簽

Label labResult=new Label();//判分標簽

TextField txtAnswer=new TextField();//輸入答案輸入框

int total=0;//記錄答題總數

int right=0;//記錄答題正確數量

int error=0;//記錄答題錯誤數量

int score=0;//記錄答題總分

boolean isOver=false;//一輪結束后標識

boolean isFirst=true;//程序第一次運行標識

long startTime;//每一輪運行開始時間

List listDisp=new List();//答題列表展示框

List listscore=new List();//分數展示框

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("規則:每組十道題,每題10分,按ENTER鍵開始,小數保留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",24));

getContentPane().add(labA);

labOp.setText("+");

labOp.setFont(new Font("Dialog",24));

labOp.setBounds(72,45,36);

getContentPane().add(labOp);

labB.setText("y");

labB.setFont(new Font("Dialog",24));

labB.setBounds(118,33,36);

getContentPane().add(labB);

label5.setText("=");

label5.setFont(new Font("Dialog",24));

label5.setBounds(168,24,36);

getContentPane().add(label5);

labWarn.setFont(new Font("Dialog",12));

labWarn.setBackground(Color.RED);

labWarn.setBounds(320,80,36);

labWarn.setVisible(false);

getContentPane().add(labWarn);

labQues.setText("答題列表:");

labQues.setFont(new Font("Dialog",12));

labQues.setBounds(36,148,100,20);

getContentPane().add(labQues);

labResult.setText("分數統計:");

labResult.setFont(new Font("Dialog",12));

labResult.setBounds(36,420,20);

labResult.setVisible(false);

getContentPane().add(labResult);

txtAnswer.setFont(new Font("Dialog",24));

txtAnswer.setBounds(216,36);

getContentPane().add(txtAnswer);

listDisp.setFont(new Font("Dialog",16));

listDisp.setBounds(36,174,282,230);

getContentPane().add(listDisp);

listscore.setFont(new Font("Dialog",16));

listscore.setBounds(36,450,135);

MyKey myKey=new MyKey();// 答案輸入框,鍵盤按鍵監聽類

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("請輸入答案!");

labWarn.setVisible(true);

}else{

labWarn.setVisible(false);

if(!isNumber(txtAnswer.getText())){

labWarn.setText("請輸入數字!");

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;

//若兩個數除不盡,則按四舍五入保留2位小數

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;

}

/**

* 判斷結果

* @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錯誤 正確答案:"+result;

error++;

}

listDisp.add(resultStr);

total++;

}catch(NumberFormatException ignored){

}

}

/**

* 統計分數

* @param e

*/

public void scorePerformed(ActionEvent e){

isOver=true;

listscore.clear();

listscore.setVisible(true);

String exitStr="本次共答題"+total+"道";

listscore.add(exitStr);

listscore.add("累計用時:"+(System.currentTimeMillis()-startTime)/1000+"秒");

listscore.add("答對:"+right+"個");

listscore.add("答錯:"+error+"個");

listscore.add("得分:"+score+"分");

getContentPane().add(listscore);

score=0;

right=0;

error=0;

total=0;

}

/**

* 校驗輸入是否位數字

* @param numberStr

* @return

*/

public boolean isNumber(String numberStr){

boolean isNumber=true;

try{

Double.parseDouble(numberStr);

}catch(NumberFormatException e){

isNumber=false;

}

return isNumber;

}

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持編程小技巧。

總結

如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。

本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。

如您喜歡交流學習經驗,點擊鏈接加入交流1群:1065694478(已滿)交流2群:163560250

總結

以上是生活随笔為你收集整理的java实现计分_非常实用的java自动答题计时计分器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。