个人理财小助手智能终端系统及应用开发_第1页
个人理财小助手智能终端系统及应用开发_第2页
个人理财小助手智能终端系统及应用开发_第3页
个人理财小助手智能终端系统及应用开发_第4页
个人理财小助手智能终端系统及应用开发_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个人理财小助手智能终端系统 及应用开发智能终端系统及应用开 发课程设计报告题目:号: 级: 名:指导老师:一、目的与要求.掌握SQLite数据库及其使用。.熟练掌握布局及常用控件Button、ListViewx EditText TextView等。.使用SQLite数据库实现增加、删除、修改;.使用ListView进行显示;.增加私密性,验证成功才能进行收支管理。二、APP结构设计个人理财小助手主要为用户提供5个主要模块,包括:登录模块、收 入管理模块、支出管理模块、便签管理模块、系统设置模块。对日常的开 支进行随时记录,存储到本机的SQLite数据库。提示错误个人理财助手三、数据库设计本系

2、统是一个理财的管理系统,主要包括收入、支出的管理,所以设计 数据库表的时候,设计了密码表、收入表、支出表、便签信息表用来存储对应 的信息。密码信息表:用于用户登录时进行密码核对。表1:密码信息表字段名数据类型是否主键描述PasswordVarchar(20)否用户密码支出信息表:用于记录支出信息,主要属性包括:id (编号),money (金额),time (支出时间),type (支出类别),address (支出地点),mark (备注)表2:支出信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否支出金额timeVarchar(10)否支出时间typeVar

3、char(10)否支出类别addressVarchar(100)否支出地点markVarchar(200)否备注收入信息表:用于记录收入信息,主要属性包括:id (编号),money (收入金额),time (收入时间),type (收入类别),hanlder (付款方),mark(备注)表3:收入信息表字段名数据类型是否主键描述idinteger是编号moneydecimal否收入金额timeVarchar(10)否收入时间typeVarchar(10)否收入类别handlerVarchar(100)否付款方markVarchar(200)否备注便签信息表:用于所有提醒便签信息:主要属性有,

4、id (编号),Flag (便签信息)表4:便签信息表字段名数据类型是否主键描述idinteger是编号FlagVarchar(20)否便签内容四、编码规划和代码的文件组成系统架构图J包r一 |& drawabl&hdpiJ Jpg bjjpg 0. ic_l3Lincher.pngKi dp叩已 dra/able-ldpi七 drawable-mdpi- 0 drawable-xhdpi J draiable-xxhdpi & layoutacceuntflag.jcmla cti vity_m a i n .xm I(t-i addinaccount.Krnl.i addcutacecun

5、t-xrriI di flagman age)rml gvitem.xmll (:n inaccountinfo.xml infcman3geKnnl :.i login.xml a main.atml.Til outacccuntinfo.xmlC shcuvirfo.xrnl syssetrxml m enu & valuer-1L accDunttypejtml(:n d imens.xm I口 stringsxmlli.i 5tyles.)tml片 values-5wGCXJdp values-5irt720dp-landL.m values-vl 1 & valu&s-vUJ And

6、roid Mar if estjcm I,R. ic_ launcher png , prcguard-project.brt ,可 perties惶P习ck吗电Explorer百与(iS findanlj L? 5rc田 ccnriiexampleilicail-activity l j Act.Ou ntflagj ava| J | Addinaceauntjava i J| AddOutaccountjava 团 FlagManage.java l In&dSQuMirrkzj.YG l |JInfoklandge.jdva 1) Login.java b M i nAa刖 tyijdv

7、a t 彷 0 ute ccou nt I nfo ji ava71 Showinfo.java t | J| Sytjava -fit ccm.example.licail.dao卜 DBOperHelperjava 1 Flag DAO .java团 I n j cc ou ntDAO .j ava1OutaccountDW.java 1? | packflge-infojava )团 Pwd DAO .java/ 申 oomHexAmpleJic9iLmodel I? J package-infojava |2j TbJIagJava上 |j Tb_insc tcunt.j ava k

8、团 Tb_o u ta cc o u nt.j ava i 团 Tb_pwd.javaJ 泊 gen Gererat?d Java Files.击 ccm.exampleJicdil p- J BuildCoFifig.java 卜区Rjavd在com.example.licai1.DAO 中存放DAO2告类,负责一切对数据库的操作,包 括对数据的增加,修改,删除,保存等,其中DBOpenHelper负责创建数据库和数据库表。在com.example.licail.model 中存放数据模型公告类,对应着数据库中不同的 数据库表,负责访问数据库的 DAO类和程序中各模块,组件的使用。对数据库

