C#期末文档家庭财务管理系统.docx
- 文档编号:7984861
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:43
- 大小:2MB
C#期末文档家庭财务管理系统.docx
《C#期末文档家庭财务管理系统.docx》由会员分享,可在线阅读,更多相关《C#期末文档家庭财务管理系统.docx(43页珍藏版)》请在冰豆网上搜索。
C#期末文档家庭财务管理系统
项目名称:
家庭财务管理系统
专业班级
13级软2
学号
201358234104
姓名
辜建波
完成日期
2015年12月29日
指导教师
孔世明
软件工程学院
一、设计目的
社会的发展越来越快,人们的收入增长和家庭的资产的种类的增多,再加上市场经济的各种不确定性因素越来越大,以至于影响到家庭的各项活动,家庭理财普遍得到了人们的重视。
随着计算机、网络技术的高速发展,如何做好家庭理财又有了新的方式方法,运用电脑管理个人的财产,包括银行存款、信用卡、现金、借款和股票、投资等。
可以便于管理各种资金的流入和流出,家庭资产的增加和减少,金融投资项目的买入和卖出,使用户能更完整更清晰的了解自己家庭的财务状况和资产、投资的变动情况,帮助用户轻而易举的管理自己的家庭财务,再将这项技术运用到智能移动设备上面,就更能对家庭财务状况随时掌控和管理。
在现代财务管理中借助Intranet/Internet为个人及家庭建立一个财务管理系统,将大大提高财务管理的水平,这也是当初选择将家庭财务管理系统做为本次毕业设计的初衷。
本系统目的是解决个人或家庭的财务管理需求,能够按照用户要求进行高效的计算、统计,显示等任务,为用户日常生活中的财务管理提供便利。
本系统属于家庭财务管理系统,能够满足个人和家庭的财务管理需求,提供收入支出信息的记录,分类统计各项收支账户管理等功能。
系统的实现在技术上充分采用JavaWeb组件技术,方便开发、维护和升级。
本系统是针对用户要求用计算机,对自己的财务的收入、支出以及相关的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件。
本财务管理系统需要具有以下功能:
能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理、查询、修改、删除、添加数据方便,数据的稳定性和可靠性好,良好的人机交互界面,对于没有专业计算机基础的人员,经过简单介绍后能够迅速掌握和熟练操作,在实际的应用过程中便于信息内容的管理和维护。
通过设计达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
根据题目的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和VisualStudio2005工具的使用。
二、需求分析
家庭财务管理系统是针对家庭的财务软件,他能轻松帮你完成记帐以及理财规划。
用户可以自由的设置收支类型(如生活费、通讯费、交通费、水电费、医药费等类型),可以制定每月的收入支出预算,还可以详细统计出各项家庭财务指标,便于您分析自己的财务。
其它功能如:
家庭亲友通讯录、家庭备忘录、家庭重要信息等。
具体模块应包括:
记账、资产管理、负债管理、投资理财管理、计划和提醒、家庭信息管理、统计报表(比如现金流报表、资产负债报表等)等模块。
本系统需要完成的功能有:
1.登陆管理
系统管理员可以设置家庭成员,修改或者删除。
家庭成员应该包括“姓名,登录密码”等。
家庭成员可以用姓名和登录密码登录家庭财务管理系统进行记账管理。
2.家庭成员管理
以设置家庭成员,修改或者删除。
家庭成员应该包括“姓名,登录密码”等。
家庭成员可以用姓名和登录密码登录家庭财务管理系统进行记账管理。
3.收支项目管理
可以设置收支项目,修改或者删除。
收支项目要求分为两层,比如“车辆维护-保养费”;任意一层次都可作为收支项目记账,用户在不清楚支出是否属于“保养费”的时候,可以选择大类“车辆维护”作为支出项。
4.家庭成员收支报表管理
统计家庭成员一定时间内的收支情况。
5.退出管理
三、模块分析及设计
本次设计主要分为四个模块:
登陆管理模块、家庭成员管理模块、收支项目管理模块、家庭成员收支报表管理模块,详细可以参考下图:
(一)登陆管理模块
使用者:
用户
目的:
使用不同的角色进行登陆管理操作基本事件流:
1、进入登陆界面,本用例开始
2、普通用户通过注册后进入系统进行操作。
3、超级用户进入系统后进行管理操,用例结束。
(二)家庭成员管理
1.增加家庭成员
使用者:
管理员
目的:
增加家庭成员
基本事件流:
1.1、用户进入增加家庭成员管理界面,本用例开始
1.2、系统显示家庭成员信息输入界面,用户输入家庭成员姓名、性别、出身日期、年龄,身高,体重。
1.3、用户确认输入信息,系统确认姓名是否唯一,若唯一,则增加成员信息,本用例结束。
否则,提示该用户已存在。
2.修改家庭成员信息
3.删除家庭成员信息
(三)收支项目管理
1.查看收支项目
使用者:
用户
目的:
查看收支具体信息
基本事件流:
1、进入收支项目管理界面,点击查看,本用例开始。
2、查看具体项目收支情况。
3、点击确定,用例结束。
2.编辑收支项目
使用者:
用户
目的:
编辑收支条目
基本事件流:
1、进入收支项目管理界面,点击编辑,用例开始。
2、对当前选中的收支条目进行修改编辑。
3、编辑完后点确定,用例结束。
3.删除收支项目
使用者:
用户
目的:
删除条目
基本事件流:
1、进入收支项目管理界面,点击删除,本用例开始。
2、对当前选中的收支条目进行删除操作。
3、点击确定删除,用例结束。
四、数据库设计说明
4.1数据表
(1)family表
家庭表也是对系统登录的权限操作,此表用来记录家庭成员信息,方便家庭成员登录程序。
表1家庭成员信息表
字段名
字段类型
非空
说明
姓名
整型
姓名
账号
文本
账号
密码
文本
密码
身份
文本
是
身份
生日
文本
生日
(2)item表
收入信息表,此表用来存放该家庭财务收入信息。
表2功能信息表
字段名
字段类型
非空
说明
编号
自动编号
是
自动编号
日期
文本
入账日期
金额
货币
收入金额
人员
文本
发起记录者
身份
文本
身份
项目
文本
项目
说明
文本
说明
(3)borrow表
字段名
字段类型
非空
说明
Borrowed
自动编号
是
自动编号
Fromname
文本
姓名
Role
文本
身份
Borrwmoney
货币
借出金额
Borrwdate
日期/时间
借出时间
Borrwreason
文本
借出理由
4.2数据库的完整性和安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏.安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全笥问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.
数据库的完整性是指数据的正确性和相容性.例如本系统中;学生的学号必须唯一;性别只能是男或女;学生所在的系统必须是学校已开设的系.等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完事性是非常重要的.
五、制作过程及要点
登录界面
特点描述:
1.与常用的账号设置不同,我的用户名用的是组合框(comboBox)来装载,登入框架一载入,则从数据库里读入用户名,方便用户体验。
2.取消注册功能,原因是本系统防止任意人员注册即可使用本系统。
如果需要添加登录用户,需要进入系统才能添加,或数据库添加。
3.实现身份字段控制权限访问。
主要分系统管理员与非系统管理员。
系统管理员最高权限,而后者只限于查找与修改个人密码。
FormLogin.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsFormsApplication1
{
publicpartialclassFormLogin:
Form
{
stringConnectionString="DataSource=(local);"+
"InitialCatalog=家庭财务管理系统;PersistSecurityInfo=True;"+
"UserID=sa;Password=xyz614848";
//封装链接字符串,协调统一数据库链接信息
publicstringgetCS()
{
returnConnectionString;
}
SqlConnectionconn;
stringstrSQL;
SqlCommandCommand;
SqlDataReaderreader;
publicFormLogin()
{
InitializeComponent();
}
staticstringUname="";
//封装登录的用户名,便于登录后显示
privatevoidsetUname(strings)
{
Uname=s;
}
publicstringgetUname()
{
returnUname;
}
staticstringRole="";
//封装用户身份
privatevoidsetRole(strings)
{
Role=s;
}
publicstringgetRole()
{
returnRole;
}
//初始化参数
privatevoidFormLogin_Load(objectsender,EventArgse)
{
//取出系统的所有用户名
//显示在下拉列表,这样用户登录的时候
//选择用户名就可以了,不用再输入用户名了
conn=newSqlConnection(ConnectionString);
strSQL="SELECT账号FROMfamily";
try
{
Command=newSqlCommand(strSQL,conn);
conn.Open();
reader=Command.ExecuteReader();//结果集放到reader对象中
intflag=0;
//把数据库账号加载到组合框中
while(reader.Read())
{
boBox1.Items.Add(reader[0].ToString());
//如果能加载账号,则选中密码框
if(flag==0)
{
textBox1.Focus();
textBox1.Select();
}
flag++;
}
//如果系统存在用户,则默认选中第一个用户
if(flag>0)
boBox1.SelectedIndex=0;
}
catch(Exceptionex)
{
ex.GetBaseException();
}
finally
{
reader.Close();
Command.Dispose();
}
}
//确定,完成登陆
privatevoidbutton1_Click(objectsender,EventArgse)
{
intflag=0;
if(textBox1.Text==""||comboBox1.Text=="")
{
showError("账号或密码为空!
");//第一种错误,账号或密码为空
return;
}
flag=check();
if(flag==1)
{
setUname(comboBox1.Text);
FormManagefr2=newFormManage();
this.Hide();
fr2.ShowDialog();
this.Close();
}
else
{
showError("账号或密码不正确!
");//第二种错误,账号或密码不正确
}
}
//验证账号密码的方法
privateintcheck()
{
try
{
conn=newSqlConnection(ConnectionString);
strSQL="SELECT*FROMfamily";
Command=newSqlCommand(strSQL,conn);
conn.Open();
reader=Command.ExecuteReader();//结果集放到reader对象中
object[]row=newobject[reader.FieldCount];
while(reader.Read()==true)
{
reader.GetValues(row);//获取结果集的当前行
if(comboBox1.Text==row[0].ToString()&&textBox1.Text==row[2].ToString())
{
//存入登录成功的用户的身份
Command.CommandText="SELECT身份FROMfamilywhere账号="+comboBox1.Text+"";
conn.Close();
conn.Open();
setRole(Command.ExecuteScalar().ToString());
return1;
}
}
}
catch(Exceptione)
{
e.GetBaseException();
return0;
}
return0;
}
//弹出错误框
privatevoidshowError(stringerrorInfo){
textBox1.Text="";
comboBox1.Text="";
FormWarnfw=newFormWarn(errorInfo);
fw.ShowDialog();
}
//取消按钮
privatevoidbutton2_Click(objectsender,EventArgse)
{
textBox1.Text="";
comboBox1.Text="";
this.Close();
}
}
}
管理界面
设计界面
特点:
1.我的管理界面采用panel重合与显示隐藏结构。
红色框区域属于可变区域。
2.避免反复关闭与加载窗体,实现管只需加载一次。
主页界面
特点:
1.第一红框实现时间显示
2.第二红框实现登录名显示PS登录模块中封装了登录成功的用户名
家庭成员管理界面
家庭成员管理-添加界面
家庭项目管理界面
家庭项目管理-添加界面
特点:
其中家庭成员管理-添加界面与家庭项目管理-添加界面是同一个界面,只是控制了label的text属性与显示单选框与多行属性的文本框。
收支报表管理界面
特点:
除了简单的月,年,总分别统计外,还加入了网上找的静态圆饼图,不过经我给该图方法加了两个形参后,已经和数据库连接,实现动态显示效果
最后手工部分,我加入了简单的菜单工具栏。
当然,如果是非系统管理员,则界面被限制
六、实现管理系统模块代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.Windows.Forms.DataVisualization.Charting;//chart的命令空间
namespaceWindowsFormsApplication1
{
publicpartialclassFormManage:
Form
{
//初始化参数
stringConnectionString="";
privateSqlConnectionconn=null;
privateSqlDataAdapterDataAdapter=null;
privateDataSetdataset=null;
privateSqlCommandcmd=null;
stringcurNo;
publicFormManage()
{
InitializeComponent();
}
/*-----界面转换方法开始!
!
-----*/
//显示主页背景
privatevoidpIndex_Click(objectsender,EventArgse)
{
checkPage("主页");
}
//pFmyMng2的取消按钮,跳转到pShowData
privatevoidaddMemCancel_Click(objectsender,EventArgse)
{
if(lAddData.Text=="添加成员")
{
checkPage("家庭成员管理");
}
if(lAddData.Text=="添加项目")
{
checkPage("收支项目管理");
}
}
//家庭成员管理
privatevoidiFmyMng_Click(objectsender,EventArgse)
{
checkPage("家庭成员管理");
}
//重新登录
privatevoidreLoad_Click(objectsender,EventArgse)
{
this.Hide();
(newFormLogin()).ShowDialog();
this.Close();
}
//安全退出
privatevoidexist_Click(objectsender,EventArgse)
{
Application.Exit();
}
//添加成员按钮,跳转到pFmyMng2
privatevoidiAddMem_Click(objectsender,EventArgse)
{
checkPage("添加成员");
}
//账目收支管理
privatevoidiItemMng_Click(objectsender,EventArgse)
{
checkPage("收支项目管理");
}
//收支报表管理
privatevoidiGraphMng_Click(objectsender,EventArgse)
{
checkPage("收支报表管理");
}
//添加项目
privatevoidpAddItem_Click(objectsender,EventArgse)
{
checkPage("添加项目");
}
//页面转换方法
privatevoidcheckPage(Stringstr){
//关闭所有页面显示的PANEL
pFmyMng.Visible=false;
pFmyMng1.Visible=false;
pAddData.Visible=false;
pShowData.Visible=false;
PitemMng1.Visible=false;
pTableMng.Visible=false;
switch(str){
case"家庭成员管理":
{
pFmyMng.Visible=true;
pShowData.Visible=true;
if((newFormLogin()).getRole()=="系统管理员")
{
pFmyMng1.Visible=true;
}
itemText.Text=str;
showData(str);
break;
}
case"添加成员":
{
pFmyMng.Visible=true;
pAddData.Visible=true;
pFmyMng1.Visible=true;
groupBox1.Visible=false;
lAdd6.Visible=false;
tbAdd6.Visible=false;
lAdd1.Text="账号:
";
lAdd2.Text="密码:
";
lAdd3.Text="姓名:
";
lAdd4.Text="生日:
";
lAddData.Text=str;
break;
}
case"收支项目管理":
{
pFmyMng.Visible=true;
pShowData.Visible=true;
if((newFormLogin()).getRole()=="系统管理员")
{
PitemMng1.Visible=true;
}
itemText.Text=str;
showData(str);
break;
}
case"收支报表管理":
{
//pFmyMng.Visible=true;
//pShowData.Visible=true;
pFmyMng.Visible=true;
pTableMng.Visible=true;
listView1.Clear();
chart1.Visible=false;
break;
}
case"添加项目":
{
pFmyMng.Visible=true;
pAddData.Visible=true;
groupBox1.Visible=true;
lAdd6.Visible=true;
tbAdd6.Visible=true;
lAddD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 期末 文档 家庭 财务管理 系统