第三次团队作业:记账软件软件设计

第一部分数据库设计

 

  1. 部分功能数据流图(Gane-Sarson)

     

     

     

  2. 记账软件顶层数据流图

     

     

     

     

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

posted @ 2017-11-26 21:44  问题都不大  阅读(3731)  评论(2编辑  收藏  举报