财务管理系统.docx

上传人:b****5 文档编号:7598295 上传时间:2023-01-25 格式:DOCX 页数:17 大小:659.61KB
下载 相关 举报
财务管理系统.docx_第1页
第1页 / 共17页
财务管理系统.docx_第2页
第2页 / 共17页
财务管理系统.docx_第3页
第3页 / 共17页
财务管理系统.docx_第4页
第4页 / 共17页
财务管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

财务管理系统.docx

《财务管理系统.docx》由会员分享,可在线阅读,更多相关《财务管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

财务管理系统.docx

财务管理系统

 

C#程序设计

财务收支管理系统

 

姓名

杨宗坤

学院

信息与电气工程学院

专业

计算机科学与技术

年级

2012

学号

20122212694

指导教师

周树森

2015年12月12

财务收支管理系统

杨宗坤

(信息与电气工程学院,计算机科学与技术,2012级2班,20122212694)

摘要:

当今社会越来越朝着信息化和数字化方向发展,计算机的应用领域使我们的生活越来越方便和快捷,可以说我们的每个人生活都离不开计算机的帮助了。

越来越多的个人应用软件成为了人们重要的助手,也在潜移默化的改变着我们的生活。

财务管理系统是每一个单位管理财务收入和支出的不可缺少的一个管理信息系统,市场上的财务管理软件大多数都面向企业并价格昂贵,或是专门偏向于某一特殊领域,免费的财务管理软件更是少之又少,为了满足中小企业及个体经营者的需求,利用C#语言、ASP.NET、VisualStudio和数据库等开发软件和工具,设计开发了一个具有简单收支管理、登帐统计和查询等基本功能的财务管理系统,经过测试表明,系统可以较为稳定的实现这些基本功能。

关键词:

财务管理系统;ASP.NET;SQLServer;程序设计;

Abstract:

 Financial management is an important work of the company, using computer to manage the company financial, not only can save time and manpower, more fully, effectively grasp the basic situation of corporate finance, timely access to the latest accurate data and information.This system is for the user to provide powerful data manipulation functions, friendly interface, simple and convenient to use, based on (client / server) mode,The design is reasonable, function relatively complete, the test run stability, can meet the need of the work。

Keywords:

C#.net,Financial management system,SQLServer。

1引言

信息化的飞速发展,促使电脑和网络已经日益影响到了人们的日常和工作过程中,给我们带来了很大的方便,也使人们对电脑依赖性越来越强。

各种各样的应用软件系统成为了人民的重要助手和有效工具,明显改变着人民的生活。

随着网络的普及,通过手写的方式在纸张上记录一些收支的做法已经逐渐被淘汰,已逐渐被在电脑上记录自己的收支情况的做法所取代。

 通过VisualStudio2010工具的使用和面向对象C#语言等知识,对财务管理系统的设计慢慢了解,深入学习,从而达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;

根据课题的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和VisualStudio2010工具的使用。

2系统分析

2.1系统需求

财务收支管理工作随着我国市场经济的发展,在各个企业的管理中扮演着越来越重要的角色,渐渐起到不可替代的核心作用。

对于大型企业集团来说,财务管理显得更为重要,财务管理系统的建立将直接受到企业集团管理方式的影响,并直接影响企业的管理效率与经济效益。

如何在现有经营环境下选择最佳的财务管理模式,使用最优的财务管理系统,实现企业的管理目标,适应企业信息化发展的需要,是一个值得研究和探讨的问题。

Microsoft公司的C#是Windows应用程序开发工具,是目前广泛的、易学易用的面向对象的开发工具。

Visual2010提供了大量的控件,并且这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。

因此实现本系统Visual2010是一个相对较好的选择。

关系型数据库的实现:

SQLServer2008就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。

SQLServer2008的优点在于它能使用数据表示图或自定义窗体收集信息,并能对相关系的表进行视图连接,建立视图后可屏蔽一些数据使数据更为安全,并可以建立存储过程以便能够简化前台程序的编写。

数据表示可以使数据库一目了然。

