基于NET平台个人收支管理系统的设计与实现.docx
《基于NET平台个人收支管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于NET平台个人收支管理系统的设计与实现.docx(25页珍藏版)》请在冰点文库上搜索。
基于NET平台个人收支管理系统的设计与实现
毕业设计(论文)
基于.NET平台个人收支管理系统
的设计与实现
院系
专业
班级
学号
学生姓名
联系方式
指导教师
2012年4月
第1章引言
1.1课题开发背景
随着科技的出现与迅速的发展、技术步伐的加快,每个人走在事业的道路上会面临着众多的挑战与竞争,在竞争过程中,对于个人而言,良好的收支管理是个人发挥竞争优势的前提。
收支管理的目的,不在于要赚很多很多的钱,而是在于让人们将来的生活有保障,生活的更好,更能体现其竞争力。
所以说收支管理不只是有钱人的事,工薪阶层和学生同样需要管理自己的收支。
因此收支管理是一个人进入社会后必须具备的能力之一,这对即将踏入社会的毕业生来说显得尤其重要。
所以建立这样的意识还是很有必要的,为学生以后踏入社会奠定坚实的理财基础。
但是个人的收支包括很多种,收支统计就变成了一件繁琐的事,靠笔记和脑记是远远不够的,需要有一个智能的日常收支管理软件帮助我们更好的打理我们的收支。
目前市场上的财务软件种类繁多,大型的财务软件如金蝶、用友等,针对个人的财务软件有用友旗下的财智软件、中国式个人理财软件等。
但这些软件功能太多而显得繁琐,而我们目前需要的功能仅是用户管理、收支项目管理、收支信息录入、收支信息查询。
系统就是基于这样的情况而设计的,软件采用C/S设计模式。
1.2开发环境与开发工具
设计基于.NET平台,Windows开发环境,应用的开发工具是MicrosoftVisualStudio2008或者MicrosoftVisualStudio2010,程序设计语言是C#,采用三层的设计模型,SQLServer2005数据库。
1.2.1.NET平台介绍
Microsoft.NET是一个称之为理想化的未来因特网环境,微软的构想是一个“不再关注单个网站、单个设备与因特网相连的互联网环境,而是要让所有的计算机群、相关设备和服务商协同工作”的网络计算环境。
Microsoft.NET追求的是以上所说的一种理想的互联网环境。
Microsoft.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息、文件和程序。
而用户无需知道这些东西存在什么地方,甚至连如何获得等具体细节都不知道。
Microsoft.NET开发框架支持多种语言。
而且Microsoft公司支持第三方生产针对Microsoft.NET的编译器和开发工具,这也就是说几乎所有市场上的编程语言都有可能应用于Microsoft.NET开发框架。
.NET框架图如图1-1所示。
图1-1.NET框架图
1.2.2C#语言及VisualStudio2008
C#是美国微软公司推出的Windows操作系统下的应用程序开发平台VisualStudio.NET(简称VS.NET)家族中的一员C#是对C++进行了很大改进的一种完全面向对象的可视化程序设计语言。
由于C#采用了类似于VisualBasic的较易使用的程序设计界面,从而成为了一种更加简单易学、功能强大的应用程序开发工具。
C#是一种先进的、面向对象的语言,使用C#语言可以让开发人员快速的建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务,帮助开发人员开发机基于计算和通信的各种应用。
由于C#是一种面向对象的开发语言,所以C#可以大范围地适用于高层商业应用和底层系统的开发。
即使是通过简单的C#构造,也可以让各种组件方便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。
VisualStudio是一套完整的开发工具集,利用它可以生成Windows应用程序,Web应用程序,WebService程序等。
VB.NET、VC.NET、C#.NET、J#.NET都可以在这个环境中开发。
利用此IDE可以共享工具且有助于创建混合语言解决方案。
另外,这些编程语言使用了.NETFramework的功能,通过此框架可以简化ASP.NETWeb的开发难度。
1.2.3SQLServer2005
MicrosoftSQLServer是由美国微软公司所推出的关系数据库解决方案。
SQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。
SQLServer是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。
SQLServer数据平台包括以下工具:
关系型数据库,复制服务,通知服务,集成服务,分析服务,报表服务,管理工具,开发工具。
通过SQLServer平台可以为用户提供以下方面的应用:
充分利用数据,提高生产力,减少IT复杂度,更低的总体应用成本。
系统所采用的开发环境主要是基于数据库系统的SQLServer2005和基于面向对象程序设计的C#。
利用SQLServer2005创建个人收支系统信息表。
利用C#和数据库建立连接之后,利用C#中的控件按钮以及一些程序代码实现一些特定的功能,例如基础收支类别信息的管理、收支明细管理和收支信息的查询统计。
1.3三层架构介绍
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
三层架构通常意义上的三层架构就是将整个业务应用划分为:
表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了“高内聚,低耦合”的思想。
表现层(UI):
用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层(BLL):
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层(DAL):
该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
1.4系统简介
“个人收支管理系统”主要包含以下几个模块:
用户管理,收支项目管理,收支明细管理和收支信息的查询统计。
可以实现用户管理功能,包含注册、密码设置及更改、登录功能;收支项目管理功能,包含收支项目的添加、更改及删除功能;收支明细管理功能,包含对每一项收支信息的录入、保存、修改及查询功能;收支信息统计功能,此功能是系统中最重要的功能,可以根据用户的设置统计出相应的信息并且以表格的形式显示出来。
系统里面还有信息验证及提醒功能。
每一项操作,都设置有操作提醒,方便用户知道操作的结果。
第2章
可行性研究与需求分析
2.1可行性研究
可行性研究主要从业务逻辑分析可行性和技术可行性来论证设计的可行性。
目前市场上的财务软件种类繁多,大型的财务软件如金蝶、用友等,针对个人的财务软件有用友旗下的财智软件、中国式个人理财软件等。
“个人收支管理系统”的业务逻辑处理完全可以参照这是成熟软件的处理方式,因此在业务逻辑分析上具有可行性。
根据业务逻辑分析,需要掌握的相关技术有:
1.SQLServer数据库基础知识,比如建库、建表的方法;添加、更改及查询的SQL语句。
2.三层架构的比较深入的理解及熟练应用。
用这个架构是为了程序以后扩展。
3.ADO.NET知识。
用于对数据库的操作。
4.WinForm应用程序的常用控件,比如:
MenuStrip(菜单栏控件)、ToolStrip(工具栏控件)、ListView(数据列表控件)、DataGridView(数据列表控件)、CheckBox(复选框)、RadioButton(单选框)、ComboBox(下拉列表)、DateTimePicker(日期控件)、ErrorProvider(操作信息提醒)、Timer(计时器)、BackgroundWorker(多线程控件)等等。
5.类、接口、字段及属性等知识。
2.2业务需求
鉴于此系统主要是给个人使用,系统界面应该友好的面向用户,具有操作简单、易于用户数据的录入和查询,所以选择的是Windows窗体应用程序进行开发的。
为了便于以后维护、扩展,具体设计的时候用得是三层架构开发模式。
而且SQLServer数据库又是关系型数据库,与面向对象的设计思想能够很好的结合。
SQLServer2005可以通过新数据库镜像方法,将记录档案传送性能进行延伸。
您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL服务器系统的可用性。
SQLServer2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
根据分析数据库共需要三张表,用户表、收支类型表、和收支明细表。
用户表由于存储用户ID、登录名和密码;收支类型表用于存储收支项目编号和收支项目名称;收支明细表主要用于存储用户的收支详细记录,如用户编号、收支项目、收支时间、是否收支、收支事件、收支金额、记录建立时间、记录修改时间等,并且收支明细表其它两个表做关联统计相关用户不同收支项目的详细记录。
2.3功能需求
由于要实现收支管理,“个人收支管理系统”至少要满足以下功能:
1.需要建立收支项目,并且收支项目可以根据要求随时设置。
毕竟每一个人的生活环境是不一样的,所以每个人都有自己的消费领域。
所以本系统不可能设置几个固定的收支项目。
2.由于软件所设置的信息记录的是个人隐秘的事情。
这些收支信息很有可能不让其它人随便查看,所以需要用户管理功能。
3.要方便录入收支信息,并且随时可以根据需要添加收支项目。
4.提供查询功能,可以根据收支日期或者时间、收支项目查询出收支明细信息。
5.相对查询功能来说,统计功能是更为重要的一项功能。
比如统计一个月每一天的收支总计,每一天各类型的收支总计等等。
综上所述,本系统需要四个重要的功能,分别如下:
1.用户管理功能。
包含注册、密码设置及更改、登录功能。
2.收支项目管理功能。
包含收支项目的添加、更改及删除功能。
3.收支明细管理功能。
包含对每一项收支信息的录入、保存、修改及查询功能。
4.收支信息统计功能。
此功能是系统中最重要的功能,可以根据用户的设置统计出相应的信息并且以表格的形式显示出来。
另外,系统里面还有信息验证及提醒功能。
每一项操作,都设置有操作提醒,方便用户知道操作的结果。
由于每台计算机的服务器名称不一样,数据库的链接字符串是存放在配置文件里面。
2.4性能需求
从性能上说要保证系统能够长期有效、安全、稳定、可靠高效运行。
系统处理数据的准确性和及时性是系统的必要性能,在系统的设计和开发过程中,要充分考虑当前的和将来可能的承受的工作量,使系统的处理能力和响应时间能够满足用户对数据的处理的需求。
系统设计时应考虑以后的可维护性和扩充性。
系统采用了三层架构(数据访问层、业务逻辑层、表现层)的设计方法,并且是基于.NET平台开发,很容易对功能进行维护及扩展。
2.5运行需求
由于系统是基于.NET平台开发的,故系统需要在.NETFramework2.0以上的版本运行,为保证系统的最佳性能,最好在.NETFramework3.5版本上运行。
操作系统要求Windows操作系统,内存大于1G,数据库为SQLServer2005。
第3章
整体设计
3.1系统整体设计
通过需求分析“个人收支管理系统”主要包含以下几个模块:
用户管理,收支项目管理,收支明细管理和收支信息的查询统计。
可以实现用户管理功能,包含注册、密码设置及更改、登录功能;收支项目管理功能,包含收支项目的添加、更改及删除功能;收支明细管理功能,包含对每一项收支信息的录入、保存、修改及查询功能;收支信息统计功能,此功能是系统中最重要的功能,可以根据用户的设置统计出相应的信息并且以表格的形式显示出来。
系统里面还有信息验证及提醒功能。
每一项操作,都设置有操作提醒,方便用户知道操作的结果。
系统功能模块图如图3-1所示。
图3-1系统功能模块
3.2数据库总体设计
根据分析数据库共需要三张表,用户表、收支类型表、和收支明细表。
用户表由于存储用户ID、登录名和密码;收支类型表用于存储收支项目编号和收支项目名称;收支明细表主要用于存储用户的收支详细记录,如用户编号、收支项目、收支时间、是否收支、收支事件、收支金额、记录建立时间、记录修改时间等,并且收支明细表其它两个表做关联统计相关用户不同收支项目的详细记录。
图3-2至3-4是系统数据库的实体图。
图3-2用户实体图
图3-3收支类型实体图
图3-4收支明细实体图
第4章
详细设计过程
4.1数据库设计
数据库名称:
db_PFS。
根据功能,数据库共需要三张表,用户表、收支类型表、和收支明细表。
此系统里面的数据库结构设计如下。
用户表如表4-1,用于存储用户编号、用户名、真实姓名和密码,其中真实姓名可为空。
表4-1tb_User,用户表
字段名称
类型
解释
是否主键
可否为空
格式规定
其它说明
UId
Varchar(4)
用户编号
是
否
0001,0002
不是自增列
UName
Varchar(10)
用户名
否
否
张三,王小明
不是自增列
UNameTure
Varchar(10)
真实姓名
UPassword
Varchar(10)
用户密码
否
否
123
不是自增列
收支类型表如表4-2,用于存储收支项目编号和收支项目名称,其中收支项目编号为主键且不能为自增列。
表4-2tb_CostItemType,收支类型表
字段名称
类型
解释
是否主键
可否为空
格式规定
其它说明
CostItemID
Varchar
(2)
收支项目编号
是
否
01,02
不是自增列
CostItemType
Varchar(max)
收支项目名称
否
否
字符串
不是自增列
收支明细表如表4-3,主要用于存储用户的收支详细记录,如用户编号、收支项目、收支时间、是否收支、收支事件、收支金额、记录建立时间、记录修改时间等,并且收支明细表其它两个表做关联统计相关用户不同收支项目的详细记录。
其中Cno只所以是设置为自增列,一个原因是这个表数据要经常用;第二个原因是这个表的主键没有其他表作为外键。
当NoteCreateTime=NoteUpdateTime时,说明此记录从录入到现在没有更改。
表4-3tb_CostDetail,收支明细表
字段名称
类型
解释
是否主键
可否为空
格式规定
其它说明
CNo
int
收支明细编号
是
否
自增列
UId
Varchar(4)
用户编号
否
否
不是自增列
CostDate
datetime
记录收支日期
否
否
2011-10-20
不是自增列
CostTime
datetime
记录收支时间
CostItemID
Varchar
(2)
收支项目
否
否
收支类型表主键
IsGetMoeny
Bit,布尔类型
是否收入
否
否
True,false
CostEvent
Varchar(max)
消费事件
否
否
生活费
不是自增列
Money
money
金额
否
否
¥3.00
不是自增列
NoteCreateTime
datetime
此记录建立时间
否
否
2011年9月30日22:
43:
11
系统自动生成
NoteUpdateTime
Datetime
此记录更改时间
否
是
2011年9月30日22:
43:
55
若为空,则说明没有更改过
4.2
项目结构
项目结构截图如图4-1。
从底层到顶层依次是实体层,数据访问层,业务逻辑层,表现层,其中下面一层为上一层提供服务。
图4-1项目结构
4.3
项目流程图
项目流程如图4-2所示。
是否
退出
图4-2项目流程图
4.4系统主要模块界面及相关说明
4.4.1系统启动检测
此过程中程序一方面检测是否与数据库建立连接,一方面显示进度条,如图4-3。
当与数据库建立连接后则跳转到登录界面,若与数据库连接失败则跳出相关错误提醒,如图4-4。
图4-3程序启动界面
图4-4检测出异常信息
4.4.2登录及注册
用户登录界面,如图4-5。
输入用户名和密码,和数据库匹配,若正确则成功登录,若不是用户点击注册,进入注册页面。
图4-5登录
用户注册页面,如图4-6。
输入相关信息进行注册,若为空则提示。
图4-6注册
4.4.3系统主界面
用户主界面,如图4-7。
上方为工具栏方便用户进行操作,界面友好。
下方为用户登录信息,如用户编号、名称、姓名、登录时间、当前时间,可以使用户确认当前登录用户是否是自己。
图4-7主界面
4.4.4用户信息
用户信息界面,如图4-8。
用户主界面上方工具栏最左边的按钮。
点击后及显示当前登录用户信息,方便用户核对信息和进行密码修改。
图4-8用户信息
4.4.5收支项目管理
收支项目管理界面,如图4-9。
用户可以进行添加、修改、删除收支项目。
当用户添加收支项目尚未保存或者添加重复的记录时,操作记录或提醒会有相应的提示。
图4-9收支项目管理
4.4.6收支明细管理
收支明细管理界面,如图4-10。
用户可以录入、修改、删除收支明细,还可以根据时间对相关收支明细进行查看,而且可以实现多条收支记录的同时删除。
图4-10收支明细—信息显示及查询
添加收支信息界面,如图4-11。
界面友好方便用户数据录入,收支类型为用户在收支项目管理中所添加的项目,而且可以实现多条收支记录的同时保存。
对添加尚未保存的记录选择后可以进行修改和移除。
图4-11收支明细—信息录入
4.4.7统计模块
信息统计界面,如图4-12。
该模块是本系统核心功能,用户可以根据日期和收支项目对自己的收支信息进行统计,而且统计表格的列除了日期时间、统计选项、收支合计、收入合计、支出合计其余列是随着收支项目的选择动态变化的。
其中查看表格的作用是为了核对输出表格是否符合用户的统计要求,及只显示统计选项的空表格不显示数据,统计数据及查询用户收支信息。
图4-12信息汇总统计
第5章
项目测试
5.1测试目的
系统测试的目的决定了如何去组织测试。
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对系统比较复杂的部分或是以前出错比较多的位置。
如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。
测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的系统过程的缺陷,以便改进。
同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
5.2测试方法
系统测试用到的主要方法有模块测试、整体测试、断点测试。
模块测试就是分模块一项一项的测试。
完成一项功能,就进行测试,发现问题立即改正。
整体测试,就是整个功能完成后,把数据库清空,然后从头到尾进行数据测试。
断点测试,对于关键地方,用VS里面提供的断点功能,进行测试,跟踪数据,查找原因。
如图5-1所示,是对数据库的连接进行测试,其中左边的就是设置的断点。
图5-1数据库连接断点测试
5.3测试用例
登陆测试:
输入用户名dapeng,密码asdf,登陆成功;输入用户名admin,密码asdf,提示“用户名和密码错误”。
注册测试:
输入用户名test,真实姓名测试用户,密码test,重复密码test,注册成功;输入用户名test,提示“用户名已存在”;输入用户名admin,真实姓名测试用户,密码admin,重复密码test,提示“密码与重复密码不一致”。
收支项目测试:
添加一个已经存在的收支项目,如测试,提示“此项已存在,请重新填写”;删除一个已经引用的收支项目,如测试,提示“收支明细表中已用,不可删除!
”,如图5-2所示。
图5-2收支项目测试
汇总统计测试:
用户test登陆,进行汇总统计只能看到test用户的收支信息,不能看到用户dapeng的收支信息;汇总统计时间选择为用户首次录入信息之前的时刻,提示“时间设置超出范围……”,如图5-3所示。
图5-3汇总统计项目测试
最终通过多次测试,功能基本趋于稳定,原计划的功能都已经实现。
结束语
参考文献
[1]段德亮,余键,张仁才.C#课程设计案例精编[M].北京:
清华大学出版社,2008.
[2]刘卫国,严晖.数据库技术与应用—SQLServer[M].北京:
清华大学出版社,2007.
[3]萨师煊.数据库系统概论[M].第4版.北京:
高等教育出版社.2010.
[4]MichaelV.Mannino.数据库设计、应用开发和管理[M].第3版.韩宏志译.北京:
清华大学出版社.2007.
[5]陆惠恩.软件工程[M].北京:
人民邮电出版社.2007.
[6]曹伟.如何进行软件需求分析.中国系统分析员.2002.
[7]刘志成.数据库系统系统原理与应用[M].北京:
北京机械工业出版社.2008.
[8]家庭个人理财软件需求分析报告.
[9]CSDN论坛.
[10]财智软件.