C++课程设计报告个人财务管理系统.docx

上传人:叶*** 文档编号:89088118 上传时间:2023-05-05 格式:DOCX 页数:16 大小:62.58KB
返回 下载 相关 举报
C++课程设计报告个人财务管理系统.docx_第1页
第1页 / 共16页
C++课程设计报告个人财务管理系统.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《C++课程设计报告个人财务管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告个人财务管理系统.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 C+语言程序设计课程设计报告题 目:个人财政管理 年 级:2014级 专 业:信息与计算科学 学 号: 姓 名:指导教师:目录一、需求分析 2二、概要设计2三、详细设计33.1系统主界面设计43.2 收支模块设计53.3 统计管理模块设计5四、调试分析 64.1运行结果74.2调试结果84.3程序不足之处84.4改进之处8五、小结 8附录.9【摘要】个人理财管理系统是一款管理个人财物的应用软件。该软件代替了手工记账的麻烦,可以方便的实现个人收支状况的浏览、添加、删除、修改、查询等功能,适合个人管理自己的日常收入收支情况。该系统运用了C+语言程序设计知识中的面向对象的思想,在VC+6.0集成开

2、发环境下完成程序的编写。【关键词】个人理财;管理信息系统;面向对象;VC+6.0 1.需求分析:1)程序中的收支情况按时间顺序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。2)可以按时间的范围检查账目,记在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。3)可以修改、删除某笔收入或支出。4)当输入时间发生错误(如月份超过12等),要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经超支。5)显示时,要求每笔收入和支出都要重新统计当前情况下的盈余数目。 2概要设计:系统的功能模块划分:整个系统分为收支管理,报表统计管理,

3、系统管理等模块,收支管理模块分为添加收支,修改收支, 删除收支,统计管理模块分为收支管理,收支明细,系统管理分为,帮助,退出系统。开始进入系统收入支出用户管理数据维护信息查询信息输出退出系统结束个人财政管理收支管理统计管理系统管理添加收支修改收支查询收支删除收支收支管理收支明细帮助退出系统3详细设计:3.1系统主界面设计主界面左侧有7个选项,分别为收入模式,支出模式,查看账目,制定目标,记录置零,退出系统,帮助,下侧为“请输入你的选择:”。相应代码:Manager main() /主函数 Manager mm; /创建对象char select; cprintf(=个人财政支出管理= );/显

4、示标题# ifdef MINcoutnnn#调 试 模 式#endl;#endifcoutnnt 收入模式endl; /选择进入收入模式 coutnt 支出模式endl; /选择进入支出模式 coutnt 查看帐目endl; /选择进入查看帐目模式 coutnt 制定目标endl; /选择进入制定目标模式 coutnt 记录置零endl; /选择记录置零coutnt 退出系统endl; /选择退出 coutnt 帮 助 endl;coutselect; if(select = 1)mm.Deposit();else if(select = 2)mm.Withdraw();else if(sel

5、ect = 3)mm.ViewTotal();else if(select = 4)mm.SetGoal();else if(select = 5)mm.SetZero();elseif(select = 0)coutnnnn程序功能简介:个人财政支出管理程序,完成收入,支出,盈余的记录和管理。主页面下选择数字键进入!nn; coutendlendlendl;getch();main(); /回主函数elseif(select = 6)exit(1); /退出else main(); /回主函数 3.2 收支模块设计1-输入收入记录动态产生一个新的数据,调用存款函数输入记录,将指向其的指针添加

6、到链表,进行排序。2-输入支出记录动态产生一个新的数据,调用取款函数输入记录,将指向其的指针添加到链表,进行排序。3-输出收入记录调用链表中Showlistdeposit()函数,这个函数指向数据类中的输出收入记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。4-输出支出记录调用链表中Showlistwithdraw()函数,其中这个函数指向数据类中的输出支出记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。3.3 统计管理模块设计1-查询收支记录调用链表中Showlistgetbanlance()函数,其中这个函数指向数据类中的数据,然后指