另外,SQLServer2008用户设定自已的密码保护数据的安全性。

SQLServer2008提供对各种数据的约束,使用户输入的数据符合正规的逻辑,并提供各种数据与数据之间的相关性连接,能够级联更新一些相关的数据,更特别的是提供了触发器功能。

SQLServer2008是一种关系数据库工具,关系数据库是已开发的最通用的大型数据库之一,运行在服务企上更加安全。

如上所述,SQLServer2008作为关系数据库开发具备了许多优点。

(2)技术可行性

随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。

而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。

其基本操作还是对存在数据库进行添加、删除、查询、修改等。

所以就单纯的数据库应用来看,暂不存在太大的技术问题。

(3)经济可行性

对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。

各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。

而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形式。

(4)管理可行性

随着时代的发展,人员素质己逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。

同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。

2.2用户需求

企业管理模式的选择应当是在对整体发展战略、经营情况、企业类型和子公司进行系统分析的基础上进行的,同时企业应充分根据自身发展的需要设计财务管理模式。

设计时必须应当遵循以下原则:

  1.安全性

  安全性分为系统内部安全、访问安全及与其他系统对接时的安全性。

内部安全体现在系统数据库的安全以及非法数据屏蔽等,可通过防火墙、划分网段来防范非法程序对数据库的破坏,对数据库做计划,进行备份,对录入数据进行核查,对不满足条件的内容提示修改,对非法数据进行屏蔽。

访问安全体现在对各个部门、各个用户按管理人员的安全策略进行分组管理、控制各组的访问权限以及信息的流向。

与其他系统连接时,既要保证内部数据的安全,隔离内外部的信息通道,又要对外部信息资源进行访问控制。

为保证整个系统的正常运行,必然要保证系统信息的绝对安全和可靠。

  2.实用性

  财务信息管理系统是一个工程项目,而不是研究或实验课题。

系统建设的最终目的是服务于财务管理的需要,服务于企业在许可范围内对财务信息的需求。

系统的建设应为应用服务。

因此,系统的设计和建设应能满足需求并正确无误地高效地运行。

  3.灵活性

  系统应设计任意组合的模糊查询功能,提供多方面的查询,以满足各个时期的报表。

对复杂数据结构应实现修改一表的数据即可自动修改相关表中的数据,删除一表的数据即可自动删除与之相关的其他表数据,保证数据库中无冗余数据。

2.3系统功能

通过用户需求分析,根据企业财务工作流程分析,本着模块划分的原则,把系统抽象为3个模块,分别文件系统、用户管理、财务管理。

下面是各模块的功能:

1.文件系统:

显示登录信息,存储登陆日志,修改密码,退出系统。

2.用户管理:

显示用户列表,添加和修改用户,公司部门管理,角色管理,工作性质介绍。

3.财务管理:

账单列表,添加和修改账单,显示收支信息以及账单性质。

3系统设计

登陆

3.1模块流程图

程序主窗口

文件系统

用户管理

财务管理

登陆日志

修改密码

员工信息

部门管理

账单列表

登录信息

收支明细

账单性质

模块流程图

采用结构化程序设计的思想,其有以下优点:

(1).自顶向下逐步求精的思想与人类求解复杂问题的思维规律相符,有助于软件系统的分析与设计。

(2).采用先抽象后具体、先宏观后微观、先总体后细节的开发过程,使得程序的层次结构清楚,可读性好。

(3).单入口、单出口的控制结构,可以保证程序的静态结构与其动态执行流程基本相似,程序的可维护性好。

(4).良好的模块化特性支持软件部件的重用。

3.2模块功能说明

1.登录窗口:

验证用户后打开程序管理窗口;

2.程序管理主窗口:

为父窗体,在此窗体内显示财务管理及主要功能模块;

3.程序管理子窗口:

主窗口各模块下的子功能窗体;

4.登陆信息修改窗口:

对用户信息进行修改。

4系统模块

4.1登陆设计模块

图1登陆界面

