当前位置:文档之家› (完整word版)Android实验报告_基于SQLite的通信录

(完整word版)Android实验报告_基于SQLite的通信录

(完整word版)Android实验报告_基于SQLite的通信录
(完整word版)Android实验报告_基于SQLite的通信录

第一次实验Android界面设计

一. 实验目的及实验环境

1. 实验目的

1)掌握SQLiteOpenHelper类结构

2)掌握基于SQLite数据库的应用开发过程

3)掌握Content Provider发布数据的方法

4)掌握Content Resolver获取数据的方法

2.实验环境

系统开发平Android Studio 3.0

系统开发平台:Android 7.1

运行平台:Windows10 x64

运行环境:https://www.doczj.com/doc/4615961679.html, Framework SDK 2.0

二. 实验教材、组织方式、实验内容

1.实验教材:Andorid开发与应用

2.组织方式:个人独立完成

2.实验内容:

实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。

三.方案设计

Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver 来获取共享数据。

四.运行结果

五.总结

通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver获取数据的方法。

六.附录:源代码

主布局文件activity_main.xml:

xmlns:android="https://www.doczj.com/doc/4615961679.html,/apk/res/android"

android:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="通信录"/>

android:id="@+id/listView"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="add"/>

添加联系人布局文件addrelation.xml:

xmlns:android="https://www.doczj.com/doc/4615961679.html,/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="姓名"/>

android:id="@+id/addName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="电话"/>

android:id="@+id/addTel"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="所属组"/>

android:id="@+id/addGroup"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:entries="@array/test">

android:id="@+id/save"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text=" 保存 "/>

主Activity文件MainActivity.java:

import android.support.v7.app.ActionBarActivity;

import android.app.AlertDialog;

import android.app.Application;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.SimpleCursorAdapter;

public class MainActivity extends ActionBarActivity {

private ListView listView;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/4615961679.html,yout.activity_main);

listView = (ListView) findViewById(R.id.listView);

// getRelationFromDB();

}

private void getRelationFromDB() {

final DatabaseHelper dbHelper = new DatabaseHelper(this);

Cursor cursor = dbHelper.query();

String[] from = { "_id", "name", "tel", "groupName" };

int[] to = { R.id._id, https://www.doczj.com/doc/4615961679.html,, R.id.tel, R.id.group };

SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, https://www.doczj.com/doc/4615961679.html,yout.relationlist, cursor, from, to);

listView.setAdapter(scadapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

public void onItemClick(AdapterView adapter, View view,

int position, long id) {

final long temp = id;

AlertDialog.Builder adBuilder = new AlertDialog.Builder(

MainActivity.this);

adBuilder

.setMessage("确认要删除记录吗?")

.setPositiveButton("确认",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

// TODO Auto-generated method stub

dbHelper.del((int) temp);

Cursor cursor = dbHelper.query();

String[] from = { "_id", "name", "tel",

"groupName" };

int[] to = { R.id._id, https://www.doczj.com/doc/4615961679.html,,

R.id.tel, R.id.group };

SimpleCursorAdapter scadapter = new SimpleCursorAdapter (

getApplicationContext(),

https://www.doczj.com/doc/4615961679.html,yout.relationlist, cursor,

from, to);

MainActivity.this.listView

.setAdapter(scadapter);

}

})

.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

}

});

AlertDialog aleraDialog = adBuilder.create();

aleraDialog.show();

}

});

dbHelper.close();

}

public void add(View view) {

Intent intent = new Intent(MainActivity.this,

AddrelationActivity.class);

startActivityForResult(intent, 0x111);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 0x111 && resultCode == 0x111) {

getRelationFromDB();

}

}

@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;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

添加联系人AddrelationActivity.java

import android.app.Activity;

import android.app.AlertDialog;

import android.content.ContentValues;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

import android.widget.Spinner;

public class AddrelationActivity extends Activity {

private EditText addName, addTel;

private Spinner addGroup;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/4615961679.html,yout.addrelation);

addName = (EditText) findViewById(R.id.addName);

