C#--家庭理财系统的设计与实现

更新时间:2024-04-29 08:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C#程序设计课程设计

题 目 家庭理财系统的设计与实现 姓 名 专 业 学 号 指导教师

家庭理财系统的设计与实现

摘 要

收支管理是一个家庭、单位和个人日常生活中不可缺少的一部分,也是财务管理的重要组成部分。它的内容对于财务管理者来说至关重要。但一直以来人们使用传统人工方式的文件、纸张记账管理模式,这种管理模式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这给查找、更新和维护都带来了很多困难。所以利用计算机实现财务信息管理的自动化将势在必行。

如果有一个专门管理家庭存款信息的软件来记录、存储这些信息,会为我们解决很多麻烦,所以家庭财务管理信息系统应该能够为用户提供完整、正确、灵活的财务信息和快捷的分析手段。这个家庭理财系统软件就是为我们解决这个棘手的问题,让我们不在为这种小事伤太多的脑筋。对于理财方面的功能包括家庭成员录入、银行存款信息录入、收入和支出信息浏览以及查询等等。

关键词:家庭理财;收入;支出;查询;VS2010;数据库Access;模块

目 录

1 绪论................................................................................................. 1 1.1 课题背景 ................................................................................. 1 1.2 国内外研究的现状 ................................................................. 1 1.3本课题研究的意义 .................................................................. 1 1.4 本课题的研究方法 ................................................................. 2 2 可行性研究..................................................................................... 3 2.1 技术可行性.............................................................................. 3 2.2 经济可行性.............................................................................. 3 2.3 操作上的可行性...................................................................... 4 3 系统需求分析................................................................................. 5 3.1 系统功能需求分析.................................................................. 5 3.2系统数据库表设计................................................................... 6 3.2.1家庭成员信息表(family) ............................................. 6 3.2.2收入项目信息表(inItem) ............................................. 7 3.2.3支出项目信息表(outItem) ........................................... 7 3.2.4收入信息表(inInfo) ...................................................... 7 3.2.5支出信息表(outInfo) .................................................... 8

3.2.6活期账户信息表(liveAccount) .................................... 8 3.2.7 活期存取信息表(liveInfo) .......................................... 9 3.2.8定期账户信息表(fixAccount)...................................... 9 3.2.9借出信息表(lend) ......................................................... 9 3.2.10借入信息表(borrow) ................................................ 10 4 系统功能的设计与实现............................................................... 12 4.1 登录界面的设计.................................................................... 12 4.2 系统管理设计........................................................................ 14 4.3基础数据管理设计................................................................. 17 4.4收支管理设计......................................................................... 20 4.5储蓄管理设计......................................................................... 23 4.6借还钱管理设计..................................................................... 26 4.7理财分析设计......................................................................... 28 结 论........................................................................................... 31 参考文献........................................................................................... 32

1 绪论

1.1 课题背景

家庭理财系统,即Family Conduct Financial Transactions System。它利用计算机技术技术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务于家庭的人机信息财务管理系统。随着计算机发展,家庭理财系统已经成为很多家庭财务管理的一个重要途径。计算机的最大优点在于利用它能够高效准确地进行财务信息管理。使用计算机进行信息财务管理,不仅提高了工作效率,而且大大的提高了其安全性。

1.2 国内外研究的现状

家庭理财系统在国外很多地方使用已经相当的普遍,而且国外的家庭理财系统功能相当强大,比如系统里包含有股票的预测、基金的分析等等。在我们国内,尤其是在近几年,伴随着计算机的高速普及,家庭理财系统的使用范围逐步扩大,从最早的简单使用纸笔记录家庭、个人财务的收支情况,到现在用计算机对财务的收支、查询、汇总等等。巨大的市场需求也促使了很多公司加大了对家庭理财系统的研究。

1.3本课题研究的意义

多年以来人们都使用传统的人工方式记录和管理家庭或自

1

