数据库个人财务管理信息系统实验报告Word文档下载推荐.docx
《数据库个人财务管理信息系统实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库个人财务管理信息系统实验报告Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
关于效益方面,本系统仅仅是一个课程设计,只是为了提高自己的分析,设计能力,而非为了社会效益而编写设计,因此社会效益方面也是可行的。
第3章需求分析
3.1用户需求
本系统是针对用户要求,使用计算机对自己日常的资金和物品的收入、支出以及相关的各种信息进行记录、修改、添加、删除等操作,并实现对信息进行统计和以文档形式输出的操作而设计的一种现代化个人财务管理软件。
经过分析,本系统需要具有以下功能:
1、能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理。
2、实现查询、修改、删除、添加数据方便,数据的稳定性和可靠性好。
3、能够实现按日期查询以及对库存数据进行按月统计和以文本形式输出。
4、拥有良好的人机交互界面。
3.2功能需求
系统业务需求
本系统具有以下几个功能模块:
用户登录模块、系统管理模块、收支管理模块、报表统计模块。
用户登录模块为每个用户分配账号密码使得个人的财务信息具有隐私性,收支管理模块能有效的管理用户的现金,可以进行添加,查询,删除操作,报表统计模块使得用户能够查询用户某月的金钱和物品统计信息,能够让用户对自己每月或一段时间的收支情况,系统管理模块可以让用户修改密码。
登陆功能
对于个人财务管理系统,我们要求软件满足用户对个人财务的隐私性管理,确保在用户以外的其他人使用软件对其信息进行操作,所以要采用用户注册和登录制度,确保用户对自己财务信息的隐私管理。
收支管理模块功能
现金管理模块是用户对现金进行添加、删除、修改操作的模块,提供用户对现金的收入支出进行操作的功能,使得当用户的记录需要修改时,可以方便的添加和修改。
报表统计管理模块
提供用户对现金收支信息和物品收支信息进行统计输出功能。
系统管理模块
系统管理模块提供用户对用户个人信息的管理和修改的功能。
系统技术需求
稳定性:
本系统为财务管理系统,多为查询、修改、删除、添加数据等操作,要求数据的稳定性好。
可靠性:
用户财务数据多比较重要,要求系统具有数据备份,数据恢复等性能。
安全性:
系统设计个人银行账号以及密码的保存,要求系统提供加密保存等安全措施,即要求系统有较高的安全性能。
数据流图
数据字典
名称:
收支信息报表
别名:
描述:
描述某日收支信息
定义:
收入报表=【收入|支出】+金额+原因+日期
位置:
显示给用户
收支统计报表
描述某月收支收支信息
月收支信息=收入总额+支出总额+日期
显示给用途
状态转换图
状态转换图模拟系统的行为模型,把系统概括的分为几个状态,并表示触发状态转换的事件,由于该系统是医院内部使用的小型系统故不用设置登录功能,打开系统自动初始化为等待状态,接受事件,并根据事件类型进入相应状
4.2.1ER图
数据库的ER图如下所示:
图4.2ER图
其中用户编号是用户的主键,每个用户都有唯一的编号,其中收入编号是收入的主键,收入类型包括买入、借入,收入,如果是金钱,金额就是金钱的数量,备注就是对事件的详细说明,支出联系同收入联系,支出类型包括:
借出、卖出、支出,备注可以填写用途或原因的说明。
第四章:
总体设计
4.1:
层次结构图
把整个系统分为收支管理,报表统计管理,系统管理四个模块,收支管理模块分为添加收入,添加支出,修改收入,修改支出,查询收支,删除收支6个模块,统计管理模块分为物品统计信息,收支统计信息两个模块,收支管理模块分为修改密码,数据备份,数据恢复,系统说明,退出系统5个部分,每个模块完成的功能可以从名字上明显的看出。
层次从结构图如下所示:
图4.1层次结构图
4.2:
数据库设计
4.2.2数据库表
表4.1用户表
序号
字段中文名
字段英文名
类型、宽度、精度
取值约束
空否
默认值
主键/外键
1
用户编号
UserID
bigint
否
主键
2
用户名
UserName
varchar(50)
少于50字符
3
密码
Password
表4.2支出信息表
支出物资编号
PayoutID
外键
支出类型
Paykind
varchar(50)
4
支出物资类型
payoutking
Varchar(50)
5
支出金额
PayAccount
float
6
支出时间
PayTime
date
7
备注
Remark
varchar(200)
少于200字符
表4.3收入信息表
收入信息编号
IncomeID
收入类型
Inkind
收入物资类型
Payinkind
收入金额
InAccount
收入时间
InTime
第五章:
详细设计
5.1界面设计:
一个好的用户界面能够给用户一个好印象,甚至能够事半功倍,有的时候,即使软件设计的很好,但用户界面不符合用户操作的习惯,也可能会让用户不满意,因此说,一个好的用户界面是至关重要的。
本系统的界面设计如下:
主界面左侧有四个选项,分别对应层次图的四个模块,分别为:
用户收支管理,统计查询,系统管理,用户管理,每个选项下面还有相应的几个子选项,完成相应的添加、查询、修改、删除操作,右侧为正文部分,显示用户需要的信息。
用表单的形式显示出来。
5.2数据库查询设计
输出的显示主要是对数据库的组合或单独查询得出的结果,三个表用用户的编号联系起来,在用户表中用户的编号是主键,在收入表中和支出表中则是作为外键,三个表组合查询就可以查到想要的所有信息。
其中收入类型填写金钱收入,借入物品,买入物品:
收入物资类型填写物品、金钱,支出类型填写金钱支出,物品借出,物品卖出;
备注填写原因后用途。
5.3登录界面数据流程图
图5.1登录界面数据流程图
登录模块代码:
<
%
ifrequest("
admin"
)="
登陆"
then
UserName=request.form("
UserName"
)
PassWd=md5(request.form("
PassWd"
))
setrs=server.CreateObject("
ADODB.RecordSet"
sql="
select*from[user]whereusername='
"
&
UserName&
'
rs.OpenSql,conn,1,1
ifrs("
password"
)<
>
PassWdthen
response.write"
script>
alert(‘用户或密码错误’);
location.href='
javascript:
history.go(-1)'
;
/script>
response.end
else
Response.Cookies("
key"
gu_ke"
).expires=date+2
user"
)=rs("
username"
)
id"
response.redirect"
admin.asp"
endif
rs.close
%>
html>
head>
metahttp-equiv="
Content-Type"
content="
text/html;
charset=gb2312"
/>
linkhref="
css.css"
rel="
stylesheet"
type="
text/css"
title>
登陆页面<
/title>
/head>
body>
scriptlanguage=javascript>
functionCheckForm(){
if(document.form1.UserName.value=="
{
alert("
用户不能为空"
);
document.form1.UserName.focus();
returnfalse;
}
if(document.form1.Passwd.value=="
密码不能为空"
document.form1.Passwd.focus();
}
tablewidth="
300"
align="
center"
border="
0"
cellspacing="
cellpadding="
formname="
form1"
method="
post"
action="
index.asp"
onSubmit="
returnCheckForm()"
tr>
tdheight="
95"
/td>
/tr>
35"
用 户:
<
inputtype="
text"
name="
maxlength="
16"
size="
24"
密 码:
Passwd"
22"
40"
submit"
value="
/form>
/table>
/body>
/html>
添加用户模块:
!
--#includefile="
conn.asp"
-->
heck.asp"
--#includefile="
md5.asp"
LINKhref="
type=text/cssrel=stylesheet/>
setrs=server.createobject("
adodb.recordset"
select*from[user]whereid="
Request.Cookies("
rs.opensql,conn,1,1
1then
Response.Write"
alert('
系统超时'
this.location.href='
index.asp'
/SCRIPT>
endIf
IfRequest.form("
add"
添加"
Then
Setrs=Conn.Execute("
Select*From[user]Whereusername='
Request.form("
)&
IfNot(rs.Eoforrs.Bof)Then
该用户已存在'
add_user.asp'
Response.End
rs.clsoe
Ifrequest.form("
pwd2"
)<
request.form("
pwd3"
)then
两次密码不相同'
location='
history.back(-1)'
Setrs=Server.CreateObject("
Sql="
Select*From[user]Where(IDisnull)"
rs.OpenSql,Conn,1,3
rs.addNew
rs("
)=Request.form("
md5pwd=md5(request("
name2"
)=md5(request.form("
rs.Update
rs.Close
操作成功'
t_user.asp'
scriptlanguage="
JavaScript"
--
functionchk(theForm){
if(theForm.user.value=="
){
请输入用户"
theForm.user.focus();
return(false);
if(theForm.pwd2.value=="
请输入密码!
theForm.pwd2.focus();
if(theForm.pwd3.value=="
请重复密码!
theForm.pwd3.focus();
//-->
100%"
25"
align=centercellpadding="
5"
1"
bgcolor="
#eeeeee"
<
formaction="
method=postname=form1onSubmit="
returnchk(this)"
trbgcolor=ffffff>
tdwidth="
40%"
right"
用户:
td>
inputname="
20"
30"
权限:
/div>
selectname="
optionvalue="
普通用户<
/option>
管理员<
/select>
fontcolor=red>
--请选择<
/font>
密码:
60%"
28"
26"
重复密码:
nbsp;
管理用户:
修改"
Select*From[user]Whereid="
Request("