addTel = (EditText) findViewById(R.id.addTel);

addGroup = (Spinner) findViewById(R.id.addGroup);

}

public void save(View view) {

final ContentValues values = new ContentValues();

values.put("name", addName.getText().toString());

values.put("tel", addTel.getText().toString());

values.put("groupName", addGroup.getSelectedItem().toString());

final DatabaseHelper dbHelper = new DatabaseHelper(

getApplicationContext());

final AlertDialog.Builder adBuilder = new AlertDialog.Builder(this);

adBuilder.setMessage("确认保存记录吗?")

.setPositiveButton("确认", new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dbHelper.insert(values);

Intent intent = getIntent();

setResult(0x111, intent);

AddrelationActivity.this.finish();

}

})

.setNegativeButton("取消", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

}

});

AlertDialog aleraDialog = adBuilder.create();

aleraDialog.show();

}

}

基于android的通讯录毕业设计开题报告

安徽科技学院本科生毕业论文(设计)开题报告书 题目基于Android的通讯录设计与实现 学生姓名指导教师职称 研究目的意义及国内外研究状况和应用前景(附参考文献): 一、研究目的意义 随着计算机行业的发展,智能手机在人们的生活中变得火热。智能手机拥有的独立操作系统使得手机能像个人电脑一样支持用户自定义安装软件等程序,并通过此类操作对手机功能进行扩充,从而在更大程度上满足用户的需求,这是智能手机的优势,也是智能手机赢得市场的主要原因。具有开放性的Android手机平台,从2007年谷歌将其正式向外界展示以来,发展迅速,手机市场份额不断攀升,至2012年已超过塞班,跃居第一。通过Android系统的开源性、智能型,我们可以看到Android更光明的未来。 手机系统越来越强大,却始终不会抛弃其最基本的功能——通讯,而通讯录又是通讯的必备软件。此次我们研究的基于Android的手机通讯录,会实现通讯录基本功能,包括基本添加,修改,删除和输出等功能,在实现这些功能的基础上添加一些其他功能,例如为联系人添加头像,联系人分组,通讯录黑名单等,使通讯录界面更友好、功能更人性化。通过设计制作次通讯录能够更好地学习Android 的项目开发知识,熟悉Android的软件开发流程,拓展就业能力。 二、国内外研究现状 Android是一种以Linux为基础的开放源代码操作,主要用于便携设备。Android 操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资。2007年11月Google宣布推出基于Linux的Android开放式手机操作系统,沿袭至今,已发展到4.0.4版本。2011年第一年度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.2%的份额,中国市场占有率58% 基于Android的通讯录的研究也在Android迅速发展的同时逐步走向成熟,在更大程度上满足着用户的需求。除包括基本添加联系人,编辑联系人,删除联系人和联系人数据导出等功能,它又逐渐增加了联系人分组、添加联系人头像、通讯录黑名单等功能。 三、应用前景 根据手机功能使用调查显示,有八成以上的消费者使用手机通讯功能。随着手机通讯录功能的不断曾强于完善,手机通讯录对于人们的意义已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的发展方向发展。 四、参考文献 [1]高焕堂,Android应用框架原理与程序设计(第三版)[M] 北京:清华大学出版社,2007. [2]盖锁林,Android开发入门指南[M] 北京:人们邮电出版社,2009. [3]李兴华,名师讲坛——Android开发实战经典清华大学出版社,2012. [4]李兴华,名师讲坛——Java Web开发实战经典清华大学出版社,2012. [5]杨丰盛,Android应用开发解密[M] 西安:机械工业出版社,2010. 主要内容、研究方法和思路:

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解 17_创建数据库与完成数据添删改查--------------------------------------1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER n n 、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型 n n 只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不 n n 过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数n n 据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的 n n 字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。n n n 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段 n n 保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时, n n 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段 n n 的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar n n (20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order byn n n 排序子句如:select * from person n n n n select * from person order by id desc n n n n select name from person group by name having count(*)>1 ---------------------------------------------------------------------------2.a.分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录n n select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 n b.select * from Account limit 3,5,指的是跳过前面的3条记录,然后获取5条记录n c.select * from Account limit 3,5是select * from Account limit 5 offset 3语句 n n 的简写版 -------------------------------------------------------------------------------n 3.常用操作: a.插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person nn n n (name, age) values(‘传智’,3) b.更新语句:update 表名 set 字段名=值where 条件子句。如:update person set name=n n n n'credream ‘where id=10 c.删除语句:delete from 表名 where 条件子句。如:delete from person nwhere id=10 -------------------------------------------------------------------------------2.虽然无数据类型,但是建议加上,这样可以增加可读性,支持标准sql,oracle中的不行 ---------------------------------------------------3.获取添加记录后的自增长的ID值:select last_insert_rowid(); -----------------------------------------------------------4.在android中开发数据库应用: n a.创建数据库:以前在javaee时候,需要手工数据,但是android应用,需要运行在用户的 n n 手机上,所以,android应用,要有自动创建数据库功能,当第一次使用软件的时候 n n 就创建数据库----------------------------------------5.关于数据库自动创建的详细介绍: 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很 n n 多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出 n n 应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据 n n 表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机 n n 上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方 n n 式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我 n n 们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版 n n 本进行管理来实现前面提出的需求。n -----------------------------------------6.SQLite数据库添加,删除,改查操作 n A.创建数据库:SQLiteOpenHelper .getWritableDatabase ()或getReadableDatabase() n n 可以创建数据库7.创建完成以后可以使用SQLITE Expert软件打开生成的数据库n 可以看到除了生成的自己的需要的表之外,还生成了一张:android_metadata表: n 如果在sqlite中使用数据库一定会有一张android_metadata表,用来登记用户的 n 使用语言:zh_cn -----------------------------------------------------n b.数据库自动创建的过程及方法详细介绍: n n我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在 n n 很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建 n n 出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数n n 据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手 n n 机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工 n n 方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为n n 我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库n n 版本进行管理来实现前面提出的需求。n -------------------------------------------8.详细介绍: 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是 n n onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, intn n n newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结n n 构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获n n 取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生 n n 成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用 n n ,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 n n onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号, n n 而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数n n 据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为n n 了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如 n n 果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本 n n 升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后 n n 作出相应的表结构及数据更新。 getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 n n SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库n n 的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就 n n 会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了 n n ,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。 ------------------------------------------------------------------------9.创建数据库的代码: n a.创建项目:DBSQLIte n b./DBSQLIte/src/com/credream/service/DBOpenHelter.java n n package com.credream.service; n n import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; n n public class DBOpenHelter extends SQLiteOpenHelper { //父类没有默认构造器,需要显示调用 public DBOpenHelter(Context context) { super (context, "credream.db", null, 1); //数据库创建完成后,默认会保存在<包>/database/文件夹下 //当修改版本号时候,会触发:onUpgrade方法 //第二个:指定数据库名称, //第三个:游标工厂,用来迭代,查询后的结果集,null代表使用系统默认的 n n 游标工厂//版本号,大于0 n } /** n* 这个方法是在数据库第一次被创建的时候调用的 n*/ @Override public void onCreate(SQLiteDatabase db) { //SQLiteDatabase这个类,封装了增删改查操作,也叫做数据库操作实例 db.execSQL("CREATE TABLE person (personid integer primary keyn n n autoincrement, name varchar(20))"); //这里也可以不写name的数据类型,因为sqlite是数据类型无关的,就是写n n 了varchar(20),也可以写入超过20的内容 n n } /** n* 当数据库的版本号变更的时候被调用 n*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table person add phone varchar(12) null"); n n } n n } --------------------------------------------------------2.在清单文件中写入测试环境 n n n n n n n n n n ---------------------------------------------------- 3./DBSQLIte/src/com/credream/test/PersonServiceTest.java package com.credream.test; n n import com.credream.service.DBOpenHelter; n n import android.test.AndroidTestCase; n n public class PersonServiceTest extends AndroidTestCase { //创建数据库,在<包>/database/ public void testCreateDB(){ DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n } n n } -------------------------------------------------------4.选择方法开始测试,然后,在data/data/<包>/database/下 n 查看并用sqlite打开生成的数据库检查是否正确---------------------------------------------然后将版本号,改成2,然后再次执行,看到,表已经被更新,增加了一列phone -----------------------------------------------5.了解sqlite工作的原理: n DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n 打开getWritableDatabase();代码:

android实验报告

创建一个名为“登录页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:; public class Activity01 extends Activity { EditText name; EditText pass ; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); public void click(View view){ Intent intent1=new Intent(this,Mylayout1MainActivity.class); startActivity(intent1);} public void click1(View view){ SharedPreferences sf1=getSharedPreferences("account",Context.MODE_PRIVATE); String name1=sf1.getString("name",""); String pass1=sf1.getString("pass",""); String name2=name.getText().toString(); String pass2=pass.getText().toString(); if(name1.equals(name2)&&pass1.equals(pass2)){ Intent intent2=new Intent(this, Textview1.class); intent2.putExtra("name", name1);

基于Android平台的手机通讯录管理系统

第一章绪论 1.1 项目研究背景 经过多年的发展,随着第三代网络的使用及四代网络的即将来了呢,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google与包括HTC、摩托罗拉、三星、联想等在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月退出了一份专为移动设备设计的软件平台——Android OS。 Android 是一套真正意义上的移动性设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化额Java程序的运行过程。Android 系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机硬件的连接层。 Abdroid平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定特色化的产品,因此,它具有很大的市场发展潜力。 1.2 项目研究的目的及意义 随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能的不断加强与完善,手机通讯录对于人们的意义,已经不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是一个人名下,可以储存座机、手机、单位、地址、电子邮箱等内容,这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性的的变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层认识的喜爱。 1.3系统主要内容与实现方式

基于android的手机通讯录(附程序)

20xx-20xx 学年 x 学期 xxxx大学电工电子实验教学中心 创新性实验研究报告 实验项目名称_基于android的手机通讯录_ 组长姓名xxx 学号xxxxxxxxxxxxxxx 联系电话xxxxxxxxxxxx E-mail xxxxxxxxxxxx@https://www.doczj.com/doc/4615961679.html, 成员姓名xxx 学号xxxxxxxxxxxxx 成员姓名xxx 学号xxxxxxxxxxxxxxx 专业电子信息工程班级20xx级x班 指导教师及职称xx 20xx年x月x 日

开发流程见下图: 1、增加、删除、编联系人 点击通信录界面中的增加按钮,入增加联系人面。输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,击确认返回主界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改系人的资料或进行删除联系人操作,完成后退回到主界面。对列表中联系人的标记,点mnu键弹出功能界面上的删除按键也可进行删除。还可以在菜单上选择删除全部联系人清空通讯录。在删除联系人的过程中,系统将提示用户是否继续操作,若放弃操作,则系人信息将继续保存。 2、查找联系人 用户点击menu键打开底部菜单框,底部菜单框为查询系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话息排列,用户点击查找按键输入联系人基本信息,通讯录显所有符合查询条件的联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询完成,用户按返回键返回主界面。 3、通功能 用户在通录选择联系人进入联系详细信息界面,这时点击menu键打开通信功能框,选择打电话、发信息的功能进行操作。 4、菜单能 通过对menu按的点击,显示底部菜框,包含有增加查找、除、菜单、返回功能,菜单按键则包含显示所有、删除所有等实用功能。

Android实验报告_基于SQLite的通信录

第一次实验Android界面设计 一. 实验目的及实验环境 1. 实验目的 1)掌握SQLiteOpenHelper类结构 2)掌握基于SQLite数据库的应用开发过程 3)掌握Content Provider发布数据的方法 4)掌握Content Resolver获取数据的方法 2.实验环境 系统开发平Android Studio 3.0 系统开发平台:Android 7.1 运行平台:Windows10 x64 运行环境:https://www.doczj.com/doc/4615961679.html, Framework SDK 2.0 二. 实验教材、组织方式、实验容 1.实验教材:Andorid开发与应用 2.组织方式:个人独立完成 2.实验容: 实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。 三.方案设计 Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver来获取共享数据。

