移动应用开发技术的课程设计讲解.docx
- 文档编号:23154831
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:16
- 大小:50.52KB
移动应用开发技术的课程设计讲解.docx
《移动应用开发技术的课程设计讲解.docx》由会员分享,可在线阅读,更多相关《移动应用开发技术的课程设计讲解.docx(16页珍藏版)》请在冰豆网上搜索。
移动应用开发技术的课程设计讲解
《移动应用开发技术》
题目:
基于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事务新增代码
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"); 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(); } 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"); 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(); } 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-generatedcatchblock e.printStackTrace(); } } } 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(){ @Override publicvoidonClick(Viewview){ //TODOAuto-generatedmethodstub list.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(){ @Override publicvoidonClick(Viewview){ //TODOAuto-generatedmethodstub list.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(){ @Override publicvoidonClick(Viewview){ //TODOAuto-generatedmethodstub list.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(){ @Override publicvoidonClick(Viewview){ //TODOAuto-generatedmethodstub Intentintent=newIntent(); intent.setClass(Sbook.this,Bookmain.class); startActivity(intent); } }); 5.2.3收支删除代码 thing2.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewarg0){ //TODOAuto-generatedmethodstub Stringaa=thing.getText().toString(); db.execSQL("deletefromshouruwheretime=? ",newString[]{aa}); Toast.makeText(Sbook.this,"清除成功",Toast.LENGTH_SHORT).show(); finish(); } 5.2.4收支修改代码 6总结学长淘宝店530213 本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 应用 开发 技术 课程设计 讲解