己财务情况。这种管理和记录方式不仅不便于长期保存,也存在着不可避免的缺点,如效率太低、保密性太差。时间一长,伴随着居民收入水平的提高和居民各种消费和收入的多样性,家庭理财所需要管理的信息就会越来越多,就会产生大量的文件和数据,这样就会对查阅、更新、保存等方面都产生不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已逐渐被人们认识并掌握。如果使用计算机对家庭理财信息进行管理具有传统的手工管理所没法比拟的优点。例如:统计方便、查找容易、可靠性高、保密性好、更新方便等。这些优点能够极大地提高家庭理财信息管理的效率,大大降低居民在信息管理精力上的投入,使企业获得更大的利润空间。因此,开发一个能够管理家庭内部各种财务信息的家庭理财管理系统是一件十分必要的事情。

1.4 本课题的研究方法

家庭理财系统的用户群体是家庭内部成员,用户类型单一,因此将本系统设计成一个相对封闭的单机运行系统结合居民管理信息方面的具体需求,利用VS2005作为前台开发工具,使用SQL SERVER 2000作为数据库。结合数据库原理及应用、软件工程开发方法,在经过深入地学习之后,开发了这套家庭理财管理系统。下面将具体介绍系统的开发过程:

2

2 可行性研究

2.1 技术可行性

本系统的开发利用VS2010作为开发工具。VS2010是一个具有完善开发工具的平台。VS2010提供的工具适合各种水平层次无论是初学者还是有经验的团队,并适合各种不同的开发需求。降低了开发的复杂度,其提供给开发者更加简便动态的.Net Framework基础解决方案,其中包括了windows应用程序开发、office嵌入开发、Web应用开发、移动应用程序开发。改进了团队交流方式,VS2010为团队开发提供通道和完整的开发周期工具,从而增加了团队内部的交流与协作的效率。通过学习,熟悉和掌握VB.NET的使用方法,使用VS2010作为开发工具将使整个系统的模块化设计变得更加简便。

本系统采用Access数据库,降低了程序对硬件以及操作系统版本的要求。并且Access数据库操作方便,配置简单,只需要把数据库文件放置到合适的目录下即可。

2.2 经济可行性

如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来越底。本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,但并不会因为开发成本低而造成系统功能性能的下降。相反,随着计算机技术的发展,各种实用软件的性能日渐提高。家庭理财管理系统廉价的开发成本,却能够为居民带来相当大的实惠和方便。主要表现在:

(1)本系统可以说是一个拥有多种实用功能的家庭理财管理信息系统,它集成了家庭成员管理、收入管理、支出管理、密码管理等多种功能,具有较强的实用性和方便性。

3

(2)本系统的运行可以大大提高居民管理财务的效率,减少不必要的人力和物力。

(3)本系统还具有查询和统计功能,能够查询到用户在一段特定时间内收入和支出的情况,特别是支出情况,有时往往会让用户在月底吓一跳,大大超出预算,还弄不清钱都花到哪里了?有了家庭理财系统,不仅使用户对口袋里钱的去向一目了然,而且可以渐渐悟到一些心得,摸清哪些花费是必要的,哪些“意外开支”是可以避免的,哪笔开支是可继续评估其必要性的。

由此,可以得出,本系统在经济上是绝对具有可行性。

2.3 操作上的可行性

由于本系统管理的对象比较明确,就是对于收入支出的一些管理,主要就是对数据库的操作,且每个数据库内容具有较强的关联性,设计的过程也不复杂。因此,整个软件的使用非常简便。任何一个普通的计算机用户都能很快的熟悉整个软件的使用。并且本系统所耗费的资源非常小,任何家庭成员只需要在一般的电脑上面,就能够使用这个软件,简单、方便、快捷的实现对财务信息进行管理。

4

3 系统需求分析

3.1 系统功能需求分析

家庭理财管理系统是针对用户要求用计算机,对自己的财务的收入、支出以及相关的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件。

通过需求分析,本系统需要具有以下功能:

(1)由于一项新的软件在被使用之前,对于使用者来说是陌生和崭新的,所以要求系统具有良好的人机界面。

(2)能够家庭理财管理系统的各项功能,能成功的对用户各种信息进行管理。