四.运行结果

五.总结 通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver 获取数据的方法。 六.附录:源代码 主布局文件activity_main.xml:

WORD实验报告

word基本操作实验报告 一、实验目的与要求 1.掌握word的基本操作; 2.掌握字符格式、段落格式和页面格式等排版技术; 3.掌握图文混排、表格处理和邮件合并技术; 4.熟悉个人名片或毕业论文的设计与制作; 5.学会自己提出问题,并得出解决问题的方法。 二、实验内容与方法 1.word的基本操作,通过上机摸索,并查阅书籍网络了解。 2.word的字符格式,段落格式和页面格式等排版技术,通过上机摸索,并查阅书籍网络了解。 3.word的图文混排、表格处理和邮件合并技术,通过上机摸索,并查阅书籍网络了解。 4. 通过word进行个人名片或毕业论文的设计与制作,通过上机摸索,并查阅书籍网络了解。 三、实验步骤与过程 1.word的基本操作:①启动word软件 (1) 启动“开始”菜单中的microsoft word程序 (2) 双击资源管理器或“我的电脑”中的c:\program files\microsoft office\office11\winword.exe程序 (3) 双击word 文档文件(*.doc) (4) 双击桌面上的word图标 (5)开始-运行-输入“winword”②认识word2003窗口(1)标题栏位于屏幕最顶端的是标题栏,由控制菜单图标、文件名、最小化按钮、最大化(还原)按钮、关闭按钮组成。(2)菜单栏 菜单栏位于标题栏下面。使用菜单栏可以执行word的许多命令。菜单栏共有九个菜单:文件、编辑、视图、插入、格式、工具、表格、窗口、帮助。当鼠标指针移到菜单标题上时,菜单标题就会凸起,单击后弹出下拉菜单。在下拉菜单中移动鼠标指针时,被选中的菜单项就会高亮显示,再单击,就会执行该菜单所代表的命令。如“文件”—“打开”,就会弹出“打开”文件对话框。(3)工具栏 标题栏下面的是工具栏,使用它们可以很方便地进行工作。通常情况下,word会显示【常用】和【格式】两个工具栏。 “常用”工具栏:新建、打开、复制、粘贴、打印、撤消、恢复等“格式”工具栏:字体、字号、下划线、边框、对齐方式等 如果想了解工具栏上按钮的简单功能,只需将鼠标指针移到该按钮上,过一会儿旁边会出现一个小框,显示出按钮的名称或功能。 word窗口中可以有许多工具栏,可以根据需要在“视图”—“工具栏”中增加或减少工具栏。每一个工 具栏都可以用鼠标拖动到屏幕的任意位置,所以又称为浮动工具栏。工具栏内图标按钮体现了“菜单栏”中的一些主要功能。我们可以利用这些按钮进行相应操作。如我要打开一个文件,除了可以使用菜单栏外,还可以使用工具栏上的按钮。 (4)编辑窗口 再往下的空白区域就是word的编辑窗口,输入的文字就显示在这里。文档中闪烁的竖线称为光标,代表文字的当前输入位置。(5)标尺 在编辑窗口的上面和左面有一个标尺,分别为水平标尺和垂直标尺,用来查看正文的高度和宽度,以及图片、文本框、表格的宽度,还可以用来排版正文。( 6)滚动条在编辑窗口的右面和下面有滚动条,分别为垂直滚动条和水平滚动条,用来滚动文档,显示在屏幕中看不到的内容。可以单击滚动条中的按钮或者拖动滚动框来浏览文档。(7)显示方式按钮

