个人财务管理系统论文_第1页
个人财务管理系统论文_第2页
个人财务管理系统论文_第3页
个人财务管理系统论文_第4页
个人财务管理系统论文_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连理工大学本科毕业设计(论文)个人财务管理系统PersonallyFinancialManagementSystem学院(系):软件学院专业:软件工程学生姓名:学号:2009XXXXX指导教师:评阅教师:完成日期:2013.6.7大连理工大学DalianUniversityofTechnology摘要当前社会,很大一部分年轻人对理财意识相对薄弱,知识匮乏。与此同时,市场上的财务管理系统软件大多数是面向企业或特定用户的需求,面向普通用户的个人财务管理软件极为稀少。为了满足普通用户的需求,开发了此软件。个人财务管理系统的主要功能是实现财务管理的系统化,规范化,自动化。此财务管理系统分为用户管理模块、系统管理模块、收支管理模块、接待管理模块、待购管理模块、资金管理模块、财务统计模块七个模块,实现账务提醒、用户管理、财务查询、统计分析等功能,帮助用户更好的管理个人财务。本次毕业设计个人财务管理系统基于ASP.NET,以SQLServer2012作为数据库工具,以VisualStudio2012进行界面设计、系统设计与开发,设计完成的。本报告采用生命周期法,“自顶向下”地完成对开发系统的了需求分析,得到系统的功能需求,随后对系统进行概要设计和详细设计,确定系统功能模块、基本流程、存储结构、基本界面等。随后应用开发工具对系统进行设计、编码、调试等操作,最终实现个人财务管理系统的各个功能。关键词:个人财务管理系统;C#;SQL数据库;ASP.NET;VisualStudioPersonallyFinancialManagementSystemAbstractThecurrentsociety,alargepartofyoungpeople'sfinancialawarenessisrelativelyweak,andlackofknowledge.Atthesametime,themarketisfacingfinancialmanagementsoftwaremostenterprise,orhavespecialuse.facingcommonuser'spersonalfinancialmanagementsystemisextremelyscarce.Inordertomeettheneedsofordinaryusers,especiallydevelopedthissoftware.Personalfinancialmanagementsystem'smainfunctionistoachievefinancialmanagementsystematization,standardizationandautomation.Thefinancialmanagementsystemisdividedintotheusermanagementmodule,systemmanagementmodule,therevenueandexpendituremanagementmodule,borrowandlendmanagementmodule,tobepurchasedmanagementmodule,fundmanagementmodule,financialstatisticsmodulesevenmodulestoachieveaccountingreminders,usermanagement,financialtracking,budgeting,statisticalanalysis,smalltoolsandotherfunctions,helpusersbettermanagetheirpersonalfinances.ThegraduationprojectpersonalfinancialmanagementsystembasedonASP.NET,withSQLServer2012asthedatabasetoolsandVisualStudio2012forinterfacedesign,systemdesignanddevelopment.Thisarticleuseslife-cycleapproach,"top-down"onthedevelopmentofsystemstocompleteaneedsanalysis,systemfunctionalrequirements,andthenoutlinethesystemdesignanddetaileddesign,todeterminethesystemfunctionmodules,thebasicprocess,storagestructure,basicinterface.Followedbyapplicationdevelopmenttoolsonthesystemdesign,coding,debuggingandotheroperations,andultimatelyachievepersonalfinancialsystemfunctional.KeyWords:PersonalFinancialManagementSystem;C#;SQLServer;ASP.NET;VisualStudio

目录摘要 IAbstract 1引言 41开发目的和核心技术介绍 51.1系统目的和目标 51.2开发工具简介 61.2.1MicrosoftVisualStudio简介 61.2.2C#简介 61.2.3ASP.NET简介 71.2.4SQLServer 102系统分析 102.1可行性分析 102.2用户需求分析 122.3业务流程分析 122.4数据流程分析 133系统总体设计 143.1系统总体结构设计 153.2功能模块设计 153.3数据类的设计 173.4数据库设计 213.4.1概念结构设计 223.4.2逻辑结构设计 234系统详细设计 264.1用户管理模块 264.2系统管理模块 284.3收支管理模块 314.4借贷管理模块 334.5待购管理模块 344.6资金管理模块 364.7财务统计模块 375系统实现 375.1界面实现 375.2功能实现 396系统测试 416.1测试目的和意义 416.2测试原则 426.3测试用例 43结论 45参考文献 46致谢 47

引言在平时的生活中,我们很多人缺乏财务管理的意识。我们有多少钱,我们的钱都存在哪儿,我们把钱花在了哪儿,花的值不值,这些问题,只有一个模糊的认识。由此常常会出现钱不够花的状况。所谓开源节流,科学的财务管理对于我们来说非常重要。如今社会高速发展,个人财务管理的重要性日益突出,当今社会越来越朝着信息化数字化发展,计算机的应用领域使我们的生活越来越方便和快捷,可以说我们每个人的生活都离不开计算机的帮助了。越来越多的个人应用软件成为人们重要的助手,也在潜移默化的改变着我们的生活。许多软件研发人员开始着手于财务管理系统的开发。个人的财务管理也向着系统化、电子化发展。但现今市场上个人的财务管理软件确很少且不完善,实际生活中经常要对个人的各项财务收支进行管理,本课题的目的就是利用计算机对各项财务进行电子化的管理,使我们的理财更加方便和理性化,提高我们生活的质量和品质。我在在大学学到的编程方面的基本知识,加上实习过程中掌握的网络方面、ASP.NET,C#等新知识,使得开发一款能实现基本功能的个人财务管理系统成为可能。这样可以帮助我们可以在之后利用计算机来管理日常开支、借贷等个人财务方面的工作。在减轻个人财务管理的压力的同时,使财务管理更加专业化,自动化,理性化,以提升个人的生活态度、生活质量等。