(3)查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。

具体说来,要求本系统具有以下几个功能模块:系统管理模块、基础数据管理模块、日常收支管理模块、银行储蓄管理模块、借还钱管理模块、理财分析模块。系统整体的简单关系图如下所示:

系统管理 理财管理信息系统 基础数据管理 日常收支管理 银行存储管理 借还钱管理 理财分析 修改密码 重新登录 退 出 家庭成员管理 收支项目管理 日常支出 5 活期账号 定期账号 借出款 借入款 查询明细 理财报告 日常收支 图3.1 家庭理财管理系统模块划分图

各模块具体的需求描述如下: (1)系统管理模块

实现修改密码、重新登录等操作。 (2)基础数据管理模块

可以设置收支的项目以及家庭的各个成员。 (3)日常收支管理模块 记录每天的收入和支出情况。 (4)银行储蓄管理模块

对银行活期和银行定期账号进行管理。 (5)借还钱管理模块

记录各项借钱和还钱的情况。 (6)理财分析模块 按类别查询收支明细。

3.2系统数据库表设计

本系统是一个关于家庭理财信息的管理系统,系统数据库名称为wealthNIS,数据库中包括:家庭成员信息表(family)、收入项目信息表(inItem)、支出项目信息表(outItem)、收入信息表(inInfo)支出信息表(outInfo)、活期账户信息表(liveAccount)、活期存取信息表(liveInfo)、定期账户信息表(fixAccount)、借出信息表(lend)、借入信息表(borrow)。

下面列出了各个表的数据结构,如下:

3.2.1家庭成员信息表(family)

表3.3.1.1成员信息

字段名称 Name

数据类型 文本 6

字段说明 姓名

uName PWD role birthday 文本 文本 文本 日期/时间 用户名 密码 称呼 生日 3.2.2收入项目信息表(inItem)

表3.3.2.1收入项目信息 字段名称 inID inItem 数据类型 自动编号 文本 字段说明 项目编号 收入项目 3.2.3支出项目信息表(outItem)

表3.3..1支出项目信息

字段名称 outID outItem 数据类型 自动编号 文本 字段说明 项目编号 支出项目 3.2.4收入信息表(inInfo)

表3.3.4.1收入信息

字段名称 InInfoID inDate inType inMoney inItem Inform

数据类型 自动编号 日期/时间 文本 货币 文本 文本 7

字段说明 项目编号 收入日期 收入方式 金额 收入项目 来源 role inRemark 文本 文本 收入人员 备注 3.2.5支出信息表(outInfo)

表3.3.5.1支出信息

字段名称 outInfoID outDate outType outMoney outItem outTo role outRemark 数据类型 自动编号 日期/时间 文本 货币 文本 文本 文本 文本 字段说明 项目编号 支出日期 支出方式 金额 支出项目 去处 支出人员 备注 3.2.6活期账户信息表(liveAccount)

表3.3.6.1活期账号信息

字段名称 liveID liveName liveAddress liveDate liveMoney role 数据类型 文本 文本 文本 日期/时间 货币 文本 字段说明 银行账号 银行名称 银行地址 开户日期 开户金额 开户人 8

3.2.7 活期存取信息表(liveInfo)

表3.3.7.1活期存取信息

字段名称 infoID liveID info infoMoney infoDate leave role 数据类型 自动编号 文本 文本 货币 日期/时间 货币 文本 字段说明 存取编码 银行账号 存取 存取数目 存取日期 剩余金额 取款人

3.2.8定期账户信息表(fixAccount)

表3.3.8.1定期账号信息

字段名称 fixID fixName fixAddress fixDate fixMoney role Limit take 数据类型 文本 文本 文本 日期/时间 货币 文本 文本 文本 字段说明 银行账号 银行名称 银行地址 开户日期 开户金额 开户人 期限 是否取消 3.2.9借出信息表(lend)

9

表3.3.9.1借出信息

字段名称 lendID toName role lendDate lendMoney lendReason lend 数据类型 自动编码 文本 文本 日期/时间 货币 文本 文本 字段说明 借出编号 得款人 借出人 借出日期 借出金额 借出原因 是否已还 3.2.10借入信息表(borrow)