安卓空气质量app查询实验报告

课程设计报告 课程名称: 移动平台开发 设计题目:空气质量查询 院系:计算机科学与工程学院 专业:计算机科学与技术 班级:计科141 学号:Z09314123 姓名:吴佩 指导教师:孙霞 设计地点:N6-113 开课时间:2016 至2017 学年第1 学期

目录 1.引言 (1) 1.1.题目描述 (1) 1.2.设计意义 (1) 2.开发环境 (1) 2.1.硬件环境 (1) 2.2.软件环境 (1) 3.相关技术及知识点 (2) 3.1.Activity (2) 3.2.Service (2) 3.3.网络通信 (3) 4.需求分析 (3) 4.1.系统功能需求分析 (3) 4.2.系统流程图 (4) 4.3.系统界面需求分析 (4) 4.4.系统性能需求分析 (4) 5.设计与实现 (5) 5.1.界面布局 (5) 5.2.省市二级联动 (6) 5.3.获取空气质量数据 (9) 5.4.播放背景音乐 (16) 6.个人总结 (17)

1.引言 1.1.题目描述 本次实验是开发一款基于Android平台的空气质量查询应用,将网络系统的功能扩展到智能手机终端上,让手机能够通过移动网络访问Web网站并处理各种各样的业务,可以让智能手机用户能够随时随地查询互联网所提供的空气质量信息。 1.2.设计意义 可以让广大Android手机用户能够在第一时间获取最新的空气质量信息,以便提前预防,方便出行。同时,把气象灾害造成的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对经济社会发展的现实性作用,有巨大的实用价值。虽然该技术在Android平台已经比较成熟,但是通过该软件的开发仍然能帮助我更好的认识Android系统的工作原理。 2.开发环境 2.1.硬件环境 神州笔记本电脑 2.2.软件环境 Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。而用Java语言进行开发,需要用到SUN 公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,需要使用Google提供的Android SDK。同时,要在Eclipse 上安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级或下载的工具。 简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。 (1) Java SDK (2) Eclipse (3) Android SDK (4) ADT