1开发目的和核心技术介绍1.1系统目的和目标企业财务管理很重要,同样,个人的理财也占据同等甚至更高的地位。日子就是靠过出来的,得精打细算。因此,设计一款简单使用的个人财务管理系统来管理日常开支、借入借出、收支统计等十分有必要性。个人财务管理系统主要解决的问题,及设计此款软件的目的由以下所述:(1)计算机记录个人日常财务支出、借入借出、收入等相关信息,可以节省许多人力和物力,方便管理,由此可以减少纸笔等不必要的开支。(2)系统生成财务统计相关信息,能够准确的统计用户在特定时间财务方面的相关信息。个人财务的管理包括收入、支出、统计、预算等各个方面。我通过对同事、同学调查问卷的方式调查身边人对财务管理方面的相关信息发现,身边大部分人没有严格的个人财务管理的概念,而其他部分人也仅仅是流水账的形式,对工资、支出等做统计,数据相对比较混乱,不易统计,由此,以年轻人为对象,设计一款能够科学地记账、财务统计、预算的软件来满足用户个人理财的需要。此系统提供用户信息管理、开支收入记录、借入借出统计、账务查询、预算管理等功能,实现以下几个目标:(1)系统界面简洁美观,易使用、易维护,能够适用于非计算机人员使用。能够完成对用户基本财务状况的存储和查询,并提供数据备份等系统维护功能,可以查找、修改、添加和删除用户个人财务信息。从而使用户面对一个庞大的用户财务数据库,可以全面、准确、有效的处理财务管理的各种信息,及时掌握财务信息的动态变化,更方便地管理个人财务。(2)可扩展性和包容性强。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资,特别是在应用需求变化时,有一个较好的应用平台,能容易地加以调整。系统易于扩充升级,既能满足当前业务的需求,又能为今后的扩充留有空间。(3)为用户提供良好方便的信息服务。在财务信息标准化、规范化的基础上,对信息进行合理的布局,在提供优质、高效的业务管理和事务处理的同时,能够按照用户要求进行高效率的计算统计任务,使用户可以在这个平台上了解个人财务信息,自主的按分类查找信息,并且可以提供统计信息,使用户及时真实的了解自己的收入、支出和债务情况。(4)可靠运行,安全保密。可以使用网络加密保护,用来帮助尽可能地减少在公用网络和专用网络上传输敏感信息所带有的风险和权限限制等。因此系统建设应具有安全高效的通信机制、身份认证、权限检查,以解决财务管理系统的安全性、保密性问题,防止非法侵入和信息泄密。1.2开发工具简介本次毕业设计个人财务管理系统基于ASP.NET,以C#作为编程语言,以SQLServer2012作为数据库工具,以VisualStudio2012作为开发平台。1.2.1MicrosoftVisualStudio简介VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。VisualStudio是目前最流行的Windows平台应用程序开发环境。最新版本为VisualStudio2012版本,基于.NETFramework4.5。1.2.2C#简介C#是Microsoft在2000年七月推出.NETFramework的第1版时提供的一种全新语言[1],是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。1.2.3ASP.NET简介ASP.NET(ActiveServerPage.NET)是微软公司基于.NET4.0框架的新一代网络编程语言,也是目前最新的web技术之一。[3]ASP.NET是M的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和J)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。ADO.NET简介本系统数据存储在数据库中。利用我们学过的SQL语法可以直接操纵数据库的数据,但系统页面也必须提供一个接口,以便连接数据库并执行SQL指令。在.NET技术中协助我们连接数据库并执行SQL指令的机制就是ADO.NET。[4]在web的系统开发中,数据的操作占据了开发大量的工作,要操作的数据包括几个方面:存储在数据库中的数据、存储在文件中的数据以及XML数据,这其中最普遍的是操作存储在数据库中的数据。ADO.NET提供了ADO.NET技术,是一组面向.NET编程人员公开的数据访问服务的类。ADO.NET提供了对关系数据、XML和应用程序数据的访问,是.NETFramework不可缺少的一部分。ADO.NET支持多种开发需求,包括创建由应用程序、工具、语言和Internet浏览器使用的前端数据库客户端和中间层业务对象。ADO.NET组件是将数据访问与数据处理进行分离。它通过两个主要的组件:.NET数据提供程序(dataprovider)和Dataset来完成。下图1.1说明了数据访问与数据处理分离的概念。图1.1ADO.NET的组件结构图图1.1是ADO.NET的组件结构图,除了可以很清楚的看到其内部组成,还可以看到数据访问一般有两种方式:一是通过DataReader对象来直接访问的,另一种则是通过DataSet和DataAdapter来访问的。ADO.NET体系结构的一个核心元素是.NET数据提供程序,它是专门为数据处理以及快速地只进、只读访问数据而设计的组件,包括Connection、Command、DataReader和DataAdapter对象的组件。具体如表1.1所示。表1.1数据提供者的对象对象名称描述Connection提供与数据源的连接Commander用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令DataReader从数据源中提供高性能的数据流DataAdapter提供连接DataSet对象和数据源的桥梁,使用Command对象在数据库中执行SQL命令,以便将数据加载到DataSet中,并对DataSet中数据的更改与数据源保持一致DataSet是ADO.NET体系的另一个核心组件,它专门为各种数据源的数据访问独立性而设计的,所以它可以用于多个不同的数据源、XML数据或管理应用程序的本地数据、如内存中的数据高速缓存。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行、数据列以及有关DataTable对象中数据的主键、外键、约束、关系信息组成。它本质上是一个内存中的数据库,但从不关系它的数据是从数据库、XML文件中、还是从这两者中或从其他什么地方获得。1.2.4SQLServerSQLServer是一个关系数据库管理系统。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。[5]在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNIX操作系统上的应用。SQLServer2012主要版本包括新的商务智能版本,增加PowerView数据查找工具和数据质量服务,企业版本则提高安全性可用性,以及从大数据到StreamInsight复杂事件处理,再到新的可视化数据和分析工具等,都将成为SQLServer2012最终版本的一部分2系统分析2.1可行性分析通过对个人财务管理系统的开发具有一定了解之后,现对开发此系统的可行性进行分析。(1)技术的可行性分析主要从事项目实施的技术角度,合理设计技术方案,并进行比选和评价;本系统主要采用数据库管理技术,SQLServer支持SQLServer2000及之后各个版本,有相应操作系统与之匹配。SQLServer能够处理相对大量的数据,它具备的灵活性、安全性、易用性等为数据库编程提供条件;硬件方面,该个人财务管理系统的运行功能相对比较简单,编码简洁,对内存、CPU占用都很小,对操作系统没有特殊要求,WindowXP、Vista、WindowsServer各个版本都支持。根据对个人财务管理系统基本需求分析,设计出系统基本功能,之后进行数据库相关设计,对其进行E-R图设计,得到几个基本实体,实体间关系及实体的基本属性,然后建立基本数据库及表。系统设计平台选择visualstudio,基于ASP.NET,用C#编程语言进行编程,设计个人财务管理系统各个界面,及其功能实现,如用户注册,登陆,功能主界面等。所以,从技术的可行性上分析,本个人财务管理系统的设计是完全可行的。(2)经济可行性分析经济可行性分析需要估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用;估计新系统将获得的效益,估算开发成本是否回高于项目预期的全部经费。并且,分析系统开发是否会对其它产品或利润带来一定影响。该个人财务管理系统是课程设计,所以无需考虑成本及运行后维护费用等投入,而本系统完成后,通过个人财务管理系统管理个人收入、消费、借入借出等财务信息,可以节省很多人力物力,且方便管理、备份及保存,提高管理效率,与此同时,应用该系统后,可以使得个人财务管理更加系统后、自动化,所以从经济可行性上分析是完全可行的(3)法律及社会可行性分析由于本系统应用正版软件开发,且不存在剽窃,在图书馆查询相关资料,因此不存在侵权等相关的法律问题。个人财务管理系统是简单的财务管理方面的小程序,操作简洁、灵活,只需有基本计算机操作能力的用户就可以简单上手,界面友好,社会可行性高综上所述,我开发的个人财务管理系统,技术、经济、技术和法律社会可行性都具备,可以进行设计与开发。2.2用户需求分析在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。软件需求定义是软件设计开发阶段的输入,为需求被翻译成为可以使软件建构功能的代码发挥作用。2.3业务流程分析 用户首次使用个人财务管理系统,首先进入注册页面注册新用户,成功注册后,用注册用户登陆到系统主界面。进入主界面后需首先到系统管理里面去添加账户类型,消费类型,收入类型,然后添加账户,之后再进入系统主界面去选择需要的功能。如果要添加用户或修改密码进入用户管理模块进行相应操作;如果要记录及统计收支情况,进入收支管理模块,输入收入及消费支出的条目,及其所对应的账户名,系统会生成相应表格并自动同步账户中余额;如果要进行借贷管理,首先要进入联系人管理模块加入联系人相关信息,之后进入借贷管理模块,根据需求加入借入或借出条目,同样会生成表格及同步账户余额,待还款或收款后更改条目状态,账户余额会及时同步;如果最近有什么想要买的东西,可进入待购管理模块,加入相应记录,等资金允许进行购买后,可修改记录状态,同样会自动更新账户余额信息;如果要进行自己账户内部完成上述记录输入后,在首页会有相应提醒,如某联系人要过生日了,准备礼物、催还款或收款等2.4数据流程分析 数据流程图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。通过上述业务流程的分析来画个人财务管理系统的数据流程图,来确定系统数据的具体流入及流出,确定外部实体,划分个人财务管理系统具体模块及功能,主要模块分为资金管理模块、收支管理模块、借贷管理模块、待购管理模块、财务统计模块、系统管理模块、用户管理模块,其中用户管理及系统管理是其他模块的前提,经过分析绘制出出如下个人财务管理系统的数据流程图。个人理财管理系统的顶层数据流图,如图2.1所示,图2.1个人财务管理系统顶层DFD个人财务管理系统数据流图第一层如图2.2所示。图2.2个人财务管理系统第一层3系统总体设计个人理财管理系统主要的工作流程就是输入相关记录信息,经过系统处理得到处理后的相关信息。系统总体设计这一节就是来说明个人财务管理系统具体是用来做什么的,是如何实现其相关功能的。即通过给出该系统的物理模型的方式来描述个人财务管理系统如何实现在系统分析中设计的各个功能。系统总体设计阶段的主要内容包括:结构设计、数据库设计等3.1系统总体结构设计系统总体分为资金管理,收支管理,接待管理,代购管理,财务统计,系统管理,用户管理,七个主模块。图3.1为其功能模式图,图3.1功能模式图3.2功能模块设计根据系统分析中个人财务管理系统包含的功能,个人财务管理系统分为7个主模块,7个模块又可以分为多个子模块。系统管理模块分为类别管理模块,账户管理模块,联系人管理模块。类别管理模块是用来添加消费类型,收入类型,以及账户类型的,在使用此个人财务管理系统,这一模块必须要提前设置。账户管理系统是添加目前资金分布所在的账户信息的,此项跟类型管理模块一样,必须提前设置。联系人管理系统是用来存储与登录用户相关的人员信息的,其中包含姓名,手机号,E-mail,生日等信息,若要使用借贷管理模块功能,此项必须提前设置,若要使用首页的生日信息提醒功能,联系人中需要添加生日项纪录用户管理模块分为注册模块,登陆模块,以及密码修改模块,在使用本系统是首先要注册一个用户,否则不能登陆到本系统。注册完成后可以选择登陆,信息正确,登陆成功。密码修改模块是用来修改当前登陆用户的密码的。收支管理模块分为收入管理模块跟支出管理模块,分别记录收入跟支出的相关信息。记录信息后,可以根据信息的id修改记录的相关信息。并可以根据时间、类型、账户等信息来检索所需条目的信息。借贷管理模块分为借入管理模块跟借出管理模块,分别记录借入跟借出的相关信息,如金额,取自账户或存入账户、借贷状态等信息,并可以时间、对象、状态来检索条目。待购模块是用来记录当前未买而想要在之后购买或支出的条目信息,类似于购物网站的收藏夹,条目记录有金额、类型等信息,可以进行修改及删除,当购买后,信息会存入到支出模块,账户余额随之变化。财务统计模块分为收支年度统计模块。收支年度统计模块是以柱状图的方式来统计所选年份,收支的情况,方便之后更好的进行财务的管理。资金管理模块分为资金分布模块和资金转账模块。资金分布模块是以饼图的方式来显示当前自己拥有金钱的具体分布情况及比例,能让用户准确的知道自己到底有多少钱,自己的钱在哪。资金转账模块是用来管理各账户间资金的转账。系统的总体功能结构图如图3.2所示,图3.2总体功能结构图3.3数据类的设计在系统分析阶段已经得出了个人财务管理系统数据的流程,现在具体对数据进行设计,得到如下的数据字典表3.1为用户信息的数据字典,包括用户名,密码两个属性表3.1用户信息的数据字典数据项名内容举例类型取值范围备注用户名KiraChar最多50个字符唯一密码123char最多50个字符表3.2为消费类型的数据字典,包括,类型名,用户名,类型编号三个属性

