




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书 NO. 27家庭理财系统1.项目设计的目的VC+程序设计课程设计是计算机科学与技术专业的VC+程序设计课程的综合性实践环节。VC+程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼我们分析解决实际问题的能力,提高我们实际运用的能力,为我们毕业设计,日后工作中的软件开发打下良好的基础。随着改革开放的深入特别是中国已经加人WTO,中国经济将融入世界经济大潮,而这种大潮必将把中国抛入更激烈的竞争。理财系统是一个家庭收支或者家庭不可缺少的部分,家庭收支很早就实施了理财的集中管理,而家庭使用的小型理财系统却只是凤毛麟角
2、,理财是很小的一个部分,但从到家庭收支,到家庭投资都有十分重要的意义。本论文介绍了家庭理财系统开发的整个过程。利用软件工程原理,采用面向对象的编程方法,其开发主要包括后台数据库的建立、维护以及前端应用程序开发,实现了家庭理财的自动化和信息化。2.设计方案论证2.1系统分析2.1.1需求分析基于以上问题,开发家庭理财系统,以减轻管理负担。实现家庭理财的信息化、科学化。该系统使用了OLE技术来嵌入及操作相关管理模块1,基于windows平台,采用面向对象的思想进行设计和编码工作。在社会经济不断发展的今天,人们生活水平越来越高,个人合理理财也变得越来越重要,它直接影响着人们的生活。各种财务管理软件也
3、层出不穷,本系统仅应用于个人理财,提供财务数据统一管理,以便做出合理的财务决策。其界面友好,操作简单,除具备基本的财务信息管理外,还提供了数据统计,数据查询,图表统计,报表打印等。为方便操作,设置有部分常用功能快捷工具栏,菜单项都设置有快捷键。它多方面把握用户的财务情况,科学的统计数据。2.1.2系统可行性分析(1)技术可行性研究该系统界面友好,功能操作简单。在新系统投入使用时,只要对用户进行简单的说明。就可以很容易地操作该系统。该系统可以采用visual C+6.0结合SQL Server数据库来完成。涉及的技术已很成熟2,完全可在要求时间内完成该系统的开发。(2)操作可行性研究本系统采用W
4、indows图形界面,是大家熟悉的操作系统,用户只要具有一般的计算机知识都可以轻松上手。而且整个系统采用友好的交互界面,简单明了,对数据库不是非常了解也可以熟练操作。2.1.3系统总体设计主要包括以下几个模块:用户密码登陆,原始数据的汇入、修改、注销、检索等,从而实现对家庭债务和投资的收入与支出进行有效、系统的管理,并使之更全面和灵活。根据前面分析可知,本系统总体分为以下几个模块:在基本资料管理模块中,管理员可以进行理财收入、理财支出、理财债务、理财投资、债务利率、投资回报、月收支统计,在点击任何一个按钮后,系统显示相应的全部信息,供管理员进行管理操作。数据表的各种操作和数据库的备份及还原。系
5、统模块结构如图1所示。数据库管理家庭理财系统用户管理信息管理收支图标统计图表日志管理图1 家庭理财系统结构图各模块主要功能说明如下:(1)收支管理日常收入、支出管理是家庭理财系统最基本的功能。通过记录每个家庭成员的收支情况(包括收支日期、项目、地点、收支方式、金额、收支账号等),可以让家庭收支情况变得一目了然。(2)存取款管理存取款管理通过银行存款和取款是大多数家庭理财得基本手段之一,可以记录家庭的存取款状况。(3)家庭资金共用管理在家庭内部,经常会发生资金的共用现象例如款项从一个家庭成员的账户转至另一个家庭成员的账户等,家庭资金共用管理可以对这种家庭成员之间的资金流动进行科学的管理。(4)固
6、定资产管理每个家庭都有一批固定的资产,例如汽车、房子、家用电器、家具等,利用“家庭理财系统”的固定资产管理功能,可以对家庭的不动产进行科学的管理(5)债务管理每个家庭都有可能存在债务,包括借入债务和借出债务,债务管理功能可以对借入、借出债务以及还款状况进行有效的记录和监控。(6)统计报表统计报表是“家庭理财系统”中最重要的功能之一。在“家庭理财系统”中,提供的报表有10个,包括收支一览表、存取款一览表、家庭资金共用一览表、日常收支对照表、家庭资金损益表、家庭资金汇总表、固定资产汇总表等。通过这一系列的报表,可以充分了解家庭财产的运行状况,分析资金的使用流向,进一步提高家庭资金的利用率,达到最大
7、的收益。2.2.1实体E-R图结合数据库需求分析可得到数据库的E-R图,设计出能够满足用户需求的各种实体及他们之间的关系,为逻辑结构设计打下基础。根据分析设计的结果该系统包含的实体主要有:课件、款项、章、节等,下面将分别介绍各实体及实体间的E-R图。通过其E-R图,读者可以更好地理解各实体的属性关系。(1)收支明细表E-R图,如图2所示。图2 收支明细表E-R图(2)用户实体E-R图,如图3所示。图3 用户实体E-R图(3)日志实体E-R图,如图4所示。图4 日志实体E-R图2.2.2数据库逻辑设计本系统的数据库名称为money,由数据库分析。数据库中包括3个表,分别为info表、passwo
8、rd表、log表。数据库的创建可以手工完成,也可以在系统运行时动态创建数据库,动态建立数据库。(1)财务信息表(info):用于存储财务收支的详细信息的表,具体设计如表1所示。表1 财务信息表(info)字段名称数据类型说 明IdVarchar(50)主键,编号timeVarchar(50)记录消费时间incometypeVarchar(50)收入的类型incomenumint收入的数目costtypeVarchar(50)消费的类型costnumint消费的数目aboutVarchar(50)备注(2)用户账户表(password):用于保存用户账户信息,具体设计如表2所示表2 用户账户表(
9、password)字段名称数据类型说 明userVarchar(50)用户名passwordVarchar(10)密码authorVarchar(50)权限(3)操作日志信息表(log):用于保存操作日志详细信息,具体设计如表3所示表3 章信息表(chapter)字段名称数据类型说 明userVarchar(50)当前操作用户名timeVarchar(50)操作时间workVarchar(50)操作类型2.2.3数据库物理设计表创建完成后输入数据。包含三个表info、password、log三个表并关联表的物理结构具体结构图如图5所示。图5 数据结构关系图2.3详细设计2.3.1文件及其功能该
10、模块的功能主要是实现对某项款项的添加、删除,对某款项添加、删除以及修改操作。本系统可通过标题菜单栏和树形控件右键菜单两种方式来实现上述各模块内容操作。其中,难点部分是款项导航模块中的树形控件实现运行中的动态创建,树形控件各节点数据是从数据表中读取设置的。具体主要功能如下:(1)款项模块的实现款项导航界面CMainGrame类其中。主要完成界面导航的工具条创建而CTreeGuideBar 类是用户自定义类实现导航页面的初始化。TreeCtrlMethod 类实现读取数据表以及对象创建。(2)添加模块的实现添加模块在CMTASDoc类其中实现。主要完成系统通过标题栏菜单栏和树形控件右键菜单等方式对
11、各模块内容控制其中OncourseAddClass()方法实现传递功能。AddClass()方法实现添加功能。CClassRecordset类中insert()方法实现插入功能等等。(3)款项添加模块的实现款项添加模块在CMTASDoc类其中实现。主要完成系统通过标题栏菜单栏和树形控件右键菜单等方式对款项的各模块内容的控制。其中OncourseAddChapter()方法款项实现传递功能。AddChapter()方法实现添加功能。CChapterRecordset类中insert()方法实现款项插入功能等等。(4)款项添加模块的实现在添加节的时候想要获取上级目录信息,应根据当前选中的树形控件节
12、点信息动态获取款项名章名。实现方法在CChapterRecordset类中OnSelchangeComboclass()类中实现。(5)款项删除模块的实现菜单栏中没有设计款项删除选项,该功能在树形控件的快捷菜单中实现了。根据选中的节点层次不同分别有删除款项操作,具体类和方法介绍如下。CourseManager类的DeleteClass()方法删除款项DeleteChaper()方法删除章、节等的内容。2.3.2连接数据库本系统在设计了3个表,故在运行前续完成数据库、数据表的创建。所有数据库通过以下代码告诉编译器将指令指定的动态链接库引入工程中,并从动态链接库中取出其中的对象和信息,产生msad
13、o15.tlh、ado14.tli两个头文件来定义ADO库。具体实现代码如下:#define AFX_ADODATABASE_H_15EA94B0_759B_44FB_ADB8_95DB11DA8304_INCLUDED_#if _MSC_VER 1000#pragma once#endif class AFX_EXT_CLASS CAdoDatabase : public CObject public:CAdoDatabase();virtual CAdoDatabase();BOOL ConnectionDb(const CString& strConfig);public:_Connec
14、tionPtr m_pConnection;#endif#if !defined(AFX_ADORECORDSET_H_29C0DB6A_418E_4513_85A6_ABEB67CEAED3_INCLUDED_)#define AFX_ADORECORDSET_H_29C0DB6A_418E_4513_85A6_ABEB67CEAED3_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class AFX_EXT_CLASS CAdoRecordset : public CObject protected:CAdoReco
15、rdset();public:virtual CAdoRecordset();void SetDatabase(CAdoDatabase* pDB);protected:BOOL OpenRecordset(const CString &strSQL);CString VariantToCString(const _variant_t &var);_RecordsetPtr m_pRecordset;CAdoDatabase* m_pDB;#endif2.3.3系统登录界面设计开发该模块具体功能前,首先要完成其界面的设计,然后再具体实现各个模块功能。该模块操作方式有两种,主要针对款项信息是自动
16、获取还是手工输入进行分开设计,故对应的界面也不一样。下面先介绍界面的设计过程。插入对话框资源和其他各个控件,适当修改标题和ID号,布局好界面,最终界面如图6所示。图6 “用户登录”对话框添加款项界面的对话框以及对话框属性、id号、标题等其他属性信息如表4所示:表4 对话框控件及属性添加的控件ID号标题其他属性文本框IDC_yonghu默认文本框IDC_mima默认文本框IDC_quanx默认按钮(登录)IDC_OK默认按钮(取消)IDC_CANCEL默认添加收入支出如图7所示。图7添加收入支出界面添加款项添加章界面的对话框以及控件信息如表6所示:表5 对话框控件及属性添加的控件ID号标题其他属
17、性文本框IDC_bianhao默认编辑框IDC_bianj_1默认文本框IDC_zm默认编辑框IDC_bianj_2默认按钮(确定)IDC_OK默认按钮(取消)IDC_CANCEL默认下拉列表IDC_shouru默认下拉列表IDC_zhichu默认备份数据库如图8所示。图8备份数据库界面备份数据库界面的对话框以及控件信息如表6所示:表7 添加章界面控件及属性添加的控件ID号标题其他属性文本框IDC_kecm默认编辑框IDC_bianj_1默认文本框IDC_zm默认编辑框IDC_bianj_2默认文本框IDC_jm默认编辑框IDC_bianj_3默认按钮(添加)IDC_OK默认按钮(取消)IDC
18、_CANCEL默认2.3.4部分程序代码/ add.cpp : implementation file/#include stdafx.h#include licai.h#include add.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ add dialogadd:add(CWnd* pParent /*=NULL*/): CDialog(add:IDD, pParent)/AFX_DATA_INIT(add)m_id = 0;m_time = _T();m
19、_incomenum = 0;m_costnum = 0;m_about = _T();/AFX_DATA_INITvoid add:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(add)DDX_Control(pDX, IDC_COMBO2, m_costtype);DDX_Control(pDX, IDC_COMBO1, m_incometype);DDX_Text(pDX, IDC_EDIT1, m_id);DDX_Text(pDX, IDC_EDIT5, m_time);DDX_T
20、ext(pDX, IDC_EDIT2, m_incomenum);DDX_Text(pDX, IDC_EDIT3, m_costnum);DDX_Text(pDX, IDC_EDIT4, m_about);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(add, CDialog)/AFX_MSG_MAP(add)/AFX_MSG_MAPEND_MESSAGE_MAP()/ add message handlersBOOL add:OnInitDialog() CDialog:OnInitDialog();int k1=-1,k2=-1; m_incometype.InsertSt
21、ring(0,原有资金); m_incometype.InsertString(1,工资收入);m_incometype.InsertString(2,奖金); m_incometype.InsertString(3,各类津贴补贴);m_incometype.InsertString(4,亲友馈赠); m_incometype.InsertString(5,经营所得资金);m_incometype.InsertString(6,投资所得); m_incometype.InsertString(7,其它各类收入); m_costtype.InsertString(0,基本生活费支出); m_co
22、sttype.InsertString(1,医疗保健支出);m_costtype.InsertString(2,通信支出); m_costtype.InsertString(3,教育费);m_costtype.InsertString(4,休闲娱乐支出);m_costtype.InsertString(5,购物消费支出); m_costtype.InsertString(6,各类保养维护支出);m_costtype.InsertString(7,投资支出);m_costtype.InsertString(8,其它支出);if(addflag)COleDateTime oleDt=COleDat
23、eTime:GetCurrentTime();CString strFileName=oleDt.Format(%Y-%m-%d %H:%M:%S);m_time=strFileName; UpdateData(false);m_costtype.SetCurSel(0);costtype=基本生活费支出;m_incometype.SetCurSel(0);incometype=原有资金;SetWindowText(添加收入支出信息); else if(incometype=原有资金)k1=0;if(incometype=工资收入)k1=1;if(incometype=奖金)k1=2;if(i
24、ncometype=各类津贴补贴)k1=3;if(incometype=亲友馈赠)k1=4;if(incometype=经营所得资金)k1=5;if(incometype=投资所得)k1=6;if(incometype=其它各类收入)k1=7;if(costtype=基本生活费支出)k2=0;if(costtype=医疗保健支出)k2=1;if(costtype=通信支出)k2=2;if(costtype=教育费)k2=3;if(costtype=休闲娱乐支出)k2=4;if(costtype=购物消费支出)k2=5;if(costtype=各类保养维护支出)k2=6;if(costtype=
25、投资支出)k2=7;if(costtype=其它支出)k2=8;m_incometype.SetCurSel(k1);m_costtype.SetCurSel(k2);SetWindowText(修改收支信息);return TRUE;void add:OnOK() int i,j;i=m_incometype.GetCurSel();j=m_costtype.GetCurSel(); m_incometype.GetLBText(i,incometype); m_costtype.GetLBText(j,costtype);CDialog:OnOK();GUANLI:GUANLI(CWnd*
26、 pParent /*=NULL*/): CDialog(GUANLI:IDD, pParent)/AFX_DATA_INIT(GUANLI)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid GUANLI:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(GUANLI)DDX_Control(pDX, IDC_LIST1, m_list);/AFX_DATA_MAPBEGIN_MESSAG
27、E_MAP(GUANLI, CDialog)/AFX_MSG_MAP(GUANLI)ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)ON_BN_CLICKED(IDC_BUTTON1, OnModify)ON_BN_CLICKED(IDC_BUTTON2, OnDele)/AFX_MSG_MAPEND_MESSAGE_MAP()/ GUANLI message handlersBOOL GUANLI:OnInitDialog() CDialog:OnInitDialog();pdb=new CDatabase;mySet=new
28、 PWSet(pdb);mySet-Open();m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); m_list.InsertColumn(0,用户名,LVCFMT_CENTER,150); m_list.InsertColumn(1,用户权限,LVCFMT_CENTER,150);LOADDATA();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should retu
29、rn FALSEvoid GUANLI:LOADDATA()mySet-Requery();m_list.DeleteAllItems();int i=0;while(!mySet-IsEOF()m_list.InsertItem(i,mySet-m_ID);m_list.SetItemText(i,1,mySet-m_AUTHOR);i+;mySet-MoveNext();void GUANLI:OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) /获得对应列表框信息NM_LISTVIEW* pNMListView = (NM_LISTVI
30、EW*)pNMHDR; int selectrow=pNMListView-iItem;m_id=m_list.GetItemText(selectrow,0);*pResult = 0;void GUANLI:OnModify() mySet-MoveNext();elsestr.Format(delete from password where ID=%s,mySet-m_ID); /SQL语句对ID为当前选中的用户信息删除 pdb-ExecuteSQL(str); mySet-Requery(); LOADDATA(); MessageBox( 该用户被成功删除 ,家庭个人理财系统,MB
31、_OK|MB_ICONINFORMATION); COleDateTime oleDt=COleDateTime:GetCurrentTime();/获取本地的当前时间 CString strFileName=oleDt.Format(%Y年%m月%d日 %H时%M分%S秒); CString strTmp=strFileName+rnn管理员 +ID+ 删除用户名为 +m_id+ 的用户 删除成功rnnnnn; CStdioFile file(logFileName,CFile:modeCreate|CFile:modeNoTruncate|CFile:modeWrite); file.Se
32、ekToEnd();/先定位到文件尾部 file.WriteString(strTmp); file.Close(); m_id=; break;3.设计结果与分析3.1 系统主界面软件运行后进入家庭理财系统主页,页面中可以查看用户收支详细情况、收支情况统计与意见、图表统计信息、软件使用日志等。运行图如图9所示。图9 家庭理财主页界面设计代码如下:#include stdafx.h#include LICAI.h#include LICAIDlg.h#include add.h#include PWSet.h#include REGIST.h#include XGMIMA.h#ifdef _D
33、EBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CLICAIDlg dialogCLICAIDlg:CLICAIDlg(CWnd* pParent /*=NULL*/): CDialog(CLICAIDlg:IDD, pParent)/AFX_DATA_INIT(CLICAIDlg)/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetA
34、pp()-LoadIcon(IDR_MAINFRAME);void CLICAIDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CLICAIDlg)DDX_Control(pDX, IDC_RECOVER, m_RECOVER);DDX_Control(pDX, IDC_COPY, m_COPY);DDX_Control(pDX, IDC_MODIFY, m_MODIFY);DDX_Control(pDX, IDC_GUANLI, m_GUANLI);DDX_Control(pDX,
35、 IDC_ADD, m_ADD);DDX_Control(pDX, IDC_TAB1, m_tab);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CLICAIDlg, CDialog)/AFX_MSG_MAP(CLICAIDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)ON_BN_CLICKED(IDC_ADD, OnAdd)ON_BN_CLICKED(IDC_GUANLI, OnGuanli)ON_BN_CLI
36、CKED(IDC_MODIFY, OnModify)ON_BN_CLICKED(IDC_COPY, OnCopy)ON_BN_CLICKED(IDC_RECOVER, OnRecover)ON_BN_CLICKED(IDZHUXIAO, OnZhuxiao)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CLICAIDlg message handlersBOOL CLICAIDlg:OnInitDialog()CDialog:OnInitDialog();SetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/
37、 Set small icon /为Tab Control增加五个页面m_tab.InsertItem(0, _T(用户收支详细情况); m_tab.InsertItem(1, _T(收支情况统计与意见);m_tab.InsertItem(2, _T(图表统计信息); m_tab.InsertItem(3, _T(软件使用日志); /创建对话框 m_page1.Create(IDD_PAGE1, &m_tab); m_page2.Create(IDD_PAGE2, &m_tab);m_page3.Create(IDD_PAGE3, &m_tab); m_page4.Create(IDD_PAG
38、E4, &m_tab); /设定在Tab内显示的范围 CRect rc; m_tab.GetClientRect(rc); rc.top += 20; rc.bottom -= 8; rc.left += 8; rc.right -= 8;m_page1.MoveWindow(&rc); m_page2.MoveWindow(&rc);m_page3.MoveWindow(&rc); m_page4.MoveWindow(&rc);/把对话框对象指针保存起来 pDialog0 = &m_page1; pDialog1 = &m_page2;pDialog2 = &m_page3; pDialog3 = &m_page4;/显示初始页面 pDialog0-ShowWindow(SW_SHOW); pD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 哈佛家训读后感(15篇)
- 2025年陕能(庆阳)能源开发有限公司招聘15人考前自测高频考点模拟试题及一套答案详解
- 2025广西玉林北流市中医医院公开招聘21人模拟试卷及答案详解(网校专用)
- 2025广东广州市黄埔区大沙街横沙股份经济联合社第一次招聘10人考前自测高频考点模拟试题有完整答案详解
- 2025广东技术师范大学招聘辅导员40人模拟试卷附答案详解(模拟题)
- 2025广西体育运动学校公开招聘编外聘用人员4人模拟试卷(含答案详解)
- 2025年福建省莆田市秀屿区上塘珠宝城实业有限公司招聘1人模拟试卷及参考答案详解
- 2025年南阳社旗县公开招聘医疗健康服务集团专业技术人员250名考前自测高频考点模拟试题带答案详解
- 2025年台州玉环市卫生健康系统公开招聘卫技人员40人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025广东肇庆市四会市卫生健康局所属事业单位招聘116人模拟试卷完整答案详解
- 江浙皖高中(县中)发展共同体2025-2026学年高三上学期10月联考化学试题(含答案)
- 2025河南省文化旅游投资集团有限公司权属企业社会招聘52人笔试备考题库及答案解析
- 平凡心态面对挫折课件
- 2025年河北水利发展集团有限公司公开招聘工作人员41名笔试参考题库附带答案详解
- 胰岛素泵护理查房
- 卵巢癌患者的心理护理
- 2025年第十七届广东省中学生天文知识竞赛试题(含答案)
- 2025年资格考试-WSET二级认证历年参考题库含答案解析(5套典型题)
- 安徽省皖豫名校联盟2024-2025学年高三上学期10月月考历史试题
- 【苏科版】八年级物理上下全册知识点
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
评论
0/150
提交评论