第一部分数据库设计
- 部分功能数据流图(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边界类图用于描述系统中所包含的类以及它们之间的相互关系,可以帮助我们简化对系统的理解。它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。边界类是我们初步的构想,还没有将各个边界类的成员及方法设计好,并且,实体类和工具类由于时间关系还没有进行构思,该边界类届时将会根据开发的情况进行适当的改进。