C#期末文档家庭财务管理系统文档格式.docx
- 文档编号:21121135
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:43
- 大小:2MB
C#期末文档家庭财务管理系统文档格式.docx
《C#期末文档家庭财务管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C#期末文档家庭财务管理系统文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
具体模块应包括:
记账、资产管理、负债管理、投资理财管理、计划和提醒、家庭信息管理、统计报表(比如现金流报表、资产负债报表等)等模块。
本系统需要完成的功能有:
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)
if(textBox1.Text=="
||comboBox1.Text=="
)
showError("
账号或密码为空!
);
//第一种错误,账号或密码为空
return;
flag=check();
if(flag==1)
setUname(comboBox1.Text);
FormManagefr2=newFormManage();
this.Hide();
fr2.ShowDialog();
this.Close();
else
账号或密码不正确!
//第二种错误,账号或密码不正确
//验证账号密码的方法
privateintcheck()
SELECT*FROMfamily"
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();
setRole(Command.ExecuteScalar().ToString());
return1;
catch(Exceptione)
e.GetBaseException();
return0;
//弹出错误框
privatevoidshowError(stringerrorInfo){
textBox1.Text="
comboBox1.Text="
FormWarnfw=newFormWarn(errorInfo);
fw.ShowDialog();
//取消按钮
privatevoidbutton2_Click(objectsender,EventArgse)
}
管理界面
设计界面
特点:
1.我的管理界面采用panel重合与显示隐藏结构。
红色框区域属于可变区域。
2.避免反复关闭与加载窗体,实现管只需加载一次。
主页界面
1.第一红框实现时间显示
2.第二红框实现登录名显示PS登录模块中封装了登录成功的用户名
家庭成员管理界面
家庭成员管理-添加界面
家庭项目管理界面
家庭项目管理-添加界面
其中家庭成员管理-添加界面与家庭项目管理-添加界面是同一个界面,只是控制了label的text属性与显示单选框与多行属性的文本框。
收支报表管理界面
除了简单的月,年,总分别统计外,还加入了网上找的静态圆饼图,不过经我给该图方法加了两个形参后,已经和数据库连接,实现动态显示效果
最后手工部分,我加入了简单的菜单工具栏。
当然,如果是非系统管理员,则界面被限制
六、实现管理系统模块代码
usingSystem.Windows.Forms.DataVisualization.Charting;
//chart的命令空间
publicpartialclassFormManage:
stringConnectionString="
privateSqlConnectionconn=null;
privateSqlDataAdapterDataAdapter=null;
privateDataSetdataset=null;
privateSqlCommandcmd=null;
stringcurNo;
publicFormManage()
/*-----界面转换方法开始!
!
-----*/
//显示主页背景
privatevoidpIndex_Click(objectsender,EventArgse)
checkPage("
主页"
//pFmyMng2的取消按钮,跳转到pShowData
privatevoidaddMemCancel_Click(objectsender,EventArgse)
if(lAddData.Text=="
添加成员"
家庭成员管理"
添加项目"
收支项目管理"
//家庭成员管理
privatevoidiFmyMng_Click(objectsender,EventArgse)
//重新登录
privatevoidreLoad_Click(objectsender,EventArgse)
(newFormLogin()).ShowDialog();
//安全退出
privatevoidexist_Click(objectsender,EventArgse)
Application.Exit();
//添加成员按钮,跳转到pFmyMng2
privatevoidiAddMem_Click(objectsender,EventArgse)
//账目收支管理
privatevoidiItemMng_Click(objectsender,EventArgse)
//收支报表管理
privatevoidiGraphMng_Click(objectsender,EventArgse)
收支报表管理"
//添加项目
privatevoidpAddItem_Click(objectsender,EventArgse)
//页面转换方法
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;
pAddData.Visible=true;
groupBox1.Visible=false;
lAdd6.Visible=false;
tbAdd6.Visible=false;
lAdd1.Text="
账号:
lAdd2.Text="
密码:
lAdd3.Text="
姓名:
lAdd4.Text="
生日:
lAddData.Text=str;
PitemMng1.Visible=true;
//pFmyMng.Visible=true;
//pShowData.Visible=true;
pTableMng.Visible=true;
listView1.Clear();
chart1.Visible=false;
{
groupBox1.Visible=true;
lAdd6.Visible=true;
tbAdd6.Visible=true;
lAddD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 期末 文档 家庭 财务管理 系统