云南大学旅游文化学院本科生毕业论文题目:家庭理财平台的设计与实现系别:专业:学号:姓名:指导教师:完成时间:摘要在分析了国内外理财软件开发现状的基础上,介绍了基于B/S的家庭理财平台的开发过 程该系统是主要针对家庭内部理财需要而开发设计出来的,是以 Microsoft Visual Studio 2010作为开发平台,应用ASP.NET作为前台开发语言,应用SQL Server 2008数据库来作 为后台的数据库对该系统用到的数据进行存储和提取家庭理财系统基于 B/S 模式,能够记 录家庭每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医 疗费,储蓄等;可以根据输入的月份查询每月的收支情况因此,要求该系统必须具有以下 几个功能模块:用户注册登录模块、收支模块、系统管理模块、账目统计模块以及查询模块 家庭理财系统是使用计算机进行信息管理,不仅提高了办事效率,而且操作简便、界面友好、 实用性强、灵活变通,能够很好的满足家庭对财务管理方面的需要关键字:家庭理财;理财平台;软件开发;C#程序设计;ASP.NETAbstractBased on analyzing the domestic and foreign financial software development present situation, introduced the development process of family financial management platform based on B/S. The system is mainly for family internal financing need and the development of design out, is based on Microsoft Visual Studio 2010 as the development platform,using ASP.NET as the onstage development language, using SQLServer 2008 database as the background database storage and extraction of the system used for the data. Based on the B/S model of family financial managementsystemthat can record all the family monthlyincome and various expenses, including food consumption, rent,children's education fees, utilities, medical expenses, savings; can according to the balance of payments situation query input of the monthmonthly. Therefore, requires that the system must have the following function modules: User Login registered module, payment module,system management module, accounts statistics module, query module.Family financial management system is the use of computer informationmanagement, not only improves the efficiency, and has the advantages of simple operation, friendly interface, strong practicability, flexibility, can be very good to meet the needs of family financial management.Key WOrds:Family financial management; financing platform; software development; C# programming; ASP.NET目录摘要 IAbstract II1 引言 11.1课题背景 11.2家庭理财系统国内外的发展情况 11.3课题研究意义 21.4系统设计思想 22 开发环境 42.1数据库系统 42.2开发平台 42.2.1 .NET Framework平台 42.2.2 ASP.NET 42.2.3 ADO.NET 52.2.4 C# 52.3硬件环境 52.3.1开发环境 52.3.2运行环境 62.4软件环境 62.4.1开发环境 62.4.2 运行环境 63 系统概述 73.1 系统可行性分析 73.1.1技术可行性 73.1.2经济可行性 73.1.3操作可能性 83.1.4社会可行性 83.1.5法律可行性 83.2 系统需求分析 83.2.1 功能需求分析 83.2.2非功能需求分析 104 系统设计 124.1 系统的设计目标 124.2 系统功能结构 125 数据库设计 145.1 结构设计 145.1.1概念模型设计 145.1.2逻辑结构设计 155.1.3物理结构设计 175.2 运用设计 185.2.1 数据字典设计 186 系统设计与实现 216.1 系统登陆注册界面的设计 216.2其它功能界面的设计 247 系统测试 327.1测试方法 327.2测试说明 327.3测试结果 327.4测试总结 33致谢 35参考文献 361引言1.1课题背景随着社会的进步,生活的富裕,科学技术的不断提高,计算机科学日益成熟, 电脑已经成为家庭必备的工具之一,利用计算机进行家庭理财不失为一种行之有 效的方法,实用、美观、高效的同时也给用户带来了极大的便利,达到足不出户 就能管理财富的目的。
作为计算机应用的一部分,使用计算机对家庭财务进行管 理,具有手工管理所无法比拟的优点:检索迅速、查找方便、可靠性高、存储量 大、保密性好、寿命长、成品低等这些优点能够极大地提高家庭财务管理的效 率,也是家庭理财的科学化、正规化管理,与先进科学技术接轨的重要条件家庭理财是以家庭为单位的财务规划,具体来说是按照家庭的实物性财产、 现金收支流,围绕家庭的收入、消费、投资、风险承受能力、心理偏好等情况, 形成一套以家庭财务自由化为目标的家庭财务安排[1]从广义的角度来讲,合理 的家庭理财会节省社会资源,提高社会福利,促进社会的稳定发展从技术的角 度来讲,家庭理财就是利用开源节流的原则,增加收入,节省支出,用最合理的 方式来达到一个家庭所希望达到的经济目标[2]现今国内已有成熟的C/S结构的 理财管理系统,而B/S结构的实时管理的还尚不发达,因此该课题的研究目 的在于开发基于B/S的家庭理财平台1.2家庭理财系统国内外的发展情况家庭理财系统在国外很多地方已经相当的普遍,而且国外的家庭理财系统功 能相当强大,比如系统里包含有股票的预测、基金的分析等等在国内,尤其是 在近几年,伴随着计算机的高度普及,家庭理财系统的使用范围逐步扩大,从最 早的简单使用纸笔记录家庭、个人财务的收支情况,到现在用计算机对财务的收 支、查询、汇总等等。
巨大的市场需求也促使了很多公司加大了对家庭理财系统 的研究我国经济的飞速发展促使家庭理财工具的发展现行的主流理财软件大多是 单机安装版,此类软件需要占用用户计算机的硬件和软件资源在社会飞速发展 的今天,人们越来越追求方便、快捷、高效的软硬件服务对于网络的服务,大 众已经不喜欢把数据都下载和存储到本地计算机上,这样容易造成资源空间的紧 张,数据也很可能随计算机的故障而丢失因此,网络中提供的存储空间解决了 这一问题,由专业的公司提供专业的软件来对自己的数据进行有序、安全的管理, 可以为自己避免很多问题的出现纵观近些年国内软件的发展,越来越朝着网络 软件的方向发展,所以,该课题所要开发设计的基于B/S的家庭理财系统符合市 场需求,在方便人们生活的同时,也具有良好的应用前景国内比较健全的理财软件有佳盟个人信息管理软件,财智软件等佳盟软件 有“简易操作,轻松体验”,“快速记账,自由理财”的优势,它的用途广泛,具 有智能发送祝福、合理安排时间和日程、记录活动 /会议记录、制定工作目标等 功能财智软件可以自由定制首页,并与多家银行网银联网,能共享网银交易数 据,可以做到随时随地轻松理财财智软件的特色是财务诊断,预警用户的某项 投资或收支异常,能完整掌握家庭理财信息、快速诊断家庭财务健康状况。
国外最成功的理财软件有Quicken、Microsoft Money等Quicken首次于1983 年,长期以来一直是个人桌面财务软件的领导者,Quicken既可以处理复杂的预 算,也可以处理简单的,它可以从你的银行或信用卡中获取报表,支持 Windows 和Mac平台Microsoft Money发布于1991年,是微软对抗Quicken的工具,它 的成功之处在于功能强大,支持账户管理、投资市场、税务、预算、分析、个人 理财规划、支付等几乎所有金融管理的功能,使用了开放金融交换( Open Financial eXchange:OFX)协议,可以和各个银行的 Web Banking和 Online Banking 系统,各个证券公司、基金公司、税务机构的各个系统进行联接,方便用户使用, 给用户的所有资产管理提供了一个统一的管理入口[3]1.3 课题研究意义有很多家庭不善于理财,甚至不去理财,这样造成了财富的不合理运用,或 者浪费;而有的家庭善于理财,对自己的收入和支出都一清二楚 [4]对于前者, 应用家庭理财系统可以让他们清楚地看到自己的财富,了解自己的资产与负债, 从而做出合理的规划;对于后者,应用家庭理财系统可以使他们放弃传统的纸张 记账方法,只需点击鼠标,键盘输入,就可一目了然,非常方便。
如何设计开发 出功能强大,费用低廉,通用性强,适合我国国情的理财系统,这将是急需解决 的一个重要课题系统采用 B/S 结构,随时随地能用,不需要下载客户端,具有通用性,不必 担心客户端的兼容性问题课题采用C#语言,该语言是面向对象的编程语言,开发周期短,扩展性强, 拥有 ADO.NET 的强大支持,便于数据管理,同时也具有较高的安全性,易用性 在人机交互的设计理念上更加完善,具有更高的开发效率,实现复杂的编程应用 类的设计和引用更利于程序的开发C#采用代码和Html分离,具有更高的可读 性采用ASP.NET能在不更新整个页面的前提下维护数据,使得Web更为迅速 的响应回应动作,实现即时更新1.4 系统设计思想每一个系统,都要有一个合适的设计思想和方法,这样才能保证系统的基本 思想是贯彻适中的选择合理的逻辑结构,物理结构,操作系统和外部开发环境, 这些对系统的开发起着关键的作用只有这样才能构成完善的整体的系统该系 统的设计按照下述原则进行>实用性系统以用户需求为目标,以方便用户为原则根据用户实际的需求情况,完 成一个理财系统,并且将在统一的界面下提供各种实用功能,尽可能降低使 用前的培训、实施和使用中的维护时间。
>先进性该设计将充分应用现有成熟的计算机技术、网络技术、软件开发技术,为用 户提供高性能的系统系统将运用先进的客户机/服务器结构,采用 SQL Server 2008 数据库,可以方便的满足用户理财的需要>高可靠性一个实用的系统同时必须是可靠的,该设计通过合理而先进的网络设计以及 软、硬件的优化选型,可保证系统的可靠性与容错性>高安全性在设计中,将充分利用各种安全措施,既可以保证用户共享资源,同时也可 保证关键数据的安全性>可扩展性及灵活性系统的设计以方便未来业务的扩展和系统扩充为目标2 开发环境2.1数据库系统SQL Server 2008在Microsoft的数据平台上发布,可以组织管理任何数据 可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中可以对数 据进行查询、搜索、同步、报告和分析之类的操作数据可以存储在各种设备上, 从数据中心最大的服务器一直到桌面计算机和移动设备,他都可以控制数据而不 用管数据存储在哪里强壮的事务处理功能,采用各种方法保证数据的完整性SQL 语言的主要功能就是同各种数据库建立联系,进行共同但它的功能 并不仅限于查询,可以创建、修改、删除、更新数据库,入、删除等功能[5]。
按 照美国国家标准协会(ANSI )管理系统的标准语言还可以完成数据的查询、排 序、插入的规定, SQL 被作为关系型数据库 SQL 语句可以用来执行各种各样 的操作,例如更新数据库中的数据,从数据库中提取数据等目前,绝大多数流 行的关系型数据库管理系统,如 Oracle, Sybase, Microsoft SQL Server , Access 等都采用 TSQL 语言作为数据库操作的标准语言虽然很多数据库都对 SQL 语 句进行了再开发和扩展,但是包括 Select, Insert, Update, Delete, Create 等以 及 Drop 在内的标准的 SQL 命令仍然可以呗用来完成几乎所有的数据库操作2.2 开发平台2.2.1 .NET Framework 平台Microsoft .NET Framework是微软公司的新战略,它包含微软公司对未来的 核心战略、规划和洞察力所有微软公司的产品都将围绕这个战略开发,此战略 的核心就是.NET Framework,该框架提供了全面支持.NET的核心技术NET是 一种新的计算机平台,他简化了高度分布式Internet环境中的应用程序开发。
NET Framework框架的基本思想是:把原有的重点从连接到互联网的单一网络或设备 转移到计算机、设备和服务群组上,而将互联网本身作为新一代操作系统的基础 这样,用户将能控制信息的传送方式、时间和内容,从而得到更多的服务NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库总之,.NET Framework提供了一种更简单、更快捷、更廉价的方式,来获 得高效的程序NET的目标是人们今后无论何时何地,都可以通过任何一台计 算机或、掌上电脑等移动设备来处理个人数据、玩游戏或者上网冲浪通俗 地讲,.NET的核心内容之一就是要搭建第三代互联网平台2.2.2 ASP.NETASP.NET的前身ASP技术,是在IIS 2.0上首次推出(Windows NT 3.51),当 时与 ADO 1.0 一起推出,在 IIS 3.0 (Windows NT 4.0) 发扬光大,成为服务器端 应用程序的热门开发工具,微软还特别为它量身打造了 Visual InterDev开发工具, [6]在 1994 年到 2000 年之间, ASP 技术已经成为微软推展 Windows NT 4.0 平台 的关键技术之一,数以万计的 ASP 网站也是这个时候开始如雨后春笋般的出现 在网络上。
它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一ASP.NET具有以下几个重要特点:>强大性和适应性,ASP.NET是基于通用语言的编译运行的程序,所以它的强 大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上>简单性和易学性,ASP.NET使运行一些很平常的任务如表单的提交客户端的 身份验证、分布系统和网站配置变得非常简单> 高效可管理性,ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务 器环境和应用程序的设置更加简单,因为配置信息都保存在简单文本中,新 的设置有可能都不需要启动本地的管理员工具就可以实现2.2.3 ADO.NETADO.NET的名称起源于AD0(ActiveX Data Objects),这是一个广泛的类组, 用于在以往的 Microsoft 技术中访问数据.之所以使用 ADO.NET 名称,是因为 Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口ADO.NET 是与数据源交互的 .NET 技术有许多的 Data Providers ,它 将允许与不同的数据源交流 ――取决于它们所使用的协议或者数据库 然而 无论使用什么样的 Data Provider ,你将使用相似的对象与数据源进行交互。
SqlConnection 对象管理与数据源的连接 SqlCommand 对象允许你与数据 源交流并发送命令 给它为 了对进行 快速的只 “向前”地读取数据, 使用 SqlDataReader 如果想使用断开数据,使用 DataSet 并实现能进行读取或者 写入数据源的 SqlDataAdapter [7] 2.2.4 C#C#是微软开发的程序设计语言,它是一种最新的、面向对象的编程语言⑻ 因此对于使用这种语言的开发人员来说,开发的基于Microsoft.NET平台的应用 程序会得到很大的便利,Microsoft.NET提供了一系列的工具和服务来最大程度 地开发利用计算和通讯领域正事由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选一一 无论是高级的商业对象还是系统级的应用程序使用简单的C#语言结构,这些 组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作 系统上通过Internet进行调用C#使得C++程序员可以更快更好的进行程序开发, 另外C/C++本身很好的处理方法也不会丢掉,这是两全其美的方法,因此正是因 为存在这层关系,C#与C/C++有很多一样的地方,熟悉C或C++程序的软件人 员可以很快的转向C#程序开发。
2.3 硬件环境2.3.1 开发环境系统的开发环境如下:CPU: ************内存:4G硬盘空间: 40G2.3.2 运行环境系统只有在一定的环境下运行才能表现出稳定性和可靠性,该系统所需的基 本运行环境如下:CPU: Intel双核@ 2. OGHz或以上(CPU越高越好,运行越流畅)内存: 2G 及以上硬盘空间: 80G 及以上分辨率: 1024*768 或以上2.4 软件环境2.4.1 开发环境操作系统: Windows XP/7数据库: SQL Server 2008开发平台: Microsoft Visual Studio 20102.4.2 运行环境操作系统: Windows XP/73 系统概述3.1 系统可行性分析可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究 的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行 性的分析是非常必要的,也是很重要的可行性取决于实现应用系统的资源和条 件可行性分析应具有预见性、公正性、可靠性、科学性的特点系统分析是平台开发的一个不可缺少的环节,为了能够使该系统更好、更完 善地被设计出来,就必须先进行调查研究。
在系统调查的基础上,对新系统的功 能进行细致的分析,从而才能够开发出完整的系统设计3.1.1 技术可行性Microsoft Visual Studio 2010 是目前最流行的 Windows 平台应用程序开发环 境,此版本集成开发环境的界面被重新设计和组织,更加简单明了使用 VS2010 作为开发工具使设计变得简单快捷SQL Server 2008在Microsoft的数据平台上发布,可以组织管理任何数据 可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中可以对数 据进行查询、搜索、同步、报告和分析之类的操作数据可以存储在各种设备上, 从数据中心最大的服务器一直到桌面计算机和移动设备,他都可以控制数据而不 用管数据存储在哪里强壮的事务处理功能,采用各种方法保证数据的完整性在软件方面,由于VS2010和SQL server 2008都两个非常成熟的开发工具, 无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的在技术难度方面,经常请教指导老师,加上对相关资料的参考,因此,开发 过程中的困难和问题也可迎刃而解由此得出该系统在技术上具有可行性3.1.2 经济可行性如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来 越低。
该系统开发成本较低,只是需要一台配置一般的计算机,该系统运行时占 计算机的资源也不多,但不会因为开发成本低而造成系统功能性能的下降家庭 理财系统廉价的开发成本,却能够为使用者带来简便快捷的功能主要表现在:>该系统能提高家庭理财管理的效率,节省时间,减少投入不必要的人力与物 力>该系统拥有多种实用功能,包含了家庭成员管理,收入支出管理等多种功能, 具有较强的实用性和方便性,是可以普及使用的>该系统还有查询和统计功能,能够为使用者提供精确地收入和支出情况,让使用者对自己财务的来源和去向一目了然,并做好规划,避免不必要的开支由此得出该系统在经济上具有可行性3.1.3 操作可能性基于 B/S 的家庭理财系统,具有实用的功能设计和简单的操作,任何一个家 庭的普通使用者均可很快的熟悉并熟练的使用此系统3.1.4 社会可行性对于家庭理财系统来说,是值得推广、值得广泛使用的,算着计算机技术的 飞速发展,家庭中拥有计算机是异常普遍的,再加上价格低廉,很容易普及和发 展所以该系统有用很大的发展前途3.1.5 法律可行性该系统作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵 权,在法律上是可行的。
3.2系统需求分析开发实现一个应用系统,系统的需求分析阶段是非常重要的,分析的成功与 否,决定着整个系统功能的完善性以及稳定性,是开发的依据通过需求分析, 做到充分理解用户对系统的需求需求分析的任务不是确定系统怎样完成它的工 作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、 清晰、具体的需求3.2.1功能需求分析家庭理财系统是针对用户要求用计算机,对自己财务的收入、支出以及相关 的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件通过需求分析,该系统需要具备以下功能:>由于该系统是面对普通用户设计,那么该系统的操作界面必须通俗易懂、一 目了然,使人一看就能理解,所以该系统要求具有一目了然的人机界面>要能够记录家庭每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等;>可以根据输入的月份查询每月的收支情况因此,要求该系统必须具有以下几个功能模块:用户注册登录模块、收支模 块、系统管理模块、账目统计模块以及查询模块各模块具体的需求描述如下:>用户注册登录模块用户注册:新用户通过填写信息进行注册 用户登录:验证用户的信息是否正确。
>数据库备份模块对数据库里的数据进行备份>收支模块对收支记录的添加、修改>系统管理模块用户修改密码,添加账户与成员>账目统计模块对总资产、总负债、净资产的统计管理等>查询模块实现对收入记录、支出记录按时间查询等系统的用例图如图 1 所示:图 1 系统用例图系统处理的准确性和及时性系统的易用性系统的标准性>安全性需求系统保密性:只有授权的用户才能动用和修改信息,而且必须防止信息的非 法、非授权的泄漏系统的完整性:信息必须以其原形被授权的用户所用,也只有授权的用户才 能修改信息漏洞检测和安全风险评估:识别检测对象的系统资源,分析资源被攻击的可 能指数,了解支撑系统本身的脆弱性,评估所有存在的安全风险可用性和抗毁性:设置备份机制、容错机制,防止在系统出现单点失败时, 系统的备份机制保证系统的正常运行可用性需求控制系统预置必有项目不可删除和修改 操作完成时有统一规范的提示信息 在进行理财记账开始,不可对账户和成员进行删除,只可进行添加或修改信息4系统设计4.1系统的设计目标系统必须要满足使用方便、操作灵活等设计需求该系统在设计时应满足以 下几个目标:>界面设计美观友好,人机交互简单明了,数据存储安全可靠。
>能记录收入与各项开支情况>为用户提供一个方便、快捷的查看所有记录的功能>实现账目统计,财务分析功能>对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误>系统最大限度地实现了易维护性和易操作性>系统运行稳定安全可靠4.2 系统功能结构用户首次使用时需先进行注册,注册登录后可以进行对账户与家庭成员的设置,设置完成后即可开始使用该系统进行记账,完成日常记账、统计、查询等功 能系统的功能结构如图 2 所示:理财系统注册 登录修改密码成员管理账户管理存款日常收支借收入回债 权借 入转账 取款财务概况 资产列表财 务 分 析日常收支表资产负债表图 2 系统功能结构图系统的流程图如图 3 所示:是新用户否是结束信息是否合.否 法注册开始统计查询系统设置记账登录退出登录图 3 系统使用流程图5数据库设计5.1结构设计5.1.1 概念模型设计家庭理财系统主要功能有用户注册登录,收入模块、支出模块等因此,设 计数据库表的时候设计了用户表、成员表、收支项目表、收支记账表等来存储相 应的信息数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行 为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。
描述了数据 结构、数据操作及数据约束[9]E-R 模型的基本概念:E-R 图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图E-R图的理念是:项目所有参与者能理解E-R图°E-R图由不同实体类型、关系、 特性和类型构成实体是诸如用户的实际对象,有时更抽象,但必须有业务意义 特性用于描述实体,关系用于实体之间[10]>实体:现实世界中的事物;>属性:事物的特性;>联系:现实世界中事物间的关系实体集的关系有一对一、一对多、多对多 的联系该系统的 E-R 图如图 4-图 6 所示:金额用户名NN家庭成员收支NN用户N11日期记账编 \ 码N N统十N N用户名收支记录财务分析厂图 4 系统 E-R 图 1E编号1N成员名 用户名密码用户表成员表图 5 系统 E-R 图 2密码1NNNN账户备注记账编用户名隶属项 目日期用户名成员名项目编 金额号一一■成员名收支记录成员表用户表图 6 系统 E-R 图 35.1.2逻辑结构设计逻辑结构设计如表 1-表 6 所示:表 1 用户表字段名称数据类型字段大小字段说明usernamenvarchar16用户名passwordnvarchar64密码E-mailnvarchar50E-mail表 2 成员表字段名称数据类型字段大小字段说明IDint长整型成员IDusernamenvarchar16用户名membernamenvarchar16成员名sexnvarchar2成员性别表 3 收支账户表字段名称数据类型字段大小字段说明项目编码int整型项目编码项目名称nvarchar64隶属项目nvarchar4收入/支出/转账/负债上级项目编码int整型底层项目要写上级编 码,本身顶层写本身是否顶层nvarchar2是/否是否底层nvarchar2是/否备注nvarchar64表 4 收支记账表字段名称数据类型字段大小字段说明记账编码int长整型记账编号日期date短日期记账日期项目编码int整型隶属项目nvarchar4收入/支出/负债账户nvarchar64备注nvarchar64金额float整型用户名nvarchar16成员名nvarchar16表 5 资产账户表字段名称数据类型字段大小字段说明IDint长整型名称nvarchar64所属人nvarchar16成员名类型nvarchar50现金/银行账户/第三方储值账 户/投资账户/保险账户备注nvarchar64卡号等均可写在备注中表 6 账户机构表P name用尸表¥ LE^rriame pasr/jord E-nBiF]收支项□吉项目AffiC.'C 上怨顷目塀珥 圣当厲虛口不LBhnr收支A账表 nrIDR nremb曰iim徒SEX字段名称数据类型字段大小字段说明namenvarchar64账户/机构名称类型nvarchar10账户/机构userniarre图 7 逻辑关系结构5.1.3 物理结构设计在数据库中,数据的存储如图 8-图 13 所示:列茗数捐类型 允许晦II值usernamenvarchar{16)passwordnvarchar{64)f -rnrf]nwarc±i3r{50)图 8 用户表列名数堀类型允许Null值►IDintOmembernannenvarchar(16)sexnuarchar(3usernamenvarchar(16)0图 9 成员表列容数馨类型允许Null值►V1喷旨编祠 'intn项目名称nvardiar(^4)B隶厲项目nwBrt±i3r{4)B上靈项目漏码intO是杏顶层nvardiarf^B是否底层nwart±i3r(^S亀主nvardi3r(64)画图 10 收支项目表列名 数据粪型 Null值图 11 收支记账表列容数据类型允许Null值►ID■itB?窑称门阳「击曰「伍勺B所属人nv3rdisr{lJGi)S类型nvar±ar(50)n备注nvarchar(64)凰用户名nvarchar(16i)B图 12 资产账户表列名数据类型允许Null值唯 name:nuarc±iar(6^)O类型nuarchar(lO)B图 13 账户/机构表5.2 运用设计5.2.1 数据字典设计数据字典[11]如表 7-表 12所示:表 7 用户信息名字:用户表定义:用户注册时的信息描述:用户表 =username + password + E-mail位置:家庭理财表 8 成员信息 名字:成员表定义:注册用户自行添加的家庭成员描述: 成员表 =ID + membername + sex + username位置:家庭理财表 9 收支项目信息名字:收支项目表描述:各种收入和支出的明细信息定乂:收支项目表=项目编码+项目名称+隶属项目+上级项目编码+是否顶层+是 否底层+备注位置:家庭理财表 10 收支记账信息名称:收支记账表描述:收入和支出的来源和去向定义:收支记账表=记账编码+日期+项目编码+隶属项目+账户+金额+备注+ 用户名+成员名位置:家庭理财表 11 资产账户信息名称:资产账户表描述:用户在记账是所用的账户定义:资产账户表=ID +名称+所属人+类型+备注+用户名 位置:家庭理财表 12 账户/机构信息名称:账户/机构表描述:各种银行机构或保险机构的名称以及卡号定义:账户/机构表=ID +名称+卡号+所有者位置:家庭理财6系统设计与实现6.1系统登陆注册界面的设计登陆界面运行结果如图 14所示:丿■用户琲琳用户君密玛图 14 家庭理财系统登陆界面该页面是用户登陆页面,输入正确的用户名、密码和验证码点击登陆按钮则 进入登陆后页面。
若用户未注册点击注册按钮进入注册页面登录界面活动图I填写燮录信息III接收餘信息I登录成功图 15 登录活动图 其核心代码如下: conn.Open();cmd.CommandText = "select Count(*) from 用户表 where username='" + UserName.Text.Trim() +"'";int result = Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if (result < 1){Label1.Text = "用户不存在,请注册或重新输入!";UserName.Focus();}cmd.Parameters.Clear();cmd.CommandText = "select Count(*) from 用户表 where username=@A and password=@B";cmd.Parameters.AddWithValue("@A", UserName.Text.Trim());cmd.Parameters.AddWithValue("@B", Password.Text.Trim());conn.Open();int res = Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if (res < 1){Label1.Text = "密码错误,请重新输入!";Password.Text ="";Password.Focus();}else (res >= 1){Session["UserName"] = UserName.Text.Trim();Response.Redirect("UserMain.aspx");}注册界面运行结果如图 16所示:图 16 家庭理财系统注册界面该界面是用户注册界面,填写完信息点击注册时会对所填信息进行验证,系 统会将用户名与数据库内已存在的用户进行比对,会验证两次密码是否一致,会 检测 E-mail 的书写格式是否正确,若都无问题即注册成功,并跳转回登陆界面。
注册流程图如图 17所示:图 17 注册流程图r—■输入用户名,密 码,确认密码,E-mail•注册其核心代码如下:conn.Open();cmd.CommandText = "insert into 用户表(username,password,[E-mail]) values(@uname,@pwd,@e)";cmd.Parameters.AddWithValue("@uname", unameTextBox.Text.Trim()); cmd.Parameters.AddWithValue("@pwd", passwordTextBox.Text.Trim()); cmd.Parameters.AddWithValue("@e", emailTextBox.Text.Trim()); cmd.ExecuteNonQuery();conn.Close();Functions.Alert("注册成功!","UserLogin.aspx");6.2其它功能界面的设计由于功能模块较多,而模块中界面的实现过程都是类似的,所以,现在只介 绍系统重点设计系统内主界面运行结果如图 18 所示:盏:媳诰霄□監户亡珅□嚴鼻辰珅□餵旳逞出记录麒盘口口京临支皿款LllftSfii段[I借出[I收冋esn^A□时资产□崙产刿去口财缶帽况财劳料析u口第映支士图 18 家庭理财系统主界面 该界面是登陆成功后进入到系统的首个界面,如果已经开始记账,此界面应 显示所有记账记录的详情。
在该界面可以直接点击进入到其它功能模块的界面账户管理界面、添加账户、修改账户界面运行结果如图 19-图 21 所示:JStUID名称所居人删备注修改删除1闿的信用rii银行砥户帳改■誅T勒的支恫宝竿二尸诒旧叶口KS;■烧G:烂牡:烂修改・隊图 19 家庭理财系统账户管理界面添加账户刍前用户 ":备注卅存 £ £图 20 家庭理财系统添加账户界面修改账户信息当前用户 边名称我的支讨宝所属人自己T类型第三方储值账户-备注Z保存图 21 家庭理财系统修改账户信息界面账户管理功包含三个界面,能对账户进行增删改查的操作,需要注意的是账户和成员等基础设置要先进行,然后再开始记账账户管理模块活动图图 22 账户管理模块活动图 其核心代码如下: conn.Open();cmd.CommandText = "delete from 资产账户表 where 名称='" +GridView1.DataKeys[e.RowIndex].Value.ToString() +"'"; cmd.ExecuteNonQuery();cmd.Parameters.Clear();cmd.CommandText = "delete from 收支记账表 where 账户='" +GridView1.DataKeys[e.RowIndex].Value.ToString() +"'"; cmd.ExecuteNonQuery();cmd.Parameters.Clear(); cmd.CommandText = "select * from 资产账户表"; 修改密码界面运行如图 23所示:修改密码当前用户:hwL图 23 家庭理财系统修改密码界面该界面是修改密码界面,此界面会验证原密码是否正确,两次新密码是否一 致,均无误后即可更改密码,下次登录时生效。
图 24 修改密码流程图其核心代码如下:cmd.CommandText = "Update 用户表 set password=@A where username=@B";cmd.Parameters.AddWithValue("@A", tbpwd1.Text.Trim());cmd.Parameters.AddWithValue("@B", Session["UserName"].ToString());conn.Open();cmd.ExecuteNonQuery();conn.Close();日常收支界面运行结果如图 25所示:till丨丨常收支记账2D14J12A日期英别收支项目图 25 家庭理财系统日常记账界面该界面是在完善初始的一些设置之后最先用到的功能模块,在进行记账是需 要注意有“*”号的均是必填的,要先进行类别选择,选择后才会相应出现不同 的项目,都填好后点击保存按钮,系统验证无误后即返回“添加记录成功!”字 样的提示,并重新载入此界面若点击重置按钮,则将所有填写或选择的数据清 空输入类别,项目, 账户,金额,成员 名图 26 记账流程图其核心代码如下:conn.Open();cmd.CommandText = "insert into 收支记账表(日期,项目编码,隶属项目,账户,金额,备注, 用户名,成员名) values (@rq,@xmbm,@lsxm,@zhh,@jine,@bz,@uname,@mname) ;//将数据传 回收支记账表cmd.Parameters.AddWithValue("@mname", ddlFour.SelectedValue); cmd.ExecuteNonQuery();conn.Close();Functions.Alert(”添加记录成功!", "DIE.aspx");财务概况界面运行结果如图 27所示:J资产 总负债 净资产2001 200 1801图 27 家庭理财系统财务概况界面该界面直观的显示了用户的总资产,总负债及净资产。
并通过柱状图将每月 的收支情况呈现给用户日常收支表界面运行结果如图 28所示:图 28 家庭理财系统日常收支表界面该界面通过对时间的筛选进行对指定时间段内的收入和支出进行统计查询 可以查到收入与支出总和,并且列举了各项收入或支出的总和日常收支模块活动图I日常收支表II诜择查间圣件I接收查询条件信息II按粲件进行查询II显示査询结果I图 29 日常收支表活动图7系统测试7.1 测试方法白盒测试:是通过程序的源代码进行测试而不使用用户界面这种类型的测 试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错 误,进而加以修正[12]黑盒测试:是通过使用整个软件或某种软件功能来严格地测试,而并没有经 过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的 测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作在测试 时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性 的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说 明书的规定正常使用,程序是否能适当地接受和正确的输出它不管程序内部结 构是什么样的,只是从用户出发,根据产品应该实现的实际功能和已定义好的产 品规格来验证产品所应该具有的功能是否实现,每个功能是否都能正常使用,是 否满足用户需求。
单元测试:是指对软件中的最小可测试单元进行检查和验证单元就是人为 规定的最小的被测功能模块单元测试是开发者编写的一小段代码,用于检验被 测代码的一个很小的、很明确的功能是否正确通常而言,一个单元测试是用于 判断某个特定条件(或者场景)下某个特定函数的行为压力测试:是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者 不能接收的性能点,来获得系统能提供的最大服务级别的测试通俗地讲,压力 测试是为了发现在什么条件下应用程序的性能会变得不可接受[13]7.2 测试说明测试方案是测试阶段的关键技术问题为了提高测试效率降低测试成本,也 本着容易实施的原则,该测试主要采用黑盒法进行测试,再用白盒法进行补充测 试没有进行压力测试7.3 测试结果因有些功能模块相类似,所以仅测试相似界面的其中一个界面,不进行全部 测试被测程序输入数据实际输出预期输出原因用户登录(UserLogin)用户名密码验证 码验证用户名,密 码,验证码都正 确的可以登录, 否则登录失败验证用户名,密 码,验证码都正 确的可以登录, 否则登录失败验证用户名,密 码,验证码都正 确的才可以登录注册信息(UserRegister)用户名E-mail密 码密码核对用户名不可重 复,密码,密码用户名不可重 复,密码,密码验证用户名不存 在,两次密码必核对一致,E-mail格式正确 即为注册成功, 否则注册失败核对一致,E-mail格式正确 即为注册成功, 否则注册失败须一致,E-mail 格式必须正确才可以注册修改密码(CP)原密码新密码新 密码核对原密码无误,新 密码,新密码核 对一致,可修改 密码,否则修改 失败原密码无误,新 密码,新密码核 对一致,可修改 密码,否则修改 失败原密码无误,两 次新密码一致才 可以修改密码添加成员(MMadd)名称性别验证名称,不存 在添加成功,否 则添加失败验证名称,不存 在添加成功,否 则添加失败名称必须唯一才 可添加成功添加账户(AMadd)名称所属人类型 备注验证名称,选择 所属人和类型, 均可行添加成功,否则添加失 败验证名称,选择 所属人和类型, 均可行添加成功,否则添加失 败名称必须唯一, 所属人与类型必 须选择才可添加 成功日常收支(DIE)类别收支项目账 户金额备注成员 名验证选择类别、 项目、账户、成 员名,确认输入 金额,填写完整 后添加记录成功,否则添加失 败验证选择类别、 项目、账户、成 员名,确认输入 金额,填写完整 后添加记录成功,否则添加失 败类别,项目,账 户,成员名,金 额为必填选项, 均填写完整方可 添加记录借入(Borrow)债权人借入金额 成员(债务人)验证债权人,成 员的选择,金额 的输入,填写完 整后添加记录成 功,否则添加失 败验证债权人,成 员的选择,金额 的输入,填写完 整后添加记录成 功,否则添加失 败债权人,借入金 额,成员均为必 填选项,均填写 完整后方可添加 记录收回(TBack)债务人本金利息 成员验证债务人,成 员的选择,本金, 利息填写完成, 填写完整后添加 。