9、表中字段封装,主要用来存储数据。五、分模块详细设计与实现1:用户登录界面:用于验证用户是否合法,首次登录不需要密码,在系统 设置中设置密码后,登录需输入密码。用于保护用户隐私。若密码错误,则显 示“请输入正确密码”Outline 总?=? xmllj回 Fielative_i3ycrutAb TewtVlew: + id/tuLogin Button: -t-id/btriClose- - Button: -bid/btLoginI EdrtText: 4-id/tstloginbtnlogin .setOnClickListener( new OnClickListener() / 为登录按

10、钮设置监听事件SuppressLint (NewApi)Overridepublic void onClick(View arg0) Intent intent =new Intent(Login.this, MainActivity. class);/ 创建Intent 对象PwdDAO pwdDAO =new PwdDAO(Login.this); / 创建 PwdDAO寸象/判断是否有密码及是否输入了密码if (pwdDAO.getCount() = 0 | pwdDAO.find().getPassword().isEmpty() &txtlogin .getText().toStri

11、ng().isEmpty() startActivity(intent);/ 启动主 Activityelse /判断输入的密码是否与数据库中的密码一致txtlogin .getText().toString() if (pwdDAO.find().getPassword().equals(startActivity(intent);/ 启动主 Activityelse /弹出信息提示Toast.makeText (Login. this ,”请输入正确的密码!,Toast. LENGTH_SHORTshow();txtlogin .setText( );/ 清空密码文本框 );2:主界面:用

12、户登入后进入主界面,主界面包括软件的所有功能图标:新 增收入,新增支出,我的收入,我的支出,收支便签,数据管理,系统设置及 退出。用户可根据需求选择对应图标。数据传输:在于各个功能模块交互时,使用 Intent传输用户的id以便保 存、读取相关的用户信息。把 0utliHit 53?-? xml0 Lin es rLay o ut H ReletiviL3yc?urtI Abi TextV i w; Oftring/addo.JmogoVicws id/addin|Ab TioxtViows Ofstring/addi.iJmcgcViiew id/addout_ Rei tiL ay Lit

13、|口t TextV iiew: Ostri n g/outa1 rn 3i q eVi ew: 0*id/inicfo|口D TextV few: stri n q /i n acs. u-JmcjeView1;q*id/outirio 1 R &lV9 L ay o ut|A&| TextV iew:。唯tri ng/auto j lmageVi#w!-Lj| TextVi&w:ri g/ihow.1 maicje?Vilefwj id/fljcj |3_ R &1 EiL ayo ut|Abi| T?KtVng/iyisetImaigeVienAir!3t|Ati| str; n g /t

14、1 witTmNg钟争干跳转部分代码:public void onItemClick(AdapterView arg0, View argl,int arg2, long arg3) Intent intent =null ; / 创建 Intent 对象switch (arg2) / 界面跳转case 0:intent =窗口初始化IntentstartActivity(intent);breakintent =口初始化IntentstartActivity(intent);breakintent窗口初始化IntentstartActivity(intent);breakintent =窗口

15、初始化IntentstartActivity(intent);breakintent =new Intent(MainActivity./ 打开this , AddOutaccount. classAddOutaccount);/ 使用 AddOutaccountnew Intent(MainActivity.this , Addinaccount. class);/ 使用 AddInaccount 窗/ 打开AddInaccount=new Intent(MainActivity.this , Outaccountinfo. class);/使用 Outaccountinfo/ 打开Outa

16、ccountinfonew Intent(MainActivity.this , Inaccountinfo. class);/ 使用 Inaccountinfo/ 打开Inaccountinfonew Intent(MainActivity.this , Showinfo. class ); /使用Showinfo窗口初始化IntentstartActivity(intent);/ 打开 Showinfointentbreak ;case 5:=new Intent(MainActivity.this , Sysset. class 力使用 Sysset 窗口初始化 IntentstartA

17、ctivity(intent);/打开 Syssetintent =break ;case 6:new Intent(MainActivity.this , Accountflag. class ); / 使用 Accountflag 窗口初始化IntentstartActivity(intent);/打开 Accountflagfinish();break ;case 7:/ 关闭当前Activity3:新增支出界面:此界面的功能是添加用户支出的信息,用户可添加的信 息包括金额、时间、类别、地点、备注。其中时间可以读取系统当前时间,更 加方便。类别提供购物、正餐、零食水果、药效、外卖、打的、

18、其他一些选项。这一界面总体使用LinearLayout布局,时间,金额等及其输入框使用RelativeLayout 布局。类别对应的下拉框使用 Spinner 。在 Cutlinfi 抬 I口 B =上?=? m1一 | LinearL3yQut:色 lidt6E LnearLayoutAb TcJitVicw;新道支出/ _ Unearlayout|_b_| R lativLdyd ut|Ab| TcxtView + id/tflrMoneyIt EditTest: flJ-i-1d/txtlrMoney|Ab| TevtView: C(p + id/tjTrTim f PH EditTex

19、t? iid/brtlrTme |I EditTcxti + id/txtlrMark TfMtView: (+id/tvTrTypi?|t| Si pinner di+id/s-plnlype11 IL d iit I ext:4 i d/tXtlrAd d re ss|Ab| TTxtVieMvz + id/tAd dr cs s|Ari| TxtVieTM +;d/t4rMark/ LnearLayioutj RHativ电LayoutI1 1 I B u tton: +! J/blrHCfl n cel|三| Button- 4-id/btr:SdVe保存按钮对应代码:若金额不为空,点

20、击保 存按钮则保存数据,显示“【新增支出】数据添 加成功”,若金额为空,则提示:“请输入支出金 额”。btnSaveButton .setOnClickListener(new OnClickListener()Overridepublic void onClick(View arg0)String strMoney= txtMoney .getText().toString();if (!strMoney.isEmpty() / 判断金额不为空/ 创建 OutaccountDAO 对象OutaccountDAO outaccountDAO= new OutaccountDAO(AddOuta

21、ccount. this );Tb_outaccount tb_outaccount= new Tb_outaccount(outaccountDAO.getMaxId() +1,Double. parseDouble (strMoney),txtTime .getText().toString(),spType .getSelectedItem().toString(), txtAddress .getText().toString(),txtMark .getText().toString();outaccountDAO.add(tb_outaccount);Toast. makeText

22、 (AddOutaccount. this ,新增支出数据添加成功! ,Toast. LENGTH_SHOREhow();finish(); else Toast. makeText (AddOutaccount. this,”请输入支出金 额!,Toast. LENGTH_SHORTshow(););取消按钮对应代码:讲数据全部重置为零后退出。btnCancelButton .setOnClickListener( new OnClickListener()Overridepublic void onClick(View arg0)txtMoney .setText( ); /设置金额文本框

23、为空txtMoney .setHint( 0.00 ); /为金额文本框设置提示txtTime .setText( ); /设置时间文本框为空txtMoney .setHint( 2011_01_01);txtAddress .setText();txtMark .setText();spType .setSelection(0);finish(););这一界面总体使用RelativeLayout 布局。4:新增收入界面:此界面的功能是添加用户收入的信息,用户可添加的信息包 括金额、时间、类别、付款方、备注。其中时间可以读取系统当前时间。类别 提供工资、兼职、奖金、礼金、销售款、报销款等一些选

24、项。LinearLayout布局,时间,金额等及其输入框使用 类别对应的下拉框使用Spinner 。与新增支出界别类同店口让Im鹿|H?-? xml,|- LiiicfliLdyjut. d/ini:m-J 口 LiinearLsayout附| TrtViuw;新塔枚人厂 | LinarlayQLit- r-T| RvlativeLayoLrtAh| T srtVimrf! SEl-idjitvImMsiney 工 E ciitTent +id/btLln Me hey Ab|eHVi&vsG-iddtvInTiiEa1 T EditTcKt +id/tKtnTirn r |Ah| TidVi

25、pw: - id/tvFn Ha nd T I EtJilTcxk +id/lxiln Hendler |Ab| T sartView! - id/tvH rle I EditTest +id/txt!n Miark 期| Tzirtnipw: -id;tvLFiTypESpinner. *id/spFrType, LinhartayniftRulat;ve-i3yoMtr Button: S!+id/otTiJr_ancel 二/ Button; + i d/btnlrS ave5:我的支出界面:用于用户查询支出信息,在新增支出界面添加信息后, 在此界面就可以进行显示,同时也可点击进入进行修

26、改删除操作。这一界面主要是使用ListView控件1K,1QO11 I )8:44我的支出我的支出1 孙去 10。元 2017-12-2221 外卖 ISO元 201712-23却零食水果5。0元 2017-12-23n est parfait生Outline/口 匚?=? xmlj _ LinearLayoirt: 04-id/terninfeJ LinedrLayout: tid/llnearLayciutl 一RelativeLayout画TextView:我的支1口 LinearLaycut: + id/linearLdcut2Listview:(3)+ id/lvoutaccount

27、i nfoprotected void onCreate(Bundle savedInstanceState) super .onCreate(savedlnstanceState);setContentView(R.layout.outaccountinfo ); / 设置布局文件Ivinfo = (ListView) findViewById(R.id.Ivoutaccountinfo ); / 获取布局文件中的ListView 组件ShowInfo(R.id. lvoutaccountinfo ); / 调用自定义方法显示支出信息lvinfo .setOnItemClickListene

28、r( new OnItemClickListener() / 为 ListView添加项单击事件/ 覆写 onItemClick 方法Overridepublic void onItemClick(AdapterView parent, View view,int position, long id) String strInfo = String.valueOf (TextView) view).getText();/ 记录支出信息String strid = strInfo.substring(0, strInfo.indexOf(T ); /从支出信息中截取支出编号Intent inte

29、nt =new Intent(Outaccountinfo.this , InfoManage. class ); / 创建 Intent 对象intent.putExtra(FLAG new String口 strid,strType ); /设置传递数据startActivity(intent);/ 执行Intent 操作);privatevoid ShowInfo( intintType) /用来根据传入的管理类型,显示相应的信息String口 strInfos =null ; /定义字符串数组,用来存储支出信息ArrayAdapter arrayAdapter =null ; / 创建

30、 ArrayAdapter对象为strType 变量赋值strType = btnoutinfo ; /this ); / 创建OutaccountDAO 对象OutaccountDAO outaccountinfo =new OutaccountDAO(Outaccountinfo./获取所有支出信息,并存储到List泛型集合中int )List listoutinfos = outaccountinfo.getScrollData(0,( outaccountinfo.getCount();strInfos =new Stringlistoutinfos.size();/设置字符串数组的长

31、度int i = 0;/定义一个开始标识/遍历List泛型集合for (Tb_outaccount tb_outaccount : listoutinfos) /将支出相关信息组合成一个字符串,存储到字符串数组的相应位置strInfosi = tb_outaccount.getid() +| + tb_outaccount.getType() + +String. valueOf (tb_outaccount.getMoney() +元+ tb_outaccount.getTime();i+;/标识加1/使用字符串数组初始化 ArrayAdapter 对象arrayAdapter =new A

32、rrayAdapter(this , android.R.layout.simple_list_item_1 , strInfos);lvinfo .setAdapter(arrayAdapter);/为ListView列表设置数据源6:我的收入界面:用于用户查询支出信息,在新增收入界面添加信息后,在此 界面就可以进行显示,同时也可点击进入进行修改删除操作。我的收入11 工资 1000 Ote 2017-12 232| 兼啦 100Q 元 201 M 2-22ti csf parfait生Outlme留-彳xmlLJ Li near Layout LinedrLayout + id/linea

33、rLayoutlJ 回 RelativeLayoutAb | TextView;我的收入 LinearLayout 4 id/lirerLayout27:收支便签界面:这个界面可以添加便签,记录支出、收入信息。相当于 备忘录功能。E Outline 区 VI 时I ST,IIHTIII ! Ill B-Hi- LinearLayoiJt; +id/iternflagj LinearLayoutl4bl Textview:新埸便筌j |Li nearLayout工 EdrtText + id/txtFlag| LinearLayout因 Relative La yo ut|l.| Button:

34、 + id/btnFhgCancelI1 - Button; +id/btnFhgSavebtnflagSaveButton .setOnClickListener(new OnClickListener() /为保存按钮设置监听事件Override public void onClick(View arg0) String strFlag =txtFlag .getText().toString();/获取便签文本框的值if (!strFlag.isEmpty() /判断获取的值不为空FlagDAO flagDAO =new FlagDAO(Accountflag. this);/仓U建Fl

35、agDAO对象Tb_flag tb_flag =new Tb_flag(flagDAO.getMaxId() + 1, strFlag);/ 创建Tb_flag 对象flagDAO.add(tb_flag);/添加便签信息/弹出信息提示Toast.makeText(Accountflag.this , K新增便签数据添加成功!,Toast. LENGTH_SHORTshow();elseToast.makeText(Accountflag.this ,请输入便签! ,Toast.LENGTH_SHOREhow(););btnflagCancelButton.setOnClickListener

36、(new OnClickListener() /为取消按钮设置监听事件Overridepublic void onClick(View arg0) txtFlag .setText(); 清空便签文本框);8:数据管理界面:主要用来管理支出、收入、便签信息。当点击支出信息、收 入信息、便签信息后,就会显示对应的信息,可点击进入管理界面,对信息进 行修改或删除。这一界面在顶部设三个按钮,分别显示支出信息,收入信息,便签信息 用ListView控件来显示。在出信息收入信息便签信息支出信息收入信急便转佶息11当当当11工资 1 DM.Ote 2012-23凰红红火火恍恍惚惊31者啦啦普啦啦告啦2|

37、兼眼 10。元 2017-12-22tf ptJ rfa itrt parfaitl数据管理支出信息收入信息使签信息1 削更 1Q。,。元 2017-12-222| 外或 10。元 2017-12-233|零食水果 50.0元2017-12-234圈物 0。元2017*12-23rr est pa ifait把 Outline 风?=? xmlJ _ Ling 3rlay out: + id/iterninfoJ 同 RelatlveLayoutButton: +id/b-tnoutinfoch Button: -i-id/btnirinrfo Button: +id/btnfhgiMQJ L

38、inearLayout: -kid/linearLyout2Li st View: + id/lvinfobtnoutinfo .setOnClickListener(new OnClickListener() /为支出信息按钮设置监听事件Overridepublicvoid onClick(View arg0) showInfo(R.id.btnoutinfo ); 显示支出信息);btnininfo .setOnClickListener( new OnClickListener() / 为收入信息按钮设置监听事件Overridepublic void onClick(View arg0)

39、 showInfo(R.id.btnininfo ); / 显示收入信息);Override public void onClick(View arg0) showInfo(R.id.btnflaginfo ); / 显示便签信息);Ivinfo .setOnItemClickListener(new OnItemClickListener() / 为ListView添加项单击事件/ 覆写 onItemClick 方法 Overridepublic void onItemClick(AdapterView parent, View view,int position, long id) Str

40、ing strInfo = String.valueOf (TextView) view).getText();/记录单击的项信息String strid = strInfo.substring(0, strInfo.indexOf(| ); / 从项信息中截取编号Intent intent =null ; / 创建 Intent 对象if ( strType = btnoutinfo | strType = btnininfo ) / 判断如果是支出或者收入信息intent =new Intent(Showinfo. this , InfoManage. class ); / 使用 Info

41、Manage 窗口初始化 Intent 对象intent.putExtra(FLAG new String口 strid,strType ); / 设置要传递的数据 else if ( strType = btnflaginfo ) / 判断如果是便签信息intent =new Intent(Showinfo. this , FlagManage. class ); / 使用 FlagManage 窗口初始化 Intent 对象intent.putExtra(FLAG strid); / 设置要传递的数据startActivity(intent);/ 执行 Intent ,打开相应的 Acti

42、vity);9:系统设置界面:用于用户密码的修改。修 改后下一次登录需要输入新的密码。D匐自入 H) * Al JU OS 30密码管理请输入密码收匿入密码.证皆 取消由 Outline 陞 |百 xmlJ bl KelativelayoutI Abi TextView: *d 曲M d,I_i EdrtTest: + id/t3ftPwd|j_h| Button; + id/btrisetCarcel Button; O 4-id/btnSet以下是两个按钮对应的代码btnSet .setOnClickListener( new OnClickListener()Override public void onClick(View arg0)PwdDAO pwdDAO=new PwdDAO(Sysset. this );Tb_pwd tb_pwd= new Tb_pwd( txtpwd .getText().toString();if (pwdDAO.getCount()=0)pwdDAO.add(tb_pwd); else pwdDAO.update(tb_pwd);Toast. makeText (Sysset. this ,“密码设置成功!”,Toast

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论