第一部分数据库设计
- 部分功能数据流图(Gane-Sarson)
- 记账软件顶层数据流图
1.1.2 细化记账功能数据流图
1.1.3 再次细化该数据流图
1.1.4 数据流图说明
该记账软件的功能主要分为记收入账和记支出账,记录相应的账单信息后,可以生成账单图表,表格可以在一张表中同时给出收入和支出的账单报告,也可根据用户需求将它们分开展示。
1.2 用户登录数据流图
1.3 查询功能数据流图
1.4 概念数据模型
1.5 物理数据模型
1.6 数据字典
用户表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
U_id | 用户id | int | PK | | 不能为空 |
Con_id | 配置id | int | | FK1 | 不能为空 |
U_number | 登录账号 | varchar(20) | | FK2 | 不能为空 |
U_name | 用户名 | varchar(50) | | | 用户昵称 |
U_gender | 性别 | char(2) | | | 性别可为空 |
U_phone | 电话 | Char(11) | | | |
分类表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
C_id | 类别id | int | PK | | 不能为空 |
type | 类别 | varchar(255) | | | |
配置表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
Con_id | 配置id | int | PK | | 不能为空 |
U_id | 用户id | int | | FK | 不能为空 |
key_ | 配置信息 | varchar(255) | | | 配置信息按照键值对的形式出现 ,类型是varchar(255) |
value | 配置信息的值 | | | | 配置信息的值, 类型是 varchar(255) |
登录表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
U_number | 账号 | varchar(20) | PK | | 不能为空 |
U_id | 用户id | int | | FK | 不能为空 |
U_password | 密码 | varchar(50) | | | 密码要求保密性高 |
消费表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
U_id | 用户id | int | PK | FK1 | 不能为空 |
C_id | 类别id | int | PK | FK2 | 不能为空 |
spend | 消费金额 | int | | | |
date | 日期 | Date | | | 默认系统时间 |
Comment | 备注 | varchar(255) | | | |
收入表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
U_id | 用户id | int | PK | FK1 | 不能为空 |
C_id | 类别id | int | PK | FK2 | 不能为空 |
earn | 收入金额 | int | | | |
date | 日期 | Date | | | 默认系统时间 |
Comment | 备注 | varchar(255) | | | |
货币表
字段名 | 中文名 | 数据类型 | 主键 | 外键 | 说明 |
Cy_id | 货币代号 | Char(3) | PK | | 不能为空 |
Con_id | 配置id | int | | FK | 不能为空 |
Cy_name | 货币名 | varchar(30) | | | |
rate | 汇率 | float | | | 各个国家的汇率不一样 |
第二部分 功能设计
2.1 界面原型
界面的大致框架如上图所示,其中最主要的功能是明细、记账、图表。在软件的右侧面板内,有月份,年份的选项,可以查看相应时间的收入和支出的情况。
明细:在明细中,默认展示的是当前月份的收入和支出情况,并给出在预算基础上消费的圈形比例图,每部分占比代表着不同的消费类型,占比越大就说明该月在该消费类型上的开销就越大。该比例图如下图所示:
记账:选择记账功能会弹出新的记账界面。首先是有收入和支出单选按钮,分别进行收入和支出的信息记录。接着,对话框内有输入金额、类别选择、货币选择,如果两次记账的货币类型不一样,系统会自动按照汇率转换成人民币,时间有年、月、日及具体时间,具体时间为当前时间,其它可按照日历上选择所需要的时间。备注则主要记录该笔账单的其它信息,由用户自由记录。
图表:在右侧面板内选择收入或支出,还可选择报表的类型,报表有柱状图,折线图等,用来统计相应时间内的收入和支出,将情况直观的展现在用户面前。
设置:在设置中,还有如下功能:分类管理,用户可根据自己的实际情况添加自己所需要的类目;账户,包含着账户的基本信息,如头像、ID、昵称、性别、手机号,并且还有退出登录的选项;备份,即将用户的数据备份到本地当中,还原则将用户本地数据还原到软件中;货币,可以添加用户所需货币的代号,并在今后的消费中,可使用其他国家的货币代号进行消费记录,系统会对其转换成相应国家的金额;对于关于和帮助,上面则记录一些软件的基本信息以及帮助信息。
2.2 子模块设计
2.2.1 边界类设计
类名 | 说明 |
MainPanel | MainPanel 是主窗体,左边是一个工具条,右边可分为两个空白的Panel,用来显示不同的功能面板,将明细面板,图表面板,记账面板和设置面板聚合在一起 |
IE_DetailPanel | 明细面板 |
ReportPanel | 图表面板 |
ConfigPanel | 设置面板,将账户面板,分类面板,备份、还原面板,货币面板及帮助面板聚合 |
accountPanel | 账户面板 |
classifyPanel | 分类管理面板 |
recordPanel | 记账面板 |
recoverPanel | 还原面板 |
backupPanel | 备份面板 |
helpPanel | 帮助面板 |
currencyPanel | 货币面板 |
WorkingPanel | 除了MainPanel,其余都是它的子类,需要继承的方法为updata(),addListener() |
2.2.2 UML边界类图
UML边界类图用于描述系统中所包含的类以及它们之间的相互关系,可以帮助我们简化对系统的理解。它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。边界类是我们初步的构想,还没有将各个边界类的成员及方法设计好,并且,实体类和工具类由于时间关系还没有进行构思,该边界类届时将会根据开发的情况进行适当的改进。