您的当前位置:首页正文

移动应用开发技术的课程设计

来源:帮我找美食网


《移动应用开发技术》

题目: 基于Android的个人生活助手

专业: 学长淘宝店530213

班级: 学长淘宝店530213

学号: 学长淘宝店530213

姓名: 学长淘宝店530213

指导教师: 学长淘宝店530213

完成日期: 2015年 05月 28日

1需求分析

随着安卓市场的发展,手机软件更新与时俱进,手机的个人助手已不是什么有创意的软件了,而是一种实用性的软件。基于安卓的个人生活助手,实现事务的管理和收支的管理,随身随时随带,提供优质的服务。学长淘宝店530213

1.1用户需求分析

由于用户在日常生活中,忙碌也有时对事务的遗忘,以及对收支的不明,然而这个安卓手机日常助手提供了事务管理和收支管理,用户则对日常事务或收支进行记录,查询等

功能,让用户不会因遗忘应做的事务,比如,什么时间预约好客户谈生意,也不会因此造成损失;对开支的也有明确的记录,对以后生活上的开支规划,提供生活质量。

1.2功能需求分析学长淘宝店530213

根据上面的需求分析,设计安卓生活日常助手。根据以上的想法,设计出助手的功能:

1)、事务(查询,新增,删除,修改,提醒);

2)、收支(查询,新增,删除,修改);

3)、录音;

4)、音乐;

5)、日历;

6)、时钟。

2事务管理和收支管理流程分析

事务管理流程图

收支管理流程图

3系统结构设计学长淘宝店530213

3.1系统的总体结构功能模块设计

3.2系统静态模型设计学长淘宝店530213

根据系统需求设计7个界面类,分别是MainActivity(主界面类),Affairsmain(事务界面类),Bookmain(收支界面类),Maffairs(事务管理界面类),Mbook(收支管理界面类),Saffairs(事务查询界面类),Sbook(收支查询界面类)

确定系统的类后确定类之间的关系:

3.3主界面的功能模块设计学长淘宝店530213

3.3.1事务界面的功能模块设计学长淘宝店530213

3.3.2收支界面的功能模块设计学长淘宝店530213

4 系统数据库模型设计学长淘宝店530213

4.1E-R图

4.1.1事务的E-R图:

4.1.2收支的E-R图:

5 功能实现学长淘宝店530213

5.1事务功能实现

5.1.1事务新增代码

public void save(View view)