表3.2消费类型的数据字典数据项名内容举例类型取值范围备注类型名衣服char最多50个字符唯一用户名kirachar最多50个字符类型编号2int自动生成表3.3为收入类型的数据字典,包括类型名,用户名,类型编号三个属性表3.3收入类型的数据字典数据项名内容举例类型取值范围备注类型名基本工资char最多50个字符唯一用户名kirachar最多50个字符类型编号2int自动生成表3.4为账户类型的数据字典,包括类型名、用户名、类型编号三个属性。表3.4账户类型的数据字典数据项名内容举例类型取值范围备注类型名借记卡char最多50个字符唯一用户名kirachar最多50个字符类型编号2int自动生成表3.5为状态的数据字典,只有状态名这一个属性表3.5状态的数据字典数据项名内容举例类型取值范围备注状态名已还char最多20个字符唯一表3.6为账户的数据字典,属性包含账户编号、账户名、用户卡号或用户名、余额账户类型备注。表3.6账户的数据字典数据项名内容举例类型取值范围备注账户编号2int4随机生成编号账户名中国银行char50个字符账户卡号或用户名6222023400015741578char50个字符银行卡号或支付宝等用户名余额1000float账户类型借记卡char50个字符备注工资卡char500个字符表3.7为收入信息的数据字典,属性包括:用户名、收入编号、日期、金额、存入账户、类型、说明。表3.7收入信息的数据字典数据项名内容举例类型取值范围备注用户名KiraChar最多50个字符收入编号3int自动生成不重复编号日期2013/5/08datetime金额5000float存入账户中国银行char50个字符类型基本工资char50个字符说明继续努力char500个字符表3.8为联系人信息的数据字典,包含属性:用户名、联系人生日、联系人姓名、关系、性别、E-mail、电话、说明

