固定资产管理系统.docx
《固定资产管理系统.docx》由会员分享,可在线阅读,更多相关《固定资产管理系统.docx(58页珍藏版)》请在冰点文库上搜索。
固定资产管理系统
固定资产管理系统
一.摘要
1.背景说明
随着社会经济的不断进展,企业规模越来越大,资产越来越多,资产治理就显得专门困难。
固定资产成为每个企业不可缺少的重要部分,加强固定资产治理,能够优化企业资源配置,本系统适用与中小型企业及政府机关、学校等。
要紧爱护固定资产的登记、清理、借出和还入、修理、折旧等信息,实现设备的日常治理功能,通过一系列查询功能,可方便获知每一件固定资产的状态及当前所处位置,具有操作简单,界面友善,灵活性好,系统安全性高,运行稳固等特点,保证了企业中的每一件物品发挥其最大效力。
2.设计目的
在程序设计中,能够用两种方法解决问题:
一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。
在结构化程序设计中关键是如何将问题域中的行为〔即操作〕抽取出来,作为C++程序中的函数。
由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。
而在面向对象程序设计中关键是如何将问题域中的实体〔即日常所见的概念〕抽取出来,作为C++程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。
3.需求分析
差不多信息的添加、修改、删除和查询。
差不多信息包括部门信息和固定资产类型信息。
资产信息治理包括固定资产的录入、分配、变更、折旧和报废等功能。
统计查询功能包括部门资产统计表和分类资产统计表。
二.固定资产治理系统概述
1.设计内容
(1)系统信息设置模块:
包括部门治理,类别治理和退出系统
(2)固定资产治理模块理模块,包括信息编辑,资产分配,资产变更,资产折旧,资产报废等
(3)系统用户治理模块,包括用户治理和修改密码
2.设计特点
后台数据库使用SQLServer,前台开发工具使用VisualC++。
本系统采纳目前比较流行的ADO数据访问技术,并将每个数据库表的字段和操作封装到类中,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中。
这也是本系统的特色和优势。
三.固定资产治理系统数据库分析与设计
1.系统的功能模块图
图2.1固定资产治理系统功能模块示意图
2.数据库结构设计
数据库中包含6个表,即部门信息表Departments、资产分类信息表Types、资产信息表Assets、资产分配表Distribute、设备报废表Discard和用户信息表Users等。
表Assets
列名
数据类型
承诺为空
Aid
varchar(30)
不承诺
Aname
varchar(50)
不承诺
TypeId
int
承诺
Model
varchar(30)
承诺
Producer
varchar(100)
承诺
UseDate
varchar(20)
承诺
UsedYear
int
承诺
OrgPrice
decimal(15,2)
承诺
Ratio
decimal(7,5)
承诺
Status
varchar(30)
承诺
AddWay
varchar(30)
承诺
IsAudit
int
承诺
PostDate
Varchar(20)
承诺
IsDiscount
tinyint
承诺
表Departments
列名
数据类型
承诺为空
DepId
int
不承诺
DepName
varchar(40)
不承诺
表Discard
列名
数据类型
承诺为空
Aid
varchar(30)
承诺
DSum
float
承诺
Reason
varchar(200)
承诺
CreateDate
varchar(30)
承诺
EmpName
varchar(40)
承诺
Checker
varchar(40)
承诺
CheckDate
varchar(40)
承诺
Status
Char(4)
承诺
表Distribute
列名
数据类型
承诺为空
Aid
varchar(30)
承诺
DepId
int
承诺
EmpName
varchar(50)
承诺
CreateDate
varchar(30)
承诺
表Types
列名
数据类型
承诺为空
TypeId
int
不承诺
TypeName
varchar(30)
不承诺
表Users
列名
数据类型
承诺为空
UseraName
varchar(40)
不承诺
EmpName
varchar(40)
承诺
UserPwd
varchar(40)
承诺
UserType
varchar(20)
承诺
3.概念模型设计〔E-R图〕
四.窗体实现与设计
1.登陆界面
代码设计
#include"stdafx.h"
#include"AssetsMan.h"
#include"LoginDlg.h"
#include"Users.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
CLoginDlg:
:
CLoginDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CLoginDlg:
:
IDD,pParent)
{
count=0;
m_Pwd=_T("");
m_UserName=_T("");
voidCLoginDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
DDX_Text(pDX,IDC_PWD_EDIT,m_Pwd);
DDX_Text(pDX,IDC_USERNAME_EDIT,m_UserName);
}
BEGIN_MESSAGE_MAP(CLoginDlg,CDialog)
ON_EN_CHANGE(IDC_USERNAME_EDIT,&CLoginDlg:
:
OnEnChangeUsernameEdit)
ON_EN_CHANGE(IDC_PWD_EDIT,&CLoginDlg:
:
OnEnChangePwdEdit)
END_MESSAGE_MAP()
voidCLoginDlg:
:
OnOK()
{
UpdateData(TRUE);
if(m_UserName=="")
{
MessageBox("请输入用户名?
");
return;
}
if(m_Pwd=="")
{
MessageBox("请输入密码");
return;
}
CUsersuser;
user.GetData(m_UserName);
if(user.UserPwd!
=m_Pwd)
{
MessageBox("用户信息不正确,无法登录!
");
count++;
if(count>=3)
{
MessageBox("差不多连续3次登录失败,将退出系统");
OnCancel();
}
return;
}
CDialog:
:
OnOK();
}
voidCLoginDlg:
:
OnEnChangeUsernameEdit()
{
}
voidCLoginDlg:
:
OnEnChangePwdEdit()
{
}
2.主界面
代码设计
#include"stdafx.h"
#include"AssetsMan.h"
#include"Assets.h"
#include"ADOConn.h"
#ifdef_DEBUG
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#definenewDEBUG_NEW
#endif
CAssets:
:
CAssets()
{
Aid="";
Aname="";
Model="";
Producer="";
UsedYear=1;
OrgPrice=0;
Ratio=0;
Status="未使用";
AddWay="";
IsAudit=0;
IsDiscount=0;
}
CAssets:
:
~CAssets()
{
}
voidCAssets:
:
sql_Insert()
{
try
{
ADOConnm_AdoConn;
CStringcSql,cDate,cOrgPrc,cRatio,cTypeId,cYear;
_bstr_tbSql;
cOrgPrc.Format("%f",OrgPrice);
cRatio.Format("%f",Ratio);
cTypeId.Format("%d",TypeId);
cYear.Format("%d",UsedYear);
CTimet=CTime:
:
GetCurrentTime();
cDate.Format(_T("%04d-%02d-%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
cSql="InsertIntoAssets(Aid,Aname,TypeId,Model,Producer,";
cSql+="UseDate,UsedYear,OrgPrice,Ratio,";
cSql+="Status,AddWay,IsAudit,PostDate,IsDiscount)Values('";
cSql+=Aid+"','"+Aname+"',"+cTypeId+",'"+Model+"','"+Producer+"','";
cSql+=UseDate+"',"+cYear+","+cOrgPrc+",";
cSql+=cRatio+",'未使用','"+AddWay+"',0,'"+cDate+"',0)";
bSql=(LPCTSTR)(_bstr_t)cSql;
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
voidCAssets:
:
sql_Update(CStringcId)
{
try
{
ADOConnm_AdoConn;
CStringcDate,cOrgPrc,cRatio,cTypeId,cYear;
_bstr_tbSql;
cOrgPrc.Format("%f",OrgPrice);
cRatio.Format("%f",Ratio);
cTypeId.Format("%d",TypeId);
cYear.Format("%d",UsedYear);
CTimet=CTime:
:
GetCurrentTime();
cDate.Format(_T("%04d-%02d-%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
bSql="UpdateAssetsSetAid='"+Aid+"',Aname='"+Aname+"',"
+"TypeId="+cTypeId+",Model='"+Model+"',Producer='"+Producer+"',"
+"UseDate='"+UseDate+"',UsedYear="+cYear+",OrgPrice="+cOrgPrc+","
+"Ratio="+cRatio+",AddWay='"+AddWay+"',"
+"PostDate='"+cDate+"'WhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
voidCAssets:
:
sql_Delete(CStringcId)
{
try
{
ADOConnm_AdoConn;
_bstr_tbSql;
bSql="DeleteFromAssetsWhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
voidCAssets:
:
sql_Change(CStringcId)
{
try
{
ADOConnm_AdoConn;
CStringcRatio,cYear;
_bstr_tbSql;
cRatio.Format("%f",Ratio);
cYear.Format("%d",UsedYear);
bSql="UpdateAssetsSetUsedYear="+cYear+",Ratio="+cRatio+","
+"IsAudit=2WhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
voidCAssets:
:
sql_Audit(CStringcId)
{
try
{
ADOConnm_AdoConn;
_bstr_tbSql;
bSql="UpdateAssetsSetIsAudit=1WhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
voidCAssets:
:
sql_Status(CStringcId)
{
try
{
ADOConnm_AdoConn;
_bstr_tbSql;
bSql="UpdateAssetsSetStatus='"+Status+"'WhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
intCAssets:
:
HaveAid(CStringcAid)
{
try
{
longlRscnt=0;
_RecordsetPtrm_pRecordset;
ADOConnm_AdoConn;
_bstr_tbSQL;
bSQL="Select*FromAssetsWhereAid='"+cAid+"'";
m_pRecordset=m_AdoConn.GetRecordSet(bSQL);
if(m_pRecordset->adoEOF)
return-1;
else
return1;
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
return-1;
}
intCAssets:
:
HaveName(CStringcAname)
{
try
{
longlRscnt=0;
_RecordsetPtrm_pRecordset;
ADOConnm_AdoConn;
_bstr_tbSQL;
bSQL="Select*FromAssetsWhereAname='"+cAname+"'";
m_pRecordset=m_AdoConn.GetRecordSet(bSQL);
if(m_pRecordset->adoEOF)
return-1;
else
return1;
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
return-1;
}
voidCAssets:
:
BeginDiscount(CStringcId)
{
try
{
ADOConnm_AdoConn;
_bstr_tbSql;
bSql="UpdateAssetsSetIsDiscount=1WhereAid='"+cId+"'";
m_AdoConn.ExecuteSQL(bSql);
m_AdoConn.ExitConnect();
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
}
}
3.部门信息治理界面
代码设计
#include"stdafx.h"
#include"AssetsMan.h"
#include"DeptDlg.h"
#include"Departments.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
CDeptDlg:
:
CDeptDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CDeptDlg:
:
IDD,pParent)
{
m_DeptName=_T("");
}
voidCDeptDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
DDX_Control(pDX,IDC_ADODC1,m_AdoDept);
DDX_Text(pDX,IDC_EDIT1,m_DeptName);
DDX_Control(pDX,IDC_DATALIST1,m_DataDept);
}
BEGIN_MESSAGE_MAP(CDeptDlg,CDialog)
ON_BN_CLICKED(IDC_ADD_BUTTON,OnAddButton)
ON_BN_CLICKED(IDC_MODI_BUTTON,OnModiButton)
ON_BN_CLICKED(IDC_DEL_BUTTON,OnDelButton)
ON_EN_CHANGE(IDC_EDIT1,&CDeptDlg:
:
OnEnChangeEdit1)
END_MESSAGE_MAP()
BEGIN_EVENTSINK_MAP(CDeptDlg,CDialog)
ON_EVENT(CDeptDlg,IDC_DATALIST1,-600/*Click*/,OnClickDatalist1,VTS_NONE)
END_EVENTSINK_MAP()
voidCDeptDlg:
:
OnClickDatalist1()
{
m_DeptName=m_DataDept.GetText();
cDepId=m_DataDept.GetBoundText();
cDepNameOld=m_DataDept.GetText();
UpdateData(FALSE);}
voidCDeptDlg:
:
OnAddButton()
{
UpdateData(TRUE);
if(m_DeptName=="")
{
MessageBox("请输入部门名称");
return;
}
CDepartmentscDep;
cDep.DepName=m_DeptName;
if(cDep.HaveName(m_DeptName)==1)
MessageBox("差不多存在此部门信息!
");
else
{
cDep.sql_Insert();
m_AdoDept.Refresh();
}
}
voidCDeptDlg:
:
OnModiButton()
{
UpdateData(TRUE);
if(m_DataDept.GetText()=="")
{
MessageBox("请选择要修改的部门名称");
return;
}
if(m_DeptName=="")
{
MessageBox("请输入部门名称");
return;
}
if(cDepNameOld!
=m_DeptName)
{
CDepartmentscDept;
cDept.DepName=m_DeptName;
if(cDept.HaveName(m_DeptName)==1)
MessageBox("新的部门名称差不多存在");
else
{
cDept.sql_Update(cDepId);
m_AdoDept.Refresh();
}
}
}
voidCDeptDlg:
:
OnDelButton()
{
if(m_DataDept.GetText()=="")
{
MessageBox("请选择要删除的部门名称"