1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Androidstudio實(shí)現(xiàn)簡單的計算器

      本文實(shí)例為大家分享了Android studio實(shí)現(xiàn)簡單計算器的具體代碼,供大家參考,具體內(nèi)容如下

      成都創(chuàng)新互聯(lián)公司是專業(yè)的南安網(wǎng)站建設(shè)公司,南安接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

      需求分析及概要設(shè)計

      目的

      開發(fā)一個簡單的計算器App,使之能夠完成加減乘除混合運(yùn)算

      工具及環(huán)境

      使用java語言,在Android studio平臺上進(jìn)行開發(fā)

      功能設(shè)計

      • “+”:實(shí)現(xiàn)兩數(shù)相加
      • “-”:實(shí)現(xiàn)兩數(shù)相減
      • “*”:實(shí)現(xiàn)兩數(shù)相乘
      • “/”:實(shí)現(xiàn)兩數(shù)相除
      • “=”:計算并得出正確結(jié)果
      • “C”:清屏
      • “Backspace”:倒退

      設(shè)計思路

      1、首先設(shè)計一個可視化的界面,供用戶輸入數(shù)據(jù)并查看結(jié)果。
      2、用戶可通過點(diǎn)擊相應(yīng)按鈕輸入正確的表達(dá)式(注意:這里只實(shí)現(xiàn)對正確表達(dá)式的計算處理),最后按"="得出正確結(jié)果。在計算過程中可以通過點(diǎn)擊倒退鍵修改輸入內(nèi)容,在進(jìn)行下一次的運(yùn)算之前必須先進(jìn)行清零操作。
      3、設(shè)計好的計算器應(yīng)可以進(jìn)行加減乘除混合四則運(yùn)算,且可以進(jìn)行小數(shù)和整數(shù)運(yùn)算

      詳細(xì)設(shè)計

      當(dāng)用戶點(diǎn)擊按鈕時,用SringBuilder變量記錄其輸入的運(yùn)算式,并顯示到文本區(qū)中。

      當(dāng)用戶點(diǎn)擊"="時,把文本區(qū)的運(yùn)算式拿出來,首先將它內(nèi)部的一個一個字節(jié)拼接成獨(dú)立的運(yùn)算數(shù)和運(yùn)算符,然后存儲在一個ArrayList數(shù)組中,接著再新建兩個ArrayList數(shù)組,用來分別存放運(yùn)算數(shù)和運(yùn)算符,然后遍歷存儲運(yùn)算式的ArrayList數(shù)組,把其中的運(yùn)算數(shù)和運(yùn)算符分別放進(jìn)不同的ArrayList中,每一次放置運(yùn)算符時,都要先和已存在的運(yùn)算符進(jìn)行比較,若要放進(jìn)的運(yùn)算符優(yōu)先級低于或等于運(yùn)算符數(shù)組中的運(yùn)算符,則彈出一個運(yùn)算符,并從運(yùn)算數(shù)數(shù)組中彈出兩個運(yùn)算數(shù),然后進(jìn)行運(yùn)算,并把結(jié)果送入運(yùn)算數(shù)數(shù)組中,直到遇到比自己優(yōu)先級低的運(yùn)算符或運(yùn)算符數(shù)組為空時,則送入該運(yùn)算符。當(dāng)遍歷到運(yùn)算式末尾時,依次彈出運(yùn)算符中的運(yùn)算符,并對應(yīng)彈出運(yùn)算數(shù)進(jìn)行運(yùn)算直到運(yùn)算符數(shù)組為空,此時運(yùn)算數(shù)數(shù)組中只有一個數(shù)據(jù)就是最終的結(jié)果

      代碼

      MainAcivity.java

      package com.example.qw.calculator;
      
      import android.os.Bundle;
      import android.support.v7.app.AppCompatActivity;
      import android.view.View;
      import android.widget.Button;
      import android.widget.EditText;
      import java.lang.reflect.Method;
      import java.math.BigDecimal;
      import java.util.ArrayList;
      import java.util.List;
      
      public class MainActivity extends AppCompatActivity{
      
       private StringBuilder show_equation=new StringBuilder();//顯示運(yùn)算式
       private ArrayList calculate_equation;//計算式
       private int signal=0;//為0 時表示剛輸入狀態(tài);為1 時表示當(dāng)前在輸出結(jié)果上繼續(xù)輸入
       @Override
       protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       //初始化
       show_equation=new StringBuilder();
       calculate_equation=new ArrayList<>();
       Button zero=(Button)findViewById(R.id.zero);
       Button one=(Button)findViewById(R.id.one);
       Button two=(Button)findViewById(R.id.two);
       Button three=(Button)findViewById(R.id.three);
       Button four=(Button)findViewById(R.id.four);
       Button five=(Button)findViewById(R.id.five);
       Button six=(Button)findViewById(R.id.six);
       Button seven=(Button)findViewById(R.id.seven);
       Button eight=(Button)findViewById(R.id.eight);
       Button nine=(Button)findViewById(R.id.nine);
       Button cls=(Button)findViewById(R.id.cls);
       Button div=(Button)findViewById(R.id.div);
       Button mul=(Button)findViewById(R.id.mul);
       Button backspace=(Button)findViewById(R.id.Backspace);
       Button sub=(Button)findViewById(R.id.sub);
       Button add=(Button)findViewById(R.id.add);
       final Button equal=(Button)findViewById(R.id.equal);
       final Button point=(Button)findViewById(R.id.spot);
       final EditText result=(EditText)findViewById(R.id.result);
       result.setCursorVisible(true);
       disableShowInput(result);
       //點(diǎn)擊文本框時光標(biāo)始終在文本末尾
       result.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        result.setSelection(result.getText().length());
        }
       });
       zero.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
         if(!(show_equation.toString().equals("0"))){
         if(signal==0){
          show_equation.append("0");
          result.setText(show_equation);
          result.setSelection(result.getText().length());
         }else{
          show_equation.delete(0,show_equation.length());
          show_equation.append("0");
          result.setText(show_equation);
          result.setSelection(result.getText().length());
          signal=0;
         }
         }
        }
       });
       one.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("1");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("1");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       two.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("2");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("2");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       three.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("3");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("3");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
        four.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("4");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("4");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       five.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("5");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("5");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       six.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("6");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("6");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       seven.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("7");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("7");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       eight.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("8");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("8");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       nine.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         show_equation.append("9");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append("9");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
       cls.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        show_equation.delete(0,show_equation.length());
        calculate_equation.clear();
        signal=0;
        result.setText("");
        }
       });
       backspace.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(!(show_equation.toString().equals(""))) {
         if(signal==0){
         show_equation.deleteCharAt(show_equation.length() - 1);
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         }else{
         show_equation.delete(0,show_equation.length());
         result.setText("");
         signal=0;
         }
        }
        }
       });
       point.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        if(signal==0){
         String a=show_equation.toString();
         if(a.equals("")){
         show_equation.append(".");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
         }else{
         int i;
         char t='0';
         for(i=a.length();i>0;i--){
          t=a.charAt(i-1);
          if(t=='.'||t=='+'||t=='-'||t=='*'||t=='/')
          break;
         }
         if(i==0){
          show_equation.append(".");
          result.setText(show_equation);
          result.setSelection(result.getText().length());
         }else if(t=='+'||t=='-'||t=='*'||t=='/'){
          show_equation.append(".");
          result.setText(show_equation);
          result.setSelection(result.getText().length());
         }
         }
        }else{
         show_equation.delete(0,show_equation.length());
         show_equation.append(".");
         result.setText(".");
         result.setSelection(result.getText().length());
         signal=0;
        }
        }
       });
      
       equal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //判斷用戶是否輸入了內(nèi)容
        if(!show_equation.toString().equals("")){
         signal=1;
         char temp=show_equation.charAt(show_equation.length()-1);
         if(show_equation.charAt(0)=='-')
         show_equation.insert(0,"0");
         if(temp=='+'||temp=='-')
         show_equation.append("0");
         if(temp=='*'||temp=='/')
         show_equation.append("1");
         StringBuilder temp1=new StringBuilder();
         for(int i=0;i='0'&&show_equation.charAt(i)<='9'||show_equation.charAt(i)=='.'){
          temp1.append(String.valueOf(show_equation.charAt(i)));
         }else if(show_equation.charAt(i)=='N'){
          calculate_equation.add("NaN");
          //跳過2個字符
          i=i+2;
         }else if(show_equation.charAt(i)=='∞'){
          calculate_equation.add("∞");
         }
         else
         {
          if(temp1.length()!=0){
          calculate_equation.add(temp1.toString());
          temp1.delete(0,temp1.length());
          }
          calculate_equation.add(String.valueOf(show_equation.charAt(i)));
         }
         }
         if(temp1.length()!=0){
         calculate_equation.add(temp1.toString());
         }
         calculate_equation.add("#");
         String temp8=calculate(calculate_equation);
         result.setText(temp8);
         result.setSelection(result.getText().length());
         show_equation.delete(0,show_equation.length());
         calculate_equation.clear();
         show_equation.append(temp8);
        }
        }
       });
       add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //判斷用戶是否輸入了內(nèi)容
        if(!(show_equation.toString().equals(""))) {
         signal=0;
         char temp=show_equation.charAt(show_equation.length()-1);
         if(temp=='+'||temp=='-'||temp=='*'||temp=='/')
         {
         show_equation.deleteCharAt(show_equation.length()-1);
         show_equation.append("+");
         }
         else
         show_equation.append("+");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }
        }
       });
       sub.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //判斷用戶是否輸入了內(nèi)容
        if(!(show_equation.toString().equals(""))) {
         signal=0;
         char temp=show_equation.charAt(show_equation.length()-1);
         if(temp=='+'||temp=='-'||temp=='*'||temp=='/')
         {
         show_equation.deleteCharAt(show_equation.length()-1);
         show_equation.append("-");
         }
         else
         show_equation.append("-");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }
        }
       });
      
       mul.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //判斷用戶是否輸入了內(nèi)容
        if(!(show_equation.toString().equals(""))) {
         signal=0;
         char temp=show_equation.charAt(show_equation.length()-1);
         if(temp=='+'||temp=='-'||temp=='*'||temp=='/')
         {
         show_equation.deleteCharAt(show_equation.length()-1);
         show_equation.append("*");
         }
         else
         show_equation.append("*");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }
        }
       });
      
       div.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //判斷用戶是否輸入了內(nèi)容
        if(!(show_equation.toString().equals(""))) {
         signal=0;
         char temp=show_equation.charAt(show_equation.length()-1);
         if(temp=='+'||temp=='-'||temp=='*'||temp=='/')
         {
         show_equation.deleteCharAt(show_equation.length()-1);
         show_equation.append("/");
         }
         else
         show_equation.append("/");
         result.setText(show_equation);
         result.setSelection(result.getText().length());
        }
        }
       });
       }
       protected boolean operatorPriorityCompare(char operator1,char operator2)
       {
       int o1=0;
       int o2=0;
       switch (operator1){
        case '+':{o1=0;break;}
        case '-':{o1=0;break;}
        case '*':{o1=1;break;}
        case '/':{o1=1;break;}
       }
       switch (operator2){
        case '+':{o2=0;break;}
        case '-':{o2=0;break;}
        case '*':{o2=1;break;}
        case '/':{o2=1;break;}
       }
       if(o1<=o2)
       {
        return false;
       }
       else
        return true;
       }
       //相加
       public static Double Add(Double d1,Double d2) {
       if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){
        return d1+d2;
       }
       if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){
        return d1+d2;
       }
       BigDecimal b1 = new BigDecimal(Double.toString(d1));
       BigDecimal b2 = new BigDecimal(Double.toString(d2));
       return b1.add(b2).doubleValue();
       }
       //相減
       public static Double Sub(Double d1,Double d2){
       if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){
        return d1-d2;
       }
       if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){
        return d1-d2;
       }
       if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){
        return d1*d2;
       }
       BigDecimal b1=new BigDecimal(Double.toString(d1));
       BigDecimal b2=new BigDecimal(Double.toString(d2));
       return b1.subtract(b2).doubleValue();
       }
       //相乘
       public static Double Mul(Double d1,Double d2){
       if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){
        return d1*d2;
       }
       if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){
        return d1*d2;
       }
       BigDecimal b1=new BigDecimal(Double.toString(d1));
       BigDecimal b2=new BigDecimal(Double.toString(d2));
       return b1.multiply(b2).setScale(8).doubleValue();
       }
       //相除
       public static Double Div(Double d1,Double d2){
       if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){
        return d1/d2;
       }
       if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){
        return d1/d2;
       }
       if(d1==0.0&&d2==0.0){
        return Double.NaN;
       }
       if(d2==0.0){
        return d1/d2;
       }
       BigDecimal b1=new BigDecimal(Double.toString(d1));
       BigDecimal b2=new BigDecimal(Double.toString(d2));
       return b1.divide(b2,8,BigDecimal.ROUND_HALF_UP).doubleValue();
       }
       protected String calculate(ArrayList equation){
       Double temp2;
       Double temp3;
       Double result;
       List operator=new ArrayList();
       List operand=new ArrayList();
       for(int i=0;i0)
        {
         String temp5=operator.get(operator.size()-1).toString();
         while(!(operatorPriorityCompare(temp4.charAt(0),temp5.charAt(0)))&&operator.size()>0)
         {
         operator.remove(operator.size()-1);
         temp3=operand.get(operand.size()-1);
         operand.remove(operand.size()-1);
         temp2=operand.get(operand.size()-1);
         operand.remove(operand.size()-1);
         switch (temp5.charAt(0)){
          case '+':{result=Add(temp2,temp3);operand.add(result);break;}
          case '-':{result=Sub(temp2,temp3);operand.add(result);break;}
          case '*':{result=Mul(temp2,temp3);operand.add(result);break;}
          case '/':{result=Div(temp2,temp3);operand.add(result);break;}
         }
         if(operator.size()>0)
         {
          temp5=operator.get(operator.size()-1).toString();
         }
         else
          break;
         }
         operator.add(temp4);
        }
        else
         operator.add(temp4);
        }
        else if(temp4.equals("#"))
        {
        while(operator.size()>0)
        {
         String temp6=(String)operator.get(operator.size()-1);
         operator.remove(operator.size()-1);
         temp3=operand.get(operand.size()-1);
         operand.remove(operand.size()-1);
         temp2=operand.get(operand.size()-1);
         operand.remove(operand.size()-1);
         switch (temp6.charAt(0)){
         case '+':{result=Add(temp2,temp3);operand.add(result);break;}
         case '-':{result=Sub(temp2,temp3);operand.add(result);break;}
         case '*':{result=Mul(temp2,temp3);operand.add(result);break;}
         case '/':{result=Div(temp2,temp3);operand.add(result);break;}
         }
        }
        }
        else
        {
        if(temp4.equals("NaN")){
         operand.add(Double.NaN);
        }else if(temp4.equals("∞")){
         operand.add(Double.POSITIVE_INFINITY);
        }else{
         operand.add(Double.parseDouble(temp4));
        }
        }
       }
       if(operand.get(0)==Double.NEGATIVE_INFINITY) return "-∞";
       if(operand.get(0)==Double.POSITIVE_INFINITY) return "∞";
       return operand.get(0).toString();
       }
       //當(dāng)API最低版小于21時使用這個函數(shù)實(shí)現(xiàn)點(diǎn)擊文本框不彈出鍵盤
       public void disableShowInput(EditText et) {
       Class cls = EditText.class;
       Method method;
       try {
        method = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
        method.setAccessible(true);
        method.invoke(et, false);
       } catch (Exception e) {
        e.printStackTrace();
       }
       }
      }

      activity_main.xml

      <?xml version="1.0" encoding="utf-8"?>
      
      
       
       
      
       

      buttonstytle.xml

      <?xml version="1.0" encoding="utf-8"?>
      
       
       
       
       
      

      ####結(jié)果分析

      啟動計算器并輸入運(yùn)算式“59.0-8/46+2”如下圖:

      Android studio實(shí)現(xiàn)簡單的計算器

      結(jié)果如下圖:

      Android studio實(shí)現(xiàn)簡單的計算器

      總結(jié)

      這次做計算器收獲很大,首先我對Android studio中的布局有了更深刻的認(rèn)識,其次在這次編程中熟悉了怎么設(shè)置斷點(diǎn)調(diào)試以快速的找出問題所在。當(dāng)然,這次的作品也是不夠成熟的,因?yàn)闆]有做有關(guān)錯誤表達(dá)式的相應(yīng)處理,因?yàn)闀r間和精力有限,這次只能先做這么多了

      注: 今天沒事又看了一下這個代碼,發(fā)現(xiàn)問題很多,簡直是慘不忍睹(希望沒坑到你們)。比如直接按加、減、乘、除和等號鍵及后退鍵會閃退,剛開始一直按 “0” 可以一直輸入0,同一個數(shù)中可以輸入多個小數(shù)點(diǎn)等等,我感到很慚愧哈,本人能力有限,不過還是抽時間又改了一下,修復(fù)了這些bug,另外也優(yōu)化了一些東西,上面貼的代碼我已經(jīng)更新了,GitHub上的源碼我很快也會更新的,哪里做的不好也希望大家不吝賜教哈 -2018/11/5

      鏈接:源代碼下載地址

      更多計算器功能實(shí)現(xiàn),請點(diǎn)擊專題: 計算器功能匯總 進(jìn)行學(xué)習(xí)

      關(guān)于Android計算器功能的實(shí)現(xiàn),查看專題:Android計算器 進(jìn)行學(xué)習(xí)。

      以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


      網(wǎng)站標(biāo)題:Androidstudio實(shí)現(xiàn)簡單的計算器
      分享路徑:http://www.ef60e0e.cn/article/jcdpjp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        沙坪坝区| 化州市| 克拉玛依市| 台南市| 呼和浩特市| 盐津县| 策勒县| 永善县| 东乡县| 邢台市| 教育| 阿尔山市| 涡阳县| 屏边| 许昌县| 康马县| 公主岭市| 邳州市| 连平县| 晋宁县| 徐汇区| 嘉荫县| 横峰县| 永寿县| 鹤庆县| 临朐县| 嘉定区| 庄浪县| 广东省| 唐海县| 雷波县| 婺源县| 达孜县| 沁水县| 罗平县| 新津县| 阳原县| 呼图壁县| 东城区| 皋兰县| 阜宁县|