# group4 **Repository Path**: yz227/group4 ## Basic Information - **Project Name**: group4 - **Description**: 第四组软件工程课程设计 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-02 - **Last Updated**: 2024-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # group4 ### 介绍 第四组软件工程课程设计 ## 第一章 引言 ### 1.1 编写目的 随着时代潮流的发展,我国各大手机平台需要不断提升信息化与智能化的水平,来应对日益增长的社会需求。传统的日记本记账效率低下、容易忘记,已不能满足人们的需求。日记本记账并不能柔性地适应复杂多变的应用场景。因此电子信息记录方式也逐渐成为业内人士关注的焦点。针对上述出现的问题,我们小组设计了一个记账系统,可在APP端使用。本文档是对我们的记账系统项目的进一步说明,同时为了规范且完整的展现此项目。 ​此项目APP端主要是简单分析一下自己的需求,对于衣食住行进行分类,然后记录每天的时间,记录下消费的原因,最重要的就是金额了,以及收入进账的记录。做每个月账单统计,分析自己当前的支出和收入;API后端服务器主要是为了完成前后端的交互,接收APP端的数据请求,将数据库数据发送到APP端进行显示。 ### 1.2 项目背景 ​当今随着人们生活质量的提高,消费的方面也越来越多,人们对自己资金消费会越来越乱,有时甚至会觉得自己的钱不知道花到哪里去了。所以有一个记账的软件是很有必要的,把自己一天的消费收入都记录起来,之后可以统计自己的资金出入的明细,这样也可以更好的规划自己资金。为解决很多人在自己的财务管理上的问题,我们小组做了这个记账系统,以便通过记账来解决个人对财务的基本管理。 ### 1.3 开发与运行环境 #### 1.3.1 硬件运行环境 ​ 1、CPU:Intel Xeon E5-2680 2.50GHz 或 Snapdragon 8 Gen 2 Mobile Platform以上 ​ 2、内存大小:2GB 以上 ​ 3、磁盘空间容量:10GB 以上 #### 1.3.2 软件运行环境 ​ 1、操作系统:Windows10、MacOS ​ 2、开发工具:Android Studio ​ 3、数据库:MySQL ## 第二章 总体设计 ### 2.1 系统体系结构设计 ​ 整个记账系统分为用户注册、用户登录、财务记录、收支分析、管理员增删改查信息等功能模块,如图1-1所示: ![系统架构图](./images/系统架构图.png) ​ ### 2.2 APP端时序图 ​ 此系统APP端通过用户注册登录进去,接着用户往系统添加账目信息,由数据库进行存储。存储完成后将信息返回给APP,APP端将数据显示给用户收看。同时用户可进行账目修改,将修改信息输入记账APP,APP将信息返回到数据库中进行存储,然后返回APP修改成功,最后APP将修改信息显示给用户。下面给出记账系统APP端的时序图: ![APP端时序图](./images/APP端时序图.png) ​ ### 2.3 功能描述 #### 2.3.1 登录注册用例图 用户登录注册的用例图如下所示: ![注册登录用例图](./images/注册登录用例图.png) ​ 对用例的说明: ![注册](./images/注册.png) ![登录](./images/登录.png) ![](./images/管理员登录.png) #### 2.3.2 用户账本类别用例图 用户账本类别用例图如下所示: ![账本类别](./images/账本类别.png) ​ 对用例的说明: ![账本类别用例说明](./images/账本类别用例说明.png) #### 2.3.3 用户财务信息用例图 用户财务信息的用例图如下所示: ![财务信息](./images/财务信息.png) ​ 对用例的说明: ![财务信息用例说明](./images/财务信息用例说明.png) #### 2.3.4 用户财务记录用例图 用户财务记录的用例图如下所示: ![财务记录](./images/财务记录.png) ​ 对用例的说明: ![输入图片说明](images/%E8%B4%A2%E5%8A%A1%E8%AE%B0%E5%BD%95%E7%94%A8%E4%BE%8B%E8%AF%B4%E6%98%8E%20.png) #### 2.3.5 用户收支分析用例图 用户收支分析的用例图如下所示: ![收支分析](./images/收支分析.png) ​ 对用例的说明: ![收支分析用例说明](./images/收支分析用例说明.png) ## 第三章 数据库设计 ### 3.1 表名列表 | 编号 | 表名 | 表功能说明 | | :--: | :----------: | :--------: | | 1 | User | 用户信息表 | | 2 | Categories | 类别表 | | 3 | Transactions | 账目表 | ### 3.2 表的详细清单 用户信息表详见表3-2。 | 序号 | 英文字段名 | 中文字段名 | 数据类型 | 是否能为空 | 主键/外键 | | :--: | :--------: | :--------: | :------: | :--------: | :-------: | | 1 | UserId | 用户ID | int | 否 | 主键 | | 2 | Username | 用户名 | varchar | 是 | | | 3 | Password | 密码 | varchar | 是 | | 类别表详见表3-3。 | 序号 | 英文字段名 | 中文字段名 | 数据类型 | 是否能为空 | 主键/外键 | | :--: | :-----------------: | :--------: | :------: | :--------: | :-------: | | 1 | CategoryId | 类别ID | int | 否 | 主键 | | 2 | CategoryName | 类别名称 | varchar | 是 | | | 3 | CategoryDescription | 类别描述 | varchar | 是 | | 账目表详见表3-4。 | 序号 | 英文字段名 | 中文字段名 | 数据类型 | 是否能为空 | 主键/外键 | | :--: | :-----------: | :--------: | :------: | :--------: | :-------: | | 1 | TransactionId | 账目ID | int | 否 | 主键 | | 2 | UserID | 用户ID | int | 否 | 外键 | | 3 | CategoryID | 类别ID | int | 否 | 外键 | | 4 | Amount | 金额 | double | 是 | | | 5 | Date | 日期时间 | datetime | 是 | | | 6 | Description | 备注 | varchar | 是 | | ### 3.3 E-R图 E-R图也称实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。下面是对本次记账系统E-R图的分析: **实体:** 用户、类别信息、账目信息 **实体属性:** 用户:用户ID、用户名、密码 类别信息:类别ID、类别名称、类别描述 账目信息:账目ID、用户ID、类别ID、金额、日期时间、备注 **联系:** 用户和账目信息之间存在“添加”联系,1 : m 用户和类别信息之间存在“选择”联系,1 : n 下面是本次记账系统的E-R图: ![输入图片说明](ER%E5%9B%BE/ER%E5%9B%BE.png) ## 第四章 数据流图 数据流图又名数据功能图表,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 ①首先考虑数据的源点和终点:整个记账系统由用户来操作,用户可通过系统查询自己账目的相关信息,记账系统返回给用户想要的信息。同时用户可以进行记账功能操作,所以用户是数据源点和数据终点。 ②接下来考虑处理:记账系统可以进行记账,因此有一个处理是记账,同时记账系统可以显示用户账目各方面信息,因此另一个处理是生成账单。 其各项分类如下表所示: | 源点 | 终点 | 处理 | 数据流 | 数据存储 | | :--: | :--: | :------: | :------: | :------: | | 用户 | 用户 | 记账 | 查询 | 收支信息 | | | | 生成账单 | 结果 | | | | | | 记账信息 | | | | | | 收支情况 | | ### 4.1 顶层数据流图 顶层数据流图如下所示: ![输入图片说明](%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E9%A1%B6%E5%B1%82%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE.png) ### 4.2 0层数据流图 0层数据流图如下所示: ![输入图片说明](%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/0%E5%B1%82%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE.png) ### 4.3 1层数据流图 1层数据流图如下所示: ![输入图片说明](%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/1%E5%B1%82%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE.png) #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)