基于Android的通讯录管理系统

JAVA程序设计课程设计报告——基于Android的通讯录管理系统 班级:1120552 学号:01 姓名:杨喆

一、课程设计题目 基于Android的通讯录管理系统 二、需求分析 (1) 用户通过联系人功能可以保存联系人的详细信息,可以对联系人进行编辑、删除、拨打电话、发送短信可以根据索引条件搜索联系人。 (2) 用户通过个人中心可以设置自己的详细信息,这样方便其他人了解自己,也可以将具有相同名字的联系人合并。 (3)该通讯录软件是一种主要用来记录联系人的基于安卓平台的软件,可以运行在安卓平台虚拟器或者运行在安卓平台的手持设备上 三、概要设计 一个好的系统设计的步骤决定了程序是否能按照设计者的目的按时完成,是否能在规定的时间内按照设计者的要求高质量的完成程序必要的功能。并且按照标准的设计步骤对程序进行调试,测试,以及后期的优化完善,使程序更加具有健壮性和可用性。通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制定开发流程。 采用标准的开发流程确定系统具有用户管理功能,联系人增删改功能,通讯功能,查找功能,备份等功能。 四、详细设计 1增加、删除、编辑联系人 点击通信录界面中的增加按钮,进入增加联系人界面。输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办公室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,单击确认返回主界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改联系人的资料或进行删除联系人操作,完成后退回到主界面。对列表中联系人的标记,点击menu键弹出功能界面上的删除按键也可进行删除。还可以在菜单上选择删除全部联系人来清空通讯录。在删除联系人的过程中,系统将提示用户是否继续操作,若放弃操作,则联系人信息将继续保存。 2查找联系人 用户点击menu键打开底部菜单框,底部菜单框为查询联系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话信息排列,用户点击查找按键输入联系人基本信息,通讯录显示所有符合查询条件的联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询完成,用户按返回键返回主界面。

