个人财务管理系统
数据库技术与应用(SQLServer2005)
课 程 设 计
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目 个人财务管理系统
组 员
班 级 计科1002
学 院 信息科学与
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
学院
指导教师
2012年 11 月 13 日
任务分配表如下:
第 X 组 学号 姓名 负责部分 成绩
代码编写,系统运维 组长
需求分析,数据库设计 组员
指导老师评语:
摘 要
本系统是在Win7以及Microsoft Visual Studio 2005平台上,使用Microsoft SQL Serve 2005数据库系统管理软件开发,分析设计了 “个人财务管理系统”。系统软件和对数据库的操作和管理都可在计算机上完成。
如今计算机已走进千家万户,传统的在纸上
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
收入支出的方式已经过时,人们需要一种可以在计算机记录自己收入支出信息的软件,可是市场上的财务管理软件大多数十面向企业,或是有专门用途,面向普通用户的个人财务管理系统很难找到,再者免费的软件更是少之又少,为了满足普通用户的需求,特开发此软件。
本系统功能简单,只适合对个人财务管理要求不高的用户,可以完成收入支出金钱及物品的记录与查询操纵,本系统操作简单,用户无需记录复杂的命令,打开主机面就可以很容易看出系统的功能,再者,本软件为免费产品,对于不愿花很多钱购买软件的用户来说是个很好的选择,本软件无需很高的硬件配置,一般的配置均可运行,占用系统资源少。
本
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
中首先说明了该系统的特点与业务需求,之后详细说明了系统的业务流程和系统开发流程,重点介绍了系统各模块的功能及相关功能的具体实现。该系统功能完善、用户界面友好、运行稳定,可完成日常个人财务信息的管理和维护。
本报告中首先说明了该系统的业务需求,之后介绍了系统的总体设计思路以及着重介绍了数据库表的设计过程及说明。
关键词:Win7 Microsoft SQL Server 2005 个人财务 业务需求
目 录
摘 要........................................................................................................................................... 3 第一章 绪论 ............................................................................................................................... 5 第二章 需求分析 ........................................................................................................................... 6
2.1 用户需求............................................................................................................................ 6
2.2 功能需求............................................................................................................................ 6
2.3总体结构图 ......................................................................................................................... 7 第三章 数据库概念设计 ............................................................................................................... 8
3.1局部E-R图设计 ................................................................................................................ 8
3.2数据库的基本ER图.......................................................................................................... 9 第四章 数据库逻辑设计 ............................................................................................................. 10 第五章 数据库实施 ..................................................................................................................... 13
5.1 创建数据库 ...................................................................................................................... 13
5.2 创建数据基本表 .............................................................................................................. 13
5.2.1、用户表 ................................................................................................................. 13
5.2.2、收入表 ................................................................................................................. 14
5.2.3、支出表 ................................................................................................................. 14
5.2.4、恢复与备份日志表 ............................................................................................. 15
5.3 根据功能需求扩充 .......................................................................................................... 15
5.3.1视图1 收入视图—view_Income ....................................................................... 15
5.3.2视图2 支出视图—view_Pay ............................................................................. 15
5.3.3存储过程1 收入—pro_Income.......................................................................... 16
5.3.4存储过程2 支出—pro_Pay................................................................................ 16 第六章 系统实现与维护 ............................................................................................................. 17
6.1 系统结构.......................................................................................................................... 17
6.2 主要功能实现 .................................................................................................................. 17
6.2.1 收入与支出实现 ................................................................................................... 17
6.2.2 统计查询实现 ....................................................................................................... 18
6.3 系统维护.......................................................................................................................... 19 总 结............................................................................................................................................... 20 参 考 文 献................................................................................................................................... 21
绪 论
随着市场经济的发展,我国居民对理财有着越来越高的要求。理财,是每个家庭和个人所必须面对的问题。现在,关于企业的会计
制度
关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载
逐渐完善,而且针对企业的财务软件以及EPR(enterprise resource planning)系统也在飞速发展,但针对个人或家庭的财务系统目前还是一段空白。
实际生活中经常要对个人的各项财务收支进行管理,本课题的目的就是利用计算机对各项财务进行电子化的管理,使我们的理财更加方便和理性化,提升我们生活的质量和品位。 课题意义
我们经常看到企业的一些财务报表,这些报表主要是关注企业的资产负债表和损益表。简单的说,前者是反映这个企业有多少钱,是存量;后者,反映了企业在一定时间能赚到多少钱,是流量。
其实,对一个人或者家庭的财务情况,也是关注这两个方面。关注家里存多少钱,关注今年赚了多少钱,花了多少,借出什么等等。
要做到这些需要对大量的数据做存储和计算,工作是相当的复杂繁琐和枯燥的,因而这些问题容易被人忽略。我们纵然可以为生活中的每一笔花销记账,但是对这样大量的数据做分类处理确实是一个会令大多数人头疼的问题,如果有一个个人理财的软件理财的软件对我们的日常财务进行那样的繁琐的数据处理和计算工作,相信可以让我们理财的效率大大提高。这样一个软件不但可以方便我们的生活,更可以使我们对自己的财务状况有一个清楚的了解。
与此同时,这样的一个软件开发和制作也是对我们大学学到各种知识进行的一次综合运用的一个好机会,是对我大学学习的一个检验和实践。
第5页 共 21页
第二章 需求分析
2.1 用户需求
本系统是针对用户要求,使用计算机对自己日常的资金和物品的收入、支出以及相关的各种信息进行记录、修改、添加、删除等操作,并实现对信息进行统计和以文档形式输出的操作而设计的一种现代化个人财务管理软件。经过分析,本系统需要具有以下功能:
1、能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理。
2、实现查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。
3、能够实现按日期查询以及对库存数据进行按月统计和以文本形式输出。
4、拥有良好的人机交互界面。
2.2 功能需求
系统业务需求
本系统具有以下几个功能模块:用户登录模块、系统管理模块、收入管理模块、支出管理、查询统计模块。用户登录模块为每个用户分配账号密码使得个人的财务信息具有隐私性,收支管理模块能有效的管理用户的现金,可以进行添加,查询,删除操作,查询统计模块使得用户能够查询用户某月的金钱和物品统计信息,能够让用户对自己每月或一段时间的收支情况,系统管理模块可以让用户修改密码等。
收支管理模块功能
现金管理模块是用户对现金进行添加、删除、修改操作的模块,提供用户对现金的收入支出进行操作的功能,使得当用户的记录需要修改时,可以方便的添加和修改。
查询统计管理模块
提供用户对现金收支信息和物品收支信息进行统计输出功能。
系统管理模块
系统管理模块提供用户对用户个人信息的管理和修改的功能。
第6页 共 21页
2.3总体结构图
把整个系统分为收入管理,支出管理,查询统计管理,系统管理四个模块,收入管理模块分为添加,修改,删除等功能模块。 支出模块与收入模块类似。 查询统计模块分为物品统计信息,收支统计信息两个模块,系统管理模块分为修改密码,修改个人信息等,每个模块完成的功能可以从名字上明显的看出。
总体结构图 2-1 如下所示:
个人财务管理系统
收支查系备
入出询统份
管管统设恢
理 理 计 置 复
添修删添修删收支收数基安数
加改除加改除入出支据本全据
收信记支信记查查统备设设备
入 息 录 出 息 录 询 询 计 份 置 置 份
图 2-1 总体结构图
第7页 共 21页
第三章 数据库概念设计
3.1局部E-R图设计
1、 用户-收入E-R图设计,如图 3-1所示
金额 类型 时间 来源 编号 备注
收 入
N 用户ID
1 用户名 电话 用户
身份证 密码
个性签名
图 3-1 用户-收入E-R图
2、用户-支出模块设计,如图 3-2所示
时间 类型 金额 去向
编号 备注
支 出
N 用户ID
1 用户名 电话
用户
身份证 密码
个性签名
图 3-2 用户-支出E-R图
第8页 共 21页
3.2数据库的基本ER图
将两个局部E-R图整合成基本的E-R图,如图3-3所示。
金额 类型 时间 来源 编号 备注
收 入
N
用户ID
1 用户名
用户密码
1 电话
身份证 N
个性签名 支 出
备注 编号 去向 金额 类型 时间
图 3-3 数据库基本ER图
其中,用户编号是用户的主键,每个用户都有唯一的编号,其中收入编号是收入的主键,收入类型包括买入、借入,其他,如果是金钱,金额就是金钱的数量,备注就是对事件的详细说明,支出类型包括:借出、消费、其他,备注可以填写用途或原因的说明。
第9页 共 21页
第四章 数据库逻辑设计 将数据E-R图转换为关系模型如图4-1所示。
金额 类型 时间 来源 编号 备注
收 入
N
用户ID 1 电话 用户名 用 户
密码 身份证 1
个性签名
N
支 出
备注 编号 去向 金额 类型 时间
图 4-1 E-R转关系模型
根据系统需求,以及三大范式的基本要求,将E-R图进行转换并进行优化,最终形成三
张表,结果如下:
用户(用户编号,用户名,密码,电话,身份证,个性签名); 收入(收入编号,金额,类型,时间,来源,备注); 支出(支出编号,金额,类型,时间,去向,备注);
关系依赖:
用户编号 用户名(每个用户编号只有一个用户名,用户名依赖于用户编号) 收入编号 收入金额(每个收入编号只能记录当前的收入金额数) 支出编号 支出金额(每个支出编号只能记录当前的收入金额数)
第10页 共 21页
关系模式的范式:
1、用户的范式
用户R1(用户编号,用户名,密码,电话,身份证,个性签名)
(1)因为关系模式R1中的每个属性都是不可再细分的简单项,所以关系模式R2属于第一范式。
(2)关系模式R1?1NF,其中R1的候选键为用户名,所以R2是第二范式。
(3)关系模式R1?2NF,且不存在传递函数依赖,所以R3为第三范式。 2、收入的范式
收入R2(收入编号,金额,类型,时间,来源,备注)
1)因为关系模式R2中的每个属性都是不可再细分的简单项,所以关系模式R2属于第(
一范式。
(2)关系模式R2?1NF,其中R2没有候选键,所以R2不是第二范式。 3、支出的范式
支出R3(支出编号,金额,类型,时间,去向,备注)
(1)因为关系模式R3中的每个属性都是不可再细分的简单项,所以关系模式R2属于第一范式。
(2)关系模式R3?1NF,其中R3没有候选键,所以R3不是第二范式。 数据库相关属性的定义
本小节主要是对相关属性的数据类型、长度和是否为主键作相关介绍。具体如表5-1、表5-2、表5-3所示:
表5-1 用户信息表
1 userInfo --- 用户信息表 (table)
user int 否 主键 identity(1000,1) Id
user varchar 10 否 唯一 用户名 name
pass varchar 10 否 密码 word
phon varchar 11 电话 e
idCa varchar 16 身份证号码 rd
head
Imagvarchar 200 用户头像
e
auto
grapvarchar 200 个性签名
h
第11页 共 21页
表5-2 收入表
2 Income --- 收入表 (table)
iId int 否 主键 identity(20000,1)
user int 否 外键 用户id Id
iMon(10 decimal 否 金额 ey ,2)
iTyp varchar 100 收入类型 e
iTimsmallda 否 日期 e tetime
iRes
ourcvarchar 200 收入来源
e
iRem varchar 200 备注 ark
表5-3 支出表
3 Pay --- 支出表 (table)
pId int 否 主键 identity(20000,1)
user int 否 外键 用户id Id
pMon(10 decimal 否 金额 ey ,2)
pTimsmallda 否 日期 e tetime
pTyp varchar 100 消费类型 e
pGo varchar 100 消费去向
pRem varchar 200 备注 ark
第12页 共 21页
第五章 数据库实施
5.1 创建数据库
分别创建3个数据库文件,数据库主文件、辅助文件、日志文件。
create database PersonFinance on primary( --主文件
name = mFinance,
filename = 'D:\finance\PersonFinance.mdf',
size = 5MB,
maxsize = 100MB,
filegrowth = 1MB
),
( --辅助文件
name = nFinance,
filename = 'D:\finance\PersonFinance.ndf',
size = 5MB,
maxsize = 50MB,
filegrowth = 1MB
),
( --日志文件
name = lFinance,
filename = 'D:\finance\PersonFinance.ldf',
size = 5MB,
maxsize = 50MB,
filegrowth = 1MB
)
5.2 创建数据基本表
根据数据库分析,用户需求分析,以及概念逻辑等设计,创建数据表。
5.2.1、用户表
用户表主要存储了用户的基本信息(用户名等)和安全信息(密码、身份证等),你可以根据自己的需要来创建多个用户名,其中admin为管理员,只有该用户可以对其他用户进
第13页 共 21页
行管理,以及数据的备份和恢复,建议你在刚开始使用的时候创建一个用户名为”admin”的用户。数据库Sql语句如下:
create table UserInfo(
userId int identity(1000,1),
username varchar(10) primary key ,
password varchar(10) not null,
phone varchar(11),
idCard varchar(16),
headImage varchar(200),
autograph varchar(200)
);
5.2.2、收入表
收入表是用来存储,所有用户关于收入信息的表,用户可以根据自己的用户名来查询自己的收入信息,数据库Sql语句如下:
create table Income(
iId int identity(20000,1) primary key,
username varchar(10) foreign key(username) references UserInfo,
iMoney decimal(10,2) default 1 not null,
iType varchar(100),
iTime smalldatetime not null,
iResource varchar(200),
iRemark varchar(200)
);
5.2.3、支出表
支出表是用来存储,所有用户关于支出信息的表,用户可以根据自己的用户名来查询自己的支出信息,数据库Sql语句如下:
create table Pay(
pId int identity(300000,1) primary key,
username varchar(10) foreign key(username) references UserInfo,
pMoney decimal(10,2) default 1 not null,
pType varchar(100),
pTime smalldatetime not null,
pGo varchar(200),
pRemark varchar(200)
);
为记录下数据备份与恢复的操作记录,扩充一张记录表入下:
第14页 共 21页
5.2.4、恢复与备份日志表
该表主要是用来记录用户备份和恢复的操作,以便需要时进行查看,数据库Sql语句如下:
create table BrLog(
brId int identity(9000,1) primary key,
brType varchar(20),
brTime smalldatetime default getDate(),
brPosition varchar(300)
)
5.3 根据功能需求扩充
本系统提供了用户收支的统计功能 以及更具某用户查询该用户的收支情况 用户可以根据自己的需求查询自己几个账户的收支情况,也可以根据类型等条件查询某个账户的收支情况,遂创建两个视图 以及两个存储过程
5.3.1视图1 收入视图—view_Income
该视图主要用来查询所有用户的收入统计情况,以便用户随时掌握自己的收入情况,分别按照不同的时间段来统计,代码如下:
create view view_Income
as
select
(select sum(iMoney) from Income) as '总收入',
(select sum(iMoney) from Income where getDate()-iTime<=365) as '本年度收入',
(select sum(iMoney) from Income where getDate()-iTime<=90) as '本季度收入',
(select sum(iMoney) from Income where getDate()-iTime<=30) as '本月收入',
(select sum(iMoney) from Income where getDate()-iTime<=1) as '今日'
5.3.2视图2 支出视图—view_Pay
与收入视图功能类似。代码如下:
create view view_Pay
as
select
(select sum(pMoney) from Pay) as '总支出',
(select sum(pMoney) from Pay where getDate()-pTime<=365) as '本年度支出',
(select sum(pMoney) from Pay where getDate()-pTime<=90) as '本季度支出',
(select sum(pMoney) from Pay where getDate()-pTime<=30) as '本月支出',
(select sum(pMoney) from Pay where getDate()-pTime<=1) as '今日'
第15页 共 21页
5.3.3存储过程1 收入—pro_Income
该存储过程与收入视图的区别在于它只会统计出自己的收入信息,而不会统计其他用户的收入信息,为方便统计某个用户而设计的。代码如下:
create procedure pro_Income @name varchar(10) as
select
(select sum(iMoney) from Income where username=@name ) as '总收入',
(select sum(iMoney) from Income where username=@name and getDate()-iTime<=365) as '
本年度收入',
(select sum(iMoney) from Income where username=@name and getDate()-iTime<=90) as '本季度收入',
(select sum(iMoney) from Income where username=@name and getDate()-iTime<=30) as '本月收入',
(select sum(iMoney) from Income where username=@name and getDate()-iTime<=1) as '今日'
;
执行:exec pro_Income 'admin'
5.3.4存储过程2 支出—pro_Pay
与收入的存储过程功能类似。代码如下:
create procedure pro_Pay @name varchar(10) as
select
(select sum(pMoney) from Pay where username=@name ) as '总支出',
(select sum(pMoney) from Pay where username=@name and getDate()-pTime<=365) as '本年度支出',
(select sum(pMoney) from Pay where username=@name and getDate()-pTime<=90) as '本季度支出',
(select sum(pMoney) from Pay where username=@name and getDate()-pTime<=30) as '本月支出',
(select sum(pMoney) from Pay where username=@name and getDate()-pTime<=1) as '今日' ;
第16页 共 21页
第六章 系统实现与维护
6.1 系统结构
本系统主要包括5大功能模块,收入、支出、统计查询、系统设置、数据恢复与备份,其结构如图 6-1所示。
注册
开始
登录 主界面
收支系统入 出 统数数计 设据据查置 备恢询 份 复 查添添查
询 加 加 询
基安查统 本 全 询 计
支出
收入
退出
图 6-1 系统功能结构图
6.2 主要功能实现
6.2.1 收入与支出实现
收入与支出的功能其实差不多,基本功能分为添加、查询,删除和修改功能与统计查询做一块了,用户可以根据收入类型、来源、金额等信息来填写收入相关的添加信息;可以根
第17页 共 21页
据支出类型、去向等填写支出相关的添加信息。本系统为用户提供了友好的界面,如图6-2所示。
图 6-2 收入界面图
6.2.2 统计查询实现
该模块实现了统计与查询的功能,按不同时间段统计出收入和消费情况,如图6-3所示。用户也可以根据添加信息时填写的(收入/支出)类型、来源/去向以及时间来查询自己的收入/支出情况。 查询出来的结果可以进行修改,删除操作,如图6-4所示。
图6-3 收支统计
第18页 共 21页
图6-3 收支查询
6.3 系统维护
数据对于我们来说是至关重要的,本系统提供了数据的备份与恢复功能,只有admin账户才能进行此操作,所以建议你在使用的时候注册一个用户名为admin的账户,用户可以根据自己的需求随时对数据库进行备份,备份文件是后缀为.bak的文件,其操作界面如图6-4所示。
图6-4 数据备份与恢复
第19页 共 21页
第七章 总 结
经过将近一个礼拜的设计然后实施数据库,设计界面,编写代码,此次的数据库课程设计的基本雏形总算出来了。在设计的时候,我们首先从整体来进行了分析,需要多少张表来描述,需要什么样的表,改怎么设计等等,这些我们都一起讨论,有时会有不同的意见,但最后我们的想法都会达成一致,这要感谢队员的理解和配合,学习就是一个相互交流相互促进的过程,每个人会有每个人的想法,每个人对某个事物也会有自己的见解,所以在整个过程中我们一直有互相讨论。 平时没好好学做起来还是有点吃力,刚开始的时候根本就没啥头绪,第一次给老师检查就被老师指出了很多的错误,不过我们很积极的接受了老师的批评,根据老师的指点和建议,我们及时进行了更改。
经过这次的课程设计,更加熟悉了sql server数据库的操作,这不是客套话,也不是虚话,是真心话,上大学到现在,给我一个深刻的印象就是 每次只有在课程设计的时候才知道自己到底学了多少,自己掌握了多少。如果有可能的话,建议一个学期每过一个阶段就做一个阶段性综合的课程设计,这样能及时的让同学了解自己的学习情况,而不是只望着期末,这是个人的一点鄙见。 现在越来越发现,网络确实是个好东西,很多时候,在做作业或者做课程设计的时候,出现了一个错误,老师又不在,同学讨论也没结果,网上一搜,绝大多数都能找到解决方法。 还发现一个学习方法,加专业Q群, 比如java群,C#群,数据库群等等,有问题在群里提出来,一般都会得到同行其他同志的指点。
最后,说一些比较官方的感言,感谢老师的辛勤教学,感谢同学们的热情指导,感谢自己坚定的熬夜信念,O(?_?)O哈哈~, 结尾。
第20页 共 21页
参 考 文 献
数据库技术与应用 SQL Server 2005 (技术篇) 罗明亮 陆琳 中南大学出版社 数据库技术与应用 SQL Server 2005 (应用篇) 刘桂林 陆琳 中南大学出版社 C#编程及应用 刘瑞新 马骏 何欣 机械工业出版社
第21页 共 21页