本界面是用户登录系统的界面,当用户提交登录信息,对用户进行身份及权限判断,再转入不同的页面。

当用户名或密码、权限输入错误,会提示错误。

输入用户名或密码错误后会显示如下界面:

图2登陆界面

4.2主界面模块窗口设计

图3主窗口

该窗口为父窗体,可以在此窗口内显示财务管理系统三个主要模块信息.用户在登陆界面按了输入正确账号密码的登陆按钮就可以转到此界面。

4.3登录信息窗口

图4登录信息窗口

 

该窗口为用户登陆信息显示窗口,能显示用户登陆的时间,员工账号,上次登陆时间等信息。

4.4用户管理窗口

图5用户列表窗口

该窗口显示员工信息,部们编号,职位等信息。

 

 

图6修改员工信息窗口

 

该窗口可以修改员工用户各种信息。

图7员工性质查询窗口

 

该窗口可以查询员工的性质名称,类别以及显示工作性质列表。

图8收支列表窗口

 

该窗口显示公司以及各员工收支明细,包括收支人,时间地点,以及增删查改等操作。

能够清楚的显示该公司的收支情况。

图9财务性质管理窗口

该窗口可以对公司财务收支性质信息进行管理。

4.4修改用户密码窗口

图10密码修改窗口

该窗口可以修改用户密码。

5核心代码描述

5.1c#连接数据库的方式:

(1)配置文件链接。

利用VS.NET开发平台进行开发的时候将会经常遇到要和数据库打交道,存取数据。

这就涉及到和数据库的连接问题,.NET开发平台为我们提供了一种简单的方式来定义和数据库连接的字符串。

这就是在Web.Config文件中添加连接字符串。

(2)代码连接。

#是一个语言,ASP.NET是一个平台,上面支持用C#或者VB.NET写代码。

连接Access,SQLServer,Oracle,还有Excel数据库。

本程序采用第一种连接方式,下面是主要源代码:

xmlversion="1.0"encoding="utf-8"?

>

providerName="System.Data.SqlClient"/>

其中,name的值ctionStrings代表字符串的名称,DataSource代表数据库的实例名,UserID和Password分别代表用户名和密码。

如果有多个数据库的连接,还可以在标签之下添加多个节。

这样只需在配置文件中定义一次就可以在之后的数据库存取中多次重复利用这个设置。

5.2登陆界面主要代码

namespaceWinForm

