家庭财务管理系统

发布时间:2024-11-16 21:07

'理财规划手册':系统化的家庭财务管理 #生活技巧# #财务管理技巧# #金融理财书#

第1章绪论1.1选题背景随着人们生活水平的提高,个人财富的不断增长,人们迫切的需要进行合理的家庭理财。因而各式的家庭财务管理系统软件应时而生,它们帮助用户有效的解决了具体的家庭财务问题。为适应这种趋势,家庭财务管理软件向着国际互联网发展,向着多媒体方向发展,向着大型数据库、多平台发展。家庭财务管理系统可以有效地记录和管理家庭的收支情况,合理规划和支配家庭资金,是家庭理财的好帮手每一个家庭好比一个小企业,都有着收入支出及净利,大部分家庭会用脑用手记录这些烦琐的数据,但是只是局限于记住收入的多少和支出的去向,不能在每月甚至于每年都有一个规划和对比,调节家庭财政状况然而,家庭财务管理系统可以有效地记录和管理家庭收支情况,合理规划和支配家庭资金,是家家户户的好管家,完全替代了手记脑记的烦琐,利于调节家庭财政状况。1.2课题意义家庭理财管理系统是为满足当代家庭理财管理的需要而设计开发的一个财务管理系统。它针对家庭理财的需要,开发出一个能实现管理家庭财务收支以及统计分析等功能的实用型软件,能够为每一个家庭的管理者提供充足的信息和快捷的查询手段,大大方便家庭管理者合理科学有效的理财。伴随着信息时代的到来,信息的种类、数量越来越多,容量也越来越大,在竞争越来越激烈的今天,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。而使用计算机对家庭财务进行管理,已经成为一种趋势,与传统的手工式家庭财务管理相比,利用计算机软件对家庭财务实行管理具有检索迅速、查找方便、可行性高、存储量大、保密性好、寿命长、成本低等优点。家庭理财管理系统正是在这种环境下应运而生,其开发的整体任务是实现家庭财务管理的系统化、规范化、科学化,从而达到有效管理家庭财务的目的。因此,开发这样一个系统在当今社会中是很有必要的。1.3发展现状家庭理财系统,即FamilyConductFinancialTransactionsSystem。它利用计算机应用技术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务于家庭的人机信息财务管理系统。家庭理财系统在国内外很多地方使用已经相当的普遍。国外的家庭理财管理系统发展的相对比较成熟,比如他们系统里包含有股票的预测、基金的分析等等。在国内,计算机使用盛行的当今社会,家庭理财管理系统已基本替代了传统的手工记账理财的方法,给消费者带来极大的方便,但由于人们的生活水平越来越高,收支种类越来越多,家庭消费的内容日益丰富等,现行的许多家庭理财管理系统已不能满足大家的需求,许多功能还亟待完善与更新。虽然国内的家庭理财管理系统功能较不完善,但在我国科技迅速发展的今天,其发展前景将十分令人期待,尤其是在近几年,伴随着计算机在社会中的高速普及,家庭理财系统的使用范围逐步扩大,从最早的简单记录家庭、个人财务的收支情况,到现在对财务的收支查询、汇总、报表分析、预测等等。巨大的市场需求也促使了很多公司加大了对家庭理财系统的研究。当今社会人们的生活水平和文化素质普遍提高,随着市场经济的快速发展,观念的不断更新,每个人的理财意识普遍增强,特别是家庭理财意识得到很大发展,人们对家庭各方面消费不仅仅只有进行记录和统计的愿望,各种收入消费途径错综复杂,如何使用户能更加方便的操作成为要求;同时伴随精神和物质生活的提高,人们购置和使用计算机的能力也在增强,网络越来越发达,一种新型网络家庭理财管理系统软件正等待出现。家庭理财管理系统是一个为方便处理家庭财务的一个软件,它的作用是更好的满足理财者对家庭财务管理的需要。目前社会上普遍使用的家庭理财管理系统基本都是单击版的,随着IT技术的进步和计算机网络技术的发展,以及家庭收支范围的扩大,家庭理财管理系统将逐渐从传统的桌面管理向网络集成的方向发展,从局部、静态、事后核算到全局、动态、实时的管理,基于不同软硬件平台、不同网络架构的各级财务管理子系统需要有机地协同工作。因此基于Internet的家庭理财管理系统必然成为未来家庭理财管理系统的发展趋势。第2章系统分析2.1可行性分析可行性分析可以进一步明确系统的目标,规模与功能。对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出拟定开发系统的初步方案与计划。可行性研究是对系统进行全面,概要的分析。此项活动开始时,要对初步调查的结果进行复审,重新明确问题,对所提系统大致规模和目标及有关约束条件论证,并且提出系统的逻辑模型和各种可能方案。当今社会是一个讲求效率的社会,时间就是金钱。开发简单,易于操作的,管理软件不仅可以节省时间,还可以避免浪费人力,物力,提高效率。待开发系统是一个对家庭理财管理系统,简单,易学,将成为家庭理财的的好帮手。并非所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间限制之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软件资源和经费,都是无谓的浪费。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能解决。必须时刻记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。2.2需求分析在可行性研究的基础上进一步对现行系统进行全面、深入的调查和分析,弄清楚现行系统的工作过程,发现其薄弱环节,找出要解决问题的实质,确保新系统有效。通过和大量家庭的交流,了解到原信息管理的主要方式是基于文本、表格等纸介质的手工处理,存在很多的问题:(1)资料统计为手工进行。财产信息处理工作量很大,易出错且耗时。(2)财产信息共享率低,大量重复劳动。(3)纸张的保存不方便,容易丢失和破损。(4)各类信息查询,统计不方便。通过建立家庭理财系统,使家庭财产管理工作规范化、制度化和程序化,减少此方面的不必要的浪费的时间与精力,避免管理的随意性,提高财产信息处理的速度和准确性,提高决策的水平。将常规的工作交由计算机完成,提高管理家庭财产管理的效率。家庭财务管理系统软件是为用户进行家庭成员的收支构成及信息管理进行辅助的应用软件、功能需求描述如下:(1)用户登录:系统获取的家庭成员用户名和密码判断该家庭成员能否成功登录系统,并且当用户登录后根据权限判断该家庭成员是管理员还是普通成员,可以使用哪些对应的功能。普通级别的用户只有浏览等权限而不能进行实质性的改动。(2)给家庭成员提供功能选择界面:不同级别的家庭成员对应不同的功能选择界面.功能选择界面包括输入功能选项、调用相应程序两大需求。管理员和普通用户对应的功能选择界面是不同的。(3)管理收支信息:用户根据提示输入家庭成员的姓名、各项财务信息,如收入、支出、合计。(4)增加家庭成员收支信息:可在原有收支信息文件的基础上增加新的家庭成员财务信息记录,并继续保存至数据库。(5)删除家庭成员收支信息:提示用户输入要进行删除操作的家庭成员,如果在文件中有该家庭成员的收支信息存在,则将该序号所对应的姓名、序号、各种收入信息等在对应项目中加以删除。(6)修改家庭成员收支信息:提示用户输入要进行修改操作的家庭成员,如果有该家庭成员的收支信息存在,则提示用户输入该序号对应的家庭成姓名、收入和支出构成等需要修改的选项,并将修改结果存储于数据库。(7)查询家庭成员财务情况:分为根据家庭成员查询和项目查询两个具体需求,选择其中一项用户输入要查询家庭成员信息或项目,如果在数据库中有对应的家庭成员财务信息,则逐项列出对应家庭成员的收支状况。(8)家庭成员管理:家长对普通家庭成员的管理也需要进行家庭成员的创建、增加、删除、修改和浏览。每当有家庭成员登录系统时,系统都会根据数据库中的用户名和密码进行核实判断,用户才能够顺得登录。家长还具有增加新家庭成员的功能。当某些家庭成员不再使用系统时,还可进行删除操作,并且家长具有修改家庭成员权限的功能。2.3所用技术本系统采用b/S模式,后台使用SQLSever作为后台的数据管理系统,而在前台使用SQLSever的Command组件来调用存储过程的。SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言[1]。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。它具有简单,高效,功能强大等特点,一直是广大程序员喜爱的编程工具,并且运用C#作为编程语言,C#代码在.net框架提供的受控环境下运行,不允许直接操作内存。C#具有面向对象编程语言所应有的的一切特性,如封装,继承和多态。在C#众多的优势中,它在数据库方面的特长显得尤为突出:适合于多种数据库结构,从客户/服务机模式到多层数据结构模式,而且C#编写的代码具有更好的可读性,而且减少了发生命名冲突的可能。2.3.1ASP.NET简介ASP.Net2.0是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译。ASP.Net2.0构架是可以用Microsoft(R)公司最新的产品VisualS开发环境进行开发,WYSIWYG(WhatYouSeeIsWhatYouGet所见即为所得)的编辑。这些仅是ASP.Net2.0强大化软件支持的一小部分[3]。

