Android计算器设计实验报告
一、实验目的:
熟悉Android稍微复杂的逻辑编程,应用网格布局设计一个简单Android计算器界面并能实现加减和清零等功能。
二、实验设备:
1.PC机
2.Windows操作系统
3.Android Studio
三、实验原理简述:
TableLayout是一种可以制作表格的布局,它和GridLayout的区别是GridLayout只能制定每一列宽度一样的表格布局,而TableLayout能够制定各列宽度不一样的表格布局。
3.1 TableLayout的主要属性
android:collapseColumns=”0,1” 隐藏第0列和第1列
android:stretchColumns=”0,1” 第0列和第1列可以向行方向扩展
android:stretchColumns=”*” 所有列可以向行方向扩展
android:shrinkColumns=”0,1” 第0列和第1列可以向列方向扩展
3.2 TableRow子控件的主要属性:
android:layout_column=”1” 该控件显示在第1列
android:layout_span=”2” 该控件占据2列
注意:TableLayout里面的子控件可以为TableRow或者其他View,但是其子控件的android:layout_width属性被系统固定为match_parent,TableLayout里面所有行中某一列的宽度的最大值是这一列的宽度。
四、实验数据记录及数据处理:
在Android Studio新建一个工程,在Palette中选择TableLayout、TableRow、textView和button添加到Component Tree中,并修改主从关系及其id、text和textSIZE。如下图所示:
编写程序,核心代码如下(部分功能省略):
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView txtView;private Button btn_n0;private Button btn_n1;private Button btn_n2;private Button btn_n3;private Button btn_n4;private Button btn_n5;private Button btn_n6;private Button btn_n7;private Button btn_n8;private Button btn_n9;private Button btn_add;private Button btn_sub;private Button btn_div;private Button btn_mix;private Button btn_res;private Button btn_c;private Button btn_del;private Button btn_p;private Button btn_pct;private Button btn_dot;int opflag;double kk,kk_add,kk_sub;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txtView=findViewById(R.id.textView);btn_n0=findViewById(R.id.button_n0);btn_n1=findViewById(R.id.button_n1);btn_n2=findViewById(R.id.button_n2);btn_n3=findViewById(R.id.button_n3);btn_n4=findViewById(R.id.button_n4);btn_n5=findViewById(R.id.button_n5);btn_n6=findViewById(R.id.button_n6);btn_n7=findViewById(R.id.button_n7);btn_n8=findViewById(R.id.button_n8);btn_n9=findViewById(R.id.button_n9);btn_add=findViewById(R.id.button_add);btn_sub=findViewById(R.id.button_sub);btn_div=findViewById(R.id.button_div);btn_mix=findViewById(R.id.button_mix);btn_res=findViewById(R.id.button_res);btn_c=findViewById(R.id.button_c);btn_del=findViewById(R.id.button_del);btn_p=findViewById(R.id.button_p);btn_pct=findViewById(R.id.button_pct);btn_dot=findViewById(R.id.button_dot);btn_n0.setOnClickListener(clickListener);btn_n1.setOnClickListener(clickListener);btn_n2.setOnClickListener(clickListener);btn_n3.setOnClickListener(clickListener);btn_n4.setOnClickListener(clickListener);btn_n5.setOnClickListener(clickListener);btn_n6.setOnClickListener(clickListener);btn_n7.setOnClickListener(clickListener);btn_n8.setOnClickListener(clickListener);btn_n9.setOnClickListener(clickListener);btn_add.setOnClickListener(clickListener);btn_sub.setOnClickListener(clickListener);btn_div.setOnClickListener(clickListener);btn_mix.setOnClickListener(clickListener);btn_res.setOnClickListener(clickListener);btn_dot.setOnClickListener(clickListener);btn_pct.setOnClickListener(clickListener);btn_p.setOnClickListener(clickListener);btn_c.setOnClickListener(clickListener);btn_del.setOnClickListener(clickListener);kk=0;opflag=0;}public View.OnClickListener clickListener = new View.OnClickListener() {@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button_n0:kk=kk*10+0;break;case R.id.button_n1:kk=kk*10+1;break;case R.id.button_n2:kk=kk*10+2;break;case R.id.button_n3:kk=kk*10+3;break;case R.id.button_n4:kk=kk*10+4;break;case R.id.button_n5:kk=kk*10+5;break;case R.id.button_n6:kk=kk*10+6;break;case R.id.button_n7:kk=kk*10+7;break;case R.id.button_n8:kk=kk*10+8;break;case R.id.button_n9:kk=kk*10+9;break;case R.id.button_c:kk=0;break;case R.id.button_add:kk_add=kk;kk_sub=0;kk=0;opflag=1;break;case R.id.button_sub:kk_add=0;kk_sub=kk;kk=0;opflag=-1;break;case R.id.button_res:kk=(kk+kk_add-kk_sub)*opflag;break;default:break;}txtView.setText(String.valueOf(kk));}};
}
五、实验结果分析:
下图为Android计算器设计图及APP模拟编译图,可实现基本功能:
体会:此次实验我熟悉了Android稍微复杂的逻辑编程,一步步做实验的过程也感受到了理论课上无法感受到的东西。开发过程中遇到的不会的问题在网上也有对应的解决办法,最终将计算器设计出来及成功运行也感受到了Android开发的强大魅力。
(如有侵权,请联系删除!文章中若有错误欢迎在评论区指出!)
Android计算器设计实验报告相关推荐
- android常用控件实验报告,ui设计实验报告.doc
ui设计实验报告 ui设计实验报告 篇一:UI设计实验报告 实验项目四:UI设计 一. 实验目的和要求 1.熟练运用Eclipse软件中的swing设计. 2.掌握UI编写的软件. 3.能都熟练的进行 ...
- android音乐播放器实验报告总结,音乐播放器设计实验报告.docx
音乐播放器设计实验报告.docx 实验报告课程名称数字系统设计实验指导老师成绩_____________实验名称音乐播放器设计实验实验类型设计型一.实验目的和要求(必填)二.实验内容和原理(必填)三. ...
- 南邮Android软件设计报告,南京邮电大学软件设计实验报告
南京邮电大学软件设计实验报告 软件设计报告( 2014 / 2015 学年 第 二 学期)课程名称 软件设计 指导老师 赵江 实习时间 第十八周 学生姓名 学号 ____学院______专业软件设计课 ...
- 闹钟Android实验报告,闹钟设计实验报告.doc
闹钟设计实验报告 闹钟设计实验报告 院系: 计算机与通信学院 专业: 计算机科学与技术 班级: 01154 班 姓名: 伍晨曦 (13号) 指导老师: 杨 华 实验目的: 学会VHDL语言的并发执行的 ...
- 20175333曹雅坤实验四《Android程序设计》实验报告
20175333实验四<Android程序设计>实验报告 一.实验内容及步骤 - Android程序设计-1 Android Stuidio的安装测试: 参考<Java和Androi ...
- android对象识别实验报告,Android 3相册实验报告.doc
Android 3相册实验报告 中原工学院计算机学院 软件平台开发技术大作业 班 级: 软件121 作品名称: 3D相册 姓 名: 辛俊闪 学 号: 201200834101 指导教师: 刘凤华 20 ...
- 20155318 《Java程序设计》实验四 (Android程序设计)实验报告
20155318 <Java程序设计>实验四 (Android程序设计)实验报告 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组 ...
- Android用户界面的设计方法心得,android界面设计实验总结,.docx
android界面设计实验总结, 安卓实验报告 班级: 学号: 姓名:xxxxxxxxx 实验一:Activity生命周期的测试 一:实验目的 掌握使用Eclipse开发Android应用开发程序的方 ...
- 2019春第二次课程设计实验报告
2019春第二次课程设计实验报告 一.实验项目名称: 贪吃蛇游戏编写: 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制, 同时对小蛇数据的保存,如何实现转弯的效 ...
- 2109春第一次课程设计实验报告
2019春第一次课程设计实验报告 一.实验项目名称: 飞机游戏的编写 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现控制飞机的移动功能,增加其实用度, 同时还实现发射子弹和出现敌机的操 ...
最新文章
- Singleton模式
- Andriod的Http请求获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息...
- JPA中实现双向一对一的关联关系
- Ubuntu11.04 3945ABG无线网卡驱动安装
- docker镜像导入、导出
- C语言的整型溢出问题
- java大作业斗地主游戏_Java集合练习:斗地主游戏
- python如何叉乘_向量点乘与向量叉乘
- 在Ubuntu下搭建Spark群集
- 修改Code Blocks默认代码格式
- 网络安全管理规章制度
- 用python自动办公 麻瓜_(视频教程)下载:麻瓜编程Python商业爬虫学徒计划python自动化办公麻瓜麻瓜编程...
- c语言一元多项式求和
- 利用Word实现交叉引用或引用尾注添加参考文献图解
- Zynga公布2021年第一季度财务业绩
- 某电商客户数据价值分析项目
- pycharm解决光标变粗,关闭改写模式
- MATLAB中cftool多曲线画图
- 【嵌入式】STM32实现SPI双机通信的一些细节(2)片选总结
- 随机森林算法(RandomForest)实现MNIST手写体数字识别