{

publicpartialclassFrmLogin:

Form

{

MySystem.DAL.Employeedal=newMySystem.DAL.Employee();

MySystem.Model.Employeemodel=newMySystem.Model.Employee();

MySystem.DAL.EmployeeLoginLogdallog=newMySystem.DAL.EmployeeLoginLog();

MySystem.Model.EmployeeLoginLogmodellog=newMySystem.Model.EmployeeLoginLog();

 

publicFrmLogin()

{

InitializeComponent();

}

privatevoidFrmLogin_Load(objectsender,EventArgse)

{

}

privatevoidbtn_OK_Click(objectsender,EventArgse)

{

publicstaticintExecuteNonQuery(stringsqlstr,paramsSqlParameter[]parameters)

{

using(SqlConnectionconn=newSqlConnection(connStr))

{

using(SqlCommandcmd=newSqlCommand(sqlstr,conn))

{

try

{

conn.Open();

if(parameters!

=null)

{

foreach(SqlParameterparainparameters)

{

cmd.Parameters.Add(para);

}

}

introws=cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

returnrows;

}

catch(System.Data.SqlClient.SqlExceptione)

{

throwe;

}

}

在编程中经常需要给程序制作一个登陆界面,在用户打开程序后首先弹出登陆窗口,如果输入正确的用户名和密码,才能登陆成功进入正式的程序界面。

5.3修改用户账号密码

namespaceWinForm

{

publicpartialclassFrmUpdatePassword:

Form

{

MySystem.DAL.Employeedal=newMySystem.DAL.Employee();

MySystem.Model.Employeemodel=newMySystem.Model.Employee();

publicintEid=0;

publicFrmUpdatePassword()

{

InitializeComponent();

}

privatevoidFrmUpdatePassword_Load(objectsender,EventArgse)

{

BindDataList();

}

privatevoidBindDataList()

{

model=dal.GetModel(Eid);

if(model==null)

{

btn_OK.Enabled=false;

MessageBox.Show("没有此员工信息","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

}

publicboolCheckParams()

{

if(string.IsNullOrEmpty(txt_Password.Text.Trim()))

{

MessageBox.Show("请输入原密码");

returntrue;

}

if(string.IsNullOrEmpty(txt_NewPassword.Text.Trim()))

{

MessageBox.Show("请输密码");

returntrue;

}

if(string.IsNullOrEmpty(txt_NewPassword2.Text.Trim()))

{

MessageBox.Show("请确认新码?

");

returntrue;

}

if(!

txt_NewPassword.Text.Trim().Equals(txt_NewPassword2.Text.Trim()))

{

MessageBox.Show("两次输入新密码”

returntrue;

}

returnfalse;

}

#endregion

privatevoidbtn_OK_Click(objectsender,EventArgse)

{

boolb=CheckParams();

if(b)

{

return;

}

if(!

string.Equals(txt_Password.Text.Trim(),model.LoginPassword.Trim(),StringComparison.Ordinal))

{

MessageBox.Show("原密码输入错误");

return;

}

model.LoginPassword=txt_NewPassword.Text.Trim();

introws=dal.Update(model);

if(rows>0)

{

BindDataList();

MessageBox.Show("成功);

}

else

{

MessageBox.Show("失败");

}

}

privatevoidbtn_Cancel_Click(objectsender,EventArgse)

{

this.Hide();

}

}

}

5.3c#的三层架构

usingSystem.Reflection;

usingSystem.Runtime.CompilerServices;

usingSystem.Runtime.InteropServices;

[assembly:

AssemblyTitle("MySystem.DAL")]

[assembly:

AssemblyDescription("")]

[assembly:

AssemblyConfiguration("")]

[assembly:

AssemblyCompany("super8")]

[assembly:

AssemblyProduct("MySystem.DAL")]

[assembly:

AssemblyCopyright("Copyright©super82015")]

[assembly:

AssemblyTrademark("")]

[assembly:

AssemblyCulture("")]

[assembly:

ComVisible(false)]

[assembly:

Guid("e0d8d0ee-bd5b-4811-8268-30c6e0397bd4")]

[assembly:

AssemblyVersion("1.0.0.0")]

[assembly:

Assembly("1.0.0.0")]

DALDataAccessLayer数据访问层,这个层应该是负责程序与数据中心(除了数据库,还有存储数据的文件等)的交互,也就是将数据的增删改查的操作封装起来供其它层直接使用,这样一来,做此层的开发人员只需要关心数据,而不用关心业务逻辑;BLLBusinessLogicLayer业务逻辑层,这个层是负责程序的业务逻辑,也就是对程序具体功能模块和程序执行流程的实现。

此层的开发人员只需要关心程序的业务逻辑,而不需要关心数据是哪里来的,是怎么取得的等问题;而DbHelp,这个也应该是包含在DAL里面的(注意是包含,而不是说DbHelp就是DAL),DbHelp一般是一个类,此类一般会提供数据库访问的通过属性和方法。

简单的说,DAL需要做的是从数据源取数据和向数据源存数据,并将这些按需要分成不同的方法提供给其它层(如BLL);BLL需要做的是将程序的功能实现,需要数据的时候调用DAL提供的取数据方法,保存数据的时候调用DAL的存数据方法。

代码中DAL主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。

BLL则主要是调用DAL层的操作,返回DAL层添加用户的结果(true或者false)。

这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。

UI层则主要完成响应用户的需求,去调用BLL层实现的adduser方法,DAL层就是实实在在做这件事情的操作。

6总结

在设计这个课题的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。

一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。

对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。

因此在整个设计过程中大部分时间是用在程序上面的。

很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。

因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。

这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。

其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1