7、针指向下一个指针直到链表尾部。2-按日期查找记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在查找记录时先比较日期与链表中的日期是否有相等的,若有则定义一个指针指向该结点,调用函数输出该结点的所有记录,指针指向下一个指针,继续查找。3-按日期删除记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在删除记录时先比较日期与链表中的日期是否有相等的,若有则定义一个指针指向该结点,调用函数删除该结点的所有记录,指针指向下一个指针,继续查找。4调试分析:4.1运行结果:4.2调试结果程序上有小处编码错误,经过检查已经调试过来,调试成功。 4.3程

8、序不足之处没有程序监控功能,当输入时间发生错误时,无法准确判断时间,当结余的数目为负数时,也无法及时提醒已经超支。4.4改进之处增加函数循环,置零功能,并在各函数中增加条件编译,达到测试程序目地。5小结: 转眼间一个学期就过去了,课程设计也接近尾声,在这几天的设计课程中,还是学到不少知识,课程一开始,拿到课题之后有点迷茫,不知从何下手,感觉以自己所学的不够用来完成这次课程设计,查找过一些资料之后发现没有想象中那么复杂,做到管理模块设计的时候不太顺利,一开始也没理解模块设计的含义,经过老师指点后才知道怎么去做,总的来说,经过这几天的努力,课程设计也算是完成了,虽然现在的学习已经逐渐深入,但是以前

9、学的知识还是要注意复习,多加练习,才能在遇到问题的时候不会手足无措。15附录# define MIN /调试模式时保留# define DE1 /调试模式时保留# define DE2 /调试模式时保留# define WI1 /调试模式时保留# define WI2 /调试模式时保留# define SG /调试模式时保留# define VT /调试模式时保留# define SZ /调试模式时保留#include #include #include #include #include class date private: int year,month,day; public: void

10、 setdate(int y=0,int m=0,int d=0); void showdate(); ; void date:setdate(int y,int m,int d) cinymd; year=y; month=m; day=d; void date:showdate() coutyear年month月day日endl; class Manager /定义类Managerprivate: date time;double dAmt; /收入数目char ans; /存放键盘字符的ASCII码double num; /存入输入的数据double wAmt; /支出数目 double

11、 setAmt; /制定目标double gAmt; /取目标金额double balance; /收支金额double newbalance; /与目标所差金额public: /声名我所有的函数void Deposit(); /收入函数void Withdraw(); /支出函数void ViewTotal(); /查看帐目void SetGoal(); /制定目标void SetZero(); /记录置零;Manager main() /主函数 Manager mm; /创建对象char select; cprintf(=欢迎进入个人财政管理系统= );/显示标题coutnnt 收入模式e

12、ndl; /选择进入收入模式 coutnt 支出模式endl; /选择进入支出模式 coutnt 查看帐目endl; /选择进入查看帐目模式 coutnt 制定目标endl; /选择进入制定目标模式 coutnt 记录置零endl; /选择记录置零coutnt 退出系统endl; /选择退出 coutnt 帮 助 endl;coutselect; if(select = 1)mm.Deposit();else if(select = 2)mm.Withdraw();else if(select = 3)mm.ViewTotal();else if(select = 4)mm.SetGoal()

13、;else if(select = 5)mm.SetZero();elseif(select = 0)coutnnnn程序功能简介:个人财政支出管理程序,完成收入,支出,盈余的记录和管理。主页面下选择数字键进入!nn;cout; coutendlendlendl;getch();main(); /回主函数elseif(select = 6)coutnnt欢迎再次使用个人财政管理系统nnt; /退出else main(); /回主函数 void Manager:Deposit()/在程序中记录收入数目的函数 mm1:dAmt = 0; num = 0; double a=0,c=0;ifstre

14、am get(Money.txt); /打开存贮数据文件# ifdef DE1coutn#打开文件money.txt读取数据#anumc; /取得存档文件中的三个数据get.close(); coutendlendl;cprintf(*收入* ); coutnnt请输入时间: ; time.setdate(); coutdAmt;/检查输入的数据是否为错误的数据或是零,然后继续 if(dAmt = 0) /如果数据小于等于零 coutnnnnnendl; cprintf( !错误的数据! .); getch(); main(); else coutnnt数据输入 dAmt.endl; cout

