文档库 最新最全的文档下载
当前位置:文档库 › 简易的记事本android课程设计

简易的记事本android课程设计

简易的记事本android课程设计
简易的记事本android课程设计

河南科技学院《物联网移动应用开发》课程设计报告

设计题目:简易的记事本

班级:物联网131班

学号:20131554119

姓名:

指导教师:徐睿

成绩:

信息工程学院

课程设计报告说明

一、写报告前,请认真阅读《课程设计报告说明》。

二、打印装订要求

1、一律用A4纸,双面打印,并左侧装订。报告正文部分均采用宋体小四。《课程设计报告说明》页也打印。

2、课程设计概述部分占一页;课程设计内容长度根据实际需要填写;结论和指导教师评语及成绩单独占一页。保证打印格式工整。

3、指导教师评语及成绩部分由指导教师填写。

三、报告内容要求

1、课程设计目的结合实际自己写,不要雷同。

2、课程设计原理简要说明所完成课程设计项目所涉及的理论知识。

3、课程设计内容这是课程设计报告极其重要的内容。概括整个课程设计过程。(最好在上述内容基础上画出相应的流图、设计思路和设计方法,再配以相应的文字进行说明。)

1、课程设计目的

Window操作系统的诞生成就了微软帝国,同时也造就了PC时代的繁荣,然而如今,以Android和iPhone手机为代表的智能移动设备的发明与互联网云技术的兴起却敲响了PC时代的丧钟!这也预示着移动互联网时代(3G)已经来临。

在这个互联网繁荣的时代,有一颗超新星,以它独特性能优势与人性化的U I设计使它在短短的几年迅速的占领了智能移动设备的市场份额,它就是Google 的Android!这也意味着Google在移动互联网时代开始抢跑并领跑。

通过调查显示,大部分消费者都会使用手机记事本功能。随着手机记事本功能的不断加强与完善,手机记事本对于人们的意义,已不仅仅像一般记事簿一样简单记录,而是向着更个性化人性化的方向发展。Android[1]系统是开源的,它以迅猛的姿势已经占领了全球一半多的市场。记事本在生活和工作也日益凸显出它的重要性,它能更好地帮助人们更好地管理自己的工作和生活,极大的方便了人们的生活。因其开源,我们可以在之上开发安卓记事本软件,同时这也符合广大的市场需求。

2、课程设计要求

设计的最终作品包括设计报告和能成功运行的程序,能够达到设计指标的要求。每个小组在设计完成后,要经指导教师检查。课程设计报告每个学生一份,由学习委员收齐后统一交给指导教师。

按照课程设计的进程,认真完成各个环节,保证质量,达到目标。

3、课程设计原理

(1) 设计实现添加事件、保存事件、删除事件、导出事件、添加图片等主功能。

(2)利用Android中的一些组件和事件监听解决功能的实现问题。

(3)利用mysql语句来实现数据库的设计为用户保存数据。

(4)使用debug调试来解决程序运行时遇到的问题

1、软件功能规划

(1)软件功能

能够提示用户是否有已写记事本,能够进行记事本的标题填写和内容填写,确定后保存。

(2) 界面设计

进入程序提示“您还没有开始写日记呢!点击下边的Menu按钮开始写日记吧!”,点击图片按钮后进入标题和内容的填写界面。

2、程序设计

(1)记事本组件的设计

本项目涉及到以下组件:

TextView:“记事本”,“新建记事”,“编辑记事”等标题。

EditView:“记事本的标题”,“内容”等。

ImageButton:“写事件”,“保存”,“加图片”按钮。

Menu:“编译内容”,“删除当前记事”,“修改当前记事”,“导出当前记事”

“帮助”,“关于”等。

(2)记事本逻辑设计

(i)添加新记事

如果当前没有记事,点击“listview中的事件”后只有一个菜单选项“添加新记事”,写完记事之后,点击“确定”进行保存。

(ii)编辑内容

选中要编辑的那一个记事,然后点击“listview中的事件”菜单,会出现三个选项“新建记事”,“编辑内容”,“删除当前记事”,点击“编辑内容”对被选中的记事进行编辑,然后点击“确定”加以保存。

(iii)删除记事

点击上下键,选中要删除的记事,然后点击“listview中的事件”菜单,然后点击“删除当前记事”,对选中的记事加以删除。

(3)记事本存储实现

Android 中一共提供了5种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android 提供的Content Providers。

Content Providers:Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据。

Shared Preference:用来存储“key-value paires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。

Files:它通过File Input Stream 和 File Output Stream对文件进行操作,但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。

SQL ite:Android提供的一个标准的数据库,支持SQL语句。

Network:通过网络来存储和获得数据。

(i)数据存储之SQLite

通过sqlite中的增删改查方法来保存、删除、修改、查找数据。来实现对

数据的操作。

代码:

public class DBManage {

private Context mContext = null;

private SQLiteDatabase mSQLiteDatabase = null;//用于操作数据库的对象

private DBHelper dh = null;//用于创建数据库的对象

Cursor namecursor=null;

private String dbName = "notepad.db";

private int dbVersion = 1;

public DBManage(Context context){

mContext = context;

}

/**

* 打开数据库

*/

public void open(){

try{

dh = new DBHelper(mContext, dbName, null, dbVersion);

if(dh == null){

return ;

}

mSQLiteDatabase = dh.getWritableDatabase();

//dh.onOpen(mSQLiteDatabase);

Log.i("log", "DB is opened");

}catch(SQLiteException se){

se.printStackTrace();

Log.i("log", "open DB faile");

}

}

/**

* 关闭数据库

*/

public void close(){

mSQLiteDatabase.close();

dh.close();

Log.i("log", "DB is closed");

}

//获取列表

public Cursor selectAll(){

Cursor cursor = null;

try{

String sql = "select * from travels";

cursor = mSQLiteDatabase.rawQuery(sql, null);

}catch(Exception ex){

ex.printStackTrace();

cursor = null;

}

return cursor;

}

public Cursor selectById(int id){

Cursor cursor = null;

try{

String sql = "select * from travels where _id='" + id +"'";

cursor = mSQLiteDatabase.rawQuery(sql, null);

}catch(Exception ex){

ex.printStackTrace();

cursor = null;}

return cursor;

}

public Cursor selcetPathByName(String name){

Cursor cursor=null;

try{

String sql = "select path from icons where filename='"+ name +"'";

cursor=mSQLiteDatabase.rawQuery(sql, null);

Log.i("log", sql);

}catch(Exception ex){

ex.printStackTrace();

Log.i("log", "select faile");

}

return cursor;

}

//插入数据

public long insert(String title, String content){

Log.i("log", "readyto insert");

long datetime = System.currentTimeMillis();

Log.i("log", "time------>"+datetime);

long l = -1;

try{

ContentValues cv = new ContentValues();

cv.put("title", title);

cv.put("content", content);

cv.put("time", datetime);

Log.i("log", "data----->"+title+content+datetime);

l = mSQLiteDatabase.insert("travels", null, cv);

Log.i("log", cv.toString());

Log.i("log", datetime+""+l);

}catch(Exception ex){

ex.printStackTrace();

l = -1;

}

return l;

}

public long inserticonpath(String filename,String iconpath){ long l=-1;

try{

Log.i("log", "ready to insert icon");

ContentValues cv = new ContentValues();

cv.put("filename",filename);

cv.put("path", iconpath);

l = mSQLiteDatabase.insert("icons", null, cv);

Log.i("log", "insert iconname success");

}catch(Exception ex){

ex.printStackTrace();

l = -1;

}

return l;

}

//删除数据

public int delete(long id){

int affect = 0;

try{

Log.i("log","try to delete the data in databases");

affect=mSQLiteDatabase.delete("travels","_id=?",new String[]{id+""});

Log.i("log", "delete success");

}catch(Exception ex){

ex.printStackTrace();

affect = -1;

Log.i("log", "delete faile");

}

return affect;

}

//修改数据

public int update(int id, String title, String content){ int affect = 0;

try{

ContentValues cv = new ContentValues();

cv.put("title", title);

cv.put("content", content);

affect=mSQLiteDatabase.update("travels",cv,"_id=?",new String[]{id+""});

}catch(Exception ex){

ex.printStackTrace();

affect = -1;

}

return affect;

}

}

(ii)数据存储之Files

我们可以通过自定义的copyfile()方法来复制数据

代码:

//复制文件

public int copyfile(String from,String into){

try

{

copyfrom=new FileInputStream(from);

copyinto=new FileOutputStream(into);

Log.i("log", "fuck you");

byte[] bt = new byte[1024];

int c;

while((c=copyfrom.read(bt)) > 0){

copyinto.write(bt,0,c);

}

copyfrom.close();

copyinto.close();

Log.i("log", "copy success");

return 1;

}catch (FileNotFoundException e) {

e.printStackTrace();

return -1;

} catch (IOException e) {

e.printStackTrace();

return -1;

}

}

3、程序开发

(1)主activity的设计

当选择“新建记事本”,“编辑内容”,“删除当前记事”等菜单选项时对应的操作

代码:

public void initAdapter(){

dm.open();//打开数据库操作对象

cursor = dm.selectAll();//获取所有数据

cursor.moveToFirst();//将游标移动到第一条数据,使用前必须调用

int count = cursor.getCount();//个数

ArrayList items = new ArrayList();

ArrayList times = new ArrayList();

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

items.add(cursor.getString(cursor.getColumnIndex("title")));

times.add(cursor.getString(cursor.getColumnIndex("time")));

cursor.moveToNext();//将游标指向下一个

}

dm.close();//关闭数据操作对象

adapter = new ListViewAdd(this,items,times);//创建数据源 }

public class myOnCreateContextMenuListener implements OnCreateContextMenuListener{

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {

menu.setHeaderTitle("");

//设置选项

Log.i("log", "chooseing menu");

menu.add(0,0,0,"删除");

menu.add(0,1,0,"修改");

menu.add(0,2,0,"查看");

menu.add(0,3,0,"导出到SD卡");

}

}

public boolean onContextItemSelected(MenuItem item){

AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();

dm.open();

switch(item.getItemId()){

case 0://删除

Log.i("log", "selectItem---->"+item.getItemId());

try{

Log.i("log", "cursor ready move ");

Log.i("log", "menuInfo position "+menuInfo.position);

cursor.moveToPosition(menuInfo.position);

Log.i("log", "cursor move success");

adapter.removeListItem(menuInfo.position);//删除数据

adapter.notifyDataSetChanged();//通知数据源,数据已经改变,刷新界面

dm.close();

}catch(Exception ex){

ex.printStackTrace();

}

break;

case 1://修改

try{

cursor.moveToPosition(menuInfo.position);

//用于Activity之间的通讯

Intent intent = new Intent();

//通讯时的数据传送

intent.putExtra("id",

cursor.getString(cursor.getColumnIndex("_id")));

intent.putExtra("state", ALERT_STATE);

intent.putExtra("title",

cursor.getString(cursor.getColumnIndex("title")));

intent.putExtra("time",

cursor.getString(cursor.getColumnIndex("time")));

intent.putExtra("content",

cursor.getString(cursor.getColumnIndex("content")));

//设置并启动另一个指定的Activity

intent.setClass(MainActivity.this,

EditTravels.class);

MainActivity.this.startActivity(intent);

finish();

}catch(Exception ex){

ex.printStackTrace();

}

break;

case 2://查看

try{

cursor.moveToPosition(menuInfo.position);

Intent intent = new Intent();

intent.putExtra("id",

cursor.getString(cursor.getColumnIndex("_id")));

intent.putExtra("title",

cursor.getString(cursor.getColumnIndex("title")));

intent.putExtra("time",

cursor.getString(cursor.getColumnIndex("time")));

intent.putExtra("content",

cursor.getString(cursor.getColumnIndex("content")));

intent.setClass(MainActivity.this, CheckTravels.class);

MainActivity.this.startActivity(intent);

}catch(Exception ex){

ex.printStackTrace();

}

break;

case 3://导出

try{

cursor.moveToPosition(menuInfo.position);

String

title=cursor.getString(cursor.getColumnIndex("title"));

String

content=cursor.getString(cursor.getColumnIndex("content"));

HM.htmlmanager(title, content);

copyicon(title,content);

Toast.makeText(MainActivity.this, "导出成功,快去SD卡的\" 记事本 \"里找出来分享吧!!", Toast.LENGTH_LONG).show();

}catch(Exception ex){

Toast.makeText(MainActivity.this, "Sorry!!!导出失败!!", Toast.LENGTH_LONG).show();

ex.printStackTrace();

}

break;

default:;

}

dm.close();

return super.onContextItemSelected(item);

}