Android 实验报告 Sqlite 数据库操作

2、掌握Android的SQLite数据库设计; 3、掌握Android的Activity 和Fragement用法; 4、熟悉XML 和JSon 文件读取 三、实验内容 要求使用SQLite数据库实现用户注册和登录,读取数据库信息,退出时生成XML文件或JSON文件。 四、实验过程和结果 content_main.xml: MainActivity.java: RegisterActivity.java: public class RegisterActivity extends Activity { SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/4615961679.html,yout.content_register); /*start*/ db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/user.db3", null); /**/ Button register = (Button)findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = ((EditText)findViewById(https://www.doczj.com/doc/4615961679.html,ername)).getText().toString(); String password = ((EditText)findViewById(R.id.password)).getText().toString(); try{ String sql = "create table if not exists user_info (_id integer " + " primary key autoincrement," + " username varchar(255)," + " password varchar(255)" + ")"; db.execSQL(sql); sql = "insert into user_info values( null,?,?)";

完整word版标准实验报告模板.docx

实验报告 实验名称 课程名称 ___电子技术基础实验 院系部:专业班级:学生姓名:学号 :同组人:实验台号 :指导教师:成绩:实验日期 : 华北电力大学

实验报告要求: 一、实验目的及要求 二、仪器用具 仪器名称规格/型号数量备注 实验箱1 示波器1 数字万用表1 交流毫伏表1 信号放生器1 三、实验原理 四、实验步骤(包括原理图、实验结果与数据处理) 五、讨论与结论(对实验现象、实验故障及处理方法、实验中 存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。) 六、实验原始数据

