Android应用程序开发
实验报告
学 号: 131006105
学生姓名: 冯会会
指导教师: 齐兵辉
提交时间: 2015.11.10
第一章 系统分析与设计 3
1.1系统的可行性分析 3
1.2 系统的需求分析 3
第二章 系统详细设计 3
2.1 activity的详细设计 3
2.2 xml文件的详细设计 14
第三章 测试运行及总结 20
3.1 界面截图 20
3.2 运行界面截图 21
3.3运行结果截图 22
3.4 总结 22
可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析:
(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN公司(现被ORCEL公司收购)推出的跨平台、动态的JAVA语言进行开发。
(2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。
(3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。
通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JAVA语言进行系统的开发。
根据分析需求,这个系统必须实现以下的功能:
(1) 实现简单的数字计算功能。
作为计算器,其核心就是加减乘除。
(2) 能够在手机里面以良好的界面。
package com.example.counter;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textView1 = null;
private Button buttonzone = null;
private Button button1 = null;
private Button button2 = null;
private Button button3 = null;
private Button button4 = null;
private Button button5 = null;
private Button button6 = null;
private Button button7 = null;
private Button button8 = null;
private Button button9 = null;
private Button buttonadd = null;
private Button buttonred = null;
private Button buttondiv = null;
private Button buttonmul = null;
private Button buttonpint = null;
private Button buttonbai = null;
private Button buttongen = null;
private Button buttonequal = null;
private String x="";
private String y="";
private double r1=0;
private double r2=0;
private int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 = (TextView)findViewById(R.id.textView1);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
button3 = (Button)findViewById(R.id.button3);
button4 = (Button)findViewById(R.id.button4);
button5 = (Button)findViewById(R.id.button5);
button6 = (Button)findViewById(R.id.button6);
button7 = (Button)findViewById(R.id.button7);
button8 = (Button)findViewById(R.id.button8);
button9 = (Button)findViewById(R.id.button9);
buttonzone = (Button)findViewById(R.id.button0);
buttonadd = (Button)findViewById(R.id.buttonadd);
buttonred = (Button)findViewById(R.id.buttonred);
buttonmul = (Button)findViewById(R.id.buttonmul);
buttondiv = (Button)findViewById(R.id.buttondiv);
buttonbai = (Button)findViewById(R.id.buttonbai);
buttongen = (Button)findViewById(R.id.buttongen);
buttonequal = (Button)findViewById(R.id.buttonequal);
buttonpint = (Button)findViewById(R.id.buttonpoint);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"1";
y=y+"1";
textView1.setText(y);
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"2";
y=y+"2";
textView1.setText(y);
}
});
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"3";
y=y+"3";
textView1.setText(y);
}
});
button4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"4";
y=y+"4";
textView1.setText(y);
}
});
button5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"5";
y=y+"5";
textView1.setText(y);
}
});
button6.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"6";
y=y+"6";
textView1.setText(y);
}
});
button7.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"7";
y=y+"7";
textView1.setText(y);
}
});
button8.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"8";
y=y+"8";
textView1.setText(y);
}
});
button9.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"9";
y=y+"9";
textView1.setText(y);
}
});
buttonzone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
x=x+"0";
y=y+"0";
textView1.setText(y);
}
});
buttonpint.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x==""){
x=0+"."+"";
y=0+"."+"";
}
else {
x=x+".";
y=y+".";
textView1.setText(y);
}
}
});
buttonequal.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r2=Double.parseDouble(x);
x="";
switch(i){
case 0:
textView1.setText(0+"");
break;
case 1:
textView1.setText((r1+r2)+"");
break;
case 2:
textView1.setText((r1-r2)+"");
break;
case 3:
textView1.setText((r1*r2)+"");
break;
case 4:
textView1.setText((r1/r2)+"");
break;
case 5:
textView1.setText((r1%r2)+"");
break;
}
}
else{
textView1.setText(0+"");
x="";
y="";
}
r1=0;
r2=0;
i=0;
x="";
y="";
}
});
buttonadd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r1=Double.parseDouble(x);
x="";
y=y+"+";
textView1.setText(y);
i=1;
}
else {
textView1.setText(0+"");
}
}
});
buttonred.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r1=Double.parseDouble(x);
x="";
y=y+"-";
textView1.setText(y);
i=2;
}
else {
textView1.setText(0+"");
}
}
});
buttonmul.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r1=Double.parseDouble(x);
x="";
y=y+"*";
textView1.setText(y);
i=3;
}
else {
textView1.setText(0+"");
}
}
});
buttondiv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r1=Double.parseDouble(x);
x="";
y=y+"/";
textView1.setText(y);
i=4;
}
else {
textView1.setText(0+"");
}
}
});
buttonbai.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
r1=Double.parseDouble(x);
x="";
y=y+"%";
textView1.setText(y);
i=5;
}
else {
textView1.setText(0+"");
}
}
});
buttongen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(x!=""){
y="1/"+x;
textView1.setText(y);
r1=1/(Double.parseDouble(x));
x=r1+"";
}
else {
textView1.setText(0+"");
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"
android:columnCount="5"
android:rowCount="5"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="230dp"
android:layout_height="30dp"
android:layout_column="0"
android:layout_columnSpan="5"
android:layout_row="0"
android:gravity="right"
android:text="@string/result"
android:textSize="25sp" />
<Button
android:id="@+id/button7"
style="?android:attr/buttonStyleSmall"
android:layout_column="0"
android:layout_gravity="left|top"
android:layout_row="1"
android:text="@string/seleven" />
<Button
android:id="@+id/button8"
style="?android:attr/buttonStyleSmall"
android:layout_column="1"
android:layout_gravity="left|top"
android:layout_row="1"
android:text="@string/eight" />
<Button
android:id="@+id/button9"
style="?android:attr/buttonStyleSmall"
android:layout_column="2"
android:layout_gravity="left|top"
android:layout_row="1"
android:text="@string/nine" />
<Button
android:id="@+id/buttondiv"
style="?android:attr/buttonStyleSmall"
android:layout_column="3"
android:layout_gravity="left|top"
android:layout_row="1"
android:text="@string/div" />
<Button
android:id="@+id/buttonbai"
style="?android:attr/buttonStyleSmall"
android:layout_column="4"
android:layout_gravity="left|top"
android:layout_row="1"
android:text="@string/bai" />
<Button
android:id="@+id/button4"
style="?android:attr/buttonStyleSmall"
android:layout_column="0"
android:layout_gravity="left|top"
android:layout_row="2"
android:text="@string/four" />
<Button
android:id="@+id/button5"
style="?android:attr/buttonStyleSmall"
android:layout_column="1"
android:layout_gravity="left|top"
android:layout_row="2"
android:text="@string/five" />
<Button
android:id="@+id/button6"
style="?android:attr/buttonStyleSmall"
android:layout_column="2"
android:layout_gravity="left|top"
android:layout_row="2"
android:text="@string/six" />
<Button
android:id="@+id/buttonmul"
style="?android:attr/buttonStyleSmall"
android:layout_column="3"
android:layout_gravity="left|top"
android:layout_row="2"
android:text="@string/mul" />
<Button
android:id="@+id/buttongen"
style="?android:attr/buttonStyleSmall"
android:layout_column="4"
android:layout_gravity="left|top"
android:layout_row="2"
android:text="@string/gen" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_column="0"
android:layout_gravity="left|top"
android:layout_row="3"
android:text="@string/one" />
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_column="1"
android:layout_gravity="left|top"
android:layout_row="3"
android:text="@string/two" />
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_column="2"
android:layout_gravity="left|top"
android:layout_row="3"
android:text="@string/three" />
<Button
android:id="@+id/buttonred"
style="?android:attr/buttonStyleSmall"
android:layout_column="3"
android:layout_gravity="left|top"
android:layout_row="3"
android:text="@string/red" />
<Button
android:id="@+id/buttonequal"
style="?android:attr/buttonStyleSmall"
android:layout_width="50dp"
android:layout_column="4"
android:layout_gravity="fill_vertical"
android:layout_row="3"
android:layout_rowSpan="2"
android:text="@string/equal" />
<Button
android:id="@+id/button0"
style="?android:attr/buttonStyleSmall"
android:layout_column="0"
android:layout_gravity="fill"
android:layout_row="4"
android:layout_columnSpan="2"
android:text="@string/zone" />
<Button
android:id="@+id/buttonpoint"
style="?android:attr/buttonStyleSmall"
android:layout_column="2"
android:layout_gravity="left|top"
android:layout_row="4"
android:text="@string/point" />
<Button
android:id="@+id/buttonadd"
style="?android:attr/buttonStyleSmall"
android:layout_column="3"
android:layout_gravity="left|top"
android:layout_row="4"
android:text="@string/add" />
GridLayout>
这次课程设计虽然很简单但是需要注意的地方很多,比如ID的声明,经常由于ID的问题出现程序出现错误。然后就是Activity的注册的问题,还有每个class创建要继承Activity,到后来计算的问题,然后开始找相关的资料才知道需要将字符串进行转换才能进行运算。这次课程设计真正的锻炼了我的的耐心和细心,虽然程序很简单,但是真正的从头编到尾才知道。努力解决调试中遇到的许多问题,这样可以在过程中才能更好地锻炼自己的能力,认识到自己的不足。通过这次课设认识到自己在编程中的缺陷,我查了不少的资料获益匪浅需要好好学习更深入的理解。
¥29.8
¥9.9
¥59.8