(2)修改内容

代码:

public class EditTravels extends Activity{

private static final int SELECT_IMAGE =123;

int rotate = 0;

private EditText titleedit;

private EditText travelsedit;

private ImageButton save;

private ImageButton insertimage;

private ImageButton takephoto;

private String idString;

private int id2;

private String title="";

private String travelsdata = "";

private String timeText = "";

public Cursor cursor=null;

public String namestr="";

private DBManage dm=null;

private Bitmap bitmap = null;

private String path = null;

private int state =-1;

@Override

protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/ab10639330.html,yout.edittravels);

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

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

save=(ImageButton)findViewById(R.id.save);

save.setOnClickListener(new saveListener());

insertimage=(ImageButton)findViewById(R.id.insertimage);

insertimage.setOnClickListener(new insertimageListener());

dm=new DBManage(this);

Intent intent = getIntent();

state = Integer.parseInt(intent.getStringExtra("state"));

Log.i("log", "state---->"+state);

if (state==2)

{

idString =intent.getStringExtra("id");

Log.i("log", "id---->"+idString);

id2 = Integer.parseInt(idString);

title = intent.getStringExtra("title");

travelsdata = intent.getStringExtra("content");

timeText = intent.getStringExtra("time");

titleedit.setText(title);

dm.open();

int i=0;

int start=0;

int end=0;

String str1=null;

String str2="[";

String str4="]";

String iconname=null;

SpannableString travelsSpan =new SpannableString(travelsdata);

for(i=0;i

{

str1=travelsdata.substring(i, i+1);

Log.i("log", str1);

if(str1.equals(str2))

{

start=i+1;

}

if(str1.equals(str4))

{

end=i;

namestr=travelsdata.substring(start,end);

Log.i("log", namestr);

cursor=dm.selcetPathByName(namestr);

cursor.moveToFirst();

path=cursor.getString(cursor.getColumnIndex("path"));

cursor.close();

namestr=null;

Log.i("log", path);

if(!(cursor==null))

{

int count=cursor.getCount();

Log.i("log", "count----->"+count);

BitmapFactory.Options options =new BitmapFactory.Options();

options.inJustDecodeBounds =true;

bitmap =BitmapFactory.decodeFile(path, options); //此时返回bm为空

options.inJustDecodeBounds =false;

int be = (int)(options.outHeight/ (float)100);

if (be <= 0)

be = 1;

options.inSampleSize = be;

bitmap=BitmapFactory.decodeFile(path,options);

Drawable drawable = new BitmapDrawable(bitmap);

drawable.setBounds(0, 0, 360, 280);

ImageSpan span = new ImageSpan(drawable,ImageSpan.ALIGN_BOTTOM);

travelsSpan.setSpan(span, start-1,end+1,

Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

}

else

{

Log.i("log", "insert icon faile");

}

}

}

dm.close();

travelsedit.setText(travelsSpan);

}

}

//保存按钮点击事件

class saveListener implements OnClickListener{

public void onClick(View v) {

// TODO Auto-generated method stub

title = titleedit.getText().toString();

travelsdata= travelsedit.getText().toString();

Log.i("log","title---->"+title);

Log.i("log", "travels---->"+travelsdata);

try{

dm.open();

if(state==1)

dm.insert(title, travelsdata);

if (state==2)

Log.i("log", "ready to alter");

dm.update(id2, title, travelsdata);

dm.close();

}catch(Exception ex){

ex.printStackTrace();

}

Intent gobackIntent=new Intent(EditTravels.this,MainActivity.class);

EditTravels.this.startActivity(gobackIntent);

finish();

}

}

//插入图片点击事件

class insertimageListener implements OnClickListener{

public void onClick(View v) {

Intent intent=new Intent(Intent.ACTION_GET_CONTENT);

intent.addCategory(Intent.CATEGORY_OPENABLE);

intent.setType("image/*");

intent.putExtra("return-data", true);

startActivityForResult(intent, SELECT_IMAGE);

}

}

@Override

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

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK)

{

path=getpath(data.getData());

BitmapFactory.Options options =new BitmapFactory.Options();

options.inJustDecodeBounds =true;

//获取这个图片的宽和高

bitmap =BitmapFactory.decodeFile(path, options); //此时返回bm为空

options.inJustDecodeBounds =false;

//计算缩放比

int be = (int)(options.outHeight/ (float)100);

if (be <= 0)

be = 1;

options.inSampleSize = be;

Log.i("log","be---->"+be);

//重新读入图片

bitmap=BitmapFactory.decodeFile(path,options);

int bitmapwidth=options.outWidth;

int bitmapheight=options.outHeight;

//检查图片是否要翻转

try {

ExifInterface exifInterface = new ExifInterface(path);

int result = exifInterface.getAttributeInt(

ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);

switch(result) {

case ExifInterface.ORIENTATION_ROTATE_90:

rotate = 90;

Log.i("log", "rotate----->"+rotate);

break;

case ExifInterface.ORIENTATION_ROTATE_180:

rotate = 180;

Log.i("log", "rotate----->"+rotate);

break;

case ExifInterface.ORIENTATION_ROTATE_270:

rotate = 270;

Log.i("log", "rotate----->"+rotate);

break;

default:

break;

}

} catch (IOException e) {

e.printStackTrace();

}

if (rotate!=0&&bitmap!=null)

{

Matrix matrix=new Matrix();

matrix.reset();

matrix.setRotate(rotate);

Bitmap

bitmap1=Bitmap.createBitmap(bitmap,0,0, options.outWidth, options.outHeight, matrix, true);

bitmap = bitmap1;

rotate=0;

bitmapwidth=options.outHeight;

bitmapheight=options.outWidth;

}

Drawable drawable = new BitmapDrawable(bitmap);

drawable.setBounds(0, 0,bitmapwidth*2,bitmapheight*2);

String iconname = path.substring(https://www.wendangku.net/doc/ab10639330.html,stIndexOf("/")+1);

String iconimfo="["+iconname+"]";

SpannableString spannable = new SpannableString(iconimfo);

ImageSpan span = new ImageSpan(drawable,ImageSpan.ALIGN_BOTTOM);

spannable.setSpan(span,

0,iconimfo.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

int select=travelsedit.getSelectionStart();

Editable edit = travelsedit.getEditableText();

edit.insert(select, spannable);

try{

dm.open();

dm.inserticonpath(iconname, path);

dm.close();

}catch(Exception ex){

ex.printStackTrace();

}

}

}

String getpath(Uri uri) {

String[] projection = {MediaColumns.DATA};

Cursor cursor = managedQuery(uri, projection, null, null, null);

startManagingCursor(cursor);

int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);

// 记录图片的位置

Log.i("log","column_index---->"+column_index);

cursor.moveToFirst();

return cursor.getString(column_index);

}

