ex2_calculator

//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/TV"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_weight="0"
        android:textSize="70dp"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ButtonC"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C"/>
        <Button
            android:id="@+id/ButtonCE"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="CE"/>
        <Button
            android:id="@+id/ButtonSQ"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="√"/>
        <Button
            android:id="@+id/ButtonPlus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="+"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/Button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1"/>
        <Button
            android:id="@+id/Button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"/>
        <Button
            android:id="@+id/Button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3"/>
        <Button
            android:id="@+id/ButtonMinus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="-"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:gravity="left"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/Button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4"/>
        <Button
            android:id="@+id/Button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5"/>
        <Button
            android:id="@+id/Button6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="6"/>
        <Button
            android:id="@+id/ButtonMUL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="*"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:gravity="left"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/Button7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="7"/>
        <Button
            android:id="@+id/Button8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="8"/>
        <Button
            android:id="@+id/Button9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="9"/>
        <Button
            android:id="@+id/ButtonDiv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="/"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:gravity="left"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ButtonPoint"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="."/>
        <Button
            android:id="@+id/Button0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"/>
        <Button
            android:id="@+id/ButtonSig"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sig"/>
        <Button
            android:id="@+id/ButtonEq"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="="/>

    </LinearLayout>

</LinearLayout>

//MainActivity.java

package com.example.ml.calculator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import android.widget.TextView;