表3.8联系人信息的数据字典数据项名内容举例类型取值范围备注用户名kirachar50个字符联系人姓名大奎char50个字符生日1989/03/15Datetime关系朋友char50个字符性别男char20个字符Emaildk@char50个字符电har50个字符说明12年认识的char500个字符表3.9为借入信息的数据字典,属性包括用户名、借入编号、日期、金额、对象、存入账户、状态、备注。表3.9借入信息的数据字典数据项名内容举例类型取值范围备注用户名kirachar50个字符借入编号5int整数随机生成日期2013/08/16Datetime金额1000float对象大奎char50个字符存入账户现金char50个字符状态已还char20个字符备注有借有还,再借不难char500个字符表3.10是借出信息的数据字典,属性包括用户名、借出编号、日期、金额、对象、存入账户、状态、备注表3.10借出信息的数据字典数据项名内容举例类型取值范围备注用户名kirachar50个字符借出编号5int整数随机生成日期2013/08/16Datetime金额1000float对象大奎char50个字符存入账户现金char50个字符状态已还char20个字符备注有借有还char500个字符表3.11待购信息的数据字典,属性包括用户名、待购类型、价格、数量、消费需求备注。表3.11待购信息的数据字典数据项名内容举例类型取值范围备注用户名kirachar50个字符待购类型化妆品char50个字符价格195float数量1int消费需求备注夏季衣服要多字符型50个汉字3.4数据库设计数据库设计是根据对用户的需求等的分析,对某一数据库管理系统上设计数据库的结构和建立数据库的过程。个人理财管理系统数据库设计过程如下(1)根据之前对用户需求分析,确定数据库中要保存的信息的具体内容,了解数据库数据的流程(2)设计数据库的概念模型。概念模型是现实世界的抽象反应,它表示试题类型及实体间的联系,是独立与计算机系统的模型,是实现世界到机器世界的一个中间单位。(3)逻辑结构设计。逻辑设计的主要目标是产生一个DBMS可处理的数据模型和数据库模式,3.4.1概念结构设计概念模型中最著名的和使用最为广泛的是E-R图模型。E-R模型直接从现实世界中抽象出试题类型和是体检的联系,是对现实世界的一种抽象,他的主要成分是实体、联系和属性。根据上面业务流程分析、数据流程分析、功能模块的分析分析以及对数据类的设计,设计出个人理财管理系统的E-R图如下图3-4-1-1所示,图3.3个人理财管理系统E-R图3.4.2逻辑结构设计逻辑结构设计的主要目标是产生一个DBMS可处理的数据模型和数据库模式。其一般分为三步进行:将E-R图转化为关系数据模型,关系模式的优化,设计用户外模式。根据数据类的设计及E-R图的设计,得到以下的关系模式账户类型accounttype(用户名UserName,账户类型名AccountTypeName,账户类型编号AccountTypeID)消费类型costtype(用户名UserName,消费类型名CostTypeName,消费类型编号CostTypeID)收入类型incometype(用户名UserName,收入编号IncomeID,收入类型名IncometypeName)用户User(用户名UserName,用户密码Password)联系人people(用户名UserName,联系人姓名PeopleName,联系人生日Birthday,电话Tel,关系Relationship,邮箱Email,性别Gender,备注Comment)账户Account(用户名UserName,账户类型AccountType,账户名AccountName,余额Balance,备注Comment)消费cost(用户名UserName,消费编号CostID,位置Location,日期Date,类型Type,数量Count,金额Amount,账户Account,备注Comment)收入income(用户名UserName,编号IncomeID,日期Date,类型Type,金额Amount,存入账户Account,备注Comment)借入borrow(用户名UserName,借入编号BorrowID,日期Date,金额Amount,账户Account,目标Target,状态Status)借出lend(用户名UserName,借出编号LendID,日期Date,金额Amount,取自账户Account,目标Target,状态Status)待购Need(用户名UserName,待购编号NeedID,金额Amount,数量count,类型Type)得到以下数据基本表格:表3.12为用户信息的表设计及条目信息举例表3.12UserInfo记录用户信息UserNameUserNamePasswordUser01Aeolia1qaz2wsxE表3.13为收入信息的表设计及条目信息举例表3.13Income记录收入信息UserNameIncomeIDDateAmountAccountCommentTypeUser01Income12013/06/102500中国银行卡年终奖奖金表3.14为消费信息的表设计及条目信息举例表3.14Cost记录消费信息UserNameCostIDDateLocationTypeCountAccountAmountCommentUser01Cost12013/06/10乐购衣服2现金360衬衫表3.15为借入信息的表设计及条目信息举例表3.15Borrow记录借出信息UserNameBorrowIDDateAmountTargetAccountCommentStatusUser01Borrow12013/06/10100Tom现金早饭钱未还表3.16为借出信息的表设计及条目信息举例

