个人理财管理系统.docx
- 文档编号:24994668
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:36
- 大小:590.78KB
个人理财管理系统.docx
《个人理财管理系统.docx》由会员分享,可在线阅读,更多相关《个人理财管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
个人理财管理系统
个人理财管理系统
个人理财管理系统
一、需求分析
1、系统需求背景
个人理财管理系统是针对个人的的财务管理软件,它能轻松帮你完成记帐以及理财规划。
用户可以自设置自己的收支类型,可以制定每月的收入支出预算,还可以详细统计出各项个人理财指标,便于您分析自己的财务和管理自己的财务。
2、系统需求的设计步骤
(1)设计、构造数据库表;
(2)与VC++前台进行连接;
(3)搭建VC++前台,设计用户使用界面;
(4)对程序进行调试、完善,针对程序中出现的问题进行分析找出错误原因,并予以改正。
3、系统需求的分析方法
(1)安全性的需求分析
根据不同用户角色,设置相应权限,没有权限的用户禁止使用系统。
普通的普通用户用户可以查询财务信息、修改登录系统的密码以及打印月报表的功能:
个人理财管理员可以添加、搜索、删除和修改个人理财信息,打印月报表,添加、删除普通用户和修改登录密码的功能
(2)可用性的需求
方便操作,操作流程合理。
尽量从用户角度出发,在新增用户信息时,敲入回车键光标的自动跳转,方便用户录入信息、查询相应的功能。
控制必须录入项。
本系统能够对必须录入的项目进行控制,使用户能够确保信息录入的完整。
同时对必录入项进行有效的统一的提示,如密码不能为空、用户重名等提示信息。
操作完成时有统一规范的提示信息。
例如删除操作时,系统可提示警示框“删除成功!
”用户点击确认后,系统才可直接返回相关页面。
4、数据库表设计
1.收支表
2.用户表
二、系统设计
1、个人理财管理系统E-R图
2、个人理财管理系统用例图
三、概要设计
1、具体模块功能框架及相互关系
2、各模块所包含的功能
(1)用户登录模块:
登录用户按使用该系统权限分为个人理财管理员和普通用户成员;
(2)个人理财管理员所享有的功能有:
搜索个人理财信息功能,删除个人理财信息功能,修改个人理财信息功能,添加个人理财信息功能,普通用户管理,打印月报表;
(3)普通用户成员享有的功能有:
查询个人理财信息功能,用户管理中的修改密码功能,打印月报表功能。
3、各功能的简要说明
(1)搜索个人理财信息功能:
就是用户可以根据年月日来查询个人相应的财务情况(收入与支出);
(2)删除个人理财信息功能:
就是用户可以根据年月日来删除个人相应的财务情况(收入与支出);
(3)修改个人理财信息功能:
就是用户可以根据年月日来修改个人相应的财务情况(收入与支出);
(4)添加个人理财信息功能:
就是用户可以添加当天的个人相应的财务情况(收入与支出);
(5)个人理财管理员模块包含有以下几个功能模块:
添加普通用户功能,删除普通用户功能,修改登录系统密码功能;
(6)添加普通用户功能:
个人理财管理员根据需要添加普通用户,既可以是普通用户成员也可以是再一个个人理财管理员;
(7)删除普通用户功能:
个人理财管理员根据需要删除普通用户;
(8)修改登录系统密码功能:
用户可以就此修改自己的登录密码;
(9)统计功能:
是用户可以让系统统计并显示月报表单,显示其每月的个人理财使用情况。
四、详细设计
1、登录界面
(1)当用户启动该程序时,首先进入用户登录界面,如图
(1),只有当用户输入正确的账号和密码时,用户才能正常进入该系统。
图
(1)
(2)用户登录对话框中类Clogin的相关函数代码:
OnCheck函数,即准许用户登入的许可。
voidCLogin:
:
OnCheck()
{
CString_command;
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("select*fromuserswhere权限=true",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if(m_pRecordset->adoEOF)
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("insertintousersvalues('admin','dhh',1)",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
UpdateData();
if(m_user.IsEmpty())
{
MessageBox("请输入帐号","提示");
m_userC.SetFocus();
return;
}
if(m_passwd.IsEmpty())
{
MessageBox("请输入密码","提示");
m_passwdC.SetFocus();
return;
}
_command="select*fromuserswhere账号='"+m_user+"'and密码='"+m_passwd+"'";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if(m_pRecordset->adoEOF)
{
MessageBox("帐号或密码错误","错误");
return;
}
user=m_user;
pass=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("权限");
power=1;
if(pass=="0")
power=0;
pass=m_passwd;
CDialog:
:
OnOK();
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
2、个人理财管理员与普通用户的界面
当用户正常进入系统后,就进入了基本的数据操作界面,但由于有权限设置,所以,只有是管理员才能做所有操作,而普通用户只能进行搜索,用户管理以及月报表功能的使用,所以如果是管理员进入时就会进入界面如图
(2),如果是普通用户进入时就会进入界面如图(3),不可以用的功能按钮就会变灰,不可使用。
下面写的是管理员界面与功能介绍。
(1)个人理财管理员界面
图
(2)
(2)普通用户界面
图(3)
3、添加用户功能
(1)在用户编辑框中输入新用户的名字,然后再输入设置的密码,如果要求设为管理员就在管理员权限一栏中打勾,最后单击添加即可,如图(4),并可以同步的在删除用户的下拉列表中找到刚新建的用户名。
图(4)
(2)添加用户代码,函数为OnAddUser
voidManage:
:
OnAddUser()
{
try
{
CString_command;
UpdateData(true);
if(m_add_passwd=="")
{
MessageBox("密码不能为空","提示");
m_add_passwd_e.SetFocus();
return;
}
_command.Format("select*fromuserswhere账号='%s'",m_add_user);
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if(!
m_pRecordset->adoEOF)
{
MessageBox("用户名已被使用","提示");
m_add_user_e.SetFocus();
}
else
{
_command.Format("insertintousersvalues('%s','%s',%d)",m_add_user,m_add_passwd,m_isadmin);
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
inti=m_del_user_l.GetCount();
while(--i>=0)
m_del_user_l.DeleteString(i);
for(i=m_mod_user_l.GetCount();--i>=0;)
m_mod_user_l.DeleteString((UINT)i);
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("select账号fromusers",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
while(!
m_pRecordset->adoEOF)
{
Cstrings=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("");
m_mod_user_l.InsertString(i,s);
m_del_user_l.InsertString(i,s);
if(s==user)
{
m_mod_user_l.SetCurSel(i);
m_del_user_l.SetCurSel(i);
}
i++;
m_pRecordset->MoveNext();///移到下一条记录
}
m_del_user_l.SetCurSel(m_del_user_l.FindString(0,user));m_mod_user_l.SetCurSel(m_mod_user_l.FindString(0,user));
MessageBox("添加成功","成功");
}
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
4、删除用户功能
(1)删除用户功能,只需在删除用户的下拉列表框中选择所需删除的用户名,如图(5),然后再单击删除按钮就可成功删除。
图(5)
(2)删除用户代码,函数为OnDelUser
voidManage:
:
OnDelUser()
{
if(power)
{
UpdateData();
CString_command;
m_del_user_l.GetLBText(m_del_user_int,_command);
m_del_user_l.DeleteString(m_del_user_int);
m_del_user_l.SetCurSel(m_del_user_l.FindString(0,user));
m_mod_user_l.DeleteString(m_mod_user_l.FindString(0,_command));
m_mod_user_l.SetCurSel(m_mod_user_l.FindString(0,user));
_command="deletefromuserswhere账号='"+_command+"'";
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
MessageBox("删除成功","成功");
}
5、修改密码功能
(1)正常修改密码:
先在修改密码中的用户下拉列表框中选择所需修改的用户名,然后再在新密码的编辑框中输入需要修改的新密码,然后再在确认密码的编辑框中输入刚设的新密码系统进行确认,如图(6),最后再单击修改按钮就成功了,如图(6)。
(2)异常修改密码:
当在输入新密码和确认密码后,两个密码不一致时,系统会报错,如图(7),当没有输入新密码或确认密码时,系统也会有相应的提示信息。
图(6)
图(7)
(3)修改用户密码代码,函数为OnModUser
voidManage:
:
OnModUser()
{
UpdateData();
if(m_new_passwd=="")
{
MessageBox("修改密码不能为空","提示");
m_new_passwd_e.SetFocus();
return;
}
if(m_new_passwd_2=="")
{
MessageBox("确认密码不能为空","提示");
m_new_passwd_2_e.SetFocus();
return;
}
if(m_new_passwd!
=m_new_passwd_2)
{
MessageBox("输入的密码不一致,请重新输入","提示");
m_new_passwd_e.SetFocus();
return;
}
try
{
CString_command;
m_del_user_l.GetLBText(m_del_user_int,_command);
_command="updateusersset密码='"+m_new_passwd+"'where账号='"+_command+"'";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
MessageBox("修改成功","成功");
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
6、个人理财添加功能
(1)用户可以根据界面右侧的收入、支出以及备注的编辑框添加记录,如图(8),至于时间是由系统设置取当时的时间,然后单击添加按钮就可以成功了(9)。
图(8)
图(9)
(2)添加功能的代码,函数为OnAdd。
voidCFamilyDlg:
:
OnAdd()
{
try
{
CString_command;
CTimect;
UpdateData(true);
ct=ct.GetCurrentTime();
if(m_inmoney=="")
m_inmoney="0";
if(m_outmoney=="")
m_outmoney="0";
_command.Format("insertintofamilyvalues('%.2d:
%.2d:
%.2d%.2d/%.2d/%.4d',%s,%s,'%s')",
ct.GetHour(),ct.GetMinute(),ct.GetSecond(),ct.GetMonth(),
ct.GetDay(),ct.GetYear(),m_inmoney,m_outmoney,m_tip);
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
MessageBox("添加成功","成功");
}
catch(_com_errore)///捕捉异常
{
CStringerrormessage;
errormessage.Format("连接数据库失败!
\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
7、个人理财修改功能
(1)用户在右侧的收入、支出以及备注的编辑框中输入需要修改的记录,然后再单击修改按钮,就可以修改成功了,如图(10)。
如果没有输入修改的记录,结果会出错,当输入了修改内容但没有选中需要修改的记录,也会出错,如图(11)。
图(10)
图(11)
(2)修改功能代码,函数为OnModify
voidCFamilyDlg:
:
OnModify()
{
charbuf[1024]={0};inti=-1,n=m_list.GetItemCount();
try
{
while(++i { if(m_list.GetItemState(i,2)) { CString_command; m_list.GetItemText(i,0,buf,sizeofbuf); chart[6][5];intm,n,k;m=n=k=0; while(buf[m]) { if(buf[m]>='0'&&buf[m]<='9') t[n][k++]=buf[m++]; else { t[n][k]=0;k=0;n++; while(buf[m]<'0'||buf[m]>'9') m++; } } t[n][k]=0;CStringzhiduan="set"; UpdateData(true); intii=0; if(m_inmoney! ="") { zhiduan+="收入="+m_inmoney; m_list.SetItemText(i,1,m_inmoney); ii++; } if(m_tip! ="") { if(ii) zhiduan+=",备注='"+m_tip+"'"; else zhiduan+="备注='"+m_tip+"'"; m_list.SetItemText(i,3,m_tip); ii++; } if(m_outmoney! ="") { if(ii) zhiduan+=",支出="+m_outmoney; else zhiduan+="支出="+m_outmoney; m_list.SetItemText(i,2,m_outmoney); ii++; } if(! ii) { MessageBox("'收入支出备注'中请至少修改一个","提示"); return; } _command.Format("updatefamily%swhere时间=#%s: %s: %s%s/%s/%s#", zhiduan,t[3],t[4],t[5],t[1],t[2],t[0]); m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((LPCTSTR)_command,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); MessageBox("修改成功","成功"); return; } } MessageBox("修改失败,请先选中一条记录","失败"); } catch(_com_errore)///捕捉异常 { C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 理财 管理 系统