int poi = 0;

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

}

public boolean onKeyDown(int KeyCode,KeyEvent event){

if (KeyCode==KeyEvent.KEYCODE_BACK)

{

Intent goBackToMainIntent=new Intent(EditTravels.this,MainActivity.class);

this.startActivity(goBackToMainIntent);

finish();

}

return false;

}

}

(3)删除记事

代码:

Log.i("log", "menuInfo position "+menuInfo.position);

cursor.moveToPosition(menuInfo.position);

Log.i("log", "cursor move success");

adapter.removeListItem(menuInfo.position);//删除数据

adapter.notifyDataSetChanged();//通知数据源,数据已经改变,刷新界面

dm.close();

(4)查看记事

代码:

public class CheckTravels extends Activity{

private TextView title;

private TextView time;

private TextView travels;

public Cursor cursor=null;

public String namestr="";

private DBManage dm=null;

private Bitmap bitmap = null;

private String path = null;

private int rotate=0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/ab10639330.html,yout.checktravels);

title=(TextView)findViewById(R.id.checkTitle);

time=(TextView)findViewById(R.id.checkTime);

travels=(TextView)findViewById(R.id.checkContent);

travels.setScroller(null);

dm=new DBManage(this);

Intent intent = getIntent();//获取启动该Activity的intent对象

String title= intent.getStringExtra("title");

String content = intent.getStringExtra("content");

String time= intent.getStringExtra("time");

long t = Long.parseLong(time);

String datetime = DateFormat.format("yyyy-MM-dd kk:mm:ss", t).toString();

this.title.setText(title);

this.time.setText(datetime);

dm.open();

int i=0;

int start=0;

int end=0;

String str1=null;

String str2="[";

String str4="]";

SpannableString travelsSpan =new SpannableString(content);

