• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 信息科技 > 正文

    基于WPF的账单管理程序的设计与实现

    时间:2021-04-06 07:51:36 来源:达达文档网 本文已影响 达达文档网手机站


    打开文本图片集

    摘  要:早期的账单管理大部分都是人工操作,其缺点是耗费大量的人力和时间。为了让用户高效、便捷地管理账单,账单管理程序能实现简单的个人消费管理,它能够记录和统计个人每月的花销,提供良好的历史信息查询功能。本文主要描述使用WPF技术实现账单管理程序,通过典型的三层架构模式进行开发,为每一个层创建一个类库,为用户界面层创建一个WPF项目,具体由逻辑分层实现程序的功能,使用接口来实现层与层之间的解耦,针对账单管理可以达到良好的效果。

    关键词:账单管理程序;架构;WPF

    中图分类号:TP312     文献标识码:A

    Abstract:Most bill management used to be manually conducted with the shortcoming of consuming a lot of manpower and time.In order to enable users to manage bills efficiently and conveniently,the bill management program can realize simple personal consumption management.It can record and count individual monthly expenses and provide good historical information query function.This paper mainly describes how to use WPF technology to implement bill management program through the typical three-tier architecture model to develop,creating a class library for each tier and a WPF project for the user interface layer,specifically realizing the function of the program by logical hierarchy,using interface to achieve decoupling between tiers,which brings good results for bill management.

    Keywords:bill management program;framework;WPF

    1   引言(Introduction)

    隨着计算机技术的不断发展,传统的账单管理出现了很多弊端,特别是人工操作,会带来很多误差,甚至很严重的问题。为了避免上述问题,开发了账单管理程序,该程序能提供的功能包括:(1)显示每月的费用记录;(2)存档支出记录;(3)显示最近的消费底线;(4)花费统计图表;(5)特定时间段内的花费统计图表;(6)显示关于每张账单的信息;(7)可以将账单存档记录导出到文件进行备份;(8)可以在多语言间进行切换,实现多语言功能。

    本程序使用WPF实现其具体功能,通过软件分层架构模式,解决因软件复杂度的增加而带来的开发和维护问题,将解决方案的组件分隔到不同的层中,自底向上分别是用于访问数据的数据访问层、用于处理业务逻辑的中间业务逻辑层、用于呈现用户界面的表示层,重点是结合分层架构中的逻辑分层来实现[1]。

    2 账单管理程序概述(Overview of the bill management program)

    账单管理程序使用三层架构进行开发,开发过程中,每一层会创建一个对应的类库项目,其功能模块分别为账单、图表、存档和杂项。使用TabControl控件来分页显示账单信息,账单页面用一个DataGrid控件显示过去31天的账单记录。用户在底部的文本框中输入账单记录,单击“添加”按钮,输入的账单信息将添加到DataGrid控件中。单击下一页按钮,将会切换到图表页面,该页面使用图表的形式显示账单统计信息,账单管理器主界面如图1所示,账单图表页面如图2所示。

    3  分层结构的实现(Implementation of hierarchical structure)

    3.1   实现数据访问层

    数据访问层提供了一种弹性的与数据库无关的架构,所以可以使用接口来定义数据访问契约。不同类型的数据库通过实现这个接口,来提供特定数据库类型的功能,而业务逻辑层通过调用这个接口来获取数据,不用知道特定数据库细节信息[3]。数据库访问架构如图5所示。

    3.2   实现业务逻辑层

    业务逻辑层实现在BillsBusinessLogicLib项目中,该层实现了与数据访问层相同的架构。将业务逻辑层中将要实现的功能抽象为一个接口,调用方只与接口进行交互,不用关心具体的业务逻辑实现[4]。业务逻辑层与数据访问层紧密联系,同时提供给表示层显示的数据,在业务逻辑层中定义了一个接口和一个实现接口的类,以及一个自定义异常类,如图6所示。

    账单管理业务逻辑接口定义了账单管理系统中将要出现的功能逻辑方法或属性,软件分层的目的在于实现层次分明,层与层之间不能过度耦合,通过定义接口,让调用方只与接口交互,不用关心特定的实现细节[5]。这样的设计方式也便于维护和扩展,例如软件运行一段时间,现有的业务逻辑不能满足业务处理的需求,那么可以通过定义一个新类,实现业务逻辑接口,让调用端无缝的调用新的业务逻辑层,实现层与层之间的解耦。

    3.3   实现表示层

    表示层提供用户界面来与用户交互,表示层可以考虑为一个Windows Forms程序、一个Silverlight客户端或WPF应用程序。表示层将通过业务逻辑层接口来与业务逻辑层交互。通过WPF实现表示层的设计,为了使用户界面更专业,使用了WPFToolkit中的DataGrid控件实现网格的显示,以及一些第三方的图表控件来增强用户界面的显示效果[6]。

    主界面使用了WPF的TabControl构建了Tabbed风格的用户界面,在TabControl控件中,包含了四个TabItem,每一个TabItem存放一项分类,一共有四个分类页面,具体功能如下:

    (1)账单:在DataGrid控件中显示最近31天,也就是一個月以来的入账记录。

    (2)图表:显示某类型账单的最近支付的图表显示。

    (3)存档:在DataGrid控件中显示所有的存档内容。

    (4)杂项:提供对语言选择,存档路径设置及软件版本信息内容显示。

    4   其他关键技术(Other key technologies)

    4.1   BooleanSwitch

    BooleanSwitch是定义在System.Diagnostics命名空间中的一个开关变量,用来控制调试和跟踪的输出[7]。该开关被定义在app.config配置文件的appSettings配置节中,可以通过该参数来获取应用程序运行时的跟踪信息。appSettings配置节代码如下:

    4.2   Trace

    Trace类位于System.Diagnostics命名空间,提供了一组帮助跟踪代码执行的方法和属性,是为了在不打断程序的调试或跟踪下,用来记录程序执行的过程[8]。

    Trace产生的信息可以被写入文本文件、XML或者记事本文件中。Trace的功能强大之处是跟踪监听器。使用监听器,是的Trace产生的调试信息可以直接写入监听器中,由监听器统一进行操作。在.NET中提供了三种类型的监听器,DefaultTraceListener提供了对于传统的OutputDebugString API的封装,将信息写到输出窗口中;EventLogTraceListener将调试信息写入到事件日志中;TextWriterTraceListener将调度或跟踪信息写入到文本文件中。可以使用下面的代码向Trace中添加一个监听器:

    5   结论(Conclusion)

    本文介绍了使用WPF技术实现了一个账单管理程序,其核心是分层技术在WPF应用程序开发中的具体应用。依据软件分层的架构,自底向上分别实现了数据访问层、业务逻辑层和表示层,通过接口来实现层与层之间的解耦,通过XLINQ来查询XML档、多线程中的读取和写入模式在实际工作中的运用、实现跟踪调试信息写入到文本文件中。

    参考文献(References)

    [1] 刘波,朱丽华.基于Java语言的超市账单管理系统的设计与实现[J].安阳工学院学报,2016(06):34-35.

    [2] 骆剑华.T型账户在编制银行存款余额调节表教学中的应用[J].企业导报,2016(14):98-99.

    [3] 张志刚.会计新手处理乱账方法及实例[J].农村财务会计,2018(08):45-46.

    [4] 张伟.基于VFP技术的银企自动对账系统设计[J].财会月刊,2014(19):12-13.

    [5] 马莉.电子账单系统在集装箱码头管理企业的应用[J].中国水运,2017(02):83-84.

    [6] 徐湛.基于条码数字化的电费账单管理系统建设[J].科技创新导报,2009(27):28-29.

    [7] 李霞,郭肇毅.家庭财务管理系统的设计与实现[J].信息与电脑(理论版),2016(23):75-76.

    [8] 张琳莹,张云洁.家庭财务管理系统设计与实现[J].电脑知识与技术,2018(11):104-105.

    相关热词搜索: 账单 管理程序 设计 WPF

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网