目 录
1.引言 1
1.1相关背景 1
1.2目的和意义 2
2.Android简介 2
2.1安卓技术 2
2.2 SQLite简介 2
3.可行性分析 3
3.1经济可行性分析 3
3.2技术可行性 3
3.3业务流程分析 3
3.4系统需求分析 4
3.5性能需求分析 5
4.数据库设计 5
4.1 数据库的概念 5
4.2 数据库的选择 5
4.3 数据库表的描述 5
5.系统设计与实现 7
5.1详细设计与实现 7
6.系统测试 17
6.1测试目的及意义…17
6.2测试方法说明…17
6.2测试详情…18
7.总结 20
参考文献 20
3可行性分析
3.1经济可行性分析
因为这个App是一个比较小的软件,所以在开发过程中并没有需要过多的经费或者投入,有开发必备的电脑和测试工具以及开发环境即可,开发的系统不是非常的复杂,并且应该让操作简单易行。开发过程是由一个人独立完成的,用时大概在两个月左右,需要投入的成本费大概是由人工费用,加上电脑设备以及开发软件构成的。
3.2技术可行性分析
由于该系统是小型的理财记账系统,并且是做一个让用户随身携带的在手机端的一个应用软件,所以采用的是Android技术进行开发,而且Android平台是目前世界上最成功的移动终端设备开发系统之一。并且Android平台的开源性也让开发过程不受很大的阻碍,这大大提高了系统设计的便捷性。所以对于个人理财系统来说,使用Android技术进行开发是完全可以的。
3.3业务流程分析
3.3.1 系统业务流程分析
使用者在第一次使用该软件时必须注册一个用户名才能进行操作,在注册了个人用户名密码之后进行登录,用户登录后就可以使用App里面的所有功能了。
用户成功登陆之后,在界面下方有四大功能模块分别是记账功能,报表功能,资金管理功能,更多功能。当用户登陆之后会有四个界面展示在用户面前,之后用户可以根据自己想要使用的功能进行具体的操作。记账功能可以将用户具体账目变动情况详细记录而且也可以将用户每日或者每一固定时间的账户收入以及支出情况详细的呈现出来,并且可以查看当天账单的历史记录。在用户记账之后,所记录的收入和支出可以通过报表功能以报表的形式详细、直观的展现在用户面前。资金管理功能可以添加资金账户并且可以对这些账户进行具体操作比如查看、转账等。更多功能里可以通过点击头像进行修改用户信息以及退出登录,并且有资金提醒等一些其他操作。
通过以上功能的具体划分不仅可以满足用户对自己账目流转的管理而且以图表的形式把账目流转的具体情况呈现出来,也可以管理多个资金账户进行相应的具体操作。可以说,基于Android平台开发的个人理财APP应用在这一类应用软件当中取得了新的突破。
在设计了整个系统的功能逻辑之后绘制了个人理财App的系统流程图,系统业务流程图如图1所示:
图1 系统业务流程图

