IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 移动记账管理系统 -> 正文阅读

[移动开发]Android 移动记账管理系统

资源链接:Android程序记账管理系统(实现日常的记账本功能)-Android文档类资源-CSDN下载目前随着经济的不断发展,各种商品和新型的购物方式,不断的冲击着人们的生活方式和消费方式人们的消费水平更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_47112287/85841032

一、需求分析

?1.系统背景

?????? 目前随着经济的不断发展,各种商品和新型的购物方式,不断的冲击着人们的生活方式和消费方式人们的消费水平明显提高,年轻人对新型消费有着较高的热情,但大多数人花钱没有计划,不会理财。记账是理财的第一步,也是最基本的一种方式。移动记账系统,能随时随地的记账、分析账目记录,并能对消费情况做一个有效的控制,达到理财的目的。随着个人开支不断的变化,对钱的使用也很随便,每到月底都会觉得钱不够花,为了有效减少不必要的开支,作到理财的规划和合理性,我们应该掌握些必要的记账习惯。
本系统主要用于个人的记账,总体任务是实现个人账目的有序化,主要任务是用计算机对个人日常开支进行增、删、改、查;

?2.系统功能结构

(1)功能结构图

(2)模块说明

登录模块:用户在注册成功之后,将数据写入到数据库中,在登录的时候检验,登录信息的正确性,信息正确,则登录成功;

个人收支信息管理模块:用户在登录之后,可以实现添加每日收支记录、修改每日收支记录、删除每日收支记录以及查询每日收支记录,可以有效的实现每日收支记录的增删改查功能;

收支情况汇总模块:可以根据用户输入的相关的收支记录情况,进行汇总,统计用户的支出和收入情况,以此来达到合理理财的目的。

3.系统功能简介

本系统的功能主要是实现收支情况信息的记录和计算:

  1. 账单的录入添加功能,用户可以根据自己的收入支出的实际情况,增加相关的账单收记录,注明钱的用途和来源。
  2. 账单的修改功能,用户可以根据自己实际的金钱支出情况,对于以往的收支记录进行相关的修改;
  3. 账单的统计功能:软件可以根据用户的收支情况进行统计,统计用户的总收入和总开支情况,方便用户进行合理的理财规划。
  4. 登录注册功能:用户必须登录过后才可以进入系统中,一定程度上保护了用户数据的安全性;

二、概念模型设计

1.基本要素(符号介绍说明)

符号元素

说明

实体是客观存在的事物。例如用户、商品、订单、供应商等。数据库的表名就可以做一个实体对象。一个系统是由很多个实体对象构成的,然后它们之间存在一定的关系和属性。

用户实体拥有属性【id、姓名、年龄、电话、身份证号】、商品实体拥有属性【id、商品名称、商品类型、商品价格、商品图片、商品描述、供应商名称】、订单实体拥有属性【id、订单编号、用户名称、商品名称、下单日期】、供应商实体拥有属性【id、名称、地址、联系电话】。

例如用户和商品应该购买关系(一个用户购买多件商品)、订单与商品应该是包含关系(一个订单中包含多件商品)

2.ER

?

?

三、逻辑模型设计

1.ER模型向关系模型转换规则

ER模型向关系模型的转换,实际上就是把ER图转换成关系模式的集合。

规则1(实体类型的转换):将每个实体类型转换成一个关系模式/表,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

规则2(二元联系类型的转换)主键区别

实体间联系是1:1。

实体间联系是1:N。

实体间联系是M:N。

2.转换后的关系模型

?

?

四、物理设计

1.创建数据库的SQL语句或截图

private static final String DB_name="keshe";
private static final String account ="jizhangben";

private static final String DB_NAME = "user.db";

private static final String TABLE_NAME1 = "userTable";

2.创建所有表的SQL语句或截图

private static final String CREATE_TABLE1 = "create table if not exists userTable(_id integer primary key autoincrement,name text,passwd text)";
private SQLiteDatabase db;
private Object userTable;

private static final String CREATE_TABLE1 = "create table? jizhangben(_id integer primary key autoincrement,时间 varchar(20),收入 float,支出 float,备注 varchar(20))";

五、相关界面截图

?

?

?

六、程序关键代码

2.实现相关功能的关键程序语句

查询功能:

final database dbHelper = new database(getApplicationContext());

Cursor c = dbHelper.queryZhangdan();
删除功能:
dbHelper.del(tablename, (int) temp);

getRelationFromDB();
修改功能:
dbHelperRecord.updateZhangdan(id,valueRecord);
增加功能:
dbHelperRecord.insertZhangdan(valueRecord);

3.具体实现代码

查询功能/删除功能:

protected void onCreate(Bundle savedInstanceState) {

??? super.onCreate(savedInstanceState);

??? setContentView(R.layout.activity_chakan);

??? listView=findViewById(R.id.listview);

??? in=findViewById(R.id.shouru);

??? out=findViewById(R.id.zhichu);

??? yue=findViewById(R.id.yue);

??? getRelationFromDB();

??? listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

??????? @Override

??????? public void onItemClick(AdapterView<?> parent, View view, int position, final long id) {

??????????? final long temp=id;

??????????? final String id1= String.valueOf(id);

??????????? AlertDialog.Builder 对话框=new AlertDialog.Builder(chakanActivity.this);

??????????? 对话框.setTitle("删除确认or修改确认");//为对话框设置标题

??????????? 对话框.setIcon(R.drawable.school);//为对话框设置图标

??????????? 对话框.setMessage("您确认删除此条记录吗还是修改这条记录?");

??????????? 对话框.setPositiveButton("删除", new DialogInterface.OnClickListener() {

??????????????? @Override

??????????????? public void onClick(DialogInterface dialogInterface, int i) {

??????????????????? dbHelper.del(tablename, (int) temp);

??????????????????? getRelationFromDB();

??????????????????? Toast.makeText(chakanActivity.this, "记录删除成功!", Toast.LENGTH_SHORT).show();

??????????????? }



??????????? });

??????????? 对话框.setNegativeButton("修改", new DialogInterface.OnClickListener() {

??????????????? @Override

?????? ?????????public void onClick(DialogInterface dialogInterface, int i) {

??????????????????? Intent intent=new Intent();

??????????????????? System.out.println(temp);



??????????????????? intent.setClass(chakanActivity.this,edit.class);

??????????????????? intent.putExtra("id",id1);

??????????????????? startActivity(intent);



??????????????? }

??????????? });

??????????? 对话框.setNeutralButton("取消",null);

??????????? 对话框.create().show();



??? ????}

??? });



}

private void getRelationFromDB() {

??? // TODO Auto-generated method stub

??? final database dbHelper = new database(getApplicationContext());

??? Cursor c = dbHelper.queryZhangdan();

??? String[] 数据 = new String[]{"_id","时间","收入","支出","备注"};

??? int[] to = new int[]{R.id.id, R.id.date,R.id.in,R.id.out,R.id.note};

??? SimpleCursorAdapter 数据适配器 = new SimpleCursorAdapter(this, R.layout.style, c, 数据, to);

??? listView.setAdapter(数据适配器);

??? while (c.moveToNext()){

??????? shouru=shouru+Float.parseFloat(c.getString(c.getColumnIndex("收入")));

??????? zhichu=zhichu+Float.parseFloat(c.getString(c.getColumnIndex("支出")));

??? }

??? in.setText(""+shouru);

??? out.setText(""+zhichu);

??? yue.setText(""+(shouru-zhichu));

??? dbHelper.close();

修改功能/增加功能:

protected void onCreate(Bundle savedInstanceState) {
???
super.onCreate(savedInstanceState);
??? setContentView(R.layout.
activity_add);
???
addmoney=findViewById(R.id.金额);
???
adddate=findViewById(R.id.日期);
???
addnote=findViewById(R.id.备注);
???
addstyle=findViewById(R.id.类型);
???
addrecord =findViewById(R.id.添加按钮);

???
addrecord.setOnClickListener(new View.OnClickListener() {//为按钮设置监听
???????
@Override
???????
public void onClick(View v) {
???????????
if(addmoney.getText().toString().equals("")||adddate.getText().toString().equals("")||addnote.getText().toString().equals("")){
??????????????? Toast.makeText(addActivity.
this, "请将信息填写完整", Toast.LENGTH_SHORT).show();
??????????? }
else{
???????????????
if (adddate.getText().toString().length()!=4){
??????????????????? Toast.makeText(addActivity.
this, "请检查您的日期是否正确,格式为0225", Toast.LENGTH_SHORT).show();
??????????????? }
else {
???????????????????
money = Float.parseFloat(addmoney.getText().toString());
??????????????????? database dbHelperRecord =
new database(getApplicationContext());
???????????????????
final ContentValues valueRecord=new ContentValues();//存储值
???????????????????
if (result.equals("支出")){
??????????????????????? valueRecord.put(
"支出",money);
??????????????????????? valueRecord.put(
"收入",0);
??????????????????? }
else{
??????????????????????? valueRecord.put(
"支出",0);
?????????????????????? ?valueRecord.put(
"收入",money);
???????? ???????????}
??????????????????? valueRecord.put(
"备注",addnote.getText().toString());
??????????????????? valueRecord.put(
"时间",adddate.getText().toString());
??????????????????? dbHelperRecord.insertZhangdan(valueRecord);
??????????????????? Toast.makeText(addActivity.
this, "记录添加成功", Toast.LENGTH_SHORT).show();
??????????????????? Intent intent=
new Intent();
??????????????????? intent.setClass(addActivity.
this,Main2Activity.class);
??????????????????? startActivity(intent);
??????????????? }

??????????? }
??????? }
??? });

?

?

?

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:57:45  更:2022-07-03 10:59:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 5:22:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码