当前位置:文档之家› 移动应用开发技术的课程设计

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

《移动应用开发技术》题目:基于Android的个人生活助手专业:学长淘宝店530213班级:学长淘宝店530213学号:学长淘宝店530213姓名:学长淘宝店530213指导教师:学长淘宝店530213完成日期: 2015年 05月 28日1需求分析随着安卓市场的发展,手机软件更新与时俱进,手机的个人助手已不是什么有创意的软件了,而是一种实用性的软件。

基于安卓的个人生活助手,实现事务的管理和收支的管理,随身随时随带,提供优质的服务。

学长淘宝店5302131.1用户需求分析由于用户在日常生活中,忙碌也有时对事务的遗忘,以及对收支的不明,然而这个安卓手机日常助手提供了事务管理和收支管理,用户则对日常事务或收支进行记录,查询等功能,让用户不会因遗忘应做的事务,比如,什么时间预约好客户谈生意,也不会因此造成损失;对开支的也有明确的记录,对以后生活上的开支规划,提供生活质量。

1.2功能需求分析学长淘宝店530213根据上面的需求分析,设计安卓生活日常助手。

根据以上的想法,设计出助手的功能:1)、事务(查询,新增,删除,修改,提醒);2)、收支(查询,新增,删除,修改);3)、录音;4)、音乐;5)、日历;6)、时钟。

2事务管理和收支管理流程分析事务管理流程图收支管理流程图3系统结构设计学长淘宝店5302133.1系统的总体结构功能模块设计3.2系统静态模型设计学长淘宝店530213根据系统需求设计7个界面类,分别是MainActivity(主界面类),Affairsmain(事务界面类),Bookmain(收支界面类),Maffairs(事务管理界面类),Mbook(收支管理界面类),Saffairs(事务查询界面类),Sbook(收支查询界面类)确定系统的类后确定类之间的关系:精选文库3.3主界面的功能模块设计学长淘宝店530213精选文库3.3.1事务界面的功能模块设计学长淘宝店530213精选文库3.3.2收支界面的功能模块设计学长淘宝店5302134 系统数据库模型设计学长淘宝店5302134.1E-R图4.1.1事务的E-R图:4.1.2收支的E-R图:5 功能实现学长淘宝店5302135.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") ){intindex=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<index;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;}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<a.length;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<index;i++){sb.append(br.readLine()+"\n");br.readLine();while(true){if((line=br.readLine())!=null)sb.append(line+"\n");elsebreak;}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 blocke.printStackTrace();}}}5.2收支功能实现5.2.1收支新增代码save.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) {// TODO Auto-generated method stubString 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() { @Overridepublic void onClick(View view) {// TODO Auto-generated method stublist.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() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stublist.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() { @Overridepublic void onClick(View view) {// TODO Auto-generated method stublist.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() { @Overridepublic void onClick(View view) {// TODO Auto-generated method stubIntent intent = new Intent();intent.setClass(Sbook.this, Bookmain.class);startActivity(intent);}});5.2.3收支删除代码thing2.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubString aa=thing.getText().toString();db.execSQL("delete from shouru where time=?",newString[]{aa});Toast.makeText(Sbook.this, "清除成功",Toast.LENGTH_SHORT).show();finish();}5.2.4收支修改代码6 总结学长淘宝店530213本软件还存在几个模块的功能需改进,比如在输入值的判断方面,等等;同时对安卓的一些基本内容的整体上的应用,往后在设计当中还需努力与严密性的考虑,也是为以后从事软件上测试方面减少维护与修改。

相关主题