3.4系统需求分析
去设计维护一个App,首先最重要的就是去明确一个确切而又详细的目标,有一个合理的系统规划。通过对用户目前的一些需求,在这些方面下手,才能做好一个用户满意的东西。系统规划就是对系统的方向和内容进行一个提前的掌握以及设计,这样的话开发者才会对这个软件的设计有一个初步的把控和合理的分析。所以通过对目前一些app的查看以及对用户的一些调查来说,大致明确了一个方向,需要有四个模块来支撑整个App的运行。
首先对于管理员,也就是用户个人来说,应该有一个登录注册界面来让用户登录个人的账户,并且假如用户注册了多个账户,每个账户的内容也应该是不一样的,得在后台记录每个用户的资金状况。
其次,最重要的肯定是用户对于记账信息的管理,包括对用户每天资金流转具体情况的输入,并且应该让这些信息显示在用户的面前,这样用户才能看到自己每一天的收入支出情况,这是用户最关心的东西。
此App增加了一个功能就是报表显示用户当月的收入支出情况,收入和支出会用报表的方式向用户展示在报表界面中,非常的直观。所以应该设计一个报表模块来显示用户的收入支出情况。
因为用户的资金账户不可能只有一个,比如用户有支付宝、银行卡等等一些账户,添加收入支出的时候具体到哪个账户都得分清楚,还有就是其他的某些账户比如说现金。所以应该设计一个资金管理界面,让用户添加资金账户,并且管理账户的余额情况,在用户记账的时候每笔收入支出用的是哪个资金账户都可以选择。
因为主要是做Android系统的开发,此软件应该使用主流的使用java语言编写代码的Eclipes或者目前安卓开发使用较多的Android Studio。Eclipes只是一个开发环境,还需要有Java SDK。此外,因为开发的是Android平台的应用系统,所以安卓的SDK也是必须要的,这是安卓的开发环境必须的一些工具。
此外不管是在开发中还是在开发结束后都要时刻对做好的App进行检测,所以还需要Android的虚拟机来进行测试,Genymotion是一款最稳定的不容易崩溃而且一直能连接到的虚拟机,还有就是夜神模拟器或者是逍遥模拟器,二者都可以选择但是有时会断开连接,所以推荐使用Genymotion,本文转载自http://www.biyezuopin.vip/onews.asp?id=13842当然真机也是可以当做测试机的。
简单地说,上述的各种开发中所必须的工具全部准备好之后才开始整个Android的开发,然后准备好一个测试机,这样才能开始一个完整的Android平台应用程序的开发。

下面是记账模块中的部分代码:
public void updateRecord() {AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());View v = View.inflate(getActivity(), R.layout.account_update_dialog, null);builder.setView(v);//  获取  收入/支出  的spinnerfinal List<String> list = DataUtils.getType(mDatas.get(index).inorout);final AlertDialog dialog = builder.create();final Spinner type = (Spinner) v.findViewById(R.id.account_update_dialog_type);ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,list);// 设置 spinner 文字居中type.setGravity(android.view.Gravity.CENTER);type.setAdapter(adapter);// 设置默认的 类型for (int i=0; i<list.size(); i++) {if (list.get(i).equals(mDatas.get(index).name)) {type.setSelection(i, true);}}//  获取下拉选择框 选中 的 内容type.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent,View view, int position, long id) {update_name = list.get(position);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});// 设置默认的金额final EditText money = (EditText) v.findViewById(R.id.account_update_dialog_money);money.setText(mDatas.get(index).money+"");money.setSelection(money.getText().toString().length());Button cancel = (Button) v.findViewById(R.id.account_update_dialog_btn_cancel);Button enter = (Button) v.findViewById(R.id.account_update_dialog_btn_enter);cancel.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});enter.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Double upMoney = Double.valueOf(money.getText().toString());Account account = dao.findAccountById(mDatas.get(index).account_id);if (mDatas.get(index).inorout == 1) {if (upMoney <= 0) {Toast.makeText(getActivity(), "输入的金额必须大于0", 20).show();return;}}else {if (upMoney >= 0) {Toast.makeText(getActivity(), "输入的金额必须小于0", 20).show();return;}}account.money = account.money + upMoney - mDatas.get(index).money;//  更新资金表dao.updateAccount(mDatas.get(index).account_id, account.money);//  更新记录表dao.updateRecord(mDatas.get(index).id, update_name, upMoney);showMonthView(SharedpreferencesUtils.getBoolean(getActivity(), "login_flag",false));//通知其他页面同步更新accountListener.setAccountListener();accountListener.setFormListener();dialog.dismiss();}});dialog.show();}
















