安卓app源码和设计报告——简易记账本

news2024/11/24 22:46:54

课 程 设 计(实训)说 明 书

题目实现简易记账本功能
专 业
班 级
学生姓名
同组学生
指导老师

课程设计(实训)评语

学生姓名 专业 班级 2

题目 实现简易记账本功能

评语:

成绩:

及格不及格
出勤20%
实践过程20%
实践结果20%
实践报告40%
合计

教导教师(签字)

年 月 日

课程设计(实训)任务书

专业 班级 姓名

题目 实现简易记账本功能

题目来源 教师指定

目的意义1)巩固和掌握android应用程序开发的基本理论和知识,加深对课程知识的理解;2)掌握基本android应用程序的设计方法,培养学生设计、分析问题和解决问题的综合能力;3)培养学生应用程序设计的思维方式和步骤,培养学生分析能力以及独立学习的能力;4)掌握对android应用程序开发环境的用;

设计任务 设计一个基于Android的记账本,此记账本包括:注册、登录、修改登录密码、新增收入、收入明细功能、新增支出、支出明细功能。

  1. 注册功能:在注册页面填写注册姓名、密码、邮箱、电话等信息后,完成注册。
  2. 登录功能:用户注册成功后,点击登录按钮,在登录页面输入用户名和密码,登录成功。 3)修改登录密码功能:用户登录成功后,点击修改密码按钮,在页面中输入原始密码,再两次输入的修改的密码,则修改用户密码成功。 4)新增收入功能:点击新增收入按钮,弹出新增收入页面,输入金额、日期、收入类型、付款方和备注等信息后,点击保存按钮,页面新增的收入信息保存成功,页面跳转回新增收入页面,用户可以再次新增收入。 5)收入明细功能 6)新增支出功能:点击新增支出按钮,弹出新增支出页面,输入金额、日期、支出类型、付款方和备注等信息后,点击保存按钮,页面新增的支出信息保存成功,页面跳转回新增支出页面,用户可以再次新增支出。 7)支出明细

课题组长 无

指导教师

工 作 计 划 书

目的要求:

(1)注册功能

(2)登录功能

(3)修改登录密码功能

(4)新增收入功能

(5)收入明细

(6)新增支出功能

(7)支出明细

日程安排:

序号内    容学时
1需求分析2
2项目设计6
3编码调试12
4整理并撰写设计说明书4
合 计20

主 要 内 容

目 录

  1. 需求分析……………………………………………………
  2. 概要设计………………………………………………
  3. 详细设计………………………………………………
  4. 数据库设计………………………………………………
  5. 代码…………………………………………………………
  6. 课程设计总结………………………………………………
    《实现简易记账本功能》课程设计
    一、需求分析
    1. 开发背景和意义

由于消费水平的提高,人们对于日常的消费情况很难有一个比较清晰调理的分析,因此本“记账本”APP作为一款日常生活中对生活开销进行统计的工具。它可以将生活中每天收入或支出的费用进行统计。在收入或支出类别中,细化多个分类,用户在添加账目的时候,可以根据费用的类别进行选择,这样大大提高了生活中开支的细化,让账目一目了然、清晰。每添加不同开支类型的账目,应用都会对开支做个收入或支出备注总结,能够统计出开支流水的走向。有了“记账本”,生活中的柴、米、油、盐等各种花销,一切都掌握在自己手中。

2. 系统需求概况

该系统主要具有如下功能:

1)注册功能

2)登录功能

3)修改密码功能

4)新增收入功能

5)收入明细功能

6)新增支出功能

7)支出明细功能


  1. 概要设计


三、详细设计

1、用户注册模块

注册

注册成功

判断用户名、昵称、密码是否合格

输入用户名、昵称、密码


  1. 用户登录模块
    登录

    输入用户名、密码



    查询用户名、密码是否一致

     

  1. 用户增加模块
    用户增加

    增加成功
    判断格式是否合格
    输入收入/支出
    明细、金额
    增加收入/支出

  1. 用户查询模块

查询成功

输入要查询的内容

用户查询

查询支出/收入


  1. 数据库设计与实现

这里以用户注册登录为例,支出和收入方法相同不再赘述。

1.首先创建一个类,继承MySQL的类

public class MyDBHelper extends SQLite0penHelper {

private static final String DBNAME = "financialTest.db" ;

private static final int VERSION = 1;

创建一个构造方法,用来初始化信息

public MyDBHelper(Context context) { super(context,DBNANE,factory: null,VERSION);}

