资源描述
实验总成绩:
——————————————————————————装 订 线—————————————————————————————————
报告份数: 1
西安邮电学院
通信与信息工程学院
生产实习报告
专业班级:
学生姓名:
学号(班内序号):
年 月 日
西安邮电学院 通信与信息工程学院 院(系)
生产实习过程考核表
学生姓名
班级/学号
第一周
第二周
第三周
第四周
实习内容
熟悉Java开发语言及环境搭建,并学习接口及容器的使用。
Android特性介绍、开发环境的搭建及Android基本控件的学习。
Android系统开发
系统调试及验收
实习时间
2月27-3月2
3月5-3月9
3月12-3月16
3月19-3月23
实习地点
指导老师
实习成绩
总评实习成绩
指导师傅(教师)姓名
职务或职称
讲师
指导师傅(教师)
对学生的评价
实习态度
□ 认真 □ 一般 □ 不认真
实习纪律
□ 全勤 □ 偶尔缺勤 □ 经常缺勤
实践能力
□ 很强 □ 一般 □ 较差
指导师傅(教师)对学生专业知识与社会实践能力相结合情况的建议
指导师傅(教师)签字
年 月 日
西安邮电学院 通信与信息工程 学院生产实习考核表
学生姓名
专业班级/学号
进行时间
考核内容
实习内容(10分)
与专业结合程度
实习态度和纪律(20分)
认真、勤奋、刻苦程度(5分)
保证实习时间, 服从实习安排(5分)
遵守实习单位的规章制度情况(5分)
尊敬指导教师及实习单位人员(5分)
实践能力(40分)
动手能力(10分)
创新能力(10分)
分析、解决实际问题能力(10分)
协作与组织管理能力(10分)
实习报告(30分)
语言及文字表达力(10分)
报告结构(10分)
书写规范(10分)
指导教师(师傅)姓名
职称
实习成绩
一、 实验目的
(1)学习Java编程语言,了解和熟悉java语言开发环境的搭建以及java语言的 编程,并学习接口及容器的使用;
(2)熟悉Android的特性、开发环境的搭建及Android基本控件的学习;
(3)尝试Android系统的开发,在AVD平台上开发小应用程序;
(4)掌握Android应用程序的安装、调试。
二、 实验内容
1. 初步认识Java语言和Android
Java简介
Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Android简介
Android是Google于2007年11月5口宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。可以把它简单理解成Linux上套了一个TAVA的壳。
Android的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金。Android的程序可以采用JAVA开发,因为它的虚拟机(Virtual Machine) Dalvik,只是它将JAVA的byte code转成自己的格式,回避掉需要付给SUN有关JAVA的授权费用。因此,Android开发环境是需要JDK的。
2. Java环境变量以及Android开发环境的搭建
Ø Java环境变量设置
1.打开我的电脑--属性--高级--环境变量
2.新建系统变量JAVA_HOME 和CLASSPATH
3.变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.6
4.变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
5.选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
6.变量名:Path ,变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
Ø Android开发环境的搭建
1. 设置环境变量和Java环境变量的设置基本相似;
2. 下载Eclipse并安装;
3. 下载安装Android SDK ;
4. 安装ADT,使用Eclipse Help在线安装;
5. 创建自己的AVD,在DOS命令中使用命令格式如:android create avd –n <name> -t <targetID> [-<option><value>]…创建。n表示AVD名称;-t表示AVD使用的SDK版本。最终完成AVD的创建如图
6.
3. Android小应用程序——计算器 的实现
应用程序实现功能:简单的计算器,完成简单的四则运算。
程序代码:
//R.java
package com.fit.count.demo;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int but1=0x7f050001;
public static final int but10=0x7f05000a;
public static final int but11=0x7f05000b;
public static final int but12=0x7f05000c;
public static final int but13=0x7f05000d;
public static final int but14=0x7f05000e;
public static final int but15=0x7f05000f;
public static final int but16=0x7f050010;
public static final int but17=0x7f050011;
public static final int but2=0x7f050002;
public static final int but3=0x7f050003;
public static final int but4=0x7f050004;
public static final int but5=0x7f050005;
public static final int but6=0x7f050006;
public static final int but7=0x7f050007;
public static final int but8=0x7f050008;
public static final int but9=0x7f050009;
public static final int txt_input=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int zero=0x7f040000;
}
}
//CountMain.java
package com.fit.count.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class CountMain extends Activity {
/** Called when the activity is first created. */
static StringBuffer strBuff = new StringBuffer("");
// 数字监听
public void xianshi(final Button but, final EditText t1) {
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//判断开始是否可以按操作符
if (but.getText().toString().equals(".")) {
if (strBuff.indexOf("+") != -1
|| strBuff.indexOf("-") != -1
|| strBuff.indexOf("*") != -1
|| strBuff.indexOf("/") != -1) {
strBuff.append(but.getText().toString());
t1.setText(strBuff);
//判断一个操作数中是否可以按多个点
} else {
if (strBuff.indexOf(".") == -1 && strBuff.length() != 0) {
strBuff.append(but.getText().toString());
t1.setText(strBuff);
}
}
//判断在什么情况下可以按多个零
} else if (but.getText().toString().equals("0")) {
if (strBuff.indexOf("0") == 0 && strBuff.indexOf(".") == 1) {
strBuff.append(but.getText().toString());
t1.setText(strBuff);
} else if (strBuff.length() == 0) {
strBuff.append(but.getText().toString());
t1.setText(strBuff);
}
//判断第一个按零,接着再按整数的情况时,屏幕的显示
} else if (strBuff.indexOf("0") == 0
&& strBuff.indexOf(".") == -1) {
strBuff.delete(0, strBuff.length());
strBuff.append(but.getText().toString());
t1.setText(strBuff);
} else {
strBuff.append(but.getText().toString());
t1.setText(strBuff);
}
}
});
}
// 符号监听
public void jisuan(final Button but1, final EditText t1) {
but1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//存放输入的字符
String newchar1 = but1.getText().toString();
//判断开始是否为等号,输入一个数字后在输入等号没有反映
String newchar = "";
if (!(newchar1.equals("="))) {
newchar = newchar1;
}
float per1 = 0;//用来存放截取字符串的第一个操作数
float per2 = 0;//用来存放截取字符串的第二个操作数
//判断按的字符是否为清除键
if (newchar.equalsIgnoreCase("c")) {
strBuff.delete(0, strBuff.length());
t1.setText("0");
return;
}
//判断按的操作符是什么计算字符
//判断是否为加法
if (strBuff.indexOf("+") != -1
&& strBuff.indexOf("+") < strBuff.length() - 1
&& strBuff.indexOf("+") != 0) {
int i = strBuff.indexOf("+");
per1 = Float.parseFloat(strBuff.substring(0, i));
per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff
.length()));
float sum = per1 + per2;
strBuff.delete(0, strBuff.length());
strBuff.append(sum);
strBuff.append(newchar);
t1.setText(strBuff);
//判断是否为减法
} else if (strBuff.indexOf("-") != -1
&& strBuff.indexOf("-") < strBuff.length() - 1
&& strBuff.indexOf("-") != 0) {
int i = strBuff.indexOf("-");
per1 = Float.parseFloat(strBuff.substring(0, i));
per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff
.length()));
float sum = per1 - per2;
strBuff.delete(0, strBuff.length());
strBuff.append(sum);
strBuff.append(newchar);
t1.setText(strBuff);
//判断是否为乘法
} else if (strBuff.indexOf("*") != -1
&& strBuff.indexOf("*") < strBuff.length() - 1
&& strBuff.indexOf("*") != 0) {
int i = strBuff.indexOf("*");
per1 = Float.parseFloat(strBuff.substring(0, i));
per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff
.length()));
float sum = per1 * per2;
strBuff.delete(0, strBuff.length());
strBuff.append(sum);
strBuff.append(newchar);
t1.setText(strBuff);
//判断是否为除法
} else if (strBuff.indexOf("/") != -1
&& strBuff.indexOf("/") < strBuff.length() - 1
&& strBuff.indexOf("/") != 0) {
int i = strBuff.indexOf("/");
per1 = Float.parseFloat(strBuff.substring(0, i));
per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff
.length()));
//判断第二个操作数是否为零,为零则把显示框清零
if (per2 != 0) {
float sum = per1 / per2;
strBuff.delete(0, strBuff.length());
strBuff.append(sum);
strBuff.append(newchar);
t1.setText(strBuff);
} else {
strBuff.delete(0, strBuff.length());
strBuff.append("0");
t1.setText(strBuff);
}
} else {
//判断操作符是否能接连不断的点击
if (strBuff.length() > 0
&& ('0' <= strBuff.charAt(strBuff.length() - 1))
&& ('9' >= strBuff.charAt(strBuff.length() - 1))) {
strBuff.append(newchar);
t1.setText(strBuff);
}
}
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText t1 = (EditText) findViewById(R.id.txt_input);
final Button but1 = (Button) findViewById(R.id.but1);
xianshi(but1, t1);
final Button but2 = (Button) findViewById(R.id.but2);
xianshi(but2, t1);
final Button but3 = (Button) findViewById(R.id.but3);
xianshi(but3, t1);
final Button but5 = (Button) findViewById(R.id.but5);
xianshi(but5, t1);
final Button but6 = (Button) findViewById(R.id.but6);
xianshi(but6, t1);
final Button but7 = (Button) findViewById(R.id.but7);
xianshi(but7, t1);
final Button but9 = (Button) findViewById(R.id.but9);
xianshi(but9, t1);
final Button but10 = (Button) findViewById(R.id.but10);
xianshi(but10, t1);
final Button but11 = (Button) findViewById(R.id.but11);
xianshi(but11, t1);
final Button but13 = (Button) findViewById(R.id.but13);
xianshi(but13, t1);
final Button but17 = (Button) findViewById(R.id.but17);
xianshi(but17, t1);
// 符号
final Button but4 = (Button) findViewById(R.id.but4);
jisuan(but4, t1);
final Button but8 = (Button) findViewById(R.id.but8);
jisuan(but8, t1);
final Button but12 = (Button) findViewById(R.id.but12);
jisuan(but12, t1);
final Button but14 = (Button) findViewById(R.id.but14);
jisuan(but14, t1);
final Button but15 = (Button) findViewById(R.id.but15);
jisuan(but15, t1);
final Button but16 = (Button) findViewById(R.id.but16);
jisuan(but16, t1);
}
}
4.计算器程序运行截图
三 实验结果及心得
实验结果:完成了简单的计算器的应用程序的编写;
心得体会:
(1)通过这次生产实习,我学习并初步掌握了JAVA的编程以及Android的相关知识;
(2)学习了基于Android基本应用程序的开发的步骤和方法;
(3)通过自己从不懂到自己学习并编写小的Android应用程序,锻炼了自己对新知识的接受能力,虽然中间有好多的不懂和疑问,但是当自己逐一将其解决之后,那种成就感油然而生。
(4)虽然这次生产实习结束了,但是经过这次的学习培养了自己对Android应用开发的兴趣,为自己的业余生活又添了不少的乐趣。
——————————————————————————装 订 线—————————————————————————————————
指导教师评语:
实 验 成 绩:
指导(辅导)教师 :
展开阅读全文