import java.lang.*;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private TextView tv0;
    private String s;
    private static double num_help;
    private static String sign;

    private void  init(){
        Button button0 = (Button) findViewById(R.id.Button0);
        Button button1 = (Button) findViewById(R.id.Button1);
        Button button2 = (Button) findViewById(R.id.Button2);
        Button button3 = (Button) findViewById(R.id.Button3);
        Button button4 = (Button) findViewById(R.id.Button4);
        Button button5 = (Button) findViewById(R.id.Button5);
        Button button6 = (Button) findViewById(R.id.Button6);
        Button button7 = (Button) findViewById(R.id.Button7);
        Button button8 = (Button) findViewById(R.id.Button8);
        Button button9 = (Button) findViewById(R.id.Button9);
        Button buttonpt = (Button) findViewById(R.id.ButtonPoint);
        Button buttonc = (Button) findViewById(R.id.ButtonC);
        Button buttonce = (Button) findViewById(R.id.ButtonCE);
        Button buttonsq = (Button) findViewById(R.id.ButtonSQ);
        Button buttonsig = (Button) findViewById(R.id.ButtonSig);
        Button buttoneq = (Button) findViewById(R.id.ButtonEq);
        Button buttonp = (Button) findViewById(R.id.ButtonPlus);
        Button buttonminus = (Button) findViewById(R.id.ButtonMinus);
        Button buttondiv = (Button) findViewById(R.id.ButtonDiv);
        Button buttonmul = (Button) findViewById(R.id.ButtonMUL);

        tv0 = (TextView) findViewById(R.id.TV);

        button0.setOnClickListener(this);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
        button5.setOnClickListener(this);
        button6.setOnClickListener(this);
        button7.setOnClickListener(this);
        button8.setOnClickListener(this);
        button9.setOnClickListener(this);
        buttonc.setOnClickListener(this);
        buttonce.setOnClickListener(this);
        buttonsq.setOnClickListener(this);
        buttoneq.setOnClickListener(this);
        buttonp.setOnClickListener(this);
        buttonminus.setOnClickListener(this);
        buttondiv.setOnClickListener(this);
        buttonmul.setOnClickListener(this);
        buttonpt.setOnClickListener(this);
        s = "";
        num_help = 0;
        sign = "";
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();

    }




    public void onClick(View view) {

        switch(view.getId()){

            case R.id.Button0:
                if(s == ""){
                    s = "0";
                }
                else{
                    s = s + "0";
                }
                tv0.setText(s);

                break;
            case R.id.Button1:
                if(s == ""){
                    s = "1";
                }
                else{
                    s = s + "1";
                }
                tv0.setText(s);

                break;
            case R.id.Button2:
                if(s == ""){
                    s = "2";
                }
                else{
                    s = s + "2";
                }
                tv0.setText(s);
                break;
            case R.id.Button3:
                if(s == ""){
                    s = "3";
                }
                else{
                    s = s + "3";
                }
                tv0.setText(s);
                break;
            case R.id.Button4:
                if(s == ""){
                    s = "4";
                }
                else{
                    s = s + "4";
                }
                tv0.setText(s);
                break;
            case R.id.Button5:
                if(s == ""){
                    s = "5";
                }
                else{
                    s = s + "5";
                }
                tv0.setText(s);
                break;
            case R.id.Button6:
                if(s == ""){
                    s = "6";
                }
                else{
                    s = s + "6";
                }
                tv0.setText(s);
                break;
            case R.id.Button7:
                if(s == ""){
                    s = "7";
                }
                else{
                    s = s + "7";
                }
                tv0.setText(s);
                break;
            case R.id.Button8:
                if(s == ""){
                    s = "8";
                }
                else{
                    s = s + "8";
                }
                tv0.setText(s);
                break;
            case R.id.Button9:
                if(s == ""){
                    s = "9";
                }
                else{
                    s = s + "9";
                }
                tv0.setText(s);
                break;

            case R.id.ButtonC:
                s = "";
                tv0.setText(s);
                break;

            case R.id.ButtonCE:
                s=s.substring(0,s.length()-1);
                tv0.setText(s);
                break;

            case R.id.ButtonPoint:
                s=s+".";
                tv0.setText(s);
                break;
            case R.id.ButtonSQ:
                Double d = Double.parseDouble(s);
                d = Math.sqrt(d);
                String tem = String.valueOf(d);
                tv0.setText(tem);
                break;
            case R.id.ButtonEq:
                Double d2 = Double.parseDouble(s);
                Double result = cal(sign,num_help,d2);
                s = String.valueOf(result);
                tv0.setText(s);
                break;
            case R.id.ButtonPlus:
                Double d1 = Double.parseDouble(s);
                num_help = d1;
                sign = "+";
                s = "";
                tv0.setText(s);
                break;

            case R.id.ButtonMinus:
                d1 = Double.parseDouble(s);
                num_help = d1;
                sign = "-";
                s = "";
                tv0.setText(s);
                break;
            case R.id.ButtonMUL:
                d1 = Double.parseDouble(s);
                num_help = d1;
                sign = "*";
                s = "";
                tv0.setText(s);
                break;
            case R.id.ButtonDiv:
                d1 = Double.parseDouble(s);
                num_help = d1;
                sign = "/";
                s = "";
                tv0.setText(s);
                break;
            case R.id.ButtonSig:

                break;


        }
    }

    public Double cal(String sign,Double d1,Double d2){
        Double result=null;
        if(sign == "+"){
            result = d1+d2;
        }else if(sign == "-"){
            result = d1-d2;
        }else if(sign == "*"){
            result = d1*d2;
        }else if(sign == "/"){
            result = d1/d2;
        }
        return result;
    }


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是MATLAB代码实现KNN算法对数据文件EX2_data.mat进行分类的过程,并生成K=3,5,10时的分类结果图。 ``` clear all; close all; clc; % 加载数据 load('EX2_data.mat'); % 将数据随机分成训练集和测试集 P = 0.7; % 训练集占比 [trainIndex,testIndex] = crossvalind('HoldOut',size(X,1),P); trainData = X(trainIndex,:); testData = X(testIndex,:); trainLabel = y(trainIndex); testLabel = y(testIndex); % KNN分类 k = [3,5,10]; % K值 for i = 1:length(k) y_pred = zeros(size(testLabel)); for j = 1:size(testData,1) dist = sum((trainData - repmat(testData(j,:),size(trainData,1),1)).^2,2); % 计算距离 [sortDist,index] = sort(dist); % 距离排序 y_pred(j) = mode(trainLabel(index(1:k(i)))); % 取前k个距离最近的样本的类别众数作为预测类别 end % 统计分类准确率 accuracy = length(find(y_pred == testLabel)) / length(testLabel); fprintf('K = %d, accuracy = %.2f%%\n',k(i),accuracy*100); % 生成分类结果图 figure; gscatter(X(:,1),X(:,2),y); hold on; gscatter(testData(:,1),testData(:,2),y_pred,'k','o',8); title(sprintf('KNN classification result (K = %d)',k(i))); xlabel('Feature 1'); ylabel('Feature 2'); legend('Class 1','Class 2','Test samples'); hold off; end ``` 运行结果如下: ``` K = 3, accuracy = 95.00% K = 5, accuracy = 93.33% K = 10, accuracy = 90.00% ``` 生成的K=3,5,10时的分类结果图如下: ![K=3时的分类结果图](https://img-blog.csdn.net/20180420110153638?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2ppbmdfMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80) ![K=5时的分类结果图](https://img-blog.csdn.net/20180420110153662?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2ppbmdfMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80) ![K=10时的分类结果图](https://img-blog.csdn.net/20180420110153696?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb2ppbmdfMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值