




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北科技学院课程设计说明书课程设计说明书班级: 姓名: 设计题目: 家庭理财管理系统设计时间: 2013.1.7 至 2013.1.11 指导教师: 评 语:_评阅成绩: 评阅教师: 目录第1章 绪论11.1选题的背景11.2目的和意义1第2章 系统设计22.1系统总设计22.1.1题目要求22.1.2 系统功能结构图22.1.3 家庭理财管理系统流程图32.2 系统功能简介42.3系统详细设计52.3.1创建工程52.3.2登录窗口62.3.3主窗口设计72.3.4添加信息102.3.5信息的删除和保存132.3.6信息修改142.3 .7信息查询162.3.8 删除查询结果19第3章课程总结和心得20参考文献21附录22枫叶家庭理财广利系统设计总说明家庭理财管理系统是家庭理财的一个好帮手。家庭理财系统主要提供收入支出等的资料添加、修改、查询、删除, 经过分析,我们使用vc+ 6.0开发工具, 我们通过实现信息的输入、查找、删除、统计、输出等功能,进一步了解和学习面向对象程序设计的思想和理念;并且被广泛地应用于各种程序设计中该程序运用对话框界面,方便个行个业的人使用,避免了不了解计算机的人不会操作这个系统的麻烦,并且美观有效。通过该程序的演示,能够在今后的学习中更深入的了解对象和类的功能,在解决实际问题时灵活运用它们。 本设计可以对财务信息管理,管理员录入财务信息,并且能按姓名或者日期查找,添加,删除各个用户的信息。关键词:c+;mfc;控件;家庭理财管理系统ii第1章 绪论1.1选题的背景 学习计算机知识的目的在于更加准确、快捷的解决现实生活中的各种问题。我们只有不断的更新和完善自己的知识、在实践中积累经验,才能做出好的软件为社会服务,为使用者提供便利。 在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系的重要途径。随着社会信息技术的提高,计算机已被广泛应用于当今社会的各个领域,成为推动社会发展的首要技术动力。在软件技术的应用中,软件的开发技术,尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品,参与市场竞争,获取最大利润是全球信息企业追求的目标。家庭理财管理系统正是一个非常实用的应用型软件产品,我们不谈它的经济利益,单说它的应用范围就是十分广泛的,每个家庭都需要理财,尽可能的提高家庭收入的利用率。我想计算机的作用就是辅助人们完成那些烦琐的体力劳动和脑力劳动,使人们从劳动中解脱出来,我所设计的家庭理财管理系统就是可以有效地管理家庭的收入和开支。1.2目的和意义 目前市面上流行的家庭理财管理系统很少,因此对于每个家庭来说,具有其特殊性,因此需要设计一个操作方便,功能实用,操作方便,简单明了的家庭理财管理系统。通过该题目的设计过程,可以加深理解类、功能模块化、用户交互界面,掌握重载、继承等基本功能的实现,进一步理解和熟练掌握课本中所学的面向对象技术,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。第2章 系统设计2.1系统总设计 2.1.1题目要求1、 收入者、支出者信息维护,管理人员可以对这些信息进行维护。2、 收入、支出项目信息维护,管理人员可以对该信息进行维护。3、 各种统计查询,根据各种组合查询条件对收支项目信息(月、年)、收支人(月、年)信息等进行统计查询。4、 根据查询结果,生成excel图表(选做)。2.1.2 系统功能结构图枫叶家庭理财管理系统功能程序登录程序输入显示查找删除修改统计 图2.1 系统功能总设计图2.1.3 家庭理财管理系统流程图 否 是 退出系统系统主页面登录3查找信息6删除查询2修改信息1添加信息7保存信息4删除信息相关信息日期查询姓名查询枫叶家庭成员信息财务信息地址姓名日期基本工资奖金证券收益生活费其他消费总计图2.2 系统流程图2.2 系统功能简介1. 系统登录:系统开始运行就出现系统登录对话框,密码正确后才能进入主界面。2. 信息输入:输入枫叶家庭成员的基本信息和收支信息。3.信息输出:输出相关信息。4.信息查询:首先由用户选择查询条件,然后输入要查询的信息,系统用查找函数查找,调 用输出函数输出所查找的信息。5.信息修改:首先由用户选中要修改的信息,然后调用修改函数,修改该信息6.信息删除:首先由用户选中要删除的信息,然后调用删除函数,删除该信息7.信息保存:首先由用户选中要保存的信息,然后调用保存函数,保存该信息。2.3系统详细设计2.3.1创建工程启动viaual c+6.0创建一个名为“枫叶家庭理财管理系统”的对话框mfc appwizardexe的运用程序。如图:图2.3 创建工程2.3.2登录窗口图2.4 登陆界面 图2.5 登录有误当程序开始运行时,会出现的对话框。“登录”功能实现的代码:bool cmydlg:oninitdialog()cdialog:oninitdialog();/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herelf1 m;m.domodal();/密码设置if(m.m_zhanghao!=lifeng|m.m_mima!=92312)messagebox(账号或密码有误!);exit(1); /用户密码,主界面显示列表2.3.3主窗口设计图2.6 主界面图2.7 相关信息界面两界面图片实现的代码:bool cmydlg:oninitdialog()cdialog:oninitdialog();/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization here /导入列表数据m_list1.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_list1.insertcolumn(0,_t(姓名);m_list1.insertcolumn(1,_t(日期);m_list1.insertcolumn(2,_t(地址); m_list1.insertcolumn(3,_t(基本工资);m_list1.insertcolumn(4,_t(奖金);m_list1.insertcolumn(5,_t(生活费);m_list1.insertcolumn(6,_t(其他消费);m_list1.insertcolumn(7,_t(证券收益);m_list1.insertcolumn(8,_t(总计);int j;for(j=0;j9;j+)m_list1.setcolumnwidth(j,90); m_list2.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_list2.insertcolumn(0,_t(姓名);m_list2.insertcolumn(1,_t(日期);m_list2.insertcolumn(2,_t(地址); m_list2.insertcolumn(3,_t(基本工资);m_list2.insertcolumn(4,_t(奖金);m_list2.insertcolumn(5,_t(生活费);m_list2.insertcolumn(6,_t(其他消费);m_list2.insertcolumn(7,_t(证券收益);m_list2.insertcolumn(8,_t(总计);for(j=0;jshuju0shuju1shuju2shuju3shuju4shuju5shuju6shuju7shuju8; int j=m_list1.insertitem(0,shuju0); m_list1.setitemtext(j,1,shuju1); m_list1.setitemtext(j,2,shuju2); m_list1.setitemtext(j,3,shuju3); m_list1.setitemtext(j,4,shuju4); m_list1.setitemtext(j,5,shuju5); m_list1.setitemtext(j,6,shuju6); m_list1.setitemtext(j,7,shuju7); m_list1.setitemtext(j,8,shuju8); out.close();return true; / return true unless you set the focus to a control/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ this is automatically done for you by the framework.2.3.4添加信息图2.8 添加界面若要添加信息,则点击添加按钮。“添加”信息模块实现代码:图2.9 添加后并保存界面“添加”信息模块函数实现代码:void cmydlg:onbutton1() / todo: add your control notification handler code here/添加理财信息 lf2 dlg;if(dlg.domodal()=idok)static int m=0;cstring s;s.format(%s,dlg.m_name);m_list1.insertitem(m,s,0); m_list1.setitemtext(m,1,dlg.m_riqi); m_list1.setitemtext(m,2,dlg.m_dizhi);s.format(%6.2f,dlg.m_gongzi);m_list1.setitemtext(m,3,s);s.format(%6.2f,dlg.m_jiangjin);m_list1.setitemtext(m,4,s); s.format(%6.2f,dlg.m_shenghuofei);m_list1.setitemtext(m,5,s);s.format(%6.2f,dlg.m_qitaxiaofei);m_list1.setitemtext(m,6,s);s.format(%6.2f,dlg.m_zhengquan); m_list1.setitemtext(m,7,s);/计算总计float zongji;zongji=(dlg.m_gongzi+dlg.m_jiangjin+dlg.m_zhengquan-dlg.m_shenghuofei-dlg.m_qitaxiaofei); s.format(%6.2f,zongji);m_list1.setitemtext(m,8,s);“保存”信息实现代码:void cmydlg:onbutton4() / todo: add your control notification handler code here/保存理财信息fstream out;int i=0;out.open(student.txt,ios:out|ios:binary|ios:trunc);for(i=0;m_list1.getitemtext(i,1)!=;i+) for(int j=0;j8;j+)out m_list1.getitemtext(i,j);out.close();2.3.5信息的删除和保存图2.10 删除后界面删除时,先选中要删除的信息。“删除”信息模块函数实现代码:void cmydlg:onbutton2() / todo: add your control notification handler code here/删除理财信息if(m_list1.getselectedcount()=0;i-)if(m_list1.getitemstate(i,lvis_selected) m_list1.deleteitem(i);2.3.6信息修改图2.11修改前数据图2.12 修改界面图2.13 修改后数据进行修改时,选中要修改的项,进行修改。“修改”信息模块函数实现代码:void cmydlg:onbutton3() / todo: add your control notification handler code here/修改信息lf2 dlg;dlg.domodal(); updatedata(true);int ncurltem;for(ncurltem=0;(m_list1.getitemtext(ncurltem,0)!=dlg.m_name);ncurltem+)if(m_list1.getitemtext(ncurltem,1)=)break;if(m_list1.getitemtext(ncurltem,1)=)messagebox(无该人请确定录入栏里输入的信息正确);return;m_list1.setitemtext(ncurltem,0,dlg.m_name); m_list1.setitemtext(ncurltem,1,dlg.m_riqi);m_list1.setitemtext(ncurltem,2,dlg.m_dizhi);cstring s;s.format(%6.2f,dlg.m_gongzi);m_list1.setitemtext(ncurltem,3,s);s.format(%6.2f,dlg.m_jiangjin);m_list1.setitemtext(ncurltem,4,s);s.format(%6.2f,dlg.m_shenghuofei);m_list1.setitemtext(ncurltem,5,s); s.format(%6.2f,dlg.m_qitaxiaofei);m_list1.setitemtext(ncurltem,6,s);s.format(%6.2f,dlg.m_zhengquan);m_list1.setitemtext(ncurltem,7,s);/计算修改后的总计 float zongji;zongji=(dlg.m_gongzi+dlg.m_jiangjin+dlg.m_zhengquan-dlg.m_shenghuofei-dlg.m_qitaxiaofei);s.format(%6.2f,zongji);m_list1.setitemtext(ncurltem,8,s);2.3 .7信息查询图2.14 系统按姓名查询界面图2.15 系统按日期查询界面 图2.16 查询无此信息界面若要对信息进行查询,则选择查找条件,在去查询。“查询”信息函数实现代码:void cmydlg:onbutton5() / todo: add your control notification handler code here/信息查询updatedata(true);int ncurltem;if(m_combo1=姓名)/按姓名查询 for(ncurltem=0;(m_list1.getitemtext(ncurltem,0)!=m_edit)&(m_list1.getitemtext(ncurltem,0)!=);ncurltem+) if(m_list1.getitemtext(ncurltem,0)=) messagebox(无该人);return; else int h=0;h=m_list2.insertitem(h,m_list1.getitemtext(ncurltem,0); m_list2.setitemtext(h,1,m_list1.getitemtext(ncurltem,1); m_list2.setitemtext(h,2,m_list1.getitemtext(ncurltem,2); m_list2.setitemtext(h,3,m_list1.getitemtext(ncurltem,3); m_list2.setitemtext(h,4,m_list1.getitemtext(ncurltem,4); m_list2.setitemtext(h,5,m_list1.getitemtext(ncurltem,5); m_list2.setitemtext(h,6,m_list1.getitemtext(ncurltem,6); m_list2.setitemtext(h,7,m_list1.getitemtext(ncurltem,7); m_list2.setitemtext(h,8,m_list1.getitemtext(ncurltem,8); if(m_combo1=日期)/按日期查询for(ncurltem=0;(m_list1.getitemtext(ncurltem,1)!=m_edit)&(m_list1.getitemtext(ncurltem,1)!=);ncurltem+)if(m_list1.getitemtext(ncurltem,1)=)messagebox(无该人);return; else int h=0;h=m_list2.insertitem(h,m_list1.getitemtext(ncurltem,0); m_list2.setitemtext(h,1,m_list1.getitemtext(ncurltem,1); m_list2.setitemtext(h,2,m_list1.getitemtext(ncurltem,2); m_list2.setitemtext(h,3,m_list1.getitemtext(ncurltem,3); m_list2.setitemtext(h,4,m_list1.getitemtext(ncurltem,4); m_list2.setitemtext(h,5,m_list1.getitemtext(ncurltem,5); m_list2.setitemtext(h,6,m_list1.getitemtext(ncurltem,6); m_list2.setitemtext(h,7,m_list1.getitemtext(ncurltem,7); m_list2.setitemtext(h,8,m_list1.getitemtext(ncurltem,8);2.3.8 删除查询结果图2.16 删除查询信息后界面“删除查询结果”实现代码:void cmydlg:onbutton6() / todo: add your control notification handler code here/删除查询结果if(m_list2.getselectedcount()=0;i-)if(m_list2.getitemstate(i,lvis_selected) m_list2.deleteitem(i);第3章课程总结和心得在为期一周的课程设计中,使我对面向对象程序设计有了进一步了解,虽说还不是很明白但也有了进步。 我选做的这个课题是:家庭理财管理系统。我基本完成了家庭理财管理系统的设计,熟悉了一个管理系统的设计步骤,每个阶段应该完成的任务,但我觉得还有很多要学习的地方。在课题设计过程中,学到了好多面向对象程序设计的基本操作(添加、查找、删除等)。 在这次的课程设计中,遇到了好多困难。但是我们都通过查找一些书籍以及和同学们的讨论来解决它,解决不了的就通过向老师提问来解决,我相信通过这一周的设计,培养了我的动手能力。更懂得和同学讨论比自己一个人研究要有用得多。 我明白了在学习中不仅要多看还要多练也要多聊,和同学们一起学习能够是学习更加轻松,知道了学习不能够只是埋头苦干。在做课程设计时使我明白了许多的道理锻炼了我的独自思考的能力,学会了要将知识融会贯通。虽然这次的课程设计做的不是很完美,但使我相信经过这次的锻炼能够让我更加的了解了这门课程参考文献1郭文平,王耀洊,杨晓光.vc+基础教程.西安:电子科技大学出版社,2006 2方可言.vc+6.0实践与精通. 北京: 清华大学出版社,2000 3郑阿奇.visual c+教程.北京:清华大学出版社,2005附录/ 枫叶家庭理财管理系统dlg.cpp : implementation file/#include stdafx.h#include 枫叶家庭理财管理系统.h#include lf1.h#include 枫叶家庭理财管理系统dlg.h#include lf2.h#include fstream.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ cmydlg dialogcmydlg:cmydlg(cwnd* pparent /*=null*/): cdialog(cmydlg:idd, pparent)/afx_data_init(cmydlg)m_edit = _t();m_combo1 = _t();/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()-loadicon(idr_mainframe);void cmydlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cmydlg)ddx_control(pdx, idc_list2, m_list2);ddx_control(pdx, idc_list1, m_list1);ddx_text(pdx, idc_edit1, m_edit);ddx_cbstring(pdx, idc_combo1, m_combo1);/afx_data_mapbegin_message_map(cmydlg, cdialog)/afx_msg_map(cmydlg)on_wm_paint()on_wm_querydragicon()on_cbn_editchange(idc_combo1, oneditchangecombo1)on_bn_clicked(idc_button6, onbutton6)on_bn_clicked(idc_button5, onbutton5)on_bn_clicked(idc_button4, onbutton4)on_bn_clicked(idc_button3, onbutton3)on_bn_clicked(idc_button2, onbutton2)on_bn_clicked(idc_button1, onbutton1)on_en_change(idc_edit1, onchangeedit1)on_notify(nm_click, idc_list1, onclicklist1)on_notify(nm_click, idc_list2, onclicklist2)/afx_msg_mapend_message_map()/ cmydlg message handlersbool cmydlg:oninitdialog()cdialog:oninitdialog();/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herelf1 m;m.domodal();/密码设置if(m.m_zhanghao!=lifeng|m.m_mima!=92312)messagebox(账号或密码有误!);exit(1); /用户密码,主界面显示列表m_list1.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_list1.insertcolumn(0,_t(姓名);m_list1.insertcolumn(1,_t(日期);m_list1.insertcolumn(2,_t(地址); m_list1.insertcolumn(3,_t(基本工资);m_list1.insertcolumn(4,_t(奖金);m_list1.insertcolumn(5,_t(生活费);m_list1.insertcolumn(6,_t(其他消费);m_list1.insertcolumn(7,_t(证券收益);m_list1.insertcolumn(8,_t(总计);int j;for(j=0;j9;j+)m_list1.setcolumnwidth(j,90); m_list2.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines);m_list2.insertcolumn(0,_t(姓名);m_list2.insertcolumn(1,_t(日期);m_list2.insertcolumn(2,_t(地址); m_list2.insertcolumn(3,_t(基本工资);m_list2.insertcolumn(4,_t(奖金);m_list2.insertcolumn(5,_t(生活费);m_list2.insertcolumn(6,_t(其他消费);m_list2.insertcolumn(7,_t(证券收益);m_list2.insertcolumn(8,_t(总计);for(j=0;jshuju0shuju1shuju2shuju3shuju4shuju5shuju6shuju7shuju8; int j=m_list1.insertitem(0,shuju0); m_list1.setitemtext(j,1,shuju1); m_list1.setitemtext(j,2,shuju2); m_list1.setitemtext(j,3,shuju3); m_list1.setitemtext(j,4,shuju4); m_list1.setitemtext(j,5,shuju5); m_list1.setitemtext(j,6,shuju6); m_list1.setitemtext(j,7,shuju7); m_list1.setitemtext(j,8,shuju8); out.close();return true; / return true unless you set the focus to a control/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ this is automatically done for you by the framework.void cmydlg:onpaint() if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmetrics(sm_cxicon);int cyicon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y = (rect.height() - cyicon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hicon);elsecdialog:onpaint();/ the system calls this to obtain the cursor to display while the user drags/ the minimized window.hcursor cmydlg:onquerydragicon()return (hcursor) m_hicon;void cmydlg:oneditchangecombo1() / todo: add your control notification handler code herevoid cmydlg:onbutton6() / todo: add your control notification handler code here/删除查询结果if(m_list2.getselectedcount()=0;i-)if(m_list2.getitemstate(i,lvis_selected) m_list2.deleteitem(i);void cmydlg:onbutton5() / todo: add your control notification handler code here/信息查询updatedata(true);int ncurltem;if(m_combo1=姓名)/按姓名查询 for(ncurltem=0;(m_list1.getitemtext(ncurltem,0)!=m_edit)&(m_list1.getitemtext(ncurltem,0)!=);ncurltem+) if(m_list1.getitemtext(ncurltem,0)=) messagebox(无该人);return; else int h=0;h=m_list2.insertitem(h,m_list1.getitemtext(ncurltem,0); m_list2.setitemtext(h,1,m_list1.getitemtext(ncurltem,1); m_list2.setitemtext(h,2,m_list1.getitemtext(ncurltem,2); m_list2.setitemtext(h,3,m_list1.getitemtext(ncurltem,3); m_list2.setitemtext(h,4,m_list1.getitemtext(ncurltem,4); m_list2.setitemtext(h,5,m_list1.getitemtext(ncurltem,5); m_list2.setitemtext(h,6,m_list1.getitemtext(ncurltem,6); m_list2.setitemtext(h,7,m_list1.getitemtext(ncurltem,7); m_list2.setitemtext(h,8,m_list1.getitemtext(ncurltem,8); if(m_combo1=日期)/按日期查询for(ncurltem=0;(m_list1.getitemtext(ncurltem,1)!=m_edit)&(m_list1.getitemtext(ncurltem,1)!=);ncurltem+)if(m_list1.getitemtext(ncurltem,1)=)messagebox(无该人);return; else int h=0;h=m_list2.insertitem(h,m_list
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版生物降解材料生产合作协议范本
- 2025年度海绵城市土石方工程承包施工及雨水收集合同
- 2025版清单检查项在旅游业中的服务质量监管合同
- 2025年消防电梯采购及消防系统安装合同
- 2025版酒店大堂装修合同范本
- 2025年度物品租赁合同严格禁止转让授权
- 2025年度高端技术人才聘用合同范本
- 贵州省兴仁县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版电子商务平台产品售后服务协议
- 2025年度房地产项目土建施工合同范本
- 2025-2026学年北师大版(2024)初中生物七年级上册教学计划及进度表
- 浪浪山携志奔赴新学期-2025年秋季开学第一课主题教育班会-2025-2026学年初中主题班会
- 2025版集团内部无息借款资金调度与管理合同范本
- 管道吊装方案范本
- 黑龙江省五大连池市2025年上半年事业单位公开招聘试题含答案分析
- 拍摄与剪辑基础知识培训课件
- 小学英语课堂教学规范操作手册
- 人事经理工作汇报
- 项目实施进程汇报
- 2025年时事政治考试100题(附答案)
- 2025学宪法讲宪法知识竞赛题库及答案(小学组)
评论
0/150
提交评论