15、nt 确认你输入的数据: ; cinans; if(ans = y) dAmt = dAmt + num; /把新数据加到原有数据上 ofstream save(Money.txt);# ifdef DE2coutn#打开文件money.txt,保存数据#endl;#endifsaveandAmtnc; save.close(); coutnnnnnendl; cprintf( 你的收入数据成功输入.); coutnt 继续输入收入金额: ;cinans;if(ans = y)goto mm1; /继续输入数据elsecoutendlendlendl;main(); /回主函数getch();

16、 coutendlendlendl;main(); /回主函数 else /中止输入数据 main(); /回主函数 main(); /回主函数 void Manager:Withdraw() /在程序中记录支出数目的函数 mm2:wAmt = 0; num = 0; double a=0,b=0;ifstream get(Money.txt); /打开存贮数据文件# ifdef WI1coutn#打开文件money.txt,读取数据#abnum; /取得存档文件中的三个数据 get.close(); coutendlendl;cprintf(*支出* ); coutnnt请输入时间: ; t

17、ime.setdate(); coutwAmt; if(wAmt = 0) /检查输入的数据是否为错误的数据或是零,然后继续 coutnnnnnendl; cprintf( !错误的数据! .); getch(); main(); else coutnnt数据输入 wAmt.endl; coutnt 确认你输入的数据: ; cinans; if(ans = y) wAmt = wAmt + num; /把新数据加到原有数据上 ofstream save(Money.txt);# ifdef WI2coutn#打开文件money.txt,保存数据#endl;#endifsaveanbnwAmt;

18、 save.close(); coutnnnnnendl; cprintf( 你的支出数据成功输入.); coutnt 继续输入支出金额: ;cinans;if(ans = y)goto mm2; /继续输入数据elsecoutendlendlendl;main(); /回主函数getch(); coutendlendlendl;main(); else /中止输入数据 main(); /回主函数 main(); /回主函数 void Manager:SetGoal() /在程序中制定目标金额的函数 setAmt = 0; double b=0,c=0,temp=0;coutendlendl;

19、cprintf(*制定目标* ); coutnnt请输入时间: ; time.setdate(); coutsetAmt; /保存新数据到文件中ifstream get(Money.txt); /打开存贮数据文件 gettempbc; /取得存档文件中的三个数据 get.close();# ifdef SGcoutn#打开文件money.txt,保存数据#endl;#endifofstream save(Money.txt); savesetAmtnbnc; save.close(); coutnnnnnendl; cprintf( 你的目标金额已建立.); getch(); coutendl

20、endlendl;main();void Manager:ViewTotal() /查看帐目函数 dAmt = 0; /收入数目 wAmt = 0; /支出数目 gAmt = 0; /取目标金额 balance = 0; /收支金额 newbalance = 0;/与目标所差金额# ifdef VTcoutn#打开文件money.txt,读取数据#gAmtdAmtwAmt; /取得存档文件中的三个数据 get.close(); balance = dAmt - wAmt; /收入减去支出取得收支平衡数据 coutendlendl;cprintf(*查看帐目* ); coutnnendl; cp

21、rintf( 收支总数); coutendl; cprintf( =); coutnnendl; cprintf( 收入总金额 支出总金额 收支总金额 ); coutnendl; coutsetw(15)dAmtsetw(25)wAmtsetw(20)balanceendl;/使每两个数据按一定的间隔输出 newbalance = gAmt - balance; coutnnnendl; cprintf( 收支平衡); coutendl; cprintf( =); coutnnendl; cprintf( 目标金额 收支平衡金额 相差金额 ); coutnendl; coutsetw(15)g

22、Amtsetw(25)balancesetw(23)newbalanceendl; getch(); coutendlendlendl;main(); /回到主函数void Manager:SetZero() /记录置零函数coutnnnn 你确定要将记录置零: ; cinans; /确认是否要将记录置零if(ans = y)dAmt = 0; /先初始数据为零 wAmt = 0; setAmt = 0;# ifdef SZcoutn#打开文件money.txt,保存数据#endl;#endifofstream save(Money.txt); /打开存放数据的文件并将收入数据置零 savesetAmtndAmtnwAmt; save.close();coutendlendlendl;main(); /回主函数 elsecoutendlendlendl;main(); /回主函数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