基于Android的个人理财APP的设计与实现相关推荐

  1. 基于Android的理财app开发,基于Android的个人理财系统的设计与实现.doc

    毕业论文(设计)题目: 基于Android的个人理财系统 ---设计与实现 学生姓名: 学 号: 专业班级: 计算机科学与技术092班 指导教师: 职称 副教授 指导教师: 职称 起止时间: 目 录 ...

  2. 基于Android的个人理财通的设计与实现

    基于Android的个人理财通的设计与实现 设计目的 使用Android 5.0技术开发一个个人理财通系统,通过该系统,可以随时随地的记录用户的收入及支出等信息. 开发环境 操作系统: Windows ...

  3. 基于android的个人理财的论文,基于Android的个人理财系统的设计与实现毕业论文.doc...

    毕业论文(设计)题目: 基于Android的个人理财系统 ---设计与实现 目 录 诚 信 声 明3 本科毕业论文(设计)选题审批表4 本科毕业论文(设计)任务书5 本科毕业论文(设计)开题报告7 本 ...

  4. android 优秀app界面设计,基于Android系统的App界面设计.doc

    基于Android系统的App界面设计 摘 要:智能手机时代的来临改变了大多数人的生活习惯,时至今日智能手机已经成为了人们工作生活中的一部分,在工作生活中发挥着重要的作用.App作为智能手机应用程序的 ...

  5. android 个人理财系统,基于Android的个人理财系统的设计与实现

    摘要: 在当今,全球经济的蓬勃发展带来了金融理财领域的巨大变革和创新,新的金融理财工具和理财观点层出不穷.对个人而言,从认识钱到管理钱(个人理财)是每个人的必修课.在Android系统应用如此火热的情 ...

  6. 基于android的理财软件技术,基于Android的个人理财系统的设计与实现

    摘要: 在当今,全球经济的蓬勃发展带来了金融理财领域的巨大变革和创新,新的金融理财工具和理财观点层出不穷.对个人而言,从认识钱到管理钱(个人理财)是每个人的必修课.在Android系统应用如此火热的情 ...

  7. android 个人理财系统,基于Android的个人理财助手的设计与实现

    在个人理财越来越受到重视的今天,越来越多人使用软件进行理财.理财软件的发展在不同时期表现有不同技术的特点,例如互联网的发展催生了不少基于网站的个人记账和理财服务.然而一般人的消费是突发性的,这时用网站 ...

  8. 基于Android的同城交友APP的设计与实现

    #weichat 整个项目使用到的技术如下 Spring, hibernate,memcache,Netty,protobuf,FastDFS,GreenDao. 核心通信部分是netty 和prot ...

  9. 基于Android的旅游app的设计与实现

最新文章

  1. WmS详解(一)之token到底是什么?基于Android7.0源码
  2. python 元组和字典的返回值后面有个L是什么意思
  3. a good approach to make demonstrations at the baidu netdisk
  4. 美国物联网平台提供商Evrythng获得2480万美元B轮融资
  5. pyspark map代码示例
  6. pc端js获取当前经纬度_Swiper 免费开源、功能强大的触摸滑动 js 特效插件
  7. 30年职场生涯的感悟[转]
  8. EditText 空指针问题
  9. 3.Your First Machine Learning Model
  10. 使用apt-get autoremove造成的系统无法开机
  11. webdriver原理
  12. 中专计算机应用基础知识点归纳,《计算机应用基础》各章知识点归纳大全
  13. 兴业数金牛客java笔试题
  14. 如何线上推广引流?百度知道实现精准引流
  15. playwright之贴吧签到
  16. 艾伦·麦席森·图灵——如谜的解谜者
  17. python pip语句
  18. 单片机外围模块漫谈之四,USB总线基本概念
  19. Uipath Try Catch 妙用
  20. 抓取网页数据的几种方法

热门文章

  1. android q beta版本,android q beta6测试版
  2. Eclipse C++下OpenCV工程项目的模板建立
  3. 手机屏幕提词器软件哪个好用?快来看看这几个手机提词器
  4. 乔哈里资讯窗(转载)
  5. 烽火推系统源码,抖音矩阵系统,抖音SEO源码独立部署tell
  6. MySQL高可用之MHA架构企业实战
  7. 闭包真的还会造成内存泄露吗?你不知道的闭包与垃圾回收!
  8. 《统计学习方法》第10章 隐马尔科夫模型 HMM算法 纯Python代码实现 + 前后向算法矩阵形式 + 课后习题答案
  9. java 文本语义相似度计算,NLP 语义相似度计算 整理总结
  10. java 编码 正弦计算器_Java 简单功能计算器代码