移动应用开发技术的课程设计教材.docx
《移动应用开发技术的课程设计教材.docx》由会员分享,可在线阅读,更多相关《移动应用开发技术的课程设计教材.docx(16页珍藏版)》请在冰点文库上搜索。
移动应用开发技术的课程设计教材
《移动应用开发技术》
题目:
基于Android的个人生活助手
专业:
学长淘宝店530213
班级:
学号:
姓名:
指导教师:
完成日期:
2015年05月28日
1需求分析
随着安卓市场的发展,手机软件更新与时俱进,手机的个人助手已不是什么有创意的软件了,而是一种实用性的软件。
基于安卓的个人生活助手,实现事务的管理和收支的管理,随身随时随带,提供优质的服务。
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事务新增代码
publicvoidsave(Viewview)
{
if(checkDate()||checkStartTime())
return;
StringBuilderresult=newStringBuilder();
result.append(date.getText().toString()+"");
result.append(startTime.getText().toString()+"-");
result.append(item.getText().toString());
try
if(this.getIntent().getStringExtra("flag").equals("change"))
intindex=getIntent().getExtras().getInt("position");
Stringline="";
StringBuildersb=newStringBuilder();
FileInputStreamin=openFileInput("item");
BufferedReaderbr=newBufferedReader(newInputStreamReader(in));
for(inti=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");elsebreak;}FileOutputStreamout=openFileOutput("item",MODE_PRIVATE);PrintStreamps=newPrintStream(out);ps.print(sb.toString());ps.close();out.close();Toast.makeText(this,"保存完毕!",Toast.LENGTH_LONG).show();Intentintent=getIntent();setResult(0x111,intent);finish();}else{FileOutputStreamout=openFileOutput("item",MODE_APPEND);PrintStreamps=newPrintStream(out);ps.println(result.toString());ps.close();out.close();Toast.makeText(this,"保存完毕!",Toast.LENGTH_LONG).show();Intentintent=getIntent();setResult(0x111,intent);finish();}}catch(Exceptione){e.printStackTrace();}}publicbooleancheckDate(){if(date.getText().toString().equals("")){Toast.makeText(this,"日期不能为空!",Toast.LENGTH_LONG).show();returnfalse;}returnfalse;}publicbooleancheckStartTime(){if(startTime.getText().toString().equals("")){Toast.makeText(this,"时间不能为空!",Toast.LENGTH_LONG).show();returntrue;}returnfalse;}5.1.2事务查询代码publicString[]splitString(Strings){String[]ss=newString[3];intfirstIndex=0,secondIndex=0,flag=0;chara[]=s.toCharArray();for(inti=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());returnss;}5.1.3事务删除代码publicvoiddelete(Viewview){intindex=getIntent().getExtras().getInt("position");Stringline="";StringBuildersb=newStringBuilder();try{FileInputStreamin=openFileInput("item");BufferedReaderbr=newBufferedReader(newInputStreamReader(in));for(inti=0;i{sb.append(br.readLine()+"\n");}br.readLine();while(true){if((line=br.readLine())!=null)sb.append(line+"\n");elsebreak;}FileOutputStreamout=openFileOutput("item",MODE_PRIVATE);PrintStreamps=newPrintStream(out);ps.print(sb.toString());ps.close();out.close();Toast.makeText(this,"删除成功!",Toast.LENGTH_LONG).show();Intentintent=getIntent();setResult(0x111,intent);finish();}catch(Exceptione){e.printStackTrace();}}5.1.4事务修改代码setActivity.setText("修改");title.setText("事务管理");delete.setVisibility(View.VISIBLE);intindex=getIntent().getExtras().getInt("position");//Toast.makeText(this,""+index,Toast.LENGTH_LONG).show();FileInputStreamin;Stringline="";try{in=openFileInput("item");BufferedReaderbr=newBufferedReader(newInputStreamReader(in));for(inti=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(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}5.2收支功能实现5.2.1收支新增代码save.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubStringt=time.getText().toString();Stringi=income.getText().toString();Stringo=outcome.getText().toString();db.execSQL("insertintoshouruvalues(???)",newString[]{t,i,o});Toast.makeText(Mbook.this,"保存成功",Toast.LENGTH_SHORT).show();5.2.2收支查询代码read.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);into=cursor.getInt(2);inta=i-o;Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i+""+"总支出:"+o+""+"收支差:"+a);}}});read1.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i);}}});read2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);into=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总支出:"+o);}}});read3.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubIntentintent=newIntent();intent.setClass(Sbook.this,Bookmain.class);startActivity(intent);}});5.2.3收支删除代码thing2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewarg0){//TODOAuto-generatedmethodstubStringaa=thing.getText().toString();db.execSQL("deletefromshouruwheretime=?",newString[]{aa});Toast.makeText(Sbook.this,"清除成功",Toast.LENGTH_SHORT).show();finish();}5.2.4收支修改代码6总结学长淘宝店530213本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。
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;
FileOutputStreamout=openFileOutput("item",MODE_PRIVATE);
PrintStreamps=newPrintStream(out);
ps.print(sb.toString());
ps.close();
out.close();
Toast.makeText(this,"保存完毕!
",Toast.LENGTH_LONG).show();
Intentintent=getIntent();
setResult(0x111,intent);
finish();
FileOutputStreamout=openFileOutput("item",MODE_APPEND);
ps.println(result.toString());
catch(Exceptione)
e.printStackTrace();
publicbooleancheckDate()
if(date.getText().toString().equals(""))
Toast.makeText(this,"日期不能为空!
returnfalse;
publicbooleancheckStartTime()
if(startTime.getText().toString().equals(""))
Toast.makeText(this,"时间不能为空!
returntrue;
5.1.2事务查询代码
publicString[]splitString(Strings)
String[]ss=newString[3];
intfirstIndex=0,secondIndex=0,flag=0;
chara[]=s.toCharArray();
for(inti=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());returnss;}5.1.3事务删除代码publicvoiddelete(Viewview){intindex=getIntent().getExtras().getInt("position");Stringline="";StringBuildersb=newStringBuilder();try{FileInputStreamin=openFileInput("item");BufferedReaderbr=newBufferedReader(newInputStreamReader(in));for(inti=0;i{sb.append(br.readLine()+"\n");}br.readLine();while(true){if((line=br.readLine())!=null)sb.append(line+"\n");elsebreak;}FileOutputStreamout=openFileOutput("item",MODE_PRIVATE);PrintStreamps=newPrintStream(out);ps.print(sb.toString());ps.close();out.close();Toast.makeText(this,"删除成功!",Toast.LENGTH_LONG).show();Intentintent=getIntent();setResult(0x111,intent);finish();}catch(Exceptione){e.printStackTrace();}}5.1.4事务修改代码setActivity.setText("修改");title.setText("事务管理");delete.setVisibility(View.VISIBLE);intindex=getIntent().getExtras().getInt("position");//Toast.makeText(this,""+index,Toast.LENGTH_LONG).show();FileInputStreamin;Stringline="";try{in=openFileInput("item");BufferedReaderbr=newBufferedReader(newInputStreamReader(in));for(inti=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(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}5.2收支功能实现5.2.1收支新增代码save.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubStringt=time.getText().toString();Stringi=income.getText().toString();Stringo=outcome.getText().toString();db.execSQL("insertintoshouruvalues(???)",newString[]{t,i,o});Toast.makeText(Mbook.this,"保存成功",Toast.LENGTH_SHORT).show();5.2.2收支查询代码read.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);into=cursor.getInt(2);inta=i-o;Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i+""+"总支出:"+o+""+"收支差:"+a);}}});read1.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i);}}});read2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);into=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总支出:"+o);}}});read3.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubIntentintent=newIntent();intent.setClass(Sbook.this,Bookmain.class);startActivity(intent);}});5.2.3收支删除代码thing2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewarg0){//TODOAuto-generatedmethodstubStringaa=thing.getText().toString();db.execSQL("deletefromshouruwheretime=?",newString[]{aa});Toast.makeText(Sbook.this,"清除成功",Toast.LENGTH_SHORT).show();finish();}5.2.4收支修改代码6总结学长淘宝店530213本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。
if(a[i]=='')
if(flag==0)
firstIndex=i;
flag=1;
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());
returnss;
5.1.3事务删除代码
publicvoiddelete(Viewview)
for(inti=0;i{sb.append(br.readLine()+"\n");}br.readLine();while(true){if((line=br.readLine())!=null)sb.append(line+"\n");elsebreak;}FileOutputStreamout=openFileOutput("item",MODE_PRIVATE);PrintStreamps=newPrintStream(out);ps.print(sb.toString());ps.close();out.close();Toast.makeText(this,"删除成功!",Toast.LENGTH_LONG).show();Intentintent=getIntent();setResult(0x111,intent);finish();}catch(Exceptione){e.printStackTrace();}}5.1.4事务修改代码setActivity.setText("修改");title.setText("事务管理");delete.setVisibility(View.VISIBLE);intindex=getIntent().getExtras().getInt("position");//Toast.makeText(this,""+index,Toast.LENGTH_LONG).show();FileInputStreamin;Stringline="";try{in=openFileInput("item");BufferedReaderbr=newBufferedReader(newInputStreamReader(in));for(inti=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(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}5.2收支功能实现5.2.1收支新增代码save.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubStringt=time.getText().toString();Stringi=income.getText().toString();Stringo=outcome.getText().toString();db.execSQL("insertintoshouruvalues(???)",newString[]{t,i,o});Toast.makeText(Mbook.this,"保存成功",Toast.LENGTH_SHORT).show();5.2.2收支查询代码read.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);into=cursor.getInt(2);inta=i-o;Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i+""+"总支出:"+o+""+"收支差:"+a);}}});read1.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);inti=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总收入:"+i);}}});read2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstublist.setText("");Cursorcursor=db.rawQuery("select*fromshouru",null);while(true){if(cursor.moveToNext()==false)break;Stringt=cursor.getString(0);into=cursor.getInt(1);Stringtmp=list.getText().toString();list.setText(tmp+"\n"+"时间:"+t+"月份"+"总支出:"+o);}}});read3.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//TODOAuto-generatedmethodstubIntentintent=newIntent();intent.setClass(Sbook.this,Bookmain.class);startActivity(intent);}});5.2.3收支删除代码thing2.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewarg0){//TODOAuto-generatedmethodstubStringaa=thing.getText().toString();db.execSQL("deletefromshouruwheretime=?",newString[]{aa});Toast.makeText(Sbook.this,"清除成功",Toast.LENGTH_SHORT).show();finish();}5.2.4收支修改代码6总结学长淘宝店530213本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。
Toast.makeText(this,"删除成功!
5.1.4事务修改代码
setActivity.setText("修改");
title.setText("事务管理");
delete.setVisibility(View.VISIBLE);
//Toast.makeText(this,""+index,Toast.LENGTH_LONG).show();
FileInputStreamin;
try{
in=openFileInput("item");
for(inti=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(Exceptione){
//TODOAuto-generatedcatchblock
5.2收支功能实现
5.2.1收支新增代码
save.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
//TODOAuto-generatedmethodstub
Stringt=time.getText().toString();
Stringi=income.getText().toString();
Stringo=outcome.getText().toString();
db.execSQL("insertintoshouruvalues(?
?
)",
newString[]{t,i,o});
Toast.makeText(Mbook.this,"保存成功",Toast.LENGTH_SHORT).show();
5.2.2收支查询代码
read.setOnClickListener(newView.OnClickListener(){
list.setText("");
Cursorcursor=db.rawQuery("select*fromshouru",null);
while(true){
if(cursor.moveToNext()==false)
Stringt=cursor.getString(0);
inti=cursor.getInt
(1);
into=cursor.getInt
(2);
inta=i-o;
Stringtmp=list.getText().toString();
list.setText(tmp+"\n"+"时间:
"+t+"月份"+"总收入:
"+i+""+"总支出:
"+o+""+"收支差:
"+a);
});
read1.setOnClickListener(newView.OnClickListener(){
"+i);
read2.setOnClickListener(newView.OnClickListener(){
"+t+"月份"+"总支出:
"+o);
read3.setOnClickListener(newView.OnClickListener(){
Intentintent=newIntent();
intent.setClass(Sbook.this,Bookmain.class);
startActivity(intent);
5.2.3收支删除代码
thing2.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewarg0){
Stringaa=thing.getText().toString();
db.execSQL("deletefromshouruwheretime=?
",newString[]{aa});
Toast.makeText(Sbook.this,"清除成功",Toast.LENGTH_SHORT).show();
5.2.4收支修改代码
6总结学长淘宝店530213
本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2