表3.3.10.1借入信息

字段名称 borrowID fromName role borrowDate borrowMoney borrowReason Borrow 数据类型 自动编码 文本 文本 日期/时间 货币 文本 文本 字段说明 借入编号 借出人 借入人 借入日期 借入金额 借入原因 是否已还

10

3.3系统E-R图

图3.5.1 E-R

11

4 系统功能的设计与实现

本系统主要包括对登录模块的设计、修改密码界面的设计、家庭成员管理界面的设计、收入项目管理界面的设计、支出项目管理界面的设计、日常收入管理界面的设计、日常支出管理界面的设计、活期账户界面的设计、存取款记录界面的设计、定期账户界面的设计、借入款界面的设计、借出款界面的设计、查询明细界面(日常收入)的设计、查询明细界面(日常支出)的设计、理财报告界面(本月收入情况)的设计以及理财报告界面(本月支出情况)的设计。具体如下:

4.1 登录界面的设计

一个友好的用户界面不仅要做到具有良好的观赏性,还应方便用户对系统的操作使用,最好符合用户以往的操作习惯,只有这样才能使用户充分发挥主观能动性更快、更好的学习使用该系统。在对家庭理财管理系统界面设计时主要遵循以下几条原则:

(1)用户界面的设计在整体上保持较为一致的外观风格。 (2)在进行界面设计时要充分考虑用户的操作习惯,减少用户大量的输入操作以减轻用户的工作量。

(3)界面所使用的词汇、图示、选取方式等要保持前后一致性。

下面就对该家庭理财管理系统进行界面的举例:

12

图4.1.1 主界面

图4.1.2 登录界面

登录界面部分代码如下:

private void Login_Load(object sender, System.EventArgs e)

{

13

}

if (oleConnection1==null)

oleConnection1=MainForm.getConnection(); //取出系统的所有用户名

//显示在下拉列表,这样用户登录的时候 //选择用户名就可以了,不用再输入用户名了 string sql=\OleDbCommand cmd = new

OleDbDataReader dr = cmd.ExecuteReader(); int flag = 0; while(dr.Read()) { }

//如果系统存在用户,则默认选中第一个用户 if (flag>0)

this.comboName.SelectedIndex=0; dr.Close(); cmd.Dispose();

this.comboName.Items.Add(dr.GetString(0)); flag++;

OleDbCommand(sql,oleConnection1);

4.2 系统管理设计

在主界面中选择【系统管理】|【修改密码】命令菜单,即可进入修改密码界面,如下图所示。单击【确定】按钮,如果密码正确并且新密码与确认密码相同,则修改成功,否则修改失败。

14

图4.2.1 修改密码界面

修改密码代码如下:

private void btSave_Click(object sender, System.EventArgs e)

