做网站简历怎么写,科普互联网站建设,东莞系统网站建设,广州 网站建设模板【项目1】 图形界面——计算器项目 需求分析界面设计实施1、创建项目2、 界面实现实现代码1.activity_main.xml2.Java代码 - MainActivity.java 3、运行测试 注意点结束~ 需求分析
开发一个简单的计算器项目#xff0c;该程序只能进行加减乘除运算。要求界面美观#xff0c;… 【项目1】 图形界面——计算器项目 需求分析界面设计实施1、创建项目2、 界面实现实现代码1.activity_main.xml2.Java代码 - MainActivity.java 3、运行测试 注意点结束~ 需求分析
开发一个简单的计算器项目该程序只能进行加减乘除运算。要求界面美观使用方便。
为降低编程难度本计算器不支持连计算和混合运算。界面设计
计算器项目的界面如图具体内容包括1个为文本显示框用于显示用户的按键输入值及计算结果
18个按钮即0~9数字键加减乘除、小数点、等于号以及清除按钮CLEAR和退格按钮BACKSPACE。实施
1、创建项目 创建一个名为 Calculator的项目为简单起见在开发过程中只使用默认的布局文件 activity_main.xml 和 MainActivity类。2、 界面实现
计算器项目的界面实现思想外层采用垂直线性布局内层嵌套水平线性布局。本项目中的activity_main.xml 的图形控件及其Text、ID属性如下在本项目中为所有的按钮指定相同的onClick属性其事件处理的方法名全部为onClick。实现代码
1.activity_main.xml
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivityTextViewandroid:idid/tvResultandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textMedium Textandroid:textAppearance?android:attr/textAppearanceMedium /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentButtonandroid:idid/btnClearandroid:layout_width0dpandroid:layout_weight1android:layout_heightwrap_contentandroid:onClickonClickandroid:textClear /Buttonandroid:idid/btnBackSpaceandroid:layout_width0dpandroid:layout_weight1android:layout_heightwrap_contentandroid:onClickonClickandroid:textBackspace //LinearLayout!-- 第一行 --LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content Buttonandroid:idid/btn7android:layout_widthwrap_contentandroid:layout_weight1android:layout_heightwrap_contentandroid:onClickonClickandroid:text7 /Buttonandroid:layout_weight1android:idid/btn8android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text8 /Buttonandroid:layout_weight1android:idid/btn9android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text9 /Buttonandroid:layout_weight1android:idid/btnDevideandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text/ //LinearLayout!-- 第2行 --LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content Buttonandroid:layout_weight1android:idid/btn4android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text4 /Buttonandroid:layout_weight1android:idid/btn5android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text5 /Buttonandroid:idid/btn6android:layout_weight1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text6 /Buttonandroid:layout_weight1android:idid/btnMultiplyandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text* //LinearLayout!-- 第3行 --LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content Buttonandroid:layout_weight1android:idid/btn1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text1 /Buttonandroid:layout_weight1android:idid/btn2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text2 /Buttonandroid:idid/btn3android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_weight1android:onClickonClickandroid:text3 /Buttonandroid:layout_weight1android:idid/btnMinusandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text- //LinearLayout!-- 第4行 --LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_content Buttonandroid:layout_weight1android:idid/btnDotandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text. /Buttonandroid:layout_weight1android:idid/btn0android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text0 /Buttonandroid:layout_weight1android:idid/btnEqualandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text /Buttonandroid:layout_weight1android:idid/btnPlusandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:onClickonClickandroid:text //LinearLayout/LinearLayout
2.Java代码 - MainActivity.java
Activity类用于实现项目的功能包括对按钮的响应及计算数值。代码如下package com.example.administrator.calculator;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import com.example.ex2mycalculator.R;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class MainActivity extends AppCompatActivity {TextView tvResult;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvResult findViewById(R.id.tvResult);tvResult.setText();}SuppressLint(NonConstantResourceId)public void onClick(View v){Button b (Button) v;String btnText b.getText().toString();String tvText tvResult.getText().toString();int btnClear R.id.btnClear;int id v.getId();if (id R.id.btnClear) {tvResult.setText();} else if (id R.id.btn0 || id R.id.btn1 || id R.id.btn2 || id R.id.btn3 || id R.id.btn4 || id R.id.btn5 || id R.id.btn6 || id R.id.btn7 || id R.id.btn8 || id R.id.btn9 || id R.id.btnDot || id R.id.btnPlus || id R.id.btnMinus || id R.id.btnMultiply || id R.id.btnDevide) {tvResult.setText(tvText btnText);} else if (id R.id.btnEqual) {// 计算结果Pattern p Pattern.compile((\\d)([\\\\-\\*\\/])(\\d));Matcher m p.matcher(tvText);if (m.find()) {double d1 Double.parseDouble(m.group(1));double d2 Double.parseDouble(m.group(3));double d3 0;if (.equals(m.group(2))) {d3 d1 d2;}if (-.equals(m.group(2))) {d3 d1 - d2;}if (*.equals(m.group(2))) {d3 d1 * d2;}if (/.equals(m.group(2))) {d3 d1 / d2;}tvResult.setText(tvText btnText d3);}} else if (id R.id.btnBackSpace) {if (tvResult.getText().toString().length() ! 0) {tvResult.setText(tvResult.getText().toString().substring(0, tvResult.getText().toString().length() - 1));}} else {throw new IllegalStateException(Unexpected value: v.getId());}}
}
3、运行测试
将项目在AVD上运行测试其是否符合需求分析中的要求。注意点
你的软件的API 要比我原本的高或相等才能正常运行
结束~