表3.16Lend记录借入信息UserNameLendIDDateAmountTargetAccountCommentStatusUser01Lent12013/06/10100Kitty现金代付班费已还表3.17为存储待购信息表的设计及示例表3.17Need记录待购信息UserNameNeedIDTypeAmountCountCommentUser01Need1衣服2002好久没买衣服了表3.18为存储账户信息表的设计及示例表3.18tb_account记录账户信息UserNameAccountNameTypeBalanceCardIDCommentUser01中国建设银行借记卡500fairymydream工资卡,尾号66993表3.19为存储账户类型的表设计及其示例表3.19tb_accounttype记录账户类型信息UserNameAccountTypeIDAccountTypeNameUser011借记卡表3.20为存储收入类型信息表的设计及其示例表3.20tb_incometype记录收入类型信息UserNameIncomeTypeIDIncomeTypeNameUser011奖金表3.21为存储支出类型表的设计及其示例表3.21tb_costtype记录消费类型信息UserNameCostTypeIDCostTypeNameUser011衣服表3.22为存储联系人信息表的设计及其示例表3.22tb_People记录联系人信息PeopleIDTelPeopleNameBirthdayRelationshipE-MailUser01aaaaa銀時1989.10.4朋友4系统详细设计 详细设计是软件工程中软件开发的一个步骤,就是对总体设计的一个细化,详细的设计出每个模块实现的算法以及界面。在结构化系统设计中,各个模块都是按照功能区划分的,称作功能模块。功能模块的划分是否合理能够显著的影响系统效率以及系统的可维护性及可拓展性。过程设计的工具能够指明控制流程、处理功能、数据结构以及其他方面的实现细节,从而在编码阶段能把设计的描述直接翻译成程序代码。[5]在这里选中流程图来了解和设计各个功能模块的具体功能及其流程4.1用户管理模块 用户管理模块是用来注册新用户,登陆,注销以及修改用户密码。图4.1登陆及注册流程图用户登录用户打开财务管理系统,首先会进入登陆界面,输入用户名跟密码,点击登陆按钮,若用户及密码正确择通过验证,进入到个人财务管理系统主界面,若用户名或密码错误,则会给出提示用户名或密码错误。点击取消会清空已键入的用户名及密码信息。(2)用户注册若用户第一次登陆,需点击注册链接进入用户注册界面,键入要注册的用户名,点击右侧的验证按钮,验证此用户是否已存在,存在则提示用户名已存在,不存在则提示用户名可用,键入密码,确认密码,点击注册,提示注册成功;点击重置则会情况以输入的信息。(3)修改密码在(1)登陆成功后,点击系统管理下密码修改,进入密码修改界面,若原密码正确,且新密码跟确认密码相同,点击修改后会成功修改密码。4.2系统管理模块分为类型管理,联系人管理,账户管理三个功能,为借贷管理模块、收支管理模块、待购管理模块等提供条件。类型管理进入账户管理界面显示已添加的支出类型、账户类型、收入类型,若要添加类型点击添加按钮,在要添加的类型处键入类型名,点击添加,若已存在重名类型,会给出该类型名已存在的提示,若不存在择添加成功,返回类型管理主界面。若要删除类型,则选择要删除的类型的类型名,点击删除按钮,点击确定,成功删除图4.2类型管理流程图(2)联系人管理点击联系人管理进入联系人管理模块界面显示以添加的联系人的信息。若要添加联系人,则点击添加按钮,进入添加联系人界面,输入联系人姓名、生日、性别等信息,点击添加,若该联系人姓名已存在则给出改联系人已存在,请重新输入的提示,若不存在,则添加成功,返回联系人管理界面;若要删除联系人,则在下拉单里选择要删除的联系人的姓名,点击删除按钮,点击确认,成功删除。若要修改联系人信息,则点击修改按钮,从下拉单里选择联系人姓名,然后输入更新的信息,点击修改修改成功。图4.3联系人管理流程图(3)账户管理点击账户管理进入账户管理模块界面显示以添加的账户的信息。若要添加账户,则点击添加按钮,进入添加账户界面,输入账户名、余额等信息,点击添加,若该账户名已存在则给出改账户已存在,请重新输入的提示,若不存在,则添加成功,返回账户管理界面;若要删除账户,则在下拉单里选择要删除的账户名,点击删除按钮,点击确认,成功删除。若要修改账户信息,则点击修改按钮,从下拉单里选择账户名,然后输入更新的信息,点击修改修改成功。图4.4账户管理流程图4.3收支管理模块 (1)收入管理点击收入管理进入收入管理界面,界面显示已添加的收入条目,可按照界面上给出的时间范围、存入账户、收入类型条件来检索所需要的条目信息。若要添加记录,则点击添加按钮,进入添加界面,键入日期、类型、金额、存入账户、备注等信息,点击确认,添加成功,后台会按照存入账户和金额的信息来修改存入账户的余额。若要删除条目则先检索条目或遍历条目,得到要删除的条目的编号,然后输入编号,点击删除,点击确认删除,成功删除。若要清空条目,则直接点击清空按钮,点击确认清空,成功清空。(2)支出管理点击支出管理进入支出管理界面,界面显示跟收入管理基本类似,不再详细描述,区别是后台实现上,当添加记录后,后台会相应修改账户的余额,若余额充足,账户余额相应减少,否则会给出提示“余额不足,请更换账户”。图4.5收支管理流程图4.4借贷管理模块 (1)借入管理借入管理是用来管理向其他人或单位借款的相关事务。见图4-6借入管理流程图。点击借入管理进入借入管理界面,界面显示之前添加的记录。可以填入或选择相关内容来对记录进行检索。若要添加记录则点击添加按钮,进入添加记录界面,键入借款对象,借款金额,及存入账户,点击添加,成功添加,页面跳转到借入管理页面,后台会修改存入账户中的余额为之前余额与借入余额的值。若要还款则选择借入编号,还款账户,若账户中余额充足,则成功还款,并相应的修改还款账户的余额,否则会给出“账户余额不足,请更换账户的提示”。若要删除记录则选择借入编号,点击删除,点击确认,成功删除。(2)借出管理借出管理是用来管理向他人或单位借出资金的事务。流程与借入管理类似,区别为,当添加记录时,后台会查询取款账户的余额是否大于借款金额,若大于,则成功添加记录,账户余额会相应减少;否则给出“账户余额不足,请重新选择账户”的提示。收款时,选择相应账户,点击收款按钮,成功收款,收款账户余额会相应增加。图4.6借入管理流程图4.5待购管理模块 待购管理模块是用来记录目前想买却因为某些状况暂时不买的相关记录,类似于购物网站的收藏夹功能。具体实现见图4-7待购管理流程图。点击待购管理链接,进入待购管理界面,界面显示之前添加的相关记录。可通过金额及类型来检索想要查看的记录。若要对条目进行购买操作,选择账户,后台连接数据库,取出账户余额与待购物品价格进行比较,若余额充足,则会购买成功,支出模块会相应多一条记录,待购模块相应记录被删除。若要进行添加、删除、清空等操作,点击相关按钮,按照提示完成操作即可。图4.7待购管理流程图4.6资金管理模块 资金管理模块分为资金分布及资金转账两个小模块,具体实现见图4-8资金管理流程图。点击资金管理链接进入资金管理界面,界面显示当前账户基本信息,资金分布位置,若需要资金转账业务,则选择起始账户,目的账户,若起始账户余额充足,点击转账,点击确认转账成功,否则提示“起始账户余额不足,请更换账户”的提示。图4.8资金管理流程图4.7财务统计模块 财务统计模块分为年度收支统计柱状图跟资金分布统计饼图两个部分。年度收支统计柱状图以图的形式直观的进行收入跟支出的比较,为用户更好的管理个人财务提供分析依据。资金分布饼图能够把用户“到底有多少钱,钱都在哪”这个问题,清晰直观的反馈给用户,使用户更能清楚的了解自己当前经济状况。5系统实现5.1界面实现界面代码是基于ASP.NET编写的,主要工作是设计界面的布局以及将数据库中取出的数据按照特定方式显示给用户。附图为实现的部分界面图片图5.1是个人财务管理系统登陆的界面。图5.2是个人财务管理系统主界面图5.1用户登录界面图5.2个人财务管理系统主界面图5.2借出管理界面5.2功能实现功能的实现主要是去连接数据库,提取数据库中信息,按照界面操作发出的指令,去进行相应的操作完成对数据库表数据的添加、修改、删除,并将数据返回并在界面以指定格式显示。以下附关键的几处代码。(1)登陆实现代码首先连接数据库,比较数据库user表中是否有条目的user与输入用户名一致,不一致的话,给出提示“抱歉,你没有权限操作!”,有一致的的话,比较输入密码与user表中密码是否一致,不一致的话,给出“输入密码不正确”的提示,一致的话,页面跳转到ManagerFrame界面。protectedvoidButton1_Click(objectsender,EventArgse){ stringstr;str="selectPasswordfromtb_userwhereUserName=@name"; SqlConnectioncon=newSqlConnection(ConnectionString); SqlCommandcmd=newSqlCommand(str,con); cmd.Parameters.Add("@name",SqlDbType.VarChar,20); cmd.Parameters["@name"].Value=this.TextBox1.Text.Trim(); con.Open(); SqlDataReaderdr=cmd.ExecuteReader(); if(dr.Read()) { stringpwd=dr[0].ToString(); dr.Close(); if(pwd!=TextBox2.Text.Trim()) { this.lab.Text="输入的密码不正确!"; } else {Session["UserName"]=this.TextBox1.Text.Trim();Response.Redirect("ManagerFrame.aspx"); } } else { this.lab.Text="抱歉,你没有权限操作!"; con.Close(); } }(2)检索借出条目的代码首先创建一个SqlDatataAdapter对象,然后执行前台输入的搜索条件给出的信息的Command操作赋给上面定义的dataAdapter对象,之后DataAdapter对象将数据填入数据集时调用Fill(),最后在前台的Gridview表显示。protectedvoidButton4_Click1(objectsender,EventArgse){DateTimeDate1;DateTimeDate2;stringd1=this.TextBox3.Text;stringd2=this.TextBox4.Text;if(d1=="")d1="1900-01-01";if(d2=="")d2=DateTime.Now.ToString();Date1=Convert.ToDateTime(d1);Date2=Convert.ToDateTime(d2);stringStatus=this.DropDownList4.SelectedValue.ToString();stringTarget=this.TextBox5.Text.ToString();stringUserName=Session["UserName"].ToString();SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);con.Open();stringsql=String.Format("SelectBorrowID,Date,Target,Amount,Account,Status,Commentfrom[tb_borrow]whereDatebetween'{0}'and'{1}'andTarget='{2}'andStatus='{3}'",Date1,Date2,Target,Status);if(Target==""||Target=="所有"){sql=String.Format("SelectBorrowID,Date,Target,Amount,Account,Status,Commentfrom[tb_borrow]whereDatebetween'{0}'and'{1}'andStatus='{3}'",Date1,Date2,Target,Status);}SqlCommandmyCommand=newSqlCommand(sql,con);SqlDataAdapterAdapter=newSqlDataAdapter();Adapter.SelectCommand=myCommand;DataSetds=newDataSet();Adapter.Fill(ds);ds.Tables[0].Columns[0].ColumnName="借入编号";ds.Tables[0].Columns[1].ColumnName="借入日期";ds.Tables[0].Columns[2].ColumnName="对象";ds.Tables[0].Columns[3].ColumnName="借入金额";ds.Tables[0].Columns[4].ColumnName="存入账户";ds.Tables[0].Columns[5].ColumnName="状态";ds.Tables[0].Columns[6].ColumnName="备注";GridView1.DataSource=ds;GridView1.DataBind();con.Close();}6系统测试 系统测试是将已经迭代完成的系统、其所依赖的硬件、网络等多个方面进行各种组装测试和确认测试。[15]系统测试时系统开发中一个很重要的必不可少的部分,它针对真个系统进行测试,目的是验证,已经确认的系统软件是否满足了需求分析中要求的各个功能,功能实现过程有没有出现bug,从而及时的提出解决方案,找到发现问题的原因和位置,进行修改。6.1测试目的和意义 根据系统测试的定义可以知道,系统测试的目的是以最少的人力和时间去发现错误和缺陷,而不仅仅是去验证功能能否实现。一个好的测试用例是能够发现之前没有发现的问题。通过系统测试发现错误,并通过对错误产生的原因及错误的分布情况,找到当前系统的缺陷,以便弥补以及改进。6.2测试原则 根据测试的概念和目的,在进行信息系统测试时应遵循以下基本原则。测试工作并不是在应用系统开发完成之后才进行的,而是应该尽可能早的,且不断地进行测试工作。由于开发各个阶段的多样性、问题的复杂性以及参加开发的各个人员之间能够协调等等原因,使得开发的每个阶段都可能出行问题。所以,测试应该按照情况贯彻在开发的各个阶段,尽可能早的发现问题,解决问题。测试工作应该避开有之前的开发人员去完成,一方面因为,负责开发的人员基本上不愿意否认自己的工作;另一方面,开发人员很难发现测试出自己的错误,很容易按照自己编码逻辑来确定测试方法,不可避免的有些局限。所以测试工作应该由专门测试人员负责,这样才能更客观,更有效的完成测试工作。在设计测试方案的时候,不仅要确定输入数据,而且要根据系统的具体功能来确定预期的输出结果。将实际的输出结果与预期的结果进行比较就能发现测试对象是否正确。在设计测试用例的时候,不仅要设计出合理的输入条件,还要设计包含不合理、失效的输入条件。测试的时候,人们经常按照合理的、正常的情况进行测试,而忽略了对于异常、不合理的情况进行测试,对于这些测试对于系统的专业花也很有必要。在测试程序时,测试人员不仅要检验程序是否完成了设计的功能,还要检验程序是做了冗余的事情。多余的工作会影响程序的效率、产生不必要的错误,有时会带来潜在的危害。严格按照测试计划来进行,避免测试的随意性。测试计划应包括测试内容、进度安排、人员安排、测试环境、测试工具和测试资料等。严格的按照测试计划可以;认证进度,使各方面都得以协调进行。妥善保存测试计划、测试用例,作为软件文档的组成部分,为维护提供方便。测试用例都是精心设计出来的,可以为重新测试或追加测试提供方便。测试是开发过程中一个独立且非常重要的阶段,测试过程基本上与开发过程平行。6.3测试用例 测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。表5.1是个人财务管理系统的部分主要用例。。表5.1测试用例编号测试项步骤预期结果实际结果比较1登陆输入正确的用户名密码,点击登陆成功登陆进入主界面成功登陆进入主界面符合2登陆输入错误的用户名或密码,点击登陆给出合理提示给出用户名或密码错误的提示符合3注册填入一个已存在的用户名或两次密码输入不一致给出合理提示给出合理提示符合4注册填入之前不存在的用户名,两次密码的输入保持一致注册用户成功注册用户成功符合5密码修改原密码填写错误或不填写或新密码与确认密码不一致给出合理提示给出合理提示符合6密码修改输入正确的原密码,新密码和确认密码一致密码修改成功密码修改成功符合7类型管理覆盖各种类型的添加、删除若已存在则给出提示,否则成功添加;能正常删除若已存在则给出提示,否则成功添加能正常删除符合8收支统计选择年份,显示统计柱形图柱形图数据正确柱形图数据正确符合表5.1测试用例(续表)编号测试项步骤预期结果实际结果比较9账户管理覆盖账户管理的删除、修改、添加各项能完成,若操作失误能给出提示各项能完成,若操作失误能给出提示符合10联系人管理覆盖联系人的添加,修改删除各项能完成,若添加重名用户则给出提示各项能完成,若添加重名用户则给出提示符合11收入管理覆盖收入的添加,搜索,删除,清空等操作各项能完成,账户余额相应增加;点击删除、清空时给出确认提示各项能完成,账户余额相应增加;点击删除、清空时给出确认提示符合12支出管理覆盖支出的添加,搜索,删除,清空等操作各项能完成,账户余额相应减少;点击删除、清空时给出确认提示各项能完成,账户余额相应减少;点击删除、清空时给出确认提示符合13借入管理覆盖借入条目的添加,搜索,删除、还款等操作各项能完成,账户余额相应增加;还款后相应账户余额减少各项能完成,账户余额相应增加;还款后相应账户余额减少符合14借出管理覆盖借出条目的添加,搜索,删除、还款等操作各项能完成,账户余额相应减少;还款后相应余额增加各项能完成,账户余额相应减少;还款后相应余额增加符合15待购管理覆盖条目的添加、购买、删除操作功能实现,购买后相应账户余额减少,支出模块多出相应记录功能实现,购买后相应账户余额减少,支出模块多出相应记录符合16资金管理选择其实账户跟目的账户,选择转账若起始账户余额充足,成功转账,否则给出提示若起始账户余额充足,成功转账,否则给出提示符合