{

if

(textName.Text.Trim()==\.Text.Trim()==\

{

MessageBox.Show(\请填写完整信息!\提示\

else

if (oleConnection1==null)

oleConnection1=MainForm.getConnection(); OleDbCommand cmd =

string sql = \

15

oleConnection1.CreateCommand();

uName='\PWD='\

cmd.CommandText = sql;

if (null!=cmd.ExecuteScalar()) {

if

MessageBox.Show(\两次密码输入不一

(textPWDNew.Text.Trim()!=textPWDNew2.Text.Trim()) 致!\警告\

else {

sql = \

PWD='%uName='\

}

}

} else

MessageBox.Show(\原密码错误!\提示\cmd.Dispose();

}

cmd.CommandText = sql; cmd.ExecuteNonQuery();

MessageBox.Show(\密码修改成功!\提this.Close();

示\

16

4.3基础数据管理设计

在主界面中选择【基础数据管理设计】|【家庭成员管理】命令菜单,即可进入家庭成员管理界面,如下图所示。用户可以在这里添加、修改和删除家庭成员。输入需要添加的内容,其中带*号的内容为必填项,单击【确认】按钮则添加成功;选择一条数据信息后,然后输入要修改的内容,再单击【修改】按钮,就修改成功。

图4.3.1 家庭成员管理界面

17

图4.3.2 收入项目管理界面

图4.3.3 支出项目管理界面

18

基础数据管理部分代码如下:

private void btModify2_Click(object sender, System.EventArgs e)

{

if

(textName.Text.Trim()==\.Trim()==\

{

MessageBox.Show(\请填写完整信息\提示\

else

if (oleConnection1==null)

oleConnection1 = MainForm.getConnection(); string sql=\

role='\

\

}

catch(System.Exception E) {

Console.WriteLine(E.ToString());

19

m()+\

OleDbCommand cmd = cmd.CommandText=sql; try {

cmd.ExecuteNonQuery();

MessageBox.Show(\修改成功\提示\

oleConnection1.CreateCommand();

MainForm.FillDataGrid(strSql,dataName,dataGrid1);

}

}

} finally { } visible();

cmd.Dispose();

4.4收支管理设计

在主界面中选择【收支管理】|【日常收入】命令菜单,即可进入日常收入管理界面,如下图所示。用户可以在这里添加、修改和删除日常收入。输入需要添加的内容,其中带*号的内容为必填项,单击【确认】按钮则添加成功;选择一条数据信息后,单击【修改】按钮,同时【添加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,单击【修改】按钮,就修改成功。

图4.4.1 日常收入管理界面

20

图4.4.2 日常支出管理界面

收支管理部分代码如下:

private void btModify2_Click(object sender, System.EventArgs e)

{

if

(date1.Text.Trim()==\xt.Trim()==\

{

if (oleConnection1==null)

oleConnection1 = MainForm.getConnection(); string sql=\

MessageBox.Show(\请填写完整信息\提示\else

inDate='\

21

',inMoney='\

\

\

xt.Trim()+\where

inInfoID=\Number][7].ToString().Trim()+\

}

}

}

catch(System.Exception E) { } finally { } visible();

cmd.Dispose();

Console.WriteLine(E.ToString()); OleDbCommand cmd = cmd.CommandText=sql; try {

cmd.ExecuteNonQuery();

MessageBox.Show(\修改成功\提示\

oleConnection1.CreateCommand();

MainForm.FillDataGrid(strSql,dataName,dataGrid1);

22

4.5储蓄管理设计

在主界面中选择【储蓄管理】|【活期账户】命令菜单,

即可进入活期账户管理界面,此界面分为两个部分:活期账户和存取款记录,分别如下图所示。在活期账户界面中,用户可以添加、修改和删除活期账户信息。输入需要添加的内容,其中带*号的内容为必填项,单击【确定】按钮则添加成功,同时在存取款记录界面中添加一条记录;选择一条数据后,单击【修改】按钮,同时【添加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,再单击【修改】按钮,就修改成功了。

图4.5.1 活期账户界面

23

图4.5.2 存取款记录界面

图4.5.3 定期账户界面

24

储蓄管理部分代码如下: if

(dateI.Text.Trim()==\xt.Trim()==\

{

if(oleConnection1==null)

oleConnection1=MainForm.getConnection(); string sql;

if (this.Tag.ToString().Trim()==\存款\

sql=\

MessageBox.Show(\请填写完整信息\提示\else

infoMoney='\m()+\

\

me2].Rows[dataGrid2.CurrentCell.RowNumber-1][4].ToString().Trim())+Convert.ToInt16(textMoneyI.Text.Trim()))+\

\

infoID='\Number][5].ToString().Trim()+\

else

sql=\

infoMoney='\m()+\

\

me2].Rows[dataGrid2.CurrentCell.RowNumber-1][4].ToString().Trim())-Convert.ToInt16(textMoneyI.Text.Trim()))+\

25

\

infoID=\Number][5].ToString().Trim()+\

} try {

cmd.ExecuteNonQuery();

MessageBox.Show(\修改成功\提示\

OleDbCommand cmd = new

OleDbCommand(sql,oleConnection1);

MainForm.FillDataGrid(strSql2,dataName2,dataGrid2);

4.6借还钱管理设计

在主界面中选择【借还钱管理】|【借入款】命令菜单,

即可进入借入款管理界面,如下图所示。用户可以在这里添加、修改和删除借入款信息。输入需要添加的内容,其中带*号的内容为必填项,单击【确定】按钮则添加成功;选择一条数据信息后,单击【修改】按钮,同时【添加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,再单击【修改】按钮,就修改成功。

26

图4.6.1 借入款界面

图4.6.2 借出款界面

27

4.7理财分析设计

在主界面中选择【理财分析】|【查询明细】命令菜单,即可进入查询明细界面,此界面包括两个选项卡:【日常收入】和【日常支出】,两个选项卡界面分别如下图所示。

图4.7.1 查询明细界面(日常收入)

可以在这里按照日期、人员、项目或它们的任意组合进行查询。

28

图4.7.2 查询明细界面(日常支出)

选择【理财分析】|【理财报告】命令菜单,即可进入理财报告界面,此界面包括两个选项卡:【本月收入情况】和【本月支出情况】,两个选项卡界面分别如下图所示。在这里可以按照月份查看本月的理财报告,从而能详细的了解本月的财务情况。

图4.7.3 理财报告界面(本月收入情况)

29

图4.7.4 理财报告界面(本月支出情况)

理财分析部分代码如下: if(oleConnection1==null)

oleConnection1 = MainForm.getConnection(); string sql=\支出日期,outType as 支

出方式,outMoney as 金额,outItem as 支出项目,outTo as 去处,role as 支出人员,\

\备注,outInfoID as 支出编号 from

outInfo\

bool flag=false; if

(checkDate2.Checked==false&&checkItem2.Checked==false&&checkRole2.Checked==false)

30

结 论

由于时间比较紧张,加上自己本身在语言编程方面的能力比较有限,该系统势必还存在着一定的问题。作为一个短时间内完成的实用性软件,本系统在实用性和全面性方面肯定还有不少的欠缺。如本系统后面的查询模块、用户密码管理模块,所能考虑到的方面就不是很全面,所以效果就并不是很理想。总的来讲,这个家庭理财系统能够基本满足简家庭内部成员的理财需求。它和一个功能强大的家庭理财系统比较起来,还有一定的差距。其实还有一些模块功能可以进一步的完善,希望可以通过以后的学习能够不断的完善和强大本系统的功能。

31

参考文献

[1] Visual C#.NET Web 应用程序设计[M].北京:清华大学出版社,2005.1 [2] 李昊轩. 一本书读懂投资理财学[M]. 北京:中国华侨出版社2010年. [3] 王要武. 管理系统[M]. 北京:电子工业出版社2003年.

[4] 王小科.C#开发典型模块大全(修订版)[M]. 北京:人民邮电出版社 2010年.

[5] 周佩德. 数据库原理及应用[M]. 北京:电子工业出版社 2000年. [6] 明日科技. SQL语言参考大全[M]. 北京:人民邮电出版社[M] 2007年. [7] 国家计委产业政策司. 产业政策手册[M]. 北京:经济管理出版社1990年.

[8] 林立军Visual Basic 6.0数据库开发指南[M].西安电子科技大学出版社2000年.

[9] 明日科技 C#开发典型模块大全(修订版)[M].北京:人民邮电出版社 2010年.

[10]陈镇 家庭理财[M]. 北京:清华大学出版社 2009年.

[11]孟小峰.开发数据库互连—ODBC使用大全[M].北京:清华大学出版社.1995

[12]黄浩、赵宏杰.PowerBuilder 9.0精彩编程百例[M].中国水利水电出版社.2004

[13]沈磊.零售业的网络时代.上海财经大学工商管理学院学报[N].2002年第5期

[14]郑人杰、殷人昆.实用软件工程[M].清华大学出版社.2003 [15]李泽建浅析多媒体数据库技术的发展和展望[N].昆明理工大学学报2002年2月

32

本文来源:https://www.bwwdw.com/article/fzsg.html

Top