因为ASP.Net2.0是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.Net2.0的Web应用中。ASP.Net2.0同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript[4]。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.Net2.0。

ASP.Net2.0使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"ZeroLocalAdministration"的哲学观念使ASP.Net2.0的基于应用的开发更加具体,和快捷。一个ASP.Net2.0的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。

ASP.Net2.0已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的ASP.Net2.0应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。

ASP.NET优越性主要体现在以下几个方面:(1)效率,ASP.NET是建立在.NETFramework之上的,可使用VisualBasic,C++这样的模块化程序设计语言,在第一次执行后不须重新编译就可直接运行,所以速度和效率比ASP这种只能用VBScript或JavaScript这样的非模块化语言来编写的脚本编程语言提高很多。(2)是可重用性ASP.NET不再像ASP那样将ASP代码与HTML混合在一起,而是实现代码与内容的完全分离,可重用性强。(3)是代码量.ASP对所有要实现的功能通过编写代码来实现,而ASP.NET只须预先说明,就可自动实现,所以,实现同样的功能,ASP.NET要比ASP代码量小的多。2.3.2SQLServer数据库简介⑴SQLServer为用户提供了完整的数据库解决方案,该软件功能强大、使用方便,已为越来越多的人所信赖。SQLServer支持并发连接,允许多个用户同时访问数据,完全能够满足用户的需求。SQL提供了强大的数据存储功能,高效率的数据查询技术、方便易用的向导和工具,友好亲切的用户界面,是制作该系统后台的很好的UY工具。⑵SQLServer特点①真正的客户机/服务器体系结构。②丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。③SQLServer与WindowsNT完全集成,利用了NT的许多功能.SQLServer也可以很好地与MicrosoftBackOffice产品集成[7]。④SQLServer具有很好的伸缩性,提供数据仓库功能。⑤对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上,图形化用户界面,使系统管理和数据库管理更加直观、简单。2.3.3HTMLHTML的英文全称是"HypertextMarkupLanguage",中文译为“超文本标记语言”。“超文本”就是指页面内可以包含图片,联接,甚至音乐,程序等非文字的元素。在几年前作为SGML的一个子集开发的。一个HTML文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。如果你还有一些图片、动画、声音或是任何其它形式的资源,HTML文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。浏览的网页就是由HTML语言编写出来的。虽然HTML是一种语言,但HTML不是程序语言,如C++和Java之类,它只是标示语言,你只要明白了各种标记的用法便算学会了HTML.HTML的格式非常简单,只是由文字及标记组合而成,因此任何文本编辑器都可以制作HTML页面。在编辑器中输入html代码即可完成对网页的设计,如果在其中加入VB,JAVA等脚本文件以及数据库连接有关的语句指令,便可对已知数据进行查询,从而生成动态网页的一部分[2]。第3章系统概要设计3.1功能结构图功能模块图如图3-1所示图3-1内部功能模块图3.2详细功能模块3.2.1家庭成员管理模块通过家庭成员管理模块设置家庭成员,进行增加、删除、修改或者查看等操作。家庭成员字段应该包括“编号,姓名,登录名,登录密码”等。家庭成员可以用登录名和登录密码登录家庭财务管理系统进行记账管理。3.2.2收支项目管理模块通过收支项目管理模块设置收支项目,进行增加、删除、修改或者查看等操作。收支项目要求分为两层,比如“车辆维护-保养费”;任意一层次都可作为收支项目记账,用户在不清楚支出是否属于“保养费”的时候,可以选择大类“车辆维护”作为支出项;收支项目具体应该包括“编号,项目名称,收入还是支出”,编号不用显示在收支账薄中。3.2.3统计管理模块(1)记账记录收支项目,收支日期,收支家庭成员,收支金额,备注等内容。币种只支持人民币。(2)账薄管理显示给用户一个账薄,可以账薄上新增、修改、删除、查询记账,查询记账可以选定一个日期范围进行查询。3.2.4数据备份模块通过数据备份模块进行家庭财务信息数据备份,点击“数据备份”,通过超链接再点击下载并保存。第4章系统详细设计4.1实现概述该网站将采用三层体系结构将应用程序划分为三个逻辑层面,因为三层结构有很多优点,具体而言主要有以下几点:首先,通过将整个系统分为不同的逻辑块,大大降低了应用系统开发和维护的成本。其次,系统的扩展性大大增强。模块化使得系统很容易在纵向和水平两个方向拓展:一方面可以将系统升级为更大、更有力的平台,同时也可以适当增加规模来增强系统的网络应用。最后,三层机构的中间层还提供全程交易保护功能,即要么全部提交要么全部放弃,数据具有高度的完整性和安全性。这三个逻辑层在本网站系统的具体功能如下:(1)用户服务层(UserServicesTier),也称为表现服务(PresebtationServices),是用户与应用程序进行交互的端点。通常由WIN32或者基于浏览器的图形用户界面应用构成。在该层用户可以查看、输入和处理数据[10]。从用户的角度来看,用户服务层就是整个应用。在该网站系统中,用户服务层由webforms构成,它可以提供用户浏览和查询服务,查看他们的感兴趣的企业或是个人的信息,并且进行互动。(2)商务服务层,也称为中间层或者应用服务层,它负责封装事务处理、商务规则、数据访问及其他的核心应用逻辑。商务服务层可以有效地作为前台用户服务层和后台数据服务和数据存储之间的桥梁。在网站系统中,商务服务层将由在windows组件服务中执行的事务处理和非事务处理.net服务组件构成。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。(3)数据服务层,该层负责检索和操作在一个或者多个数据存储中存储的数据。通过将数据访问和操作分离到独立的逻辑层中,就可以将商品服务层从附属数据存储的细节中抽象出去。在该网站系统中,数据服务层定义和维护数据的完整性和安全性,响应访问数据的请求,它接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。整个网站系统的逻辑体系结构如表4-1所示:表4-1网站系统的逻辑体系结构用户服务用户交互页面导航数据表现ASP.NET的WebFormsASP.NET的WebForms业务服务事务处理逻辑业务规则定义数据访问.NET的服务器组件ASP.NET的web服务.NET的服务器组件ASP.NET的web服务数据服务数据检索数据操作数据验证SQLSERVER的存储过程SQLSERVER的存储过程数据存储数据存储数据关系数据完整性数据库数据库4.2软件的运行环境设计服务端硬件要求:如表4-2所示表4-2服务端硬件要求站点最低配置PIII500MHz以上256MB600MB以上站点推荐配置PIII500MHz以上512MB1GB以上服务端操作系统及软件要求:1服务器要求:

WindowsNTServerWithServerPack4andMicrosoftInternetExploreSP1以上Windows2000系列[11]2Web服务器:

MicrosoftIIS5.0以上3数据库服务器:

SQLserver客户端硬件及软件要求:如表4-3所示表4-3客户端硬件及软件要求主频内存浏览器最低配置赛阳300MHz以上64MB以上IE5.0标准配置PII400MHz以上128MB以上IE5.5本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-4所示:图4-4系统工作原理图4.3数据库需求分析数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQLServer,Oracle等[8]。我采用了SQLserver2005数据库管理系统,建立的数据库名为FinancialManagement。4.4数据库结构设计4.4.1Users(家庭人员信息表)主要用于保存家庭人员的基本信息,该表的结构如表4-5所示表4-5Users表列名数据类型长度允许空IdInt4否NameNvarchar50是PwdNvarchar50是RealNameNavarre50是4.4.2F_shouru(财务信息表)主要用于收入记账的基本信息,该表的结构如表4-6所示表4-6F_shouru表列名数据类型长度允许空IdInt4否NameNvarchar50是TypeNvarchar50是AddtimeDatetime8是UserNameNvarchar50是AddMoneyFloat8是DsText16是4.4.3Type(记账类型信息表)主要用于保存记账类型的基本信息,该表的结构如表4-7所示表4-7Type表列名数据类型长度允许空IdInt4否NameNvarchar50是TypeNvarchar50是4.4.4F_zhichu(财务信息表)主要用于支出记账的基本信息,该表的结构如表4-8所示表4-8F_zhichu表列名数据类型长度允许空IdInt4否NameNvarchar50是TypeNvarchar50是AddtimeDatetime8是UserNameNvarchar50是AddMoneyFloat8是DsText16是4.4.5Data(数据类型信息表)主要用于保存数据类型的基本信息,该表的结构如表4-9所示表4-9Data表列名数据类型长度允许空IdInt4否PathNvarchar500是AddtimeAddtime50是4.5系统E-R图家庭财务管理系统如图4-10所示图4-10E-R图4.6处理流程设计4.6.1系统操作流程如下图4-11所示:图4-11系统操作流程4.6.2数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图:如下图4-12所示。图4-12数据增加流程图4.6.3数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如下图4-13所示。图4-13数据修改流程图4.6.4数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如下图4-14所示。图4-14数据删除流程图4.7功能模块4.7.1用户登陆模块系统的登录界面,需要家庭成员才能登录进入使用系统,当输入错误的帐号、密码会有提示框提醒重新输入。如图4-15所示:图4-15用户登录模块主要代码如下:privatevoidchkUser(){if(TxtUserName.Text==""&&TxtPassword.Text==""){Alert.AlertAndRedirect("没有输入账号和密码!","Login.aspx");}else{dr=data.GetDataReader("select*from[Users]whereName='"+TxtUserName.Text.Trim()+"'andPwd='"+TxtPassword.Text.Trim()+"'");if(dr.Read()){Session["User"]=dr["Name"].ToString();Response.Redirect("Default.aspx");}else{Alert.AlertAndRedirect("账号或者密码不对请重新登陆!","Login.aspx");}}}protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){chkUser();}protectedvoidImageButton2_Click(objectsender,ImageClickEventArgse){TxtPassword.Text="";TxtUserName.Text="";}protectedvoidLinkButton1_Click(objectsender,EventArgse){Response.Redirect("Login.aspx");}4.7.2账目管理模块进入账簿管理可以对录入的收支项目进行查看、修改、删除、新增和查找管理账目信息。如下图4-16所示:图4-16账目管理模块主要代码如下:protectedvoidgvFilms_RowDeleting(objectsender,GridViewDeleteEventArgse){SqlHelpermydata=newSqlHelper();stringID=gvFilms.DataKeys[e.RowIndex].Values[0].ToString();try{mydata.RunSql("deletefromF_Moneywhereid='"+ID+"'");Label4.Text="删除成功!";gvFilms.EditIndex=-1;Get_Article();}catch{Label4.Text="删除失败!";}}privatevoidGet_Article(){try{gvFilms.DataSource=GetCodeBy(0);gvFilms.DataBind();}catch{}}protectedvoidgvFilms_PageIndexChanging(objectsender,GridViewPageEventArgse){gvFilms.PageIndex=e.NewPageIndex;Get_Article();}protectedvoidgvFilms_RowDataBound(objectsender,GridViewRowEventArgse){//鼠标移动变色if(e.Row.RowType==DataControlRowType.DataRow){//当鼠标放上去的时候先保存当前行的背景颜色并给附一颜色e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#f6f6f6',this.style.fontWeight='';");//当鼠标离开的时候将背景颜色还原的以前的颜色e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor,this.style.fontWeight='';");}//单击行改变行背景颜色if(e.Row.RowType==DataControlRowType.DataRow){e.Row.Attributes.Add("onclick","this.style.backgroundColor='#f6f6f6';this.style.color='buttontext';this.style.cursor='default';");}}publicDataSetGetCodeBy(intiCount){SqlHelperdate=newSqlHelper();stringstrTop="";if(iCount>1){strTop="top"+iCount.ToString();}stringsql="select"+strTop+"*from[F_Money]";SqlConnectioncon=newSqlConnection(SqlHelper.connstring);SqlCommandcmd=newSqlCommand(sql,con);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=null;try{con.Open();ds=newDataSet();da.Fill(ds);}catch(SqlExceptionex){throwex;}catch(Exceptionex){throwex;}finally{con.Close();}returnds;}protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){Response.Redirect("AddMoney.aspx");}protectedvoidImageButton2_Click(objectsender,ImageClickEventArgse){Response.Redirect("Search.aspx");}4.7.3添加账目模块家庭成员登陆后可以进入账簿管理,在这里可以添加账目信息,包括收支的项目、收支类型、收支成员类型、收支的金额和可以对这笔记账进行备注。如图4-17所示:图4-17添加模块主要代码如下:Alertalert=newAlert();SqlHelperdata=newSqlHelper();publicstringDownPath;protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){Type();Users();}}privatevoidType(){drpParentItem.DataSource=data.GetDataReader("select*fromType");drpParentItem.DataTextField="name";drpParentItem.DataValueField="id";drpParentItem.DataBind();}privatevoidUsers(){drpUserName.DataSource=data.GetDataReader("select*fromUsers");drpUserName.DataTextField="RealName";drpUserName.DataValueField="id";drpUserName.DataBind();}protectedvoidIbnOk_Click(objectsender,ImageClickEventArgse){data.RunSql("insertintoF_Money(name,Type,UserName,AddMoney,Ds)values('"+drpParentItem.SelectedItem.Text+"','"+drpSubItem.SelectedItem.Text+"','"+drpUserName.SelectedItem.Text+"','"+TxtMoney.Text+"','"+TxtStatement.Text+"')");Alert.AlertAndRedirect("添加成功!","MangerZb.aspx");}protectedvoidIbnCanel_Click(objectsender,ImageClickEventArgse){Response.Redirect("MangerZb.aspx");}4.7.4查找账目信息家庭成员登陆后进入账簿管理,可以按时间对账目信息进行查询。如图4-18所示:图4-18查找模块主要代码如下:protectedvoidIbnOk_Click(objectsender,ImageClickEventArgse){stringbeingtime=txttime1.Value;stringendtime=Text1.Value;Response.Redirect("SearchList.aspx?b="+beingtime+"&e="+endtime);}protectedvoidIbnCanel_Click1(objectsender,ImageClickEventArgse){Response.Redirect("MangerZb.aspx");}4.7.5家庭人员管理模块家庭成员登陆后,进入家庭成员管理模块,对现有的家庭成员进行添加、删除和修改。如图4-19所示:图4-19家庭成员管理模块主要代码如下:protectedvoidImageButton2_Click1(objectsender,ImageClickEventArgse){Response.Redirect("AddUser.aspx");}protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){data.RunSql("insertintoUsers(Pwd,Name,RealName)values('"+TextBox4.Text+"','"+TextBox3.Text+"','"+TextBox2.Text+"')");Alert.AlertAndRedirect("添加成功!","UserList.aspx");}4.7.6账目类别信息管理家庭成员登陆后,进入收支项目管理可以对所需要的项目进行添加、修改和删除账目类别信息。如图4-20所示:图4-20收支项目管理模块主要代码如下:protectedvoidInitData(){SqlHelpermydata=newSqlHelper();GridView1.DataSource=mydata.GetDataReader("select*fromType");GridView1.DataBind();}//GridView控件RowDeleting事件protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){SqlHelpermydata=newSqlHelper();stringID=GridView1.DataKeys[e.RowIndex].Values[0].ToString();try{mydata.RunSql("deletefromTypewhereid='"+ID+"'");Label4.Text="删除成功!";GridView1.EditIndex=-1;InitData();}catch{Label4.Text="删除失败!";}}4.7.7账目统计信息家庭成员登陆后,进入报表统计模块,可以查询现有账目信息,可以导出Excel保存和打印所需要的数据。如图4-21所示:图4-21账目统计模块主要代码如下:publicDataSetGetCodeBy(intiCount){SqlHelperdate=newSqlHelper();stringstrTop="";if(iCount>1){strTop="top"+iCount.ToString();}stringsql="select"+strTop+"*from[F_Money]";SqlConnectioncon=newSqlConnection(SqlHelper.connstring);SqlCommandcmd=newSqlCommand(sql,con);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=null;try{con.Open();ds=newDataSet();da.Fill(ds);}catch(SqlExceptionex){throwex;}catch(Exceptionex){throwex;}finally{con.Close();}returnds;}privatevoidDisableControls(Controlgv){LinkButtonlb=newLinkButton();Literall=newLiteral();stringname=String.Empty;for(inti=0;i<gv.Controls.Count;i++){if(gv.Controls[i].GetType()==typeof(LinkButton)){l.Text=(gv.Controls[i]asLinkButton).Text;gv.Controls.Remove(gv.Controls[i]);gv.Controls.AddAt(i,l);}elseif(gv.Controls[i].GetType()==typeof(DropDownList)){l.Text=(gv.Controls[i]asDropDownList).SelectedItem.Text;gv.Controls.Remove(gv.Controls[i]);gv.Controls.AddAt(i,l);}if(gv.Controls[i].HasControls()){DisableControls(gv.Controls[i]);}}}publicoverridevoidVerifyRenderingInServerForm(Controlcontrol){}protectedvoidButton1_Click(objectsender,EventArgse){DisableControls(gvFilms);Response.ClearContent();Response.AddHeader("content-disposition","attachment;filename=MyExcelFile.xls");Response.ContentType="application/excel";StringWritersw=newStringWriter();HtmlTextWriterhtw=newHtmlTextWriter(sw);gvFilms.RenderControl(htw);Response.Write(sw.ToString());Response.End();}第5章系统调试与测试程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。程序的测试5.2.1测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:①认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;②以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;③测试工作枯燥无味,不能引起人们的兴趣;④测试工作是艰苦而细致的工作;⑤对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。(2)测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。①软件测试是为了发现错误而执行程序的过程;②测试是为了证明程序有错,而不是证明程序无错误;③一个好的测试用例是在于它能发现至今未发现的错误;④一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。5.2.2测试过程及结果如表5-1所示表5-1测试用例表测试模块操作步骤预期结果实际结果登录模块进入登入界面输入用户名密码例如(张三,123)成功登入出现提示“帐号或者密码不对请重新登录”登录模块进入登入界面输入用户名密码例如(张三,1)成功登入登录成功登录模块进入登入界面输入用户名密码例如(李四,2)成功登录登录成功收入管理模块进入收入管理,点击新增,选择项目工资,选择收支类型收入,输入金额1000,最后确定成功保存并且录入账本录入账本中,并且成功在收支项目中显示支出管理模块进入支出管理,点击新增,选择项目购物,选择收支类型收入,输入金额100,输入备注零食,最后确定成功保存并且录入账本录入账本中,并且成功在收支项目中显示家庭成员管理模块进入家庭成员管理,点击新增,真实姓名输入LOUIS,用户名输入louis,输入密码123,确认密码123成功添加新的家庭成员LOUIS在家庭成员管理界面显示新成员LOUIS续表5-1家庭成员管理模块进入家庭成员管理,点击修改,真实姓名LOUIS改为Louis,用户名louis不变,输入密码123,确认密码123成功修改家庭成员LOUIS的名字为Louis在家庭成员管理界面显示Louis收支项目管理模块进去收支项目管理,点击灰色收入后面的删除成功删除收支项目灰色收入收支项目栏中成功删除了灰色收入项目收支统计模块进入收支统计模块,显示以前录入的所有收支模块的信息显示以前录入的所有收支模块的信息显示完全,没有以后错误收支管理模块进入支出模块,点击查找,选择初试日期2010-05-01,再选择结束日期2010-05-31,最后点击确认显示出2010-05-06入账的将于费用支出。显示出2010-05-06入账的将于费用支出。数据库备份模块进入数据库备份,点击数据库备份,点击路径进行保存把数据备份保存到桌面成功保存数据库备份文档在桌面第6章总结与展望通过这次毕业设计,我大致了解了进行软件开发工作的基本过程,并且从中获得了许多实际的、有意义的知识,其中我对以下几点有深刻的体会:(一)编程中定义窗体及变量的名称时,一定要规范,要让其他编程人员能够看懂,必要时可以加注释。(二)对各个控件的属性、事件要了解清楚,这样才能在编程的过程中熟练的应用。(三)在编程的过程中要不断的思考,对每一个可能出现的问题都尽量在编程中处理掉,避免以后的麻烦。(四)对编程中用到的函数,要将其变量的含义了解清楚,这样才能顺利应用,以实现函数的功能。(五)程序编好后调试是非常重要的,它的意义在于通过调试可以逐步完善它的功能,改正程序中的错误,使程序尽量达到尽善尽美,在调试的过程中尽量不要以编程时的思想去调试,要以一个普通用户的思维去思考。结论经过这一个月来对系统的分析、设计,使我对基于WEB的家庭财务管理系统有了全面的了解与认识,同时对基于WEB的药品流通管理系统做了具体的解剖。我认为基于WEB的家庭财务管理系统成功的关键在于以下几方面:导航界面的清晰,简单设计。界面的清晰简单可以使学习用户一目了然,轻松的找到自己浏览本系统的目的所在。不需要在花费大量时间来寻找本系统的内容,浪费用户时间,甚至打消用户的积极性。系统的易管理性。系统的管理对于系统的维护来说很重要,社会是不断进步与发展的,用户对于网上娱乐的要求也会越来越高。因此系统要随着用户的需求而不断发生变化,不断更新系统的内容来满足用户更多的需求。本系统是利用ASP.Net2.0编程语言和SQLServer数据库编译设计的,运行环境简单,一般的浏览器都可进行浏览。本系统的大部分模块已经实现,并且也符合以上几个特性。但是,一个完整的系统仅仅靠两月的分析、设计来开发是远远不够的,它需要更长的时间来测试并完善。因此,本系统仍然存在着一些需要改进和不足的问题。比如系统的整体设计需要进一步的美观,系统的自适应性还不够完善还需要进一步的改善和加强,系统的内容需要更加丰富和多样化。随着研究的进行,可能还会出现其他一些问题,我会继续努力,逐步改善和不断完善本系统。致谢在本次毕业论文过程中,得到了指导老师的指导与支持。在此特别感谢指导老师的大力帮助。指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业论文起到了关键性的作用。我还要感谢我的母校,以及给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业论文我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我热爱的母校争光,为自己翻开辉煌的新篇章。参考文献屈喜龙,朱杰等.ASP+SQLSERVER开发动态网站实例荟粹[M].北京:机械出版社,2006.李明刚.ASP.NETWeb站点高级编程范例[M].清华大学出版社第五事业部曹衍龙.ASP/ASP.NET数据库开发实用工程案例精选[M].北京:清华大学出版社,2004.何光明.C语言实用培训教程[M].北京:人民邮电出版社,2003.VisualC#.NETWeb应用程序设计[M].北京:清华大学出版社,2005.1陈恩义.MichaelOtey,PaulConte[英].SQLServer2000开发指南[M].北京:清华大学出版社,2004.DreamweaverMX2004完全征服手册[M].北京;中国青年出版社,2004.吕静骅史进.DusanPetkovic[美].SQLServer2000基础教程[M].北京:清华大学出版社,2001李万宝.ASP.NET技术详解与应用实例[M].北京:机械工业出版社,2005.DouglasJ.Reilly.DesignMicrosoftapplication[M].北京:清华大学出版社,2001.MesbahAhmed,ChrisGarrett,JeremyFaircloth,ChrisPayne.DesignMicrosoftapplication[M].SyngressPublishing,Inc,2002.MartinKalin.面向对象程序设计C++语言描述.北京:机械工业出版社,2003.附录A译文.NETCompactFramework2.0中的新事物介绍.NETCompactFramework2.0版在以前版本——.NETCompactFramework1.0版——上提供许多改善。虽然普遍改善,但他们都集中在共同的目标——改进开发商生产力、以完整的.NETFramwork提供更强的兼容性,以及加大对设备特性的支持。这篇文章提供一个.NETCompactFramework2.0的变动和改进的高水平的概要。用户界面相关的灵活的设备显示器的小尺寸要求:应用程序高效率地使用可用空间。这在过去是要求开发商花费很多时间来设计和实施应用的用户界面。最近的在灵活的显示能力方面的进步,譬如高分辨率和多方位支持,使得用户界面发展的工作更具挑战性。为了简化创造应用用户界面的任务,.NETCompactFramework2.0提供许多关于这方面描述的新特性。窗口形式控制存在于用户界面中心的是控制;.NETCompactFramework2.0提供了很多新的控制。这些新控制由除了特别针对设备之外的控制组成。这种控制是.NETCompactFramework有的与.NETFramework一样充分的控制。MonthCalendarMonthCalendar控制是提供日期显示的可定制的日历控制,而且是有利于为用户提供一个图解方式来精选日期。DateTimePickerDateTimePicker控制是为显示和允许用户进入日期和时间信息的可定制的控制。由于它的一个紧凑显示和图解日期选择格式的组合,它特别适用于灵活的设备应用程序。当显示信息时,DateTimePicker控制与正文框相似;但是,当用户选择了一个日期,可能显示一个类似于MonthCalendar控制的弹出日历。WebBrowserWebBrowser控制压缩了设备Web浏览器,并且提供强大的显示能力和暴露很多事件。这些事件除了允许你的应用程序提供对于这些事件的用户化的行为,还允许你的应用程序追踪用户与Web浏览器内容的互动。NotificationNotification控制压缩了袖珍版个人电脑的通知特性,就是允许应用程序寄给用户一个没有改变用户当前活动的上下文的通知。通知文本可以是纯文本或HTML。除显示信息之外,通知可以通过包含在通知的HTML文本中的HTML按钮和链接来接受用户的输入。DocumentListDocumentList控制为显示和处理文件提供一个标准的机制,譬如当打开ExcelMobileandWordMobile中的使用的文件。DocumentList控制提供给用户操纵文件系统以及删除、复制、行动和重命名的能力。用户也可以用DocumentList控制通过红外线发送电子邮件和发送文件到其它设备。Smartphone中的DataGridSmartphone现在支持DataGrid控制。就像袖珍个人电脑,Smartphone中的DataGrid控制支持构形的大小、多种显示形式、数据捆绑、空值处理和跟踪用户单元选择的事件。LinkLabelLinkLabel控制是一个能显示一个或更多超链接的标签控制。SplitterSplitter控制是一个提供恢复相接控制的能力的分离栏。ToolBarToolBar控制是能将图像以按钮形式显示的Windows工具栏。用户控制.NETCompactFramework2.0现在支持用户控制。增加用户控制的同时,.NET

Compact

Framework

2.0应用程序现在可以用VisualStudio2005图像化地创建控制,并且,就如完整的.NETFramework一样,.NETCompactFramework2.0的用户控制自动在控制工具箱出现,而且可以用拖放安置在窗体上。显示和布局管理现在可用的WindowsMobile窗体因素的广泛多样性,要求应用程序开发者开发应用程序用户界面比以前更动态化。为了简化创造动态用户界面的任务,.NETCompactFramework2.0提供许多新布局和管理特性。控制相接.NETCompactFramework2.0控制现在支持相接。相接一个控制设置它与双亲控制的边缘相反,即填充边缘。因为双亲控制调整尺寸,相接控制自动调整尺寸来填充双亲控制指定的边缘。控制也可以相接填装整个双亲。控制停滞.NETCompactFramework2.0控制也支持停滞。停滞控制识别,即控制的一边或多边应该依然是与对应的边缘或双亲控制的边缘保持的一个固定距离。因为双亲控制调整尺寸,控制自动地调整尺寸,因此控制的停滞的一边依然是与双亲控制的对应的边缘保持的适当的距离。自动卷曲FormandPanel控制——除了继承于ScrollableControl控制的其他控制——现在提供AutoScroll属性。当设置为真,控制自动地提供一个卷曲栏来允许用户卷曲到任一个在控制可视范围之外的孩子控制。自动缩放比例所有ContainerControl起源的控制,譬如Form控制,现在提供AutoScaleMode属性。AutoScaleMode属性指出当控制在一个不同于最初它设计的决议上显示时,控制应该如何反映。当设置为AutoScrollMode.Dpi时,容器控制的所有孩子控制相应地与执行时间的显示决议相匹配。AutoScaleMode.None的值表明缩放比例不会自动完成,这样就使应用程序有责任在不同的决议上准确地提出。SuspendLayout和ResumeLayout.NETCompactFramework2.0Control类现在支持SuspendLayout和ResumeLayout方法。就像在完整的.NETFramework中一样,这些方法在与一个异于聚集布局事件关联,譬如改变一系列的孩子控制的位置或调整它们的尺寸。GraphicsDpiX和DpiY属性现在,Graphics类提供关于当前设备显示的决议的信息。DpiX属性显示水平的每英寸像素的数量,而且DpiY属性显示垂直的每英寸像素的数量。自定义图画为了简化丰富的用户界面的创作,.NETCompactFramework2.0增加了很多特性。这些特性允许应用程序更加容易运用自定义图画。可旋转的字体LogFont类添加到.NETCompactFramework2.0为在为在一个角度显示文本提供支持,以及为合并其他文本作用提供支持。自定义笔现在,应用程序可以创造具体颜色和大小的笔。位图.NETCompactFramework2.0为用位图工作提供改进。这种改进包括:当创建位图和有能力将一个位图保存到一个文件或流时,提供更多的选择。应用程序可以运用新加入的BitmapData类,通过LockBits和UnlockBits方法的联合更加容易观察和操作位图。因为应用程序需要在被处理的和自身的代码之间分享位图,现在,你可以通过GetHbitmap方法检索一个自身位图对象的句柄。DirectXWindows

Mobile

5.0软件通过执行DirectX应用程序设计界面(APIs)包含二维和三维的图画特性。因为.NET

Compact

Framework

2.0的开发商——瞄准Windows

Mobile

5.0基础设备的人,DirectX特性集有能力贯穿包含在“Microsoft.Windows.DirectX”命名域中的类和对应的汇编。键盘管理现在,灵活的设备的一个增长数字包括键盘。为了允许管理开发商利用可利用的键盘,.NETCompactFramework2.0为键盘提供改进的支持。注:在这部分提及的一些特性被作为一部分加到.NETCompactFramework1.0服务包,但在这里提它们,大家就肯定知道它们也是可用的。制表符支持现在,控制支持制表符命令以允许应用程序用户通过按制表符键在控制之间切换。KeyboardEvents和Form.KeyPreview现在,控制接受KeyUp、KeyDown和KeyPress事件。此外,现在,Form控制提供KeyPreview属性。当设置为假,keyboard事件就会被直接发到控制。当KeyPreview被设置为真,所有keyboard事件就会被发到Form实例以等待被发送到当前聚焦的控制。通过在Form实例的对应的事件处理设置KeyPressEventArgs属性为真,Form实例可以防止事件以焦点被送到控制。数据当然,数据是任一个应用程序的重要部份。不管有无关系,针对数据的类在必需访问和运作以数据编程的努力上的水平有直接效应。.NETCompactFramework2.0除了为现存的类提供新特性,还提供很多新数据类。Updatable,ScrollableAccesstoSQL

Server

2005MobileEdition.NETCompactFramework2.0为进入SQL

Server

2005MobileEdition(SQL

Mobile)数据库——SqlCeResultSet提供新类。新的SqlCeResultSet类提供卷曲和可更新的直接存取SQLMobile数据库。这个存取为存取SQLMobile数据提供一种比DatasSet类更加快速和更加资源高效率的解决方案。和DataSet类一样,SqlCeResultSet可以作为数据绑定资源使用。DataSetDataSet类和相关的类提供很多新特性。这些特性不仅提供改进的功能而且带来.NETCompactFramework的DataSet类与整个.NET

Framework更多协调。GetChanges和MergeMethods.NETCompactFramework2.0将GetChanges和Merge方法增加到DataSet类。GetChanges方法返回一个包含所有自从最后访问AcceptChanges之后的所有变动的DataSet的副本。返回的DataSet优化为合并。DataSet方法将DataSet合并到另一个里。它对于将变动从一个由一个GetChanges方法返回的DataSet合并到另一个特别有用。Copy方法现在,.NETCompactFramework的DataSet类提供Copy方法。Copy方法返回包含与原物相同的结构和数据的新DataSet。DataTablesSerialization现在,DataTable类提供WriteXml和ReadXml方法。这些方法提供各自的表的XML连载和非连载。而且,连载和非连载的支持的结合允许DataTables作为Web服务论点而通过。XML.NETCompactFramework2.0对于与XML相关类提供了很多改进。这些改进不仅简化运用XML数据运作的进程,而且给.NETCompactFramework中XML相关类带来更多与那些在整个.NET

Framework中可用的资源的协调。XPath支持现在,XmlDocument类支持SelectSingleNode和SelectNodes方法——二者都是提供用XPath搜索文档的能力。XML连载.NETCompactFramework2.0与相关属性类一起增加XmlSerializer类,譬如XmlElement和XmlAttribute。用XmlSerialize

网址:家庭财务管理系统 https://www.yuejiaxmz.com/news/view/93858

相关内容

家庭理财管理系统/家庭财务管理系统
java家庭财务管理系统
PHP家庭账单系统,php在线家庭财务管理系统
java课程设计家庭财务管理系统
家庭财务管理系统毕业论文.doc
家庭财务管理系统源代码
家庭财务管理系统研究背景、目的与意义
Java家庭财务管理系统设计与实现(开题+源码)
个人财务管理系统的设计
基于javaweb个人财务管理系统

随便看看