结论此软件的目的是为了实现个人财务的基本管理,经过对各个功能模块功能的基本测试,预期的各个功能基本得到实现。能够满足一般用户对于个人财务管理的需求,操作界面比较规整,一般用户也能够很轻松的完成各个功能的操作。本系统功能实现主要是完成对数据库中数据的操作,并将其结果表现在界面上,系统比较容易开发与维护。但因为之前没有接触过ASP.NET,所以在界面的布局设计过程中多次返工重新设计,花费了大量时间。尽管如此,在界面布局及美工方面还是有所不足。同时由于受我编码能力、财务管理方面知识以及时间所限,未能实现个人财务的投资、网上银行等功能。将来在有条件的情况下会对本系统进行完善与改进。在完成毕业设计的过程中,回顾了之前学过的知识,并且学到了一些新的内容,与此同时加强了自己的实践能力。另一方面,发现自己还有很多不足,还有很多东西需要学习。为了在IT行业走的更远,必须学习新的内容,掌握最新的技术。在今后的学习工作中,我将会更加努力的去学习,不断地充实自我。

参考文献[1]KarliWatsonChristianNagel,等,C#入门经典(第五版)[M].北京:清华大学出版社,2010.[2]杨学瑜,王志军,刘同利.ASP.NET入门与提高[M].北京:清华大学出版社,2004.[3]张正礼王坚宁,ASP.NET4.0从入门到精通[M].北京:清华大学出版社,2010.[4]MIS2000Lab.周栋祥博士吴进鲁,等,ASP.NET案例精编[M].北京:清华大学出版,2009.[5]尹志宇郭晴,数据库原理与应用教程-SQLServer[M].北京:清华大学出版社,2010.[6]FernandezA,AbrahãoS,InsfranE.AWebUsabilityEvaluationProcessForModel-DrivenWebDevelopment[J]AdvancedInformationSystemsEngineering.SpringerBerlinHeidelberg,2011:108-122.[7]熊建芳,高继,任贺宇,基于ASP.NET的ADO与ADO.NET分析与研究[J],计算机与现代化,2006(07),36-38[8]JoseA.Blakeley,DavidCampbell,S.Muralidhar,AnilNor,TheAentityframework:Makingtheconceptuallevelreal[J]SIGMODRecord,2006(35,No.4):552-565[9]陈伟.SQLServer2005数据库应用与开发教程.清华大学出版社,2007.[10]毛德祥,罗荣阁,基于ASP.NEt技术的web应用程序三层设计模型[J]微型电脑应用,2002(03),26-28[11]付轶诩,林开颜,基于ADO.NET的SQLSERVER数据库和ORACLE数据库之间的数据传输方法[J],微型电脑应用,2009(10),61-64[12]张雪梅,.NET平台下基于LINQ分层架构的实现[J]电脑编程技巧与维护2011(12),76-106[13]诺萨普,维德姆斯,莱恩著,.NETFRAMEWORK2.0ApplicationDevelopmentFoundation[M].北京:世界出版社公司,2007.[14]维克,TheVisualBasic.NETProgrammingLanguage[M].北京:电子工业出版社,2002.[15]张海潘,软件工程导论(第5版)[M].北京:清华大学出版社,2010.

