Android作业二

这次Android作业主要实现一个计算器

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:rowCount="6"
    android:columnCount="4"
    >
    //利用网格布局声明6行4列的计算器布局
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:layout_marginLeft="4px"
        android:text="0"
        android:textSize="50dip"
        android:id="@+id/result"
        />
    //输入框
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:text="清楚"
        android:textSize="26sp"
        android:id="@+id/clean"
        />
    //清空按钮
    //各种数字按钮
    <Button android:text="1" android:textSize="40sp" android:id="@+id/btn1"/>
    <Button android:text="2" android:textSize="40sp" android:id="@+id/btn2"/>
    <Button android:text="3" android:textSize="40sp" android:id="@+id/btn3"/>
    <Button android:text="+" android:textSize="40sp" android:id="@+id/btnPlus"/>
    <Button android:text="4" android:textSize="40sp" android:id="@+id/btn4"/>
    <Button android:text="5" android:textSize="40sp" android:id="@+id/btn5"/>
    <Button android:text="6" android:textSize="40sp" android:id="@+id/btn6"/>
    <Button android:text="-" android:textSize="40sp" android:id="@+id/btnReduce"/>
    <Button android:text="7" android:textSize="40sp" android:id="@+id/btn7"/>
    <Button android:text="8" android:textSize="40sp" android:id="@+id/btn8"/>
    <Button android:text="9" android:textSize="40sp" android:id="@+id/btn9"/>
    <Button android:text="*" android:textSize="40sp" android:id="@+id/btnMultiply"/>
    <Button android:text="." android:textSize="40sp" android:id="@+id/btnPoint"/>
    <Button android:text="0" android:textSize="40sp" android:id="@+id/btn0"/>
    <Button android:text="=" android:textSize="40sp" android:id="@+id/btnSum"/>
    <Button android:text="/" android:textSize="40sp" android:id="@+id/btnDivide"/>
</GridLayout>

 

 

MainActivity.java:

package com.example.administrator.calculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
//导入需要用到的包


public class MainActivity extends AppCompatActivity{
    public Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btnPlus,btnReduce,btnMultiply,btnPoint,btnSum,btnDivide,clean;//声明各个按钮
    public TextView txt;//声明文本输入框
    public String str = "";//声明一个空字符串用作显示文本输入框的内容
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txt = (TextView)findViewById(R.id.result);//建立文本输入框与各个按钮与XML的连接
        btn0 = (Button)findViewById(R.id.btn0);
        btn1 = (Button)findViewById(R.id.btn1);
        btn2 = (Button)findViewById(R.id.btn2);
        btn3 = (Button)findViewById(R.id.btn3);
        btn4 = (Button)findViewById(R.id.btn4);
        btn5 = (Button)findViewById(R.id.btn5);
        btn6 = (Button)findViewById(R.id.btn6);
        btn7 = (Button)findViewById(R.id.btn7);
        btn8 = (Button)findViewById(R.id.btn8);
        btn9 = (Button)findViewById(R.id.btn9);
        btnPlus = (Button)findViewById(R.id.btnPlus);
        btnReduce = (Button)findViewById(R.id.btnReduce);
        btnMultiply = (Button)findViewById(R.id.btnMultiply);
        btnPoint = (Button)findViewById(R.id.btnPoint);
        btnSum = (Button)findViewById(R.id.btnSum);
        btnDivide = (Button)findViewById(R.id.btnDivide);
        clean = (Button)findViewById(R.id.clean);
        btn0.setOnClickListener(new OnClick());//注册监听器
        btn1.setOnClickListener(new OnClick());
        btn2.setOnClickListener(new OnClick());
        btn3.setOnClickListener(new OnClick());
        btn4.setOnClickListener(new OnClick());
        btn5.setOnClickListener(new OnClick());
        btn6.setOnClickListener(new OnClick());
        btn7.setOnClickListener(new OnClick());
        btn8.setOnClickListener(new OnClick());
        btn9.setOnClickListener(new OnClick());
        btnPlus.setOnClickListener(new OnClick());
        btnReduce.setOnClickListener(new OnClick());
        btnMultiply.setOnClickListener(new OnClick());
        btnPoint.setOnClickListener(new OnClick());
        btnSum.setOnClickListener(new OnClick());
        btnDivide.setOnClickListener(new OnClick());
        clean.setOnClickListener(new OnClick());
    }
    class OnClick implements OnClickListener{
        public void onClick(View v){
            double first,res,second;
            String [] arr;
            switch(v.getId()){
                //编写监听事件,如果按钮为数字则直接显示在文本框上
                case R.id.btn0:
                    txt.setText(str=str+"0" );
                    break;
                case R.id.btn1:
                    txt.setText(str=str+"1" );
                    break;
                case R.id.btn2:
                    txt.setText(str=str+"2" );
                    break;
                case R.id.btn3:
                    txt.setText(str=str+"3" );
                    break;
                case R.id.btn4:
                    txt.setText(str=str+"4" );
                    break;
                case R.id.btn5:
                    txt.setText(str=str+"5" );
                    break;
                case R.id.btn6:
                    txt.setText(str=str+"6" );
                    break;
                case R.id.btn7:
                    txt.setText(str=str+"7" );
                    break;
                case R.id.btn8:
                    txt.setText(str=str+"8" );
                    break;
                case R.id.btn9:
                    txt.setText(str=str+"9" );
                    break;
                case R.id.btnPlus:
                    txt.setText(str=str+"+" );
                    break;
                case R.id.btnReduce:
                    txt.setText(str=str+"-" );
                    break;
                case R.id.btnMultiply:
                    txt.setText(str=str+"*" );
                    break;
                case R.id.btnDivide:
                    txt.setText(str=str+"/" );
                    break;
                case R.id.btnSum:
                    //点击等于按钮,利用正则把文本框中的运算符提取出来,再利用parseDouble将剩下的字符转为数字,最后进行运算
                    if(str.contains("+")) {arr=str.split("\\+");
                        first=Double.parseDouble(arr[0]); second=Double.parseDouble(arr[1]);res=first+second;
                        txt.setText(String.valueOf(res));}
                    if(str.contains("-")) {arr=str.split("-");
                        first=Double.parseDouble(arr[0]); second=Double.parseDouble(arr[1]);res=first-second;
                        txt.setText(String.valueOf(res));}
                    if(str.contains("*")) {arr=str.split("\\*");
                        first=Double.parseDouble(arr[0]); second=Double.parseDouble(arr[1]);res=first*second;
                        txt.setText(String.valueOf(res));}
                    if(str.contains("/")) {arr=str.split("/");
                        first=Double.parseDouble(arr[0]); second=Double.parseDouble(arr[1]);res=first/second;
                        txt.setText(String.valueOf(res));}
                    break;
                case R.id.clean:
                    //点击清除按钮,将str置空,再替换到输入文本框上
                    str="";
                    txt.setText(str);

            }
        }
    }
}

 

效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值