当前位置: 首页 > news >正文

个人收入理财App的设计与实现

目 录
摘 要 I
Abstract II
1绪论 1
1.1选题背景及意义 1
1.1.1 研究背景 1
1.1.2 目的和意义 1
1.2国内外现状和发展趋势 2
1.4 研究主要内容 3
2设计开发所用到的工具和技术 4
2.1系统开发工具 4
2.2 Eclipse的介绍 4
2.3 Android简介 5
2.4安卓技术 5
2.5 SQLite简介 6
3系统分析 8
3.1 经济可行性分析 8
3.2 技术可行性分析 8
3.3 系统业务流程分析 8
3.4 系统需求分析 9
3.5 性能需求分析 10
4系统设计 11
4.1系统总体设计分析 11
4.2系统结构图 11
4.3系统特点 11
4.2数据库设计 12
4.2.1数据库的概念 12
4.2.2数据库的选择 12
4.2.3数据库表的描述 12
5系统实现 14
5.1用户登录模块 14
5.2用户记账模块 17
5.3报表模块 23
5.4资金模块 25
5.5更多模块 28
6系统测试 33
6.1测试目的及意义 33
6.2测试方法说明 33
6.3测试详情 33
6.3.1 登录注册模块 33
6.3.2 记账模块 34
6.3.3 报表模块 35
6.3.4 资金模块 35
7总结 36
参考文献 37
致 谢 38
1.4 研究主要内容
设计内容主要包括系统分析、功能分析、数据库设计、系统测试,具体如下:
1、系统分析
该个人财务管理系统,是一款可以在安卓手机上运行的App。用户通过注册用户名密码登录系统,本文转载自http://www.biyezuopin.vip/onews.asp?id=14331进入以后用户可以将每天的收入支出等消费情况添加到系统内,系统会将收入支出情况显示在界面上,并可以用图表模式显示。
2、功能分析
该系统主要包括登录注册模块,记账模块,报表模块以及资金模块。
(1)登录注册模块:此模块在App的更多一栏中,用户通过点击头像进行登录注册。
(2)记账模块:用户在此栏目中可以添加每天的收入或者支出情况,并会予以显示。
(3)报表模块:收入支出情况都会以图表模式显示在App中。
(4)资金模块:用户在此模块中可以添加诸如银行卡、支付宝之类的资金账户,在记账时可以选择。
3、数据库设计
通过SQL语句建立,存放用户名密码收入支出等数据。
4、系统测试
通过手机对App进行运行以及Bug检测,确保没有数据的错误以及各种Bug。
2设计开发所用到的工具和技术
2.1系统开发工具
个人财务管理系统的开发及运行环境如下所述:
操作系统: Windows7
JDK环境: Java Development Kit version=1.7.0_45
开发工具: Eclipse version=4.2.0
Android Software Development Kit version=4.4.2
Android Developer Tools Build: v22.3.0-887826
开发语言: Java、XML
数据库软件:SQLite
运行平台: Windows
虚拟机:720P(1080x720)

package com.view;

import com.familyfinances.R;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
/*
 * 自定义组合控件
 */
public class MineView extends LinearLayout{

	private ImageView icon;
	private TextView text;
	private ImageView image;
	private MineView mineView;
	
	
	private String mText;
	private int mIcon;
	private int mImage;
	

	public MineView(Context context, AttributeSet attrs) {
		super(context, attrs);
		//获取子元素
		TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MineView);
		for(int i=0; i<ta.getIndexCount(); i++){
			int attr = ta.getIndex(i);
			switch (attr) {
			case R.styleable.MineView_icon:
				mIcon = ta.getResourceId(attr, R.drawable.ic_launcher);
				break;
			case R.styleable.MineView_text:
				mText = ta.getString(attr);
				break;
			case R.styleable.MineView_image:
				mImage = ta.getResourceId(attr, R.drawable.ic_launcher);
				break;
			}
		}
		
		//进行资源回收
		ta.recycle();
		initView(context);
		
	}

	private void initView(Context context) {
		
		View view = View.inflate(context, R.layout.mine_list_view, this);
		icon = (ImageView) view.findViewById(R.id.mineview_icon);
		text = (TextView) view.findViewById(R.id.mineview_text);
		image = (ImageView) view.findViewById(R.id.mineview_image);
		
		icon.setImageResource(mIcon);
		text.setText(mText);
		image.setImageResource(mImage);
		
		//给指定的控件设置   属性
		if(mIcon == R.drawable.ft_cash || mIcon == R.drawable.ft_chuxuka 
				|| mIcon == R.drawable.ft_creditcard
				||mIcon == R.drawable.ft_wangluochongzhi){
			text.setTextColor(Color.parseColor("#ffffff"));
			image.setVisibility(View.INVISIBLE);
		}
		
	}
	
	/**
	 * 创建一个回调接口
	 * @author HelloWorld
	 *
	 */
	public interface MyOnClickListener{
		
		public void setMyClickListener();
		
	}
	
	//声明一个  回调接口的 对象
	private MyOnClickListener myOnClickListener;
	
	
	/**
	 * 把对外调用的方法 传进来 
	 * @param myOnClickListener
	 */
	public void setMyOnClickListener(MyOnClickListener myOnClickListener){
		
		this.myOnClickListener = myOnClickListener;
		
	}

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 【OpenStack云平台】网络控制节点 HA 集群配置
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • 基于node.js+Vue在线电子商务购物商城系统 Element
  • CVPR 2022:Generalized Few-shot Semantic Segmentation 解读
  • d二进制字面
  • 使用docker安装mysql
  • Vue.js入门教程(四)
  • SPA项目实现首页导航以及左侧菜单
  • 【java核心技术】Java知识总结 -- 对象和类
  • 猿创征文|SpringBoot概述及在idea中创建方式
  • 计算机毕业设计python基于django在线课程网站 含资源,考试,论坛等功能
  • Bean 的作用域和生命周期
  • 【博客484】alertmanager-----告警处理源码剖析
  • 第7章 - 多无人机系统的协同控制 --> 无人机模型分析
  • [Unity独立/合作开发]实现背包系统中物品的拾取拖拽掉落还有换位置
  • Android 架构优化~MVP 架构改造
  • Facebook AccountKit 接入的坑点
  • IP路由与转发
  • MySQL数据库运维之数据恢复
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 大数据与云计算学习:数据分析(二)
  • 构建二叉树进行数值数组的去重及优化
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 将回调地狱按在地上摩擦的Promise
  • 前端
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 如何在 Tornado 中实现 Middleware
  • 使用 @font-face
  • 在Mac OS X上安装 Ruby运行环境
  • MyCAT水平分库
  • ###C语言程序设计-----C语言学习(6)#
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (6)设计一个TimeMap
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (NSDate) 时间 (time )比较
  • (动态规划)5. 最长回文子串 java解决
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)http协议
  • ***原理与防范
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .net CHARTING图表控件下载地址
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET分布式缓存Memcached从入门到实战
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET实现之(自动更新)
  • .NET中GET与SET的用法
  • .NET中统一的存储过程调用方法(收藏)