收藏 分销(赏)

Android课程设计简易计算器and保存记录.docx

上传人:仙人****88 文档编号:11721966 上传时间:2025-08-09 格式:DOCX 页数:27 大小:53.43KB 下载积分:10 金币
下载 相关 举报
Android课程设计简易计算器and保存记录.docx_第1页
第1页 / 共27页
Android课程设计简易计算器and保存记录.docx_第2页
第2页 / 共27页


点击查看更多>>
资源描述
Android课程设计简易计算器and保存记录 JisuanqiMainActivity.java package com.example.admin.myapplication; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class JisuanqiMainActivity extends Activity { /** * Called when the activity is first created. */ private EditText output = null; private EditText input = null; private Button btn0 = null; private Button btn1 = null; private Button btn2 = null; private Button btn3 = null; private Button btn4 = null; private Button btn5 = null; private Button btn6 = null; private Button btn7 = null; private Button btn8 = null; private Button btn9 = null; private Button btnadd = null; private Button btnsubtract = null; private Button btnmultiply = null; private Button btndivide = null; private Button btnclear = null; private Button btnresult = null; private Button btndot = null; private EditText errorzero = null; private EditText resultText = null; private Button writeButton = null; private Button readButton = null; private CheckBox appendBox = null; private EditText textView = null; private EditText displayView = null; public String FILE_NAME = "fileDemo.txt"; private String str = "";//保存数字 private String strold = "";//原数字 private char act = ' ';//记录“加减乘除等于”符号 private int count = 0;//判断要计算的次数,如果超过一个符号,先算出来一部分 private Float result = null;//计算的输出结果 private Boolean errBoolean = false;//有错误的时候为true,无错为false private Boolean flagBoolean = false;//一个标志,如果为true,可以响应运算消息,如果为false,不响应运算消息,只有前面是数字才可以响应运算消息 private Boolean flagDot = false; //小数点标志位 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_jisuanqi_main); output = (EditText) findViewById(R.id.output); input = (EditText) findViewById(R.id.input); errorzero = (EditText) findViewById(R.id.errorzero); resultText = (EditText) findViewById(R.id.resultText); writeButton = (Button) findViewById(R.id.writeButton); readButton = (Button) findViewById(R.id.readButton); textView = (EditText) findViewById(R.id.textView); displayView = (EditText) findViewById(R.id.displayView); appendBox = (CheckBox) findViewById(R.id.appendBox); btn0 = (Button) findViewById(R.id.zero); btn1 = (Button) findViewById(R.id.one); btn2 = (Button) findViewById(R.id.two); btn3 = (Button) findViewById(R.id.three); btn4 = (Button) findViewById(R.id.four); btn5 = (Button) findViewById(R.id.five); btn6 = (Button) findViewById(R.id.six); btn7 = (Button) findViewById(R.id.seven); btn8 = (Button) findViewById(R.id.eight); btn9 = (Button) findViewById(R.id.nine); btnadd = (Button) findViewById(R.id.add); btnsubtract = (Button) findViewById(R.id.subtract); btnmultiply = (Button) findViewById(R.id.multiply); btndivide = (Button) findViewById(R.id.divide); btnclear = (Button) findViewById(R.id.clear); btnresult = (Button) findViewById(R.id.result); btndot = (Button) findViewById(R.id.dot); //设置按钮侦听事件 btn0.setOnClickListener(listener); btn1.setOnClickListener(listener); btn2.setOnClickListener(listener); btn3.setOnClickListener(listener); btn4.setOnClickListener(listener); btn5.setOnClickListener(listener); btn6.setOnClickListener(listener); btn7.setOnClickListener(listener); btn8.setOnClickListener(listener); btn9.setOnClickListener(listener); //执行运算 btnadd.setOnClickListener(listener); btnsubtract.setOnClickListener(listener); btnmultiply.setOnClickListener(listener); btndivide.setOnClickListener(listener); btnclear.setOnClickListener(listener); btnresult.setOnClickListener(listener); btndot.setOnClickListener(listener); writeButton.setOnClickListener(writelistener); readButton.setOnClickListener(readlistener); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. } private OnClickListener listener = new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { //输入数字 case R.id.zero: num(0); break; case R.id.one: num(1); break; case R.id.two: num(2); break; case R.id.three: num(3); break; case R.id.four: num(4); break; case R.id.five: num(5); break; case R.id.six: num(6); break; case R.id.seven: num(7); break; case R.id.eight: num(8); break; case R.id.nine: num(9); break; case R.id.dot: dot(); break; //执行运算 case R.id.add: add(); break; case R.id.subtract: sub(); break; case R.id.multiply: multiply(); break; case R.id.divide: divide(); break; case R.id.clear: clear(); break; //计算结果 case R.id.result: result(); if (!errBoolean && flagBoolean) { output.setText(String.valueOf(result)); } resultText.setText(strold + act + str + "=" + result+" "); break; default: break; } input.setText(strold + act + str); output.setText(String.valueOf(result)); } }; private OnClickListener writelistener = new OnClickListener() { @Override public void onClick(View view) { //textView.setText(""); FileOutputStream fos = null; try { if (appendBox.isChecked()) { fos = openFileOutput(FILE_NAME, Context.MODE_APPEND); } else { fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); } String text = resultText.getText().toString(); fos.write(text.getBytes()); textView.setText("文件写入成功,写入长度:" + text.length()); //resultText.setText(""); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) try { fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }; private OnClickListener readlistener = new OnClickListener() { @Override public void onClick(View view) { displayView.setText(""); FileInputStream fis = null; try { fis = openFileInput(FILE_NAME); if (fis.available() == 0) { return; } byte[] readBytes = new byte[fis.available()]; while (fis.read(readBytes) != -1) { } String text = new String(readBytes); displayView.setText(text); textView.setText("文件读取成功,写入长度:" + text.length()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; private void dot() { // TODO Auto-generated method stub if (!flagDot) { str = str + "."; flagBoolean = false; flagDot = true; } } private void clear() { // TODO Auto-generated method stub str = strold = ""; count = 0; act = ' '; result = null; flagBoolean = false; flagDot = false; input.setText(strold + act + str); output.setText(""); errorzero.setText(""); displayView.setText(""); textView.setText(""); resultText.setText(""); } private void divide() { // TODO Auto-generated method stub if (flagBoolean) { check(); act = '/'; flagBoolean = false; } } private void multiply() { // TODO Auto-generated method stub if (flagBoolean) { check(); act = '*'; flagBoolean = false; } } private void sub() { // TODO Auto-generated method stub if (flagBoolean) { check(); act = '-'; flagBoolean = false; } } private void add() { // TODO Auto-generated method stub if (flagBoolean) { check(); act = '+'; flagBoolean = false; } } private void check() { // TODO Auto-generated method stub if (count >= 1) { result(); str = String.valueOf(result); } strold = str; str = ""; count++; flagDot = false; errorzero.setText(""); } //计算输出结果 private void result() { // TODO Auto-generated method stub if (flagBoolean) { Float a, b; a = Float.parseFloat(strold); b = Float.parseFloat(str); if (b == 0 && act == '/') { clear(); errorzero.setText("除数不能为零!"); //output.setText("除数不能为零!"); //errBoolean=true; } if (!errBoolean) { switch (act) { case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; case '/': result = a / b; break; default: break; } } } } private void num(int i) { // TODO Auto-generated method stub str = str + String.valueOf(i); flagBoolean = true; errorzero.setText(""); } } activity_jisuanqi_main.xml <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:editable="false" android:hint="@string/shuru" /> <EditText android:id="@+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:editable="true" android:gravity="right" android:hint="@string/shuchu" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/seven" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:text="@string/seven" android:textSize="40sp" /> <Button android:id="@+id/eight" android:layout_width="80dp" android:layout_height="70dp" android:layout_toRightOf="@id/seven" android:text="@string/eight" android:textSize="40sp" /> <Button android:id="@+id/nine" android:layout_width="80dp" android:layout_height="70dp" android:layout_toRightOf="@id/eight" android:text="@string/nine" android:textSize="40sp" /> <Button android:id="@+id/add" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentRight="true" android:layout_toRightOf="@id/nine" android:text="@string/add" android:textSize="40sp" /> <Button android:id="@+id/four" android:layout_width="80dp" android:layout_height="70dp" android:layout_alignParentLeft="true" android:layout_below="@id/seven" android:text="@string/four" android:textSize="40sp" /> <Button android:id="@+id/five" android:layout_width="80dp" android:layout_height="70dp" android:layout_below="@id/eight"
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服