欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    大学生个人理财管理系统.docx

    • 资源ID:16292250       资源大小:694.75KB        全文页数:96页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学生个人理财管理系统.docx

    1、大学生个人理财管理系统 密级: 软件学院SOFTWARE COLLEGE OF NANCHANG UNIVERSITY项 目 报 告 书 PROJECT TRANSACTION(2007 2008 年)题 目 大学生个人理财管理系统 专 业: 软件工程 班 级: 软件测试062班 学生姓名:赵麒,程爱财,齐辰升,任蕾蕾, 修花平,袁宁英,易锦浩,祝胜康 撰 稿 人: 赵 麒 (组长) 指导教师: 谢 书 良 起讫日期: 2007-12-182008-01-02 课程设计项目报告书一、课题名称大学生个人理财管理系统二、建项目的1、熟练的掌握Microsoft Visual C+ 6.0的使用,学

    2、会应用MFC架构制作具有完整功能的应用软件。2、熟悉VC各种图形界面控件的用法。3、掌握数据库的相关知识,会用Access创建具有完整结构的数据库。4、学会用ODBC操作数据库,并了解SQL语句的用法。5、在工程的制作过程中从需求分析,功能分析,数据库设计,功能模块设计,软件编码,软件调试及测试,软件的打包发布及推广等一系列的步骤初步了解软件工程的思想。6、通过团队的分工努力学会合作,懂得团队精神。三、需求分析大学生个人理财管理系统是一款管理大学生个人财物的应用软件。该软件代替了手工记账的麻烦,可以方便的实现个人收支状况的浏览、添加、删除、修改、查询等功能,适合个人管理自己的日常收入、支出、借

    3、款、银行账户、负债,并且专门针对大学生设计,没有那些债券基金家庭财务等纷繁复杂不宜使用的功能,有着更合理的功能结构布局,还有独具特色的提醒功能,当用户支出超过规定限额的时候及时帮助用户合理安排收支。四、功能说明1、用户管理用户管理模块是实现对该软件的使用者-用户进行管理的功能。一台计算机上的软件有可能有好几个不同的用户使用,每个用户都要拥有自己的收支信息,银行账户信息以及个人设置等,所以要进行相对独立的管理。软件没有为用户划分权限,每个用户在管理上都是平等的,都可以得到软件的全部功能;然而每个用户又是独立的,无法获知其他用户的存在情况,即使直接打开数据库也无法得到加密后的用户密码及银行帐号等一

    4、些隐私信息。图1:用户登录界面1.1用户登陆用户登录模块是为了判断用户身份,以便正确的让其使用该软件,以及阻拦非法用户的功能。该模块主要由一个登陆窗口完成,在登录窗口中同样可以注册新用户和退出程序。1.2用户注册用户注册功能主要提供给使用该软件的新用户,使他们能够用自己的用户名和密码建立新用户,并且能设置自己的使用偏好。1.3用户设置“用户设置”功能模块的页面在软件主界面中,为用户提供了重新更改基本设置及使用偏好的条件。在该模块中用户能够更改其用户名或密码,及支出上限、收支类别等。图2:程序主界面2、收支管理“收支管理”模块是该软件中最重要的部分,也是用户每日主要记账的地方。模块完成收支记录的

    5、录入,修改,删除,筛选及统计和提醒的功能,尽可能的为用户提供方便,使其能够对自己的财政状况有更明晰的认识。图3:软件收支管理的界面2.1添加收支记录记录用户的每笔收支情况,用户在添加收支记录的时候可以自定义收支类别和支付方式,也可为收支记录添加备注,以使其能够更好的管理每笔收支情况。每次添加收支记录以后,软件会在历史余额的记录中新添加一条,记录用户当前账户的最新余额,也有利于用户能够浏览账户过去的余额状态,更清楚地了解资金流向。2.2修改记录修改账户添加过的收支记录,用户可以重新填写收支金额,支付方式及类别等。若用户更改了金额和支付方式,软件会自动添加新的历史余额信息,以正确的显示用户当前余额

    6、。2.3删除记录删除用户添加过的收支记录。同样,软件也会集联更新用户的历史余额信息,并且在添加的历史余额信息中为用户写好备注。2.4筛选记录可以按用户选定的账户、收支类别及起止时间筛选收支记录,并显示到列表框中。也可以在筛选的时候选择全部类别,抑或是所有收入或所有支出。当起止时间相同的时候默认显示所有时间的收支记录。2.5统计收支信息在用户单击“查询”按钮筛选过收支记录以后,软件会自动计算出此时筛选后的总收入金额,总支出金额,以及选定账户的当前余额或者用户的总余额。2.6提醒在用户输入或修改收支记录的时候软件可以按照用户预先设定的月平均收入以及月支出上限合理的提醒用户,使用户在超过支出上限的时

    7、候能够及时意识到,以便合理安排自己的收支。3、余额管理“余额管理”模块是为用户显示、管理和筛选历史余额而设计的,便于用户浏览自己账户往期的余额,清晰的了解资金流向。3.1察看历史余额在列表框中显示用户往期的历史余额信息。3.2为余额添加修改注释用户可以手动添加修改选定历史余额记录的注释,方便用户对余额信息的管理。由于余额信息是软件对用户当前所有银行账户资金流向的自动记录,故未设置历史余额的添加和删除功能,同样也不能修改历史余额的金额和类型,否则会造成不可预知的错误。3.3按时间及账户筛选余额记录按照用户选定的起止时间及银行账户对显示的余额记录进行筛选。4、账户管理每位用户可以在该功能模块里为自

    8、己添加多个银行账户,以便于系统能够正确的计算个账户的余额以及分析资金流向。在银行账户管理中系统已经包含了“现金”作为一个默认隐含账户进行管理。图5:银行账户管理页面4.1添加银行账户按照用户输入的账户名称和账户卡号向软件添加银行账户,在新建账户时需要用户输入账户的初始余额,以便管理。4.2修改账户修改已经建立的账户的名称,卡号以及备注,在此情况下账户的余额是不可修改的,由软件自动算得。4.3删除账户删除已经建立的账户。为了方便用户的历史查询,该操作不会影响收支记录和历史余额记录中和该账户相关的记录信息,但会使支付方式里面的账户名不可用。4.4察看账户的当前余额单击选定列表框中的一个账户,即可在

    9、界面左下角的“账户余额”文本框中显示该银行账户的余额。5、数据库管理管理用来存放用户所有数据的数据库。该软件采用利用默认数据源动态连接数据库的方式,无需用户自己创建ODBC数据源,非常方便,具有更高的可移植性。5.1更改数据源此功能可以让用户更改当前软件使用的数据源,此功能模块的设计目的主要是是为了使用户可以在不改变现有数据库的情况下先打开备份的数据库,察看一下数据库里面的收支记录等,以便于用户选择正确的备份数据进行还原。5.2数据库备份备份软件的数据库,有利于防止因意外而造成的数据库损坏。5.3数据库还原及恢复还原用户备份过的数据库,并用还原的数据库覆盖软件现有的数据库。6、其他功能图7:导

    10、出收支记录界面6.1导出用户收支记录此功能模块可以导出数据库里的收支记录保存成文本文件,为用户提供一个理财记录。在该记录文件中会显示用户名以及导出记录总的收入金额、支出金额及余额等相关信息。用户亦可以自己按时间、类别或账户对收支记录进行筛选,然后再导出。五、系统架构六、数据表及逻辑关系各数据表之间的关系数据库逻辑结构示意图:各数据表的实现:表1:用户信息表User序号字段名称字段描述类型位数属性1ID用户编号自动编号长整形主键2Name用户名称文本15无重复3Password用户密码文本204Aver月平均收入货币1(小数)5Limit月收入上限货币1(小数)6InType自定义的收入类型文本

    11、507OutType自定义的支出类型文本50表2:账户信息表Account该表用来储存关于用户的银行账户相关信息序号字段名称字段描述类型位数属性1ID编号自动编号长整型主键 2Cardno卡号文本20无重复3Name卡类型文本15 无重复4User用户数字长整型 5Comment备注文本50表3:收支平衡表Balance用来记录用户的历史余额信息序号字段名称字段描述类型位数属性1ID编号自动编号长整型主键2b_Date日期日期/时间短日期3Amount数目货币货币4User用户数字长整型5Type支付方式数字长整型6Comment备注文本50表4:输入表Input储存用户收支信息序号字段名称字

    12、段描述类型位数属性1ID编号自动编号长整型主键2Amount数目货币1位小数3b_Date日期日期/时间短日期4Type类型数字长整型5Card卡数字长整型6User用户数字长整型7Comment备注文本50表5:收入类型表InType储存用户定义的收入类型,其ID与Input中的Type对应序号字段名称字段描述类型位数属性1ID编号自动编号长整型主键2Title类型名文本15无重复表6:支出表Out序号字段名称字段描述类型位数属性1ID编号自动编号长整型主键2Amount数目货币货币3b_Date日期日期/时间短日期4Type类型数字长整型5Card卡数字长整型6User用户数字长整型7Co

    13、mment备注文本50表7:支出类型表序号字段名称字段描述类型位数属性1ID编号自动编号长整型主键2Title类型名文本15无重复七、系统实现基本步骤:1、用VC建立单文档工程,数据源连接选MS Access Database2、添加全局变量和全局函数,实现默认数据源的连接。3、设计软件主界面及Tab页布局的实现。4、设计登录窗口5、设计注册窗口6、设计用户设置界面7、设计银行账户管理界面8、设计余额信息管理界面9、设计收支信息管理界面10、设计收支记录导出管理界面11、设计数据库备份和还原功能模块12、软件界面的美化13、软件的调试及测试程序具体设计思路及各实现过程的详细步骤:1、建立工程框

    14、架1.1在新建MFC项目向导的“数据源”中选中MS Access Database1.2单击OK键弹出“选择数据源”对话框选定所需的数据库文件(*.mdb)1.3然后选择一个表以后点击新建项目向导的Finish即可完成项目框架的建立。2、建立数据库链接2.1由于那种方法刚才建立的连接是使用默认数据源,每次在程序启动时都要弹出选择数据库的窗口,十分不便,所以在程序的CNCUApp类里添加了m_database及m_recordSet作为公用数据库及公用数据集,利用extern声明为全局变量,然后建立OpenDB()及其参数重载函数作为打开数据库的函数使用以便以后功能调用。(详见下一章对应源代码)

    15、3、设计软件主界面及Tab布局3.1由于单文档界面默认布局不美观,所以打算设计成Tab页面以在主窗口上显示所有窗口。3.2新建对话框,按照设计要求制作出每个功能的界面,然后利用类向导为每个对话框新建类,新建时的Base Class选择CPropertyPage3.3建立CPropertySheet类的对象m_sheet,以及指针*m_page,以指向当前打开的页面。3.4建立打开Tab页的函数CreateTab()和关闭函数DestoryTab()(详见对应源代码)3.5为侧面对应的按钮添加OnClick事件处理函数。4、设计登录界面4.1设计登录界面对话框4.2为对话框建立类CLogin4.

    16、3为注册和登录按钮添加单击事件处理函数。(详见对应源代码)4.4在CNCUApp中的InitInstance()函数添加弹出登录窗口的相关代码。4.5建立theUser字符串变量,在用户登录成功以后用来储存用户的ID值。5、设计用户注册界面5.1设计用户注册界面对话框并建立相关联的类5.2为界面上的每个控件连接控制变量。5.3添加确定按钮的OnClick事件处理函数。5.3.1从界面各控件获得数据。5.3.2判断各数据的合法性,其中用户名不能少于3个字节而且不能和已有的用户名重复;密码不能少于6位。5.3.3若各数据合法,连接数据库并在User表中插入用户填写的相关信息,显示注册成功,提示用户

    17、返回登录界面。6、设计用户设置界面6.1在已经设计好的用户设置对话框中为各个控件添加控制变量。6.1.1其中“收入类型”中采用ListControl,属性设置为No column header。6.2为该对话框加入初始化函数。6.2.1从数据库中依据theUser变量读取用户的相关信息。其中读取出的InType和OutType字符串经过分割以后存到对应字符串数组里。6.2.2使用读取的数据初始化界面上的各个控件。6.3为对话框的“收入类型”的“添加”按钮添加处理函数。6.3.1判断文本框是否为空。6.3.2若不为空的话向数据库的InType中添加新类别,然后同步更新储存TypeID的相关数组。

    18、6.3.3同理制作“支出类型”的添加按钮。6.4为对话框的“收入类型”的“删除”按钮添加处理函数。6.4.1判断是否选中一条记录。6.4.2获得该记录对应的行数。6.4.3在列表框中删除该记录,并同步更新存储其ID的相关数组。6.5为界面的“确定”按钮添加处理函数。6.5.1从界面上的各控件获得数据并储存在变量中。6.5.2判断各数值的有效性。6.5.3判断登录密码是否为空6.5.3.1若不为空则判断是否和确认密码相等,否则返回。6.5.3.2判断密码的位数是否合法。6.5.4判断用户名是否修改过,若修改过是否和已有的用户重复。6.5.5对偏好设置的字符串进行处理,去掉“元”。6.5.6根据储

    19、存收入支出类型ID的字符串数组生成typeID相关字符串。(用逗号隔开)6.5.7根据获得的数据更新User数据表中相关记录。6.6为界面的“取消”按钮添加代码。6.6.1调用OnInitDialog();函数使对话框重新回到初始状态,还原用户修改过的设置。7、设计银行帐户管理界面7.1为设计好的对话框连接控件的控制变量7.2为对话框的OnInitDialog();函数添加语句,获得数据库中用户关于银行帐户的相关信息并显示到界面上。7.3建立RefleshList函数,刷新列表框。7.4为列表框添加单击事件的处理函数。7.4.1判断是否选中一行。7.4.2获得行数,并把该行的相关信息显示到各控

    20、件中,以便用户修改。7.4.3搜索出数据库中关于该账户的最后一条历史余额的记录,即最新当前余额显示到左下角的文本框中。7.5添加“添加”按钮的单击事件处理函数。7.5.1从各控件获得数据,并储存在相关变量中。7.5.2判断各数据的合法性。7.5.3把“账户余额”文本框设为有效,提示用户在里面输入新建账户的初始余额。返回。7.5.4若用户输入完初始余额以后,按照获得的各项数据向数据库的Account表中添加新记录。7.5.5刷新列表框。7.6同理,添加“修改”按钮的处理函数。7.7添加“删除”按钮的处理函数。8、设计余额信息管理界面8.1为界面个控件连接变量。8.2从数据库中取出历史余额信息。8

    21、.3初始化对话框各控件8.3.1制作RefreshList()函数用来刷新列表框。8.3.1.1函数带默认参数,在参数中获得SQL语句,以便在筛选功能时显示列表使用。8.3.2从数据库中获得该用户的所有银行帐户显示到“查询”中的“账户”下拉列表框中。8.4为“更新”按钮添加代码。8.4.1判断是否选定一行。8.4.2按照用户填写的信息更新数据库。8.5为“筛选”按钮添加代码。8.5.1获得起止时间及选定的账户8.5.2根据获得的数据生成SQL语句。8.5.3调用RefreshList(strSQL)对列表框的内容进行刷新。8.6添加“取消”按钮的代码。9、设计收支信息管理界面9.1为各控件连接

    22、变量。9.2从数据库中获取该用户的收支信息,并存入相关变量。9.3根据变量来初始化对话框,显示各控件的内容。9.3.1制作RefreshList函数用来根据参数获得的SQL语句读取数据库刷新列表。9.3.2制作ListIn()函数来刷新收入类别的下拉列表框。9.3.3制作ListOut()函数来刷新支出类别的下拉列表框。9.3.4制作ListAll()函数来刷新“分类显示”部分的“所有类别”下拉列表框。9.4添加单击列表框事件的处理函数。9.4.1判断是否选中一行。9.4.2根据选中行在相应控件上显示出数据。9.4.2.1对“金额”进行处理以去掉符号。9.4.2.2对时间进行处理,转化为CTi

    23、me类型使其能够显示到TimeDatePicker控件上。9.5添加单击收入/支出单选按钮时的事件。9.5.1通过判断语句直接调用ListIn()或ListOut()9.6添加“添加”按钮单击事件的处理函数。9.6.1从界面控件上获得数据。9.6.2判断各数据的有效性。9.6.3向数据库的Input或Out表中添加新的收支记录。9.6.4读取数据库中的Balance表获取该项收支记录对应账户的当前金额。9.6.5把当前金额和新添加的收支记录的金额转化为浮点型。9.6.6计算出添加以后的余额。9.6.7把计算后的余额等相关信息添加到Balance表中,并以收支记录的注视或类型作为该记录的注释。9

    24、.6.8调用Alarm(amount)函数判断收支是否超过规定,以进行合理的提醒。9.7添加“修改”按钮单击事件的处理函数。9.7.1从控件中获得数据9.7.2判断有效性。9.7.3更新Input或者Out数据表9.7.4从数据库中取得当前余额。9.7.5利用修改前后的差值计算出修改以后的当前余额。9.7.6把计算后的余额信息添加到Balance表中。9.7.7调用函数进行适当的提醒。9.8添加“删除”按钮单击事件的处理函数。9.9添加“查询”按钮单击事件的处理函数。9.9.1从控件中获得数据。9.9.2根据获得的数据生成相应的SQL语句9.9.3利用RefreshList(strSQL)函数

    25、刷新列表框。9.9.4获得从刷新列表框函数里算得的所有收入和所有支出的金额。9.9.5从数据库中获得帐户的当前余额。9.9.5.1若选定“所有账户”则遍历每个账户的余额,然后算出总余额。9.10添加“取消”按钮单击事件的处理函数。9.10.1使对话框的每个控件回到初始状态。10、设计收支记录导出界面10.1为界面控件连接变量。10.2从数据库中获得相关的收支记录。10.3利用收支记录初始化各控件。10.4添加“筛选”按钮的代码。(同9.9)10.5添加“导出”按钮的代码。10.5.1调用“筛选”按钮确保列表处于最新状态。10.5.2获得系统当前时间,以生成导出的文本文件的默认文件名。10.5.

    26、3弹出导出文件对话框,让用户选择文件存放的目录及文件名。10.5.3.1创建CArchive类型的ar对象,以便实现文件的写操作。10.5.4根据theUser变量查询用户名,写到文件的第一行。10.5.5显示文件的标题行。10.5.6遍历列表框中的记录,导出每一项收支记录。10.5.7获得用户的总收入/支出金额以及当前余额等信息,写到文件的最后一段。10.5.8关闭文件,提示导出成功,返回。10.6添加“取消”按钮的代码10.6.1调用OnInitDialog();使对话框中的各控件回到初始状态。八、源代码NCU.h/声明全局变量和全局函数int SplitString(CString &

    27、str, TCHAR cTok, CStringArray& aryItem);void OpenDB(void);void OpenDB(CString str);void OpenDB(CDatabase &db,CRecordset &rs);void SetDate(CString time,CDateTimeCtrl &timer);void DeleteAllColumn(CListCtrl &m_lstCtrl);CString FixValue(CString temp);CString FixTime(CString temp);CString FixAccount(CStr

    28、ing temp);CString FixInType(CString temp);CString FixOutType(CString temp);int FindStr(CString str,CStringArray &strArr);long GetCount(CRecordset &rs,CString str);float GetBalance(CString accountID);extern CString cSQL;extern CString cPath;extern CRecordset m_recordSet;extern CDatabase m_database;extern CString theUser;NCU.cpp/全局函数体/分割字符串函数/用法:SplitString(要分割的字符串,分隔符,用来保存分割后的字符串数组);/int SplitString(CString & str, TCHAR cTok, CStringArray& aryItem) TCHAR* p = str.GetBuffer(0); TCHAR* e = p; TCHAR cEnd = *e; int nCount = 0; while(cEnd) if(*e =


    注意事项

    本文(大学生个人理财管理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开