for(i=0;i

{

str1=content.substring(i, i+1);

//travelsString+=str1;

Log.i("log", str1);

if(str1.equals(str2))

{

start=i+1;

}

if(str1.equals(str4))

{

end=i;

namestr=content.substring(start,end);

Log.i("log", namestr);

cursor=dm.selcetPathByName(namestr);

cursor.moveToFirst();

path=cursor.getString(cursor.getColumnIndex("path"));

cursor.close();

namestr=null;

Log.i("log", path);

if(!(cursor==null))

{

int count=cursor.getCount();

Log.i("log", "count----->"+count);

BitmapFactory.Options options =new BitmapFactory.Options();

options.inJustDecodeBounds =true;

bitmap =BitmapFactory.decodeFile(path, options); //此时返回bm为空

options.inJustDecodeBounds =false;

int be = (int)(options.outHeight/ (float)100);

if (be <= 0)

be = 1;

options.inSampleSize = be;

bitmap=BitmapFactory.decodeFile(path,options);

int bitmapwidth=options.outWidth;

int bitmapheight=options.outHeight;

//检查图片是否要翻转

try {

ExifInterface exifInterface = new ExifInterface(path);

int result = exifInterface.getAttributeInt(

ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);

switch(result) {

case ExifInterface.ORIENTATION_ROTATE_90:

rotate = 90;

Log.i("log", "rotate----->"+rotate);

break;

case ExifInterface.ORIENTATION_ROTATE_180:

rotate = 180;

Log.i("log", "rotate----->"+rotate);

break;

case ExifInterface.ORIENTATION_ROTATE_270: (5)布局文件

activity_main.xml文件

xmlns:android="https://www.wendangku.net/doc/ab10639330.html,/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/background"

android:orientation="vertical" >

android:layout_width="match_parent"

android:layout_height="40dip"

android:background="@drawable/lable" >

android:id="@+id/textview"

android:layout_width="150dip"

android:layout_height="40dip"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:layout_marginTop="5dp"

android:text=" 记事本 "

android:textColor="#FF6600"

android:textSize="24sp"

android:textStyle="bold" >

android:id="@+id/addtravels"

android:layout_width="35dip"

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

基于android的简单记事本的设计大学论文

设计报告成绩评定表: 评分内容成绩 系统方案思路合理性(10%) 报告内容的完整性(10%) 硬件原理图及说明(20%) 程序流程图(20%) 程序清单(10%) 调试及结果分析(10%) 系统改进建议或者方案(10%) 格式规范(10%) 总分 备注:以上总分为该组的平均分,根据成员分工具体分数如下。 小组成员分工分数刘志负责代码的编写 云庆负责总计界面的设计与优化 负责整个设计过程中的ppt制作,以及答辩申任翔 吴宜凡负责调试整个程序,报告撰写

基于Android的简单记事本的设计 摘要 本文主要阐述了基于Android的简单记事本的设计与实现,较为系统的介绍了用户通过点击add按钮编辑事件、通过save按钮添加事件,以及在主界面查看事件列表、单击列表查看单个事件的详细内容,和通过长按列表弹出对话框,选择修改事件、删除事件等。本文主要介绍的是运用eclipse软件进行Android 应用的设计,如使用Activity类、运用Intent技术实现页面的跳转、通过数据存储实现标题、时间、内容的保存以及取出查看的功能。通过以上技术使应用中的各项操作简便易懂并且有明确的提示,让用户可以更清晰快捷地掌握该记事本的使用,为用户节省了时间,为用户提供了便利,随时随地都能记录生活。 关键词:Android、记事本、Intent、Activity

目录 绪论 (1) 一丶需求分析和概要设计 (3) 1.1需求分析 (3) 1.2整体要求 (3) 1.3开发工具和环境 (3) 二丶系统设计 (4) 2.1系统设计架构 (4) 2.2界面概述 (5) 2.3模块概述 (6) 三丶系统详细设计 (6) 四丶系统的不足及改进 (9) 五丶总结 (10) 六丶参考文献 (11)

Android课程设计报告书

Android课程设计报告书 题目:RFID药品WMS仓库管理系统 院(系)别交通与物流工程学院 专业物联网工程专业 班级物联132 成员 指导教师贾雁 二○一六年六月

目录一、 二、 三、 四、主体内容 4.2程序结构图 五、总结 六、参考文献 7

随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地的查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。它的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。本文是关于Android技术基础的RFID药品WMS仓库管理系统。 关键字:Android 智能手机仓库管理系统 二、课题及要求 1、课题:RFID药品WMS仓库管理系统 2、目的: 1)复习、巩固Android相关技术的基础知识,进一步加深对Android 开发技术的理解和掌握; 2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力; 3)培养学生在项目开发中团队合作精神、创新意识及能力。

1)对系统进行功能模块分析,符合课题要求,实现相应功能 2)系统设计要实用,编程简练,可用,功能全面 3)说明书、流程图要清楚 三、程序功能简介 经过一系列的编程与实验之后,能够实现简单的一下操作: 登录界面,实现药品的入库、移库、盘点、药品有效期提醒、出库等功能。 四、主体内容 4.1设计分析 这是一个基于Android技术基础的RFID药品WMS仓库管理系统。,这次的课程设计我们主要是应用现有的Eclipse软件,实现药品仓库管理的相关操作。设计中包括用户界面登录和操作界面。在登录界面又包括注册跟登录及密码的设置,在操作界面包含入库管理、移库管理、出库管理、盘点查询及有效期提醒等。 4.2程序结构图 4.3模块功能及程序说明

系统分析设计安卓通讯录课程设计

2015-2016学年第1学期《系统分析与设计》课程设计 项目名称:基于安卓系统的手机通讯录 指导教师:王娟 班级:13级Java1班 学生名单:

第一章项目介绍 选题:鉴于本次课程设计的目的是通过一些实际的例子,培养学生分析和解决实际问题的能力,培养学生综合应用基本概念、基本原理和技术方法的能力,真正做到学以致用,使课本上抽象的理论、方法与具体的实践应用相结合,所以我们组选择了安卓通讯录这个课题。 背景:Android本意词是指“机器人”,同时也是Goole于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,Android是一种基于Linux 的自由及开放源代码的操作系统,Android以其自由开放源代码的特点而成为最热门的智能手机。 在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具,“通讯”成了生活的必需品,这就有了系统下人与人之间的多样联系方式——手机通讯录。传统通讯录以纸张为载体,将需要记录的联系人一一人登记在册,包括地址、联系方式等,再在需要时进行翻阅查询。手机通讯录,在手机系统下,占用手机相对很小的空间,系统的记录联系人的联系方式及其他信息,不仅突破了各种条件的舒服,减轻了机主的负担,更方便了使用者的通讯。 综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。然而现在很多通讯录外观花哨、功能单一或形同虚设。针对以上各种弊端,我们通过需求分析等着手设计一款简单方便的通讯录。 项目:本项目的设计工作如下:选题、分组、任务划分,需求建模(需求基本描述,用例图和用例描述),系统分析(查找分析类,序列图和活动图),系统设计(功能设计——程序流程图,数据库设计,界面设计——原型图)。本项目使用eclipse开发平台,并连接使用SQlite数据库编写。分为后台数据库的建立和维护,以及前端应用程序的开发两个部分,主要包括添加、删除、修改联系人姓名、电话、住址等。 组员分工: 需求分析(用例描述):杨赓 系统分析(时序图、协作图、类图):张坤鹏郑四林王文凯王浩 系统设计(数据库、界面设计):王浩 整理总结:王浩

Android记事本

1.只是在主程序里面添加此代码: TextView textView = new TextView(this); textView.setText("你好啊"); setContentView(textView); 就会在Android虚拟机上显示“你好啊” 2.只在Main.xml里面添加代码: 3. 4.设置超链接:android:autoLink=”all” 5.跑马灯:android:singleLine=”true”把所以要跑马灯的都显示成一行 android:focusable="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusableInTouchMode="true" 6.设置字体颜色: TextView tv = (TextView) findViewById(https://www.wendangku.net/doc/ab10639330.html,); String str = "欢迎大家收看《Android开发从零开始》系列课程,感谢大家的支持。"; SpannableStringBuilder style = new SpannableStringBuilder(str); style.setSpan(new ForegroundColorSpan(Color.RED), 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.GREEN), 6, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.BLUE), 21, 26, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

基于android平台的记事本研究与开发 开题报告

武汉理工大学本科学生毕业设计 (论文)开题报告 1、目的及意义(含国内外的研究现状分析) 这次课题的目的是在Android系统的手机开发平台之上,研究与开发一个记事本软件,提供适用手机的记事本功能服务,其中包括以下几个功能: (1)文本、图形记事支持;(2)语音记事支持;(3)内容检索与管理; (4)以邮件或短信方式发送信息。 首先,记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。这样免去了输入文字的麻烦,反而会更简单。又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。所以此功能的意义是让简单的记事信息能以文本和图形表达,更加丰富多彩。 其次,在支持传统的文字记事方式下,还要支持语音记事。因为用户需要追求更加简单的记事方式,不需要手动输入文字,而是直接语音记事。语音直接保存,有利于下次用户直接查看时点击按钮就可以播放相应的录音信息了。这对于某些眼睛不太好的,或者说更喜欢听的用户是很有吸引力的。 再次,如果记事本的信息很多,而用户又需要快速找到自己需要的记事信息,这时候内容检索就非常有用了。对于业务繁忙,或者是经常写备忘录记事的群体,这个内容检索功能能带给用户很多的便利。让他们更加高效的利用手机,节约时间,高效工作与生活。 最后,针对商务人士,或者是经常使用邮箱(如Gmail)的用户来说,有时候希望通过查看邮箱的同时查看记事本的信息,一次性获取全部。所以记事本同步邮箱功能能够为用户带来更多的功能与便利。 国内外现状分析: 目前国内外有4款比较火的记事本软件。分别是Evernote,小米便签,NoteEverything,麦库记事。 Evernote 在软件界面方面界面清爽,需注册登录后才可使用,图标布局比较协调;记事笔记方面可编写内容,添加标签,支持上传图片、音频、视频、文件等附件;特色功能方面具有搜索笔记和发送笔记、定位服务、同步等功能;资源占用方面内存占最多,CPU占用适中。 小米便签在软件界面方面界面功能简单,可查看和新建便签,菜单功能相对丰富;记事方面只支持文字内容,可以选择桌面Widget颜色、字体大小等;特色功能方面可以移进文件夹和分享、备份、还原和设置保护密码;资源占用方面内存占用较中,CPU占用最少。 Note Everything界面简洁,上方有新建记事和搜索等按钮,菜单功能非常丰富;支持文本、绘图、语音、图片、清单、图库、视频、条形码等形式,可固定显示记事;特色是单个记事加密,数据备份、还原、导入、到处,创建快捷方式;内存占用最少,CPU占用较中。 麦库记事界面比较精美,菜单功能相对简单;可选分类、加标签、附件,支持拍照和实时录音。特色是笔记搜索和分类,网络同步和笔记分享;内存占用适中,CPU占用最多。

Android课程设计报告材料

河南城建学院 课程设计报告书 专业:计算机科学与技术 课程设计名称:《Java高级应用》 题目:基于Android平台的记事本软件 班级:0814131班 学号:081413107 设计者:付明玉 同组人员: 李志军、翟帅星 指导老师:张妍琰景伟娜陈红军 完成时间:2016年06月04

一、设计目的 (2) 1.1设计目的 (2) 1.2设计要求 (2) 二、需求分析 (2) 2.1需求分析 (2) 2.2软件逻辑 (3) 2.2.1软件逻辑图 (3) 2.2.2功能模块图 (4) 2.3 数据存储实现 (5) 三、模块分析及设计 (6) 3.1首页面 (6) 3.2主菜单 (7) 3.3 查看模块 (8) 3.4添加记录 (10) 3.5 垃圾箱 (10) 3.6 设置页面 (11) 3.7 日历页面 (12) 四、制作过程及要点 (12) 五、设计总结 (13) 六、参考资料 (15)

一、设计目的 1.1设计目的 《Java高级应用》课程设计是我们实践性学习环节之一,通过课程设计:(1)、巩固本学期所学的理论知识,熟悉androidstutio 工具及相关java组件的灵活应用。(2)、编制出完整的应用程序,锻炼我们的分析解决实际问题的能力,为以后完成大型项目的开发打下基础。(3)、把理论与实验课所学内容做一个综合,并在此基础上强化我们的实践意识、提高实际动手能力和创新能力。 1.2设计要求 设计一款基于Android平台的记事本软件。 功能要求:具有记事本的基本功能,可以实现记录,批量处理。具备在线备份和分享功能。在线备份能备份各种编辑中或者编辑完成的文章。 二、需求分析 2.1需求分析 (1)用户进入系统后可以设置个人信息:设置页面颜色、姓名、电话、及锁定密码,设置标记; (2)查看记录:查看以前的记录;

《基于Android的简单聊天通信软件设计》课程设计报告

目录 摘要 (1) 1.题目 (2) 2.概要设计 (2) 3.实训心得 (14) 4. 附录 (15) 1.题目 基于Android的简单聊天通信软件设计 (1)欢迎界面 (2)登录界面,登录界面中选择对方的IP地址和端口号 (3)与对方实现连接。实现点对点的通信。即点对点的聊天。 (4)聊天界面中,包括显示对方信息、聊天内容显示框、聊天内容输入框,以及发送按钮等(5)扩展1:实现表情的发送和显示,或者实现图片的发送和显示。 (5)扩展2:实现多人聊天。 1.1 需求分析 设计一个基于安卓系统的简单聊天通信软件,软件要实现点对点的通信。 UI:自己设计好符合软件的界面,使软件成熟化。 拓展:如有能力可使软件实现多人聊天,发生图片等。 2.概要设计 2.1 流程图 ↓ ↓

↓ ↓ ↓ ↓ 2.2详细设计 main.xml: 欢迎界面,延迟2秒左右自动跳转。Hello.java为其响应目录。 password.xml: 登录界面,验证用户输入信息,错误时用户可重新输入,正确后方可进 password.java为其响应目录。 findpassword.xml: 在登录界面中点击“忘记密码”后的跳转页面,可通过注册时的邮箱找回密码,但此功能目前还未实现,只有界面。findpassword.java为其响应目录。 create_id.xml: 在登录界面中点击“创建新账号”后的跳转页面,也还未实现其功能。create_id为其应目录。 main_menu.xml: 登录后的主菜单,包括“聊天”、“联系人”、“查找”等功能,均为图片按 main_menu.java为其响应目录。 chat.xml: 在主菜单中点击“聊天”后的聊天界面,输入IP地址后联系,可与进入相同服务器的用户聊天,聊天内容显示在对话框中。chat.java为其响应目录。 profile.xml: 在主菜单中点击“我的资料”的跳转页面,显示用户的一些信息。profile.java为其响应目录。 feedback.xml: 在主菜单中点击“反馈我们”的跳转页面,用户可在此页面告诉我们一些意见,但此功能目前还未实现。feedback.java为其响应目录。 about.xml: 在主菜单中点击“关于”的跳转页面,显示一些版本信息。about.java为其响应目录。setting.xml: 在主菜单中点击设置按钮后的跳转页面,其内容包括“切换账号”和“退出”。setting.java 为其响应目录。

java课程设计(通讯录管理系统)

合肥学院 计算机科学与技术系 课程设计报告 2013~2014学年第二学期 课程面向对象课程设计 课程设计名称通讯录程序 学生姓名XXX 学号 专业班级XXXXX 指导教师XXX 20 年月

目录 一、设计题目 (1) 二、设计要求 (1) 三、总体设计 (1) 3.1系统功能框架 (1) 3.2系统功能说明 (3) 四、详细设计 (3) 1.数据结构设计 (3) 2.系统模块设计 (10) 五、运行结果 (13) 一.设计题目 随着社会的进步与发展,通讯越来越密切。希望能通过对java课程设计的学习和掌握来编写一个通讯录管理系统。 二.设计要求 (1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。 (2)程序必须与数据库进行通信。

(3)系统必须是图形用户界面的形式并连接数据库 三. 总体设计 3.1 3.2 系统功能说明 (1)具有新用户注册功能。 (2)具有注册用户登录功能。 (3)具有数据的录入功能。 (4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。

(6)具有统计功能 4. 详细设计 4.1数据结构设计(java程序设计) //登录系统 package com.ibm.etp.addressbook.action; import java.util.HashMap; import java.util.List; import https://www.wendangku.net/doc/ab10639330.html,er; import com.ibm.etp.addressbook.service.LoginService; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; public String username; public String password; private String message; @Override public String execute() throws Exception { HashMap result = new HashMap(); List list = null; System.out.println(username); if(username == null || username.trim().length() == 0) { result.put("success", false); result.put("msg", "https://www.wendangku.net/doc/ab10639330.html,ername.empty"); } else if(password == null || password.trim().length() == 0) { result.put("success", false); result.put("msg", "login.password.empty"); } else { LoginService ls = new LoginService(); list = ls.checkLogin(username); } if(list == null) { result.put("success", false); result.put("msg", "https://www.wendangku.net/doc/ab10639330.html,er.not.exist"); } else if(list.get(0).getPassword().equals(password)) { result.put("success", true); result.put("msg", "login.success"); } else {

android课程设计报告(数独游戏)讲解

河南科技学院 《物联网移动应用开发》课程设计报告 设计题目:基于android的数独游戏设计 班级:物联网131 学号:2013156555 姓名:胡建刚 指导教师:许睿 成绩:

信息工程学院 课程设计报告说明 一、写报告前,请认真阅读《课程设计报告说明》。 二、打印装订要求 1、一律用A4纸,双面打印,并左侧装订。报告正文部分均 采用宋体小四。《课程设计报告说明》页也打印。 2、课程设计概述部分占一页;课程设计内容长度根据实际需要填写;结论和指导教师评语及成绩单独占一页。保证打印格式工整。 3、指导教师评语及成绩部分由指导教师填写。 三、报告内容要求 1、课程设计目的结合实际自己写,不要雷同。 2、课程设计原理简要说明所完成课程设计项目所涉及的理论 知识。 3、课程设计内容这是课程设计报告极其重要的内容。概括整个课程设计过程。(最好在上述内容基础上画出相应的流图、 设计思路和设计方法,再配以相应的文字进行说明。)

一、课程设计概述 1、课程设计目的 通过对android的学习,编写除了这个数独游戏,掌握android的控件知识的使用,和界面的制作。对java知识的应用。这样不仅对自身android的学习可以更上一层楼,而且这个游戏可以锻炼智力,游戏简单,适合多人群游戏,健康,益智的 游戏。 2、课程设计要求 1. 熟悉eclipse开发软件,熟练使用java和xml。 2. 学习和掌握android的四大组件的使用。 3. 熟练掌握Android 游戏开发多线程技术、Android 游戏开发的图形处理技术等。 4. 完成程序的编写工作。 5. 完成程序在模拟器上的实现,以及在安卓手机上的功能实现,并完成优化。 3、课程设计原理 基于数独游戏规则,通过java建立一系列的算法。然后利用android的控件知识建立一系列的界面。包括背景的制作。

安卓课程设计_手机通讯录系统全解

目录 1前言 (1) 2系统的需求分析 (2) 2.1需求分析 (2) 2.1.1基本功能需求 (2) 2.1.2系统用例分析 (2) 2.2总体设计方案 (5) 2.2.1系统模块关系与划分 (5) 3系统的概要设计 (6) 3.1通讯录需求分析 (6) 3.1.1新建、编辑联系人 (6) 3.1.2查找联系人 (6) 3.1.3通讯功能 (6) 3.1.4个人中心 (7) 3.1.5还原与备份功能 (7) 3.2系统界面设计 (8) 4系统编码实现 (14) 前言

随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 (1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种 融入全部Web应用的单一平台 (2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差, 导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。 1.1需求分析 1.1.1基本功能需求

基于Android手机平台的记事本设计课程设计

题目:基于Android手机平台的记事本设计 系名信息工程系 专业移动通信 学号 姓名 指导老师 2011/6/28

目录 第一章引言 1.1课题研究的目的 1.2课题研究的意义 1.3课题的可行性分析 第二章开发环境的安装和配置 2.1 开发包及其工具的介绍 2.2 Android开发平台的搭建步骤第三章程序设计 3.1 记事本组建的介绍 3.2 记事本存储实现 第四章程序开发 4.1 主activity的设计 4.2 编译内容 4.3 删除记事 第五章程序的测试 第六章总结 参考文献

第一章引言 1.1 课题研究的目的 1.熟悉一下eclipse工具和安卓的环境配置及开发的过程 2.熟练掌握java的组件如button,textview,listView,menu等组件的灵活应用 3.熟练掌握安卓的一个关于数据保存的方式content providers。 4.锻炼一下自己遇到问题,然后解决问题的能力。 1.2 课题研究的意义 随着3G技术的成熟和只能手机的不断普及,移动应用的需求yuri剧增,移动应用开发成为当下最热门的技术之一。在谷歌和安卓手机联盟的共同推动下,安卓在众多移动应用开发平台中脱颖而出。 我们都知道,无论是产品还是技术,商业应用都是它最大的发展动力。安卓如此受到厂商与开发者的青睐,他的前景是一片光明。国内对于安卓这方面的市场还没有完全开发出来。只要我们努力学习安卓,相信对以后无论是生活还是就业都大有裨益。 本文所做的主要工作如下: 开发环境及开发工具的安装及配置 阐述整个记事本的系统结构及工作原理; (1)设计实现“添加记事”,“编辑内容”和“删除当前

安卓课程设计报告

安卓课程设计报告

安卓课程设计报告 设计题目:五子棋 目录 一.需求分析 ................................................... 错误!未定义书签。二.功能模块 ................................................... 错误!未定义书签。 三. 界面设计 ..................................................... 错误!未定义书签。

四. 分工说明 ..................................................... 错误!未定义书签。 五. 所遇到的问题 ............................................. 错误!未定义书签。 六.代码注释...................................................... 错误!未定义书签。 一.需求分析 网络技术的日新月异让世界惊叹,高速发展的网络技术和日渐成熟的3G网络,让越来越多的用户沉浸在手机的世界而无限欢快。不论是逛街、乘地铁,还是吃饭,排队,跟随潮流的时尚一群都利用拇指掌控着周围的一切,似乎只有手机才能让她们真正体验娱乐的极致。手机已然成为本世纪最有作为、最受欢迎的创造。而手机的流行更成就了相关应用和网站,让她们在移动互联网大放异彩的当下备受用户关注。 二.功能模块

三. 界面设计 3.1开始界面

3.2游戏界面 3.3点击认输界面

Android贪吃蛇课程设计报告

XXXX学院 计算机科学系 《Android程序设计》课程设计报告 题目:贪吃蛇 专业:计算机科学与技术 ! 班级: B11计科班 学号: 0 姓名:凌波微步 Q Q :25 指导教师: , 2014年6月

, 目录 第一章绪论 (2) 游戏简介 (2) 开发目的及意义 (3) 开发环境及工具 (3) 第二章需求分析 (4) 游戏界面分析 (4) 游戏角色分析 (4) — 游戏控制分析 (4) 第三章总体设计 (5) 系统功能模块层次图 (5) 运行机制 (6) 贪吃蛇功能流程图 (7) 第四章详细设计与实现 (9) SnakeActivity类 (9) MyTile类 (10) : NextActivity类 (18) SysApplication类 (19) 界面设计 (20) 第五章测试 (26) 功能测试 (26) 测试结果 (27) 第六章结论 (27)

第一章绪论 @ 游戏简介 贪吃蛇游戏是一款手机游戏,同时也是一款比较需要耐心的游戏。贪吃蛇游戏是一条蛇,不停地在手机屏幕上游走,吃在手机屏幕上出现的食物。当蛇吃掉1个食物后会变长,并且吃完食物时食物会消失,并立即随机生成1个新的食物,只要蛇头碰到屏幕四周或者碰到自己的身子,蛇就立即毙命。 开发目的及意义 通过本次课程设计,了解android软件的开发过程,熟悉并掌握JAVA语言,程序关键在于表示蛇的图形及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动。意义是方便人们在休闲时通过玩手机游戏获得一点快乐,同时锻炼自己的大脑。 开发环境及工具 在Window8下进行,采用eclipse开发工具,基于安卓操作系统。 环境搭建: 1. JDK安装 [ 2. Eclipse安装 3. Android SDK安装 4. ADT安装创建AVD

安卓记事本程序源代码

1?¢MainActivity 01.package cn.dccssq; 02. 03.import android.app.ListActivity; 04.import android.content.Intent; 05.import android.database.Cursor; 06.import android.os.Bundle; 07.import android.util.Log; 08.import android.view.Menu; 09.import android.view.MenuItem; 10.import android.view.View; 11.import android.widget.ListAdapter; 12.import android.widget.ListView; 13.import android.widget.SimpleCursorAdapter; 14. 15.public class MainActivity extends ListActivity { 16. 17. private static final int INSERT_ID = Menu.FIRST; 18. 19. private static final int DELETE_ID = Menu.FIRST + 1; 20. 21. private static final int ACTIVITY_CREATE = 0; 22. 23. private static final int ACTIVITY_EDIT = 1; 24. 25. private DiaryDbAdapter diaryDb; 26. 27. private Cursor cursor; 28. /** Called when the activity is first created. */ 29. @Override 30. public void onCreate(Bundle savedInstanceState) { 31. super.onCreate(savedInstanceState); 32. setContentView(https://www.wendangku.net/doc/ab10639330.html,yout.main); 33. 34. diaryDb =new DiaryDbAdapter(this); 35. diaryDb.open(); 36. 37. } 38. 39. private void showListView(){

Android记事本开发

成绩: 通信工程专业实训报告 项目名称:Android记事本开发 学号: 0867119212 姓名:闫超 班级: 08通信2班 指导教师:王亚平

摘要 (3) 第一章引言 (3) 1.1 实训背景: (3) 1.2开发环境配置 (3) 第二章软件功能规划 (4) 2.1.软件功能 (4) 2.2界面设计 (4) 第三章功能开发流程及功能展示 (4) 3.1程序执行流程 (4) 3.2功能实现 (7) 第四章实训总结 (9)

摘要 开心或是难过,有趣或是无聊,幸福或是痛苦,这些都是我们所经历的,是记忆,是生命中最为宝贵的,我们舍不得遗忘,记事本能够帮助我们守住回忆,记录下我们生命的足迹。 第一章引言 1.1 实训背景: Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android 已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。无缝结合的Google应用:如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google 服务。 1.2开发环境配置 (1)java JDK下载:进入https://www.wendangku.net/doc/ab10639330.html,/javase/downloads/index.jsp (或者直接点击下载图: 选择Download JDK 只下载JDK,无需下载jre. (2)eclipse下载进入该网页: https://www.wendangku.net/doc/ab10639330.html,/downloads/ (或者直接点击下载:BT下载HTTP下载 )我们选择第一个(即eclipse IDE for java EE Developers)(3)下载Android SDK说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。完全版下载 (android sdk 2.1 r01) 二软件安装 (1)安装jdk 6u19 安装完成即可 (2)解压eclipse eclipse无需安装,解压后,直接打开就行3)解压android sdk 这个也无需安装,解压后供后面使 (4)最终有三个文件夹,Eclipse配置:1 安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择help->Install New SoftWare点击Add按钮,出现如下界面输入网址: https://https://www.wendangku.net/doc/ab10639330.html,/android/eclipse/(如果出错,请将https改成http) 名

android简单计算器课程设计

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

手机通讯录安卓课程设计

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

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

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

相关文档
相关文档 最新文档