致谢这次毕业设计能够顺利完成,感谢的人很多,首先感谢我的指导老师,在系统的设计、时间安排以及论文的审核上给予我很大帮助,不仅让我能够顺利完成毕业设计,还让我在毕业设计实践的过程中学到了新的知识。在系统编码过程中遇到很多问题。界面布局设计、一些算法等的疑惑,是身边的同学们帮助了我,在这里对帮助我的同学们,仅以最真诚的感谢。

集成的会计系统财务四大基础模块ERP系统是分模块的,在财务会计领域,一般总会有如下的4大模块:总帐,应收帐款,应付帐款和固定资产。如图1-1所示,这四个模块本身是相互集成的(图中以连接模块的线条代表模块间的集成),比如当用户对应收,应付和资产三个明细分类帐进行操作时,系统会自动更新总分类帐中的数据。图1-1财务四大基础模块这四大基础模块可以构成一个独立的会计软件–它具有和其他会计软件一样的特征:帐务处理和业务处理是分开的。所谓业务处理是指企业日常运作的具体业务,比如根据销售定单和定单履行情况开出销售发票;根据采购定单和收货情况校验收到的发票;以及所有的库存收发业务等等。而所谓帐务处理是指财务人员根据原始凭证(包括外部的,如发票,和内部的,如入库单)编制会计分录,在系统中记录下来。对于一般会计软件而言帐务处理和业务处理是分开的,它们之间是通过单据在企业内部其他部门和财务部门间的传递和核对完成的,同时财务人员需要利用专业知识分析业务和编制分录。同时除了最基础的借贷,科目和金额以外,财务人员可能还需要手工录入一些附加信息,以利于日后做一些简单的汇总分析,这些附加信息是以凭证输入时的附加字段体现的。图1-1右下角红色的粗箭头代表了这种分开处理的过程。虽然大方向上是一致的,但是不同的软件之间在功能上还是会有很大的差别的,图1-1中列举了一些这四大基础模块的功能。模块外部的红色箭头是需要手工输入的功能,模块内部的则是系统可以自动完成的功能。事实上有些功能已经体现了ERP业务处理和帐务处理统一的特征,比如图1-1中的红圈所示的自动付款功能。集成下的财务会计如果ERP的财务会计模块仅仅是一般会计软件的功能延伸和加强,那它不会在最近的10年间对全球企业的财务实践带来如此巨大的变革。而ERP本身的集成性,决定了它的财务会计模块完全融入到了企业整体的流程中,图1-2描述了在集成环境下的财务会计模块。图1-2财务会计和物流的集成在物流领域有四个基本的模块:销售,生产,采购和库存管理,企业物流管理的流程和功能不是本书所要讨论的内容,图1-2中我们大致例举了一些物流模块的基本功能(在图中各模块内部)。在下面我们要着重介绍的是物流模块和财务会计的集成关系,本章主要介绍以下7个集成点:销售开票,销售发货,采购收货,发票校验,其他收发货,盘点和估价。销售开票销售开票的过程其实是在ERP系统中生成一帐开票凭证(BillingDocuments)。发票,形式发票,红字发票和贷项凭证都是不同类型的开票凭证。我们通常提到的发票(如增值税专用发票或普通发票)是根据系统中的开票凭证在金税系统中套打出来(或直接套打出来)的实物凭证。在下文中如果不特别指明实物发票,那“发票”都是指系统中保存的开票凭证。ERP系统是集成的,而销售开票又是销售流程的最后一个环节。因此发票在系统中不是孤立的,它一般是参照先行的其他凭证(如销售定单或发货单)建立的,系统会根据一定的规则自动的复制这些先行凭证的信息,从而使得开票的过程尽可能的简单,也防止了错误的产生。发票的结构发票由一个发票抬头和多条行项目构成。在发票抬头系统保存了关于整张发票的信息,比如付款方(客户),开票日期,整张发票的净金额,币种,付款条款,国际贸易条件,售达方(有时候付款方和售达方是不同的),价格条款(比如针对整张发票的折扣)。行项目中保存了仅对该行有用的信息,比如商品,数量,该行净金额,重量和体积,参照凭证的编号(比如,该发票针对的发货单号),价格条款(比如货款,运费,折扣,增值税等等)。可以发现系统中的发票所保存的信息大大超过了实物发票所需要的,在套打实物发票时,系统会根据各国家和企业的规定选取相关的信息,按规定的格式打印出来。开票方式从参照凭证(定单或发货单)生成发票,系统提供了如下一些可能的方法:只要某些数据吻合,你可以合并多张不同的凭证(销售定单和/或发货单)的全部或一部分,开出一张发票。前提条件是:首先,需要从这些参考凭证中复制的发票抬头数据在这些凭证中都是一致的。其次,拆分开票的条件不成立。比如在处理到期的开票清单时,系统会合并那些具有相同的客户编号,销售组织和开票类型的参照凭证,如果上述的前提条件都满足,系统将开出一张发票。如果你希望在某些情况下发票是分开的,比如希望同一张交货单上的很多商品按不同的商品组分开开票,那么可以通过定义拆分开票规则来实现。当然你也可以针对每张销售凭证开一张发票,比如每张发货单一张发票。在具体执行开票时,系统提供了如下方法:定单或发货单个别开票。我们可以针对整张定单,个别行项目或行项目的部分数量进行个别开票。手工处理到期开票清单。我们可以使用到期开票清单来处理开票,在这种情况下财务人员不需要针对某张销售定单或发货单单独开票。我们只需要输入选择条件,系统会自动挑选那些符合条件的定单或发货单,生成到期开票清单。经过手工编辑和模拟后就可以实际开票了。后台自动处理到期开票清单。为了减少处理时间和人力,可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论