一、实验目的及要求: 1.学会放大器静态工作点的调试方法,分析静态工作点对放大器性能的影响。 2.掌握放大器电压放大倍数和最大不失真输出电压的测试方法。 3.悉常用电子仪器及模拟电路实验设备的使用。 二、仪器用具:略 三、实验原理 图 1.2.1为电阻分压式工作点稳定单管放大器实验电路图。 图 1.2.1共射极单管放大器实验电路 在图 1.2.1电路中,当流过偏置电阻R B1和 R B2的电流远大于晶体管VT 的基极电流I B时(一般 5~ 10 倍),则它的静态工作点可用下式估算: R B1U CC I E U U I C CE=U CC-I C(R C+R F1+ R E) U B R B2B U BE R B1R E R F1 电压放大倍数: A Vβ R C //R L 其中 r be= 200+26 (1+β)/I E r be(1)R F 1 输入电阻: R i= R B1 // R B2 // [r be+(1+β)R F1 ] 输出电阻: R O≈ R C 四、实验方法与步骤: 1.调试静态工作点 接通+ 12V 电源、调节R W,使 U E= 2.0V ,测量 U B、 U E、U C、 R B2值。记入表 1.2.1 。 表 1.2.1U= 2.0V E 测量值计算值U B( V)U E( V)U C( V)R B2(KΩ) U BE( V) U CE( V) I C( mA) 2.665 2.07.8530.865 5.2 2.0 根据表格测量数据,计算得到: U=U -U E =0.665V,U = U - U E =5.8V,I ≈ I = U /R =2/(1.1)=1.82mA BE B CE C CE EE 实验数据显示,Q点的值满足放大电路的静态工作点要求,BJT 处于放大区。 2.测量不同负载下的电压放大倍数

手机通讯录安卓课程设计

湖南科技大学计算机科学与工程学院 智能终端系统及应用开发课程设计报告 题目:手机通讯录 学号:******** 班级:******** 姓名:******** 指导老师:********

绪论 随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有9成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展[4]。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

一、课程设计目的 智能终端系统及应用开发课程设计是计算机相关专业的一个综合性实践教学环节,是学 习完《智能终端系统及应用开发》课程后进行的一次全面的综合练习。其目的在于促进学生 复习和巩固 Android 应用技术,加深对软件设计方法、软件设计技术和设计思想的理解,并 能运用所学 Android 设计知识,通过本课程设计让学生进行简单 Android 应用软件的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生在软件开发方面的综合应用能力。 二、课程设计内容 通过对Android 技术的相关研究,了解Android 源码实现原理以及过程,从而设计出一款能够使用的手机通讯录。 这款手机通讯录实现的相关内容如下: 1.简洁、实用的操作界面。 2.显示所有联系人的列表。 3.增加联系人。 4.删除联系人。 5.修改联系人。 6.呼叫联系人。 7.发送短信、邮件至联系人。 三、系统设计 功能结构图 Android 手机通讯管理软件 联系人添加 联系人编辑 联系人查看 联系人查找 联系人删除 呼叫联系人 发送短信 联系人列表