{

if(checkDate()||checkStartTime())

return;

StringBuilder result=new StringBuilder();

result.append(date.getText().toString()+\" \");

result.append(startTime.getText().toString()+\"-\");

result.append(item.getText().toString());

try

{

if(this.getIntent().getStringExtra(\"flag\").equals(\"change\"))

{

int index=getIntent().getExtras().getInt(\"position\");

String line=\"\";

StringBuilder sb=new StringBuilder();

FileInputStream in=openFileInput(\"item\");

BufferedReader br=new BufferedReader(new InputStreamReader(in));

for(int i=0;i{

sb.append(br.readLine()+\"\\n\");

}

br.readLine();

sb.append(result.toString()+\"\\n\");

while(true)

{

if((line=br.readLine())!=null)

sb.append(line+\"\\n\");

else

break;

}

FileOutputStream out=openFileOutput(\"item\", MODE_PRIVATE);

PrintStream ps=new PrintStream(out);

ps.print(sb.toString());

ps.close();

out.close();

Toast.makeText(this, \"保存完毕!\", Toast.LENGTH_LONG).show();

Intent intent=getIntent();

setResult(0x111,intent);

finish();

}

else

{

FileOutputStream out=openFileOutput(\"item\", MODE_APPEND);

PrintStream ps=new PrintStream(out);

ps.println(result.toString());

ps.close();

out.close();

Toast.makeText(this, \"保存完毕!\", Toast.LENGTH_LONG).show();

Intent intent=getIntent();

setResult(0x111,intent);

finish();

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

public boolean checkDate()

{

if(date.getText().toString().equals(\"\"))

{

Toast.makeText(this, \"日期不能为空!\", Toast.LENGTH_LONG).show();

return false;

}

return false;

}

public boolean checkStartTime()

{

if(startTime.getText().toString().equals(\"\"))

{

Toast.makeText(this, \"时间不能为空!\", Toast.LENGTH_LONG).show();

return true;

}

return false;

}

5.1.2事务查询代码

public String[] splitString(String s)

{

String[] ss=new String[3];

int firstIndex=0,secondIndex=0,flag=0;

char a[]=s.toCharArray();

for(int i=0;i{

if(a[i]==' ')

{

if(flag==0)

{

firstIndex=i;

flag=1;

}

else

{

break;

}

}

if(a[i]=='-')

{

secondIndex=i;

}

}

ss[0]=s.substring(0, firstIndex);

ss[1]=s.substring(firstIndex+1, secondIndex);

ss[2]=s.substring(secondIndex+1,s.length());

return ss;

}

5.1.3事务删除代码

public void delete(View view)

{

int index=getIntent().getExtras().getInt(\"position\");

String line=\"\";

StringBuilder sb=new StringBuilder();

try

{

FileInputStream in=openFileInput(\"item\");

BufferedReader br=new BufferedReader(new InputStreamReader(in));

for(int i=0;i{

sb.append(br.readLine()+\"\\n\");

}

br.readLine();

while(true)

{

if((line=br.readLine())!=null)

sb.append(line+\"\\n\");

else

break;

}

FileOutputStream out=openFileOutput(\"item\", MODE_PRIVATE);

PrintStream ps=new PrintStream(out);

ps.print(sb.toString());

ps.close();

out.close();

Toast.makeText(this, \"删除成功!\", Toast.LENGTH_LONG).show();

Intent intent=getIntent();

setResult(0x111,intent);

finish();

}

catch(Exception e)

{

e.printStackTrace();

}

}

5.1.4事务修改代码

setActivity.setText(\"修改\");

title.setText(\"事务管理\");

delete.setVisibility(View.VISIBLE);

int index=getIntent().getExtras().getInt(\"position\");

// Toast.makeText(this, \"\"+index, Toast.LENGTH_LONG).show();

FileInputStream in;

String line=\"\";

try {

in = openFileInput(\"item\");

BufferedReader br=new BufferedReader(new InputStreamReader(in));

for(int i=0;i<=index;i++)

{

line=br.readLine();

}

// Toast.makeText(this, line, Toast.LENGTH_LONG).show();

String[] s=splitString(line);

date.setText(s[0]);

startTime.setText(s[1]);

item.setText(s[2]);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

5.2收支功能实现

5.2.1收支新增代码

save.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

String t=time.getText().toString();

String i=income.getText().toString();

String o=outcome.getText().toString();

db.execSQL(\"insert into shouru values(?,?,?)\",

new String[]{t,i,o});

Toast.makeText(Mbook.this, \"保存成功\", Toast.LENGTH_SHORT).show();

5.2.2收支查询代码

read.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

list.setText(\"\");

Cursor cursor=db.rawQuery(\"select*from shouru\", null);

while(true){

if(cursor.moveToNext()==false)

break;

String t=cursor.getString(0);

int i=cursor.getInt(1);

int o=cursor.getInt(2);

int a=i-o;

String tmp=list.getText().toString();

list.setText(tmp+\"\\n\"+\"时间:\"+t+\"月份 \"+\"总收入:\"+i+\" 出:\"+o+\" \"+\"收支差:\"+a);

}

}

});

read1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

list.setText(\"\");

+\"总支 \"

Cursor cursor=db.rawQuery(\"select*from shouru\", null);

while(true){

if(cursor.moveToNext()==false)

break;

String t=cursor.getString(0);

int i=cursor.getInt(1);

String tmp=list.getText().toString();

list.setText(tmp+\"\\n\"+\"时间:\"+t+\"月份 \"+\"总收入:\"+i);

}

}

});

read2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

list.setText(\"\");

Cursor cursor=db.rawQuery(\"select*from shouru\", null);

while(true){

if(cursor.moveToNext()==false)

break;

String t=cursor.getString(0);

int o=cursor.getInt(1);

String tmp=list.getText().toString();

list.setText(tmp+\"\\n\"+\"时间:\"+t+\" 月份 \"+\"总支出:\"+o);

}

}

});

read3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

Intent intent = new Intent();

intent.setClass(Sbook.this, Bookmain.class);

startActivity(intent);

}

});

5.2.3收支删除代码

thing2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

String aa=thing.getText().toString();

db.execSQL(\"delete from shouru where time=?\",new String[]{aa});

Toast.makeText(Sbook.this, \"清除成功\", Toast.LENGTH_SHORT).show();

finish();

}

5.2.4收支修改代码

6 总结学长淘宝店530213

本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top