当前位置:   article > 正文

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。如下图所示:

 

        编写程序,核心代码如下(部分功能省略):

  1. import androidx.appcompat.app.AppCompatActivity;
  2. import android.os.Bundle;
  3. import android.view.View;
  4. import android.widget.Button;
  5. import android.widget.TextView;
  6. public class MainActivity extends AppCompatActivity {
  7. private TextView txtView;
  8. private Button btn_n0;
  9. private Button btn_n1;
  10. private Button btn_n2;
  11. private Button btn_n3;
  12. private Button btn_n4;
  13. private Button btn_n5;
  14. private Button btn_n6;
  15. private Button btn_n7;
  16. private Button btn_n8;
  17. private Button btn_n9;
  18. private Button btn_add;
  19. private Button btn_sub;
  20. private Button btn_div;
  21. private Button btn_mix;
  22. private Button btn_res;
  23. private Button btn_c;
  24. private Button btn_del;
  25. private Button btn_p;
  26. private Button btn_pct;
  27. private Button btn_dot;
  28. int opflag;
  29. double kk,kk_add,kk_sub;
  30. @Override
  31. protected void onCreate(Bundle savedInstanceState) {
  32. super.onCreate(savedInstanceState);
  33. setContentView(R.layout.activity_main);
  34. txtView=findViewById(R.id.textView);
  35. btn_n0=findViewById(R.id.button_n0);
  36. btn_n1=findViewById(R.id.button_n1);
  37. btn_n2=findViewById(R.id.button_n2);
  38. btn_n3=findViewById(R.id.button_n3);
  39. btn_n4=findViewById(R.id.button_n4);
  40. btn_n5=findViewById(R.id.button_n5);
  41. btn_n6=findViewById(R.id.button_n6);
  42. btn_n7=findViewById(R.id.button_n7);
  43. btn_n8=findViewById(R.id.button_n8);
  44. btn_n9=findViewById(R.id.button_n9);
  45. btn_add=findViewById(R.id.button_add);
  46. btn_sub=findViewById(R.id.button_sub);
  47. btn_div=findViewById(R.id.button_div);
  48. btn_mix=findViewById(R.id.button_mix);
  49. btn_res=findViewById(R.id.button_res);
  50. btn_c=findViewById(R.id.button_c);
  51. btn_del=findViewById(R.id.button_del);
  52. btn_p=findViewById(R.id.button_p);
  53. btn_pct=findViewById(R.id.button_pct);
  54. btn_dot=findViewById(R.id.button_dot);
  55. btn_n0.setOnClickListener(clickListener);
  56. btn_n1.setOnClickListener(clickListener);
  57. btn_n2.setOnClickListener(clickListener);
  58. btn_n3.setOnClickListener(clickListener);
  59. btn_n4.setOnClickListener(clickListener);
  60. btn_n5.setOnClickListener(clickListener);
  61. btn_n6.setOnClickListener(clickListener);
  62. btn_n7.setOnClickListener(clickListener);
  63. btn_n8.setOnClickListener(clickListener);
  64. btn_n9.setOnClickListener(clickListener);
  65. btn_add.setOnClickListener(clickListener);
  66. btn_sub.setOnClickListener(clickListener);
  67. btn_div.setOnClickListener(clickListener);
  68. btn_mix.setOnClickListener(clickListener);
  69. btn_res.setOnClickListener(clickListener);
  70. btn_dot.setOnClickListener(clickListener);
  71. btn_pct.setOnClickListener(clickListener);
  72. btn_p.setOnClickListener(clickListener);
  73. btn_c.setOnClickListener(clickListener);
  74. btn_del.setOnClickListener(clickListener);
  75. kk=0;
  76. opflag=0;
  77. }
  78. public View.OnClickListener clickListener = new View.OnClickListener() {
  79. @Override
  80. public void onClick(View v) {
  81. switch (v.getId()) {
  82. case R.id.button_n0:
  83. kk=kk*10+0;
  84. break;
  85. case R.id.button_n1:
  86. kk=kk*10+1;
  87. break;
  88. case R.id.button_n2:
  89. kk=kk*10+2;
  90. break;
  91. case R.id.button_n3:
  92. kk=kk*10+3;
  93. break;
  94. case R.id.button_n4:
  95. kk=kk*10+4;
  96. break;
  97. case R.id.button_n5:
  98. kk=kk*10+5;
  99. break;
  100. case R.id.button_n6:
  101. kk=kk*10+6;
  102. break;
  103. case R.id.button_n7:
  104. kk=kk*10+7;
  105. break;
  106. case R.id.button_n8:
  107. kk=kk*10+8;
  108. break;
  109. case R.id.button_n9:
  110. kk=kk*10+9;
  111. break;
  112. case R.id.button_c:
  113. kk=0;
  114. break;
  115. case R.id.button_add:
  116. kk_add=kk;
  117. kk_sub=0;
  118. kk=0;
  119. opflag=1;
  120. break;
  121. case R.id.button_sub:
  122. kk_add=0;
  123. kk_sub=kk;
  124. kk=0;
  125. opflag=-1;
  126. break;
  127. case R.id.button_res:
  128. kk=(kk+kk_add-kk_sub)*opflag;
  129. break;
  130. default:
  131. break;
  132. }
  133. txtView.setText(String.valueOf(kk));
  134. }
  135. };
  136. }

五、实验结果分析:

       下图为Android计算器设计图及APP模拟编译图,可实现基本功能:

体会:此次实验我熟悉了Android稍微复杂的逻辑编程,一步步做实验的过程也感受到了理论课上无法感受到的东西。开发过程中遇到的不会的问题在网上也有对应的解决办法,最终将计算器设计出来及成功运行也感受到了Android开发的强大魅力。 

(如有侵权,请联系删除!文章中若有错误欢迎在评论区指出!)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/223284
推荐阅读
相关标签
  

闽ICP备14008679号