还剩32页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
华北科技学院数据库应用课程设计说明书目录TOC\o1-3\h\z\u设计总说明III第1章绪论1第2章课题综述
22.1大学生个人理财助理意义
22.2预期目标3第3章大学生个人理财助理数据库设计
43.1需求分析
4443.2概念分析
63.3逻辑设计
83.4物理设计
8893.5实施与维护1010101011第4章大学生个人理财系统界面及主要功能
124.1数据库的连接
124.2总体方案
124.3界面设计及测试运行131415161717181919第5章总结20____21附录22设计总说明随着“后理财时代”的到来,“你不理财,财不理你”成为了常挂在人们嘴边的一句口头弹个人理财的重要性日益凸现首先,理财是收支平衡的“调节器”理财规划是调节收支平衡的一个利器,不仅仅是打理所挣到的钱财,更是用心经营我们未来的生活其次,理财是经济生活的“解压器”面对各种生活成本的不断攀升,你若善用理财工具,进行人生阶段的理财规划,可有效地缓解生活压力,提高生活质量随着信息技术的飞速发展和日趋激烈的商业竞争,人们已不再满足于__、零散的办公自动化应用和计算机应用计算机网络的迅速发展和普及,改变了整个信息管理的面貌,使信息管理从以单个计算机为中心发展到了以网络为中心,并为计算机技术在工业、商业、教学、科研、管理等领域中的应用提供了一个全新的网络通信环境如何安全快捷的对个人的财务进行管理成为了每个人的迫切需要个人财务管理系统是智能化简单化个人管理的重要的组成部分并且随着计算机技术的飞速发展,计算机在管理方面应用的旁及,利用计算机来实现个人财务管理势在必行本文首先介绍了个人财务管理系统的__目的,其次对个人财务管理系统的需求分析做了详细的描述然后又对个人财务管理系统的实现做了详细的说明在报告的最后给出了项目的测试结果以及结果分析关键词理财;个人管理;需求第1章绪论随着投资时代的来临投资市场的日益活跃在机遇与风险并存的市场诱惑下理财显得至关重要然而理财是一个需要专业知识的行业即使是在经济海洋中摸爬滚打的职业经理人也难以在个人理财方面游刃有余互联网的迅猛发展使众多的理财__应运而生个人理财已逐步从“算盘流水簿”的青铜时代进人了e时代的网络理财网上理财获得投资者青睐吸引越来越多的金融机构提供网上服务理财是现代每个人都必须要具有的能力理财能力是一个人得以生存不可缺少的一部分,也是素质教育不可忽视的一项重要内容那么,大学生在校期间应该如何加强理财技能的培养,做好自己的理财呢我认为,应该努力做好以下几点首先,养成合理的消费习惯,钱要花在刀刃上作为学生,要树立勤俭意识,应该把钱花在必须花的地方,不要一味追求档次盲目攀比,更多地应考虑所购物品的性价比和自己的承受能力其次,培养财务规划意识,学会记帐和编制预算这是控制消费最有效的方法之一其实记帐并不难,只要你保留所有的收支单据,做一个简单的T型记帐簿,抽空整理一下,就可以掌握自己的收支情况,做到量人为出,这样对自己每笔资金的去向有一个详尽的记录,养成良好的记帐习惯第三,理性花钱,遵守一定的生活消费原则花钱必须要理性,要有计划不该花的钱尽量不花,必须花的钱决不吝啬学生时代吃要营养均衡;穿要耐穿耐看;住要简单实用;行要省钱方便第2章课题综述
2.1大学生个人理财助理意义个人理财是指如何制定合理财务资源规划,从而实现个人人生目标的程序从这个意义上说,个人理财的目标就是要为自己建立一个健康的生活体系,实现人生各阶段上的财务目标和理想通过计算机管理个人财务状况,实现无纸化理财,通过查询分析,统计出各项数据,分析出生活中的浪费和节约的地方,通过强大的查询和高效的检索功能,检索出数据,提高办事效率个人和家庭是社会的细胞,我们一向对企业的财务和金融给予了相当的重视,个人则被忽略了现如今,随着个人收入及财富的增长以及市场各种不确定性越来越大并且对个人的影响日益加深的情况下,个人理财变得更为重要了而且人人都知道,现在社会个人并不容易如何管理个人财务就显得尤为重要记账不但能够了解个人金钱动向和消费倾向,进而推算出每个月所需金额,同时更能修正自己过度的支出,哪些消费可以取消,哪些可以再节省一些,养成节俭但不吝啬的习惯大学生个人理财管理系统是一款管理大学生个人收支情况的应用软件该软件代替了手工记账的麻烦,可以方便的实现个人收支状况的添加、删除、修改、查询等功能,适合个人管理自己的日常收支,并且专门针对大学生设计,没有那些债券基金家庭财务等纷繁复杂不宜使用的功能,有着更合理的功能结构布局由于大学生的收入来源比较少,所以该系统主要涉及了生活费、__收入、奖学金和其他收入这几个主要方面同样支出主要涉及了学习支出、生活支出、购票支出和其他支出这几个主要方面查询功能可实现各月收支详情以及余额的查询该软件简单实用,很适合大学生理财
2.2预期目标该系统预期的设计目标是通过本系统易于操作,使用方便,具有很高的可靠性计算机个人财务管理系统,实现无纸化理财,通过查询分析,统计出各项数据,分析生活中的浪费和节约的地方,通过强大的查询和检索提取有效数据,提高办事效率该系统预期满足以下几个要求可靠性、简单性、可维护性和可用性
2.3面对的问题对于一个初学者来说__这样一个系统不是一件很容易的事,在设计过程中肯定会遇到很多问题比如说对于VC++
6.0的很多功能还不是很了解,对某个功能的实现没有思路,不知道需要添加什么样的代码等所以就需要我们充分利用身边的一切资源来寻求问题的解决方法,比如说通过查资料或是通过与他人交流探讨等第3章大学生个人理财助理数据库设计
3.1需求分析需求分析说明书需求分析简单的说就是分析用户的需求,是设计数据库的起点,需求分析的结果是否准确的反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用在通过上述对大学生个人理财系统的分析之后,明确了用户的各种需求以及对本数据库系统的设计的目标,总结出用户对数据的需求如下
①收入明细日期、生活费、__收入、奖学金、其他、总收入
②支出明细日期、学习支出、生活支出、购票支出、其他、总支出
③__表用户名,__数据字典
①数据项表
3.1数据项数据项名称日期生活费__收入奖学金总收入数据类型Char10floatfloatfloatfloat取值范围NOTNULLNULLNULLNULLNULL续表数据项数据项名称学习支出生活支出购票支出总支出其他数据类型floatfloatfloatfloatfloat取值范围NULLNULLNULLNULLNULL
②数据结构表
3.2收入明细表数据结构数据结构名称收入明细描述大学生月收入明细基本表定义收入明细=日期+生活费+__收入+奖学金+其他+总收入表
3.3支出明细表数据结构数据结构名称支出明细描述大学生月支出明细基本表定义支出明细=日期+学习支出+生活支出+购票支出+其他+总支出表
3.4用户表数据结构数据结构名称用户描述登录信息基本表定义用户=用户名+__
③数据处理表
3.5添加数据处理数据处理名添加输入要添加的信息处理逻辑判断输入信息是否有对应记录,并给出提示输出显示添加信息表
3.6删除数据处理数据处理名删除输入要删除的信息处理逻辑判断输入信息是否有对应记录,并给出提示输出提示信息表
3.7修改数据处理数据处理名修改输入要修改的信息处理逻辑判断输入信息是否有对应记录,并给出提示输出显示修改信息,并给出提示表
3.8查询数据处理数据处理名查询输入要查询的信息处理逻辑判断输入信息是否有对应记录,并给出提示输出显示查询信息
3.2概念分析在大学生个人理财管理系统中,存在用户、收入详情、支出详情三个实体用户和收入详情、还有支出详情都是一对一的关系它们所具有的属性是用户用户名、__收入明细日期、生活费、__收入、奖学金、其他、总收入支出明细日期、学习支出、生活支出、购票支出、其他、总支出建立用户实体E_R图如图
3.1图
3.1用户E_R图建立收入详情实体E_R图如图
3.2图
3.2收入详情E_R图建立支出详情实体E_R图如图
3.3图
3.3支出详情E_R图建立全局E_R图如图
3.41111图
3.4全局E_R图
3.3逻辑设计在全局E-R图中,用户与收入明细还有支出明细之间都是一对一关系,可形成两个关系模式,建立的3个表如下
①用户(用户名,__)
②收入明细(日期,生活费,__收入,奖学金,其他,总收入)
③支出明细(日期,学习支出,生活支出,购票支出,其他,总支出)
3.4物理设计CREATEDATABASEGRLC229ONPRI__RYNAME=JRLC229_dataFILENAME=F:\大三上\新建文件夹\GRLC229_data.mdfSIZE=50MB__XSIZE=UNLIMITEDFILEGROWTH=10%LOGONNAME=GRLC229_logFILENAME=F:\大三上\新建文件夹\GRLC229_log.ldfSIZE=1MB__XSIZE=5MBFILEGROWTH=1MB;
①创建用户表到数据库GRLC229CREATETABLE用户用户名char10NULL__char10NULL
②创建收入明细表到数据库GRLC229CREATETABLE收入明细日期char10NOTNULLPRI__RYKEY生活费floatNULL__收入floatNULL奖学金floatNULL其他floatNULL总收入floatNULL
③创建支出明细表到数据库GRLC229CREATETABLE支出明细日期char10NOTNULLPRI__RYKEY学习支出floatNULL生活支出floatNULL购票支出floatNULL其他floatNULL总支出floatNULL
3.5实施与维护向各个表导入小部分数据进行数据库的试运行,导入数据部分截图如图
3.5所示图
3.5导入数据截图为了保证数据完整性,保证数据库中数据在逻辑上的一致性和准确性,需要定义实体完整性、参照完整性和用户自定义完整性对收入明细和支出明细两个表中的日期设置主键等根据实际情况,针对大学生个人理财管理系统的一些基本情况设立了视图,实现了用户对收支情况情况的查询实现代码如下USEGRLC229GOCREATEVIEWchaASSELECT收入明细.日期收入明细.总收入支出明细.总支出余额=收入明细.总收入-支出明细.总支出FROM收入明细支出明细WHERE收入明细.日期=支出明细.日期为防止计算机发生故障、软件故障、遭到病毒、发生误操作将某些信息删除等,致使本系统中的数据发生丢失或破坏,故进行数据库备份与恢复的设计在发生故障时,利用该备份设备对本数据库进行恢复,恢复到某一正确状态实现代码如下EXECsp_addumpdevi__diskGRLCBF229E:\29fei\GRLCBF
229.bakBACKUPDATABASEGRLC229TOGRLCBF229BACKUPDATABASEGRLC229TOGRLCBF229WITHDIFFERENTIALGO第4章大学生个人理财系统界面及主要功能
4.1数据库的连接利用SQLSEVER2008对数据库和数据表的__,可以为用户提供一个__数据库和数据表的工具创建SQLSEVER2008与ODBC驱动连接过程如图
4.1所示图
4.1数据库与ODBC驱动链接示意图
4.2总体方案系统运行后首先进入界面,输入用户名和__即可登录,__确定进入功能选择界面,功能选择包括收入编辑、支出编辑、修改__以及系统简介等,__相应按钮可进入对应的子界面可实现的具体操作下面还会有详细介绍功能模块框图如图
4.2所示图
4.2功能模块框图
4.3界面设计及测试运行在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:
①认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;
②以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;
③测试工作枯燥无味,不能引起人们的兴趣;
④测试工作是艰苦而细致的工作;
⑤对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的__能力的看法这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量登陆界面系统运行后即进入登陆界面,用户输入用户名和__然后__确定即可进入系统,具体实现如图
4.3所示图
4.3登陆界面功能选择界面功能选择界面包括收入明细、支出明细、查询、修改__以及简介等功能,__相应按钮可进入具体操作界面,如图
4.4所示图
4.4功能选择界面收入明细界面收入明细界面可实现对具体收入的添加、修改、删除和清空等操作其中添加记录后需进行刷新操作才可及时显示到列表框中具体实现如图
4.5所示图
4.5收入详情界面支出明细界面支出明细界面可实现对具体支出的添加、修改、删除和清空等操作,具体实现如图
4.6所示图
4.6支出详情界面查询界面查询界面可按日期实现对收支和余额的查询,使用户可以一目了然地看到某月的具体收支和余额详情具体实现如图
4.7所示图
4.7查询界面修改__界面用户可以随时修改__图
4.8修改__界面简介界面图
4.9简介界面
4.
3.8感谢界面__退出系统后出现感谢界面,__退出后即可退出系统如图
4.10所示图
4.10感谢界面第5章总结通过这次课程设计使我受益匪浅在这个过程中,不仅大大提高了我的自学能力而且让我对数据库和MFC有了进一步的认识终于知道那些简单实用的小软件背后有多少人夜以继日的努力,我想那些程序员都是伟大的他们就像魔术师一样可以把自己头脑中的想法在电脑上表现出来,不得不让人敬佩在设计的过程中我遇到了很多的困难,但是通过查资料和与同学交流让这些问题都一一解决了每一次突破都会有成功的喜悦,这几天我体会到了学习的快乐,我想实践是学习必不可少的一部分同时也希望自己在以后的学习中继续保持这份__课程设计是一次可以让我们把所学的理论知识与实际相结合的机会我选择了个人理财助理这一题目通过这次比较完整的一个程序的设计,我走出了纯理论的学习,从一种全新的角度去学习并且在实现MFC与数据库连接的过程中,除去知识的大量更新,我学到了很多东西就个人而言,我体会较深的一点是互相帮助学习的过程,自己看书学习的经验,以及从网上以及其他各种途径获得信息和知识的经验理论与实际相结合的设计,锻炼了我综合运用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,我的各方面经验都得到了极大的丰富改进的过程中,我们分别从各个方面共同改进着,这个已经不能仅仅称作课程设计的作品通过与同学的沟通交流使我对程序整体的规划与设计有了更新的认识,也对自己提出了新的要求通过近两周的努力终于顺利如期的完成本次课程设计,在以后的生活中也要保持同样的态度,不断地完善自己学习是不断完善自己的过程,要学会正视自己的不足课程设计的任务虽然完成了,但是还是存在一些细节的不足之处,比如添加记录后要__刷新按钮记录才能及时添加到列表中我希望通过今后的学习和努力可以设计出更完善的系统____【1】杨国兴温建京姚华.VisualC++
6.0实例教程第二版.北京中国水利水电出版社,2007【2】郑阿奇.SQLServer实用教程(第3版).北京:电子工业出版社,2009附录
1.用户登录代码voidCMyDlg::OnButton1{CDatabasedatabase;database.Open个人理财助理FALSEFALSEODBC;FALSE;CRecordsetrsdatabase;UpdateDataTRUE;CStringstr;str.For__tselect*from用户where用户名=%sm_name;CRecordsetrs1database;rs
1.OpenAFX_DB_USE_DEFAULT_TYPEstr;ifrs
1.IsEOF{MessageBox用户名输入错误!;return;}str.For__tselect*from用户where用户名=%sand__=%sm_namem_password;rs.OpenAFX_DB_USE_DEFAULT_TYPEstr;ifrs.GetRecordCount==0{MessageBox__输入错误!;}else{Aa;a.DoModal;//进入主界面CMyDlg::OnCan__l;}database.Close;}
2.添加记录代码voidB::OnButton2{UpdateDatatrue;CDatabasem_db;m_db.OpenEx_TDSN=个人理财助理;CDatabase::noOdbcDialog;CStringstr;str.For__tINSERTINTO收入明细VALUES%s%f%f%f%f%fm_riqi1m_shenghuofeim_jianzhim_jiang______m_qitashourum_zongshouru;m_db.ExecuteSQLstr;MessageBox添加成功;m_db.Close;UpdateDatafalse;}
3.删除记录代码voidB::OnButton3{UpdateDatatrue;CStringstrsWarning=;CDatabasem_db;if==m_riqi1sWarning=_T日期;if!=sWarning{sWarning+=_T不能为空;AfxMessageBoxsWarningMB_ICONEXCLA__TION;return;}m_db.Open个人理财助理;try{str.For__tdeletefrom收入明细where日期=+m_riqi1+;m_db.ExecuteSQLstr;AfxMessageBox删除成功!;}catchCDBEx__ptione1{AfxMessageBox删除失败!;}m_db.Close;show;}
4.修改记录代码voidB::OnButton4{CDatabasedb;UpdateDataTRUE;db.Open个人理财助理FALSEFALSEODBC;FALSE;CStringsql;CStringn=m_riqi1;sql.For__tUPDATE收入明细set日期=%s生活费=%f__收入=%f奖学金=%f其他=%f总收入=%fWHERE日期=%sm_riqi1m_shenghuofeim_jianzhim_jiang______m_qitashourum_zongshourun;db.ExecuteSQLsql;m_
1.DeleteAllItems;show;db.Close;SetDlgItemTextIDC_riqi1;SetDlgItemTextIDC_shenghuo0;SetDlgItemTextIDC_jianzhi0;SetDlgItemTextIDC_jiang______0;SetDlgItemTextIDC_qitashouru0;SetDlgItemTextIDC_zongshouru0;}
5.清空代码voidB::OnButton5{UpdateDatatrue;m_jiang______=0;m_jianzhi=0;m_qitashouru=0;m_shenghuofei=0;m_zongshouru=0;m_riqi1=;UpdateDatafalse;}
6.列表框显示代码BOOLB::OnInitDialog{CDialog::OnInitDialog;CDatabasem_db;m_db.Open个人理财助理FALSEFALSEODBCFALSE;m_
1.SetExtendedStyleLVS_EX_FLAT__|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_
1.InsertColumn0日期LVCFMT_LEFT80;m_
1.InsertColumn1生活费LVCFMT_LEFT80;m_
1.InsertColumn2__收入LVCFMT_LEFT80;m_
1.InsertColumn3奖学金LVCFMT_LEFT80;m_
1.InsertColumn4其他LVCFMT_LEFT80;m_
1.InsertColumn5总收入LVCFMT_LEFT80;show;m_db.Close;returnTRUE;}voidB::show{m_
1.DeleteAllItems;CDatabasem_db;m_db.Open个人理财助理FALSEFALSEODBC;FALSE;CRecordsetsetm_db;set.OpenCRecordset::dynaset_Tselect*from收入明细;inti=0;while!set.IsEOF{m_
1.InsertItemi;CStringstr1str2str3str4str5str6;set.GetFieldValue日期str1;m_
1.SetItemTexti0str1;set.GetFieldValue生活费str2;m_
1.SetItemTexti1str2;set.GetFieldValue__收入str3;m_
1.SetItemTexti2str3;set.GetFieldValue奖学金str4;m_
1.SetItemTexti3str4;set.GetFieldValue其他str5;m_
1.SetItemTexti4str5;set.GetFieldValue总收入str6;m_
1.SetItemTexti5str6;set.MoveNext;i++;}set.Close;}
7.添加背景代码voidB::OnPaint{CPaintDCdcthis;CRectrect;GetClientRectrect;CDCdcMem;dcMem.CreateCompatibleDCdc;CBit__pbmpBackground;bmpBackground.LoadBit__pIDB_BIT__P9;BIT__Pbit__p;bmpBackground.GetBit__pbit__p;CBit__p*pbmpOld=dcMem.SelectO__ectbmpBackground;dc.StretchBlt00rect.Widthrect.HeightdcMem00bit__p.bmWidthbit__p.bmHeightSRCCOPY;CDialog::OnPaint;}
8.查询代码voidF::OnButton3{UpdateDataTRUE;CDatabasedatabase;database.Open个人理财助理FALSEFALSEODBC;FALSE;{CStringstr;CRecordsetsetdatabase;ifm_riqi
0.IsEmpty{MessageBox请输入日期;return;}m_
2.DeleteAllItems;set.OpenCRecordset::dynaset_Tselect*\fromchawherecha.日期=+m_riqi0+;inti1=0;while!set.IsEOF{m_
4.InsertItemi1;CStringstr1str2str3str4str5str6;set.GetFieldValue日期str1;m_
4.SetItemTexti10str1;set.GetFieldValue总收入str2;m_
4.SetItemTexti11str2;set.GetFieldValue总支出str3;m_
4.SetItemTexti12str3;set.GetFieldValue余额str4;m_
4.SetItemTexti13str4;set.MoveNext;i1++;}set.Close;}UpdateDataTRUE;database.Close;}
9.修改__代码voidH::OnButton1{CDatabasedb;UpdateDataTRUE;db.Open个人理财助理FALSEFALSEODBC;FALSE;CStringsql;CStringm=m_name;sql.For__tUPDATE用户set用户名=%s__=%sWHERE用户名=%sm_namem_passwordm;db.ExecuteSQLsql;db.Close;SetDlgItemTextIDC_name;SetDlgItemTextIDC_password;AfxMessageBox修改成功!;}
10.求总支出代码voidD::OnButton1{UpdateDatatrue;m_zongzhichu=m_shenghuozhichu+m____xizhichu+m_gou____zhichu+m_qitazhichu;UpdateDatafalse;}用户__用户名名收入详情总收入__收入奖学金生活费其他日期总支出购票支出学习支出生活支出其他日期支出详情总支出购票支出学习支出生活支出其他日期支出详情总收入__收入奖学金生活费收入详情日期其他用户__用户名包含包含收入明细查询支出明细功能选择登陆修改__添加记录收入查询删除记录修改记录支出查询余额查询添加记录删除记录修改记录。