当前位置:文档之家› Android系统结构与应用编程实验报告(1)

Android系统结构与应用编程实验报告(1)

电子科技大学

实验报告

实验地点:信软楼440 实验时间:19.02.27

一、实验名称:开发平台安装与配置及Java基础

二、实验学时:4学时

三、实验目的:

熟悉开发平台,熟悉Java的基本知识,Java的数组,类,接口等。

四、实验原理:

JDK的安装和配置

Eclipse的安装和配置

Java基础

五、实验内容:

1.完成JDK的安装和配置

2.完成Eclipse的安装和配置

3.编写程序

(1)编写Java程序,应用for循环打印菱形。

(2)编写Java程序,使用while循环语句计算1+1/2!+1/3!...1/20!之和。

(3)使用正则表达式来判断字符串text是否为合法的手机号。

(4)使用字符串生成器,将字符串str追加1~10这10个数字。

(5)编写Java程序,将二维数组中的行列互调显示出来。

(6)编写一个类,定义一个修饰权限为private的成员变量,并定义两个成员方法,一个成员方法实现为此成员变量赋值,另一个成员方法获取这个成员变量的值,保证其他类继承该类时能获取该类的成员变量的值。

(7)创建一个父类和子类,分别创建构造方法,然后向父类和子类添加成员变量和方法,并总结构建子类对象时的顺序。

六、实验器材(设备、元器件):

PC,软件JDK包和Eclipse的安装和配置

七、实验步骤:

1、完成编程环境的搭建和配置。

2、审题,思考编程思路。

3、建立JA V A工程并编写程序。

4、调试程序,直至得到最后结果。

八、实验结果与分析(含重要数据结果分析或核心代码流程分析)

(1)、实验结果及分析如下所示:

final int Max_number = 7; //应为奇数

for(int i = 0; i < Max_number; i++) {

if(i < (Max_number - 1)/2) {

for(int j = 0; j < (Max_number - 1)/2 - i + 1; j++) {

System.out.print(' ');

}

for(int j = 0; j < 2*i + 1; j++) {

System.out.print('*');

}

System.out.println();

}

else {

for(int j = (Max_number - 1)/2; j <= i; j++) {

System.out.print(' ');

}

for(int j = 0; j < 2*(Max_number - i) - 1; j++) {

System.out.print('*');

}

System.out.println();

}

}

通过对程序中Max_number值的设置,可以设置显示菱形的对角线长度,如设置为7,所画菱形的对角线长度如下图所示也为7。

(2)、实验结果及分析如下所示:

代码如下所示:

int Num = 20;

double temp = 1;

double Sum = 0;

while(Num > 0) {

for (int i = Num; i > 0; i--) {

temp = i*temp;

}

Sum = Sum + (1/temp);

temp = 1;

Num--;

}

System.out.println(Sum);

其中Sum为累加和,while循环负责20个加数的累加循环,for循环负责求取每一个加数的分母。运行结果如下图所示:

(3)、实验结果及分析如下所示:

String PhoneStandard = "^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-8])|(147))\\d{8}$";

重要需要定义一个合法的手机号码的判断标准。即合法手机号码应该为11位,其中前三位应该为:13*、15*、18*、17*或147。运行结果如下图所示:首先输入一个不合法的手机号码152801795820,判断结果为:

然后再输入一个合法的手机号码152********,判断结果为:

(4)、实验结果及分析如下所示:

for(int i = 0; i < 11; i++){

Str.append(i);

}

使用StringBuilder类中的append函数可以很简单的做到这一点。

(5)、实验结果及分析如下所示:

final int Array_A[][] = {{1,1,1,1,1},{2,2,2,2,2},{3,3,3,3,3},{4,4,4,4,4},{5,5,5,5,5}};

int Array_B[][] = new int[5][5];

System.out.println("原矩阵:");

for(int i = 0; i < 5; i++){

for(int j = 0; j < 5; j++){

System.out.print(Array_A[i][j]);

Array_B[j][i] = Array_A[i][j];

}

System.out.println();

}

System.out.println("行列调换后矩阵为:");

for(int i = 0; i < 5; i++){

for(int j = 0; j < 5; j++){

System.out.print(Array_B[i][j]);

}

System.out.println();

}

代码如上所示,在逐个打印原矩阵的元素时同时进行矩阵的行列调换。

(6)、实验结果及分析如下所示:

public class OneData {

private int Data;

public OneData() {}

public OneData(int data){

Data = data;

}

public int getData() {

return Data;

}

public void setData(int data) {

Data = data;

}

}

定义一个名为OneData的类,其中getData()函数可以读取private变量Data 的值,setData()函数可以设置Data的值。

实例化代码如下所示:

OneData data_1 = new OneData(3);

System.out.println("获取数据为:" + data_1.getData());

data_1.setData(9);

System.out.println("获取改变过后的数据为:" + data_1.getData());

运行结果如下图所示:

(7)、实验结果及分析如下所示:

在(6)的基础上新建一个TwoData的类,由OneData类继承而来。

public class TwoData extends OneData {

private int TData;

public TwoData(int data) {

TData = data;

System.out.println("调用子类构造函数。变量值为:" + TData);

}

}

其中TData为子类中的私有变量。

TwoData data_2 = new TwoData(5);

System.out.println("获取数据为:" + data_2.getData());

实例化该类并运行可得结果:

可见,子类在进行实例化时,调用了子类自己的构造函数。

九、总结及心得体会:

借助课程PPT,在编写了本次实验的7个程序后,总算是对Java的一些基本性东西有了一个大概的了解。也得益于之前学过C++这门语言,我想Java的入门应该是一个很愉快的过程。非常期待接下来的Android实践。

十、对本实验过程及方法、手段的改进建议:

前两次课为了照顾我们这些没有Java基础的同学一直在讲Java编程的基础部分。虽然由于时间紧张的关系,这个过程非常的快速,但是还是很感谢老师的照顾。而且PPT中的代码都是事先自己打出来并且验证过的,非常有心。希望在后面的Android实践过程中,老师能够讲的慢一些。如果能够带着我们一步步的调试就更加好了。

报告评分:

指导教师签字:

相关主题
文本预览
相关文档 最新文档