WORD实验报告模板

广东商学院华商学院 实验报告 课程名称计算机应用基础 实验项目名称Word综合练习 班级 实验室名称(或课室) 专业 任课教师黄晓兰 学号: 姓名: 实验日期:年月日

姓名实验报告成绩 评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验报告 一、实验目的 运用Word 2003的整个章节中各知识,综合对文档进行编辑排版。 二、实验原理 (实验教程P41,使用那些功能) 三、实验设备和软件 (1)硬件要求: P4微型计算机,内部组成局域网。 (2)软件要求: 操作系统:中文Windows XP、中文Office Word2003。 四、实验步骤 (自己根据你的完成过程,列出步骤,参照实验教程P42四) 五、实验结果 (另附一页) 六、实验总结 (通过这次实验你学到什么)

实验报告要求: ●实验报告可参照如下内容格式写作:实验目的、实验原理、实验设备、 实验步骤、实验结果。 ●题材自定,但要求内容健康向上。要求内容要有一定主题,体现一定 风格。可参考实验结果内容。

专访:访美国华人金融协会理事、芝加哥机构资本副高海 华网芝加哥3月29日电 (记者 朱诸 张保平) 国华人金融协会理事、芝加哥机构资本副总裁高海29日在接受新华社记者专访时表示,这次日本大地震对日本经济更多的是一种短期的干扰,不会对日本经济的长期走势产生重大影响;同时,由于日本对目前世界经济增量的贡献有限,因此也不会对全球经济的发展产生太大影响。 高海说,由于地震会造成当地厂房的破坏,因此可能会使得日本某些制造行业——如汽车和汽车零配件、半 导体及芯片等——短期压力加剧。 但历史经验表明,这些行业通常会在地震发生之后的两至三个季度内出现下滑,之后又会迎来一轮强劲反弹,因为日本制造业的需求主体主要分布在世界其他国家,这些需求并没有太大变化,因此在厂房检修或者重建之后,那些被滞后的需求还会回来,所以短期之内会呈现明显的“V”型反弹。 高海说,具体来看,在这些受到影响的行业中,日本核电行业受到的冲击最大,因为这次核危机给日本以及 全球发展核电的国家敲响了警钟。目前日本电力供应有约30%依赖于核电,此外,作为一个以出口为主的经济,日本的制造业对电能的依赖也比较大,如果三分之一的供电受到影响,那么短期内对这些制造业的冲击也是很严重的。 另外,对于一些替换性较高的行业,如重型机械制造业,如果调整的周期过长,导致客户需求转移,也会对这些行业造成冲击。“比如日立和小松,如果耽误的时间太长,而国外的客户又急需使用,因此只能转向其他国家的生产商购买,而且这些产品均伴随相关配套产品和服务,如维修保养,一旦转移,就很难改变,”高海说。 “长远来看,”长期投资亚洲金融市场的高海说,“对日本经济影响最大的两个因素,一个是人口增长,一个是生产力,而这两方面现在都在朝着不利于经济的方向发展。首先是日本的人口数量一直在下降,同时日本的生产力也在上世纪80年代达到顶峰之后开始走下坡路,而且正在被其他国家赶超。”高海说,改变不了的,因此,日本经济长期来看还会维持向下走的趋势。 另外,这次地震也对世界其他国家的一些行业造成了一定影响。据报道,美国通用汽车公司已经关闭了路易斯安那的一家卡车制造工厂,者削减产量。 对此,高海说方面出现问题,可能会影响到美国今年的汽车生产和销售。” “但是这种供应方面的短缺都不会是大问题,只要需求方面保持稳定,高海说。 全球GDP 增量里,日本占的比重并不是很高,也不会产生太大影响。 同时,高海还说,由于日本外债比例不高,大部分债券被本国企业和居民持有,所以即使地震重建需要从国外借债,也不会对日本的主权信用产生实质性的影响,所以不会引发类似欧洲的债务危机。 美

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