  1. create方法用来创建库,
    public void onCreate(sQLiteDatabase db) {
    db.execSQL("create table tb_userinfo(id integer primary key autoincrement , name varchar(10) , pwd varchar(15),email varchar(50),phone varchar(11))”);
  2. 创建这个类的实例

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setcontentView(R.layout.activity_register);

initview();

btnRegister();

btnCancel();

}

private void initView() {

mhelper=newMyDBHelper(context:RegisterActivity.this);

db=mhelper.getWritableDatabase()

};

public void onclick(View v) {

db.insert( table: "tb_userinfo" ,nullColumnHack: null, values);

}

然后数据库创建成功啦

  1. 代码
  2. 注册页面
    点击注册按钮


进入到注册页面 输入账号,昵称,密码


点击注册,就注册成功啦!
部分代码如下:


2.登录页面
输入:用户名和密码。
处理:
(1)用户登录窗体启动。
(2)用户填写用户名并输入密码。
(3)从操作人员表中检查是否有相应的用户名和密码。
(4)如果用户名或密码错误,进行提示。
(5)如果输入的用户名和相应密码正确,则根据该用户的权限类别进行权限设置。
(6)进入主控制平台。
密码错误时,提醒密码错误


密码正确时


点击登录 进入主页面


部分代码如下:


3.添加页面
如果想要添加新的支出/收入,请点击添加键,进入到添加页面


这里我想添加收入,卖了一份午餐,收入十元,然后点击保存键


再查看时,就有了午餐十元这一条信息!代表添加成功啦!
部分代码如下:

  1. 修改密码页面

在主页面找到我的,点进去

点击修改密码

将您的旧密码与新设置的密码输入到一一对应的位置,点击保存键,就修改成功啦!

部分代码如下:

还有一些简易功能,由于篇幅问题,这里不再一一赘述,由图片形式展出

布局方面:

整体采用线性布局为根布局,风格多以蓝色、白色为主,使界面整体整洁舒适,这里以用户登录界面为例展示代码如下:

表单布局如下:

登录按钮:

六、课程设计总结

经过将近一个星期的课程设计,不仅使我将在课堂上学到的东西得到了巩固,并且能够做到学以致用,真正用到了实际的开发项目中,而且也锻炼了我的自学开拓的能力。在此次项目开发中,我设计了四大模块:用户登录管理和用户注册管理以及一些小小的系统设置,如退出、查看等。我学会了如何使用一些基本的UI组件以及简单的UI界面设计,Button按钮的事件监听,页面与页面之间的跳转的Intent实例,熟悉了database Helper 数据库的增、删、改、查的应用等,同时也回顾了以前学习过的课程JAVA、数据库等的知识。当然,此次项目的开发也锻炼了我的精神与能力,在这个过程中,我遇到了很多问题,在问题面前,我先是翻阅书本,未能解决,我们就向其他同学、老师求教或者上网查询,想尽一切办法解决问题。我认为此次课程设计收获满满!这次课程设计的经历,无论是从知识的学习上、解决问题的能力上,还是利用互联网资源学习都使我提高了很多,也成长了许多,这将是我人生中不可抹去的一段宝贵的经历!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArrayList、LinkedList、HashMap

ArrayList 特点&#xff1a;元素有放入顺序&#xff0c;元素可重复 存储结构&#xff1a;底层采用数组来实现的,数组在内存中是需要连续的存储单元的 public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, ja…

计数问题

目录 B.计数问题 思路: 代码: 时间复杂度: 总结: 题目链接: B.计数问题 时间&#xff1a;1s 空间&#xff1a;128M 题目描述&#xff1a; 计算在区间 1 到 n 的所有整数中&#xff0c;数字 x(0 ≤ x ≤ 9)共出现了多少次&#xff1f;例如&#xff0c;在 1到 11中&…

阿里P9大牛整理总结出进阶架构师必备知识:NginxLua开发实战文档

前言 有人调侃我们说&#xff1a; 程序员不如送外卖。送外卖是搬运食物&#xff0c;自己是搬运代码&#xff0c;都不产出新的东西……透支体力&#xff0c;又消耗健康&#xff0c;可替代性极强&#xff0c;30岁之后就要面临被优化的危险……想跳槽&#xff0c;但是更高的平台…

基于遗传算法和非线性规划的函数寻优算法(Matlab代码实现)

目录 1 概述 1.1简介 1.2 遗传算法及其基本步骤 2 部分运行结果 3 Matlab代码实现 4 参考文献 1 概述 1.1简介 现实生活中很多科学计算和工程问题都可以通过建模转化成求函数的优化问题&#xff0c;并求出函数模型在可行域内的最优解&#xff0c;给决策者提供参考。非线…

【AI学习笔记】Error: ffmpeg error (see stderr output for detail)

报错&#xff1a; 原因&#xff1a; 我询问了一下大佬&#xff0c;大佬说让我调试一下ffmpeg库&#xff0c;看本地能不能用&#xff0c;然后又结合了我查看的一些博文及本地环境&#xff0c;推论出我很可能没有配置环境。 由于我conda一个环境&#xff0c;本地一个python3.9环…

Vue按钮(Button)

可自定义设置以下属性&#xff1a; 按钮默认文本&#xff08;name&#xff09;,默认不设置时显示为按钮 按钮类型&#xff08;type&#xff09;&#xff0c;默认default&#xff0c;另外可选primary danger 按钮悬浮变化效果&#xff08;effect&#xff09;&#xff0c;只有t…

TokenFusion 代码

只看语义分割。 # --------------------------------------------------------------- # Copyright (c) 2021, NVIDIA Corporation. All rights reserved. # # This work is licensed under the NVIDIA Source Code License # ----------------------------------------------…

UNIAPP实战项目笔记48 确认支付页面的布局

UNIAPP实战项目笔记48 确认支付页面的布局 实际案例图片 显示确认支付页面布局 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 具体位置见目录结构 完善布局页面和样式 代码 payment.vue部分 payment.vue 确认订单页面布局和渲染 <template><view>…

(六) Docker容器数据卷

Docker容器数据卷一、概述二、作用三、宿主与容器之间映射添加容器卷四、读写规则映射添加五、卷的继承和共享注意点 容器卷记得加入 --privilegedtrueDocker挂载主机目录访问如果出现错误信息&#xff1a;cannot open directory .: Permission denied 解决办法&#xff1a;在…

日本掀起“淘金热”!亚马逊、Ebay、Shopee、Starday先后开炮,卖家如何分食跨境新蓝海?

众所周知&#xff0c;日本电商较欧美等国发展较晚&#xff0c;但日本凭借全球第三经济总量&#xff0c;极高的网络覆盖率、国土面积小、人口集中、物流基础设施成熟等优势&#xff0c;给日本消费者网购创造了完美的环境&#xff0c;近年来网络购物增长极为迅速。路透社报道称&a…

Python——基础知识(1)

前面主要讲解了javaEE的基础知识&#xff0c;基本上可以用servlet写一些简单的网页程序&#xff0c;后续的博客将围绕spring进行讲解&#xff0c;并且其中穿插一些python的知识 变量 命名 和其他的编程语言一样&#xff0c;java的变量命名需要遵循下面几个原则 由数字&…

HCI OPCDE

HCI控制命令由两个字节的OpCode定义&#xff0c;每个OpCode由一个字节的OGF&#xff08;OpCode Group Field&#xff09;和一个字节的OCF&#xff08;OpCode Command Field&#xff09;组成。参考&#xff1a; HCI Command Packet Command的数据包格式如下图&#xff1a; 其中…

GoWeb 进阶的实战项目,基于 Iris 框架实现 JWT 认证(附案例全代码)

1、前言 我们知道&#xff0c;http协议本身是一种无状态的协议&#xff0c;而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证&#xff0c;那么下一次请求时&#xff0c;用户还要再一次进行用户认证才行&#xff0c;因为根据http协议&#xff0c;我们并不能知…

【强化学习论文合集】七.2017神经信息处理系统大会论文(NIPS2017)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

如何制作Docker镜像

一般有两种方式来制作自己的 Docker 镜像 基于现有的 Docker 镜像&#xff0c;安装自己的软件环境后&#xff0c;完成制作从零开始用 Dockerfile 来制作 宿主机环境 Ubuntu 18.04 x86_64 基于现有Docker镜像来制作 首先要获得一个基本的 Docker 镜像 使用 ”docker pull“…

【C++笔试强训】第三天

选择题 1.以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> int main() {char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p;int i;i 8;p a i;printf("%s\n", p - 3); }A 6 B 6789 C ‘6’ D 789 a是数组名&#xff0c;所以指向数组首元…

p4实现负载均衡

实验要求 基于简单版本的等成本多路径转发实现一种负载平衡。实现的交换机将使用两个表将数据包随机转发到两个目标主机之一第一个表将使用哈希函数&#xff08;应用于由源和目标IP地址、IP协议以及源和目标TCP端口组成的5元组&#xff09;来选择两个主机中的一个第二个表将使…

gnn神经网络是什么,gnn神经网络代码

1、gnn什么意思? 指图形神经网络。 生物神经网络主要是指人脑的神经网络&#xff0c;它是人工神经网络的技术原型。人脑是人类思维的物质基础&#xff0c;思维的功能定位在大脑皮层&#xff0c;后者含有大约10^11个神经元。 每个神经元又通过神经突触与大约103个其它神经元…

永磁同步电机(PMSM)磁场定向控制(FOC)及Matlab/Simulink仿真分析

文章目录前言一、FOC的基本原理二、坐标变换2.1.Clark坐标变换2.2.Park坐标变换三、永磁同步电机在同步旋转坐标系下的数学模型四、永磁同步电机磁场定向控制Matlab/Simulink仿真分析4.1.电压开环控制4.1.1.仿真电路分析4.1.2.仿真结果分析4.2.电流闭环控制4.2.1.仿真电路分析4…

两个月吃透阿里P9推荐260页SpringBoot2企业应用实战pdf入职定P6+

前言 都说程序员工资高、待遇好&#xff0c; 2022 金九银十到了&#xff0c;你的小目标是 30K、40K&#xff0c;还是 16薪的 20K&#xff1f;作为一名 Java 开发工程师&#xff0c;当能力可以满足公司业务需求时&#xff0c;拿到超预期的 Offer 并不算难。然而&#xff0c;提升…