0C++语言程序设计课程设计报告题目:个人财政管理年级:2014级专业:信息与计算科学学号:姓名:指导教师:1目录一、需求分析.....................................................................................................................2二、概要设计.......................................................................................................................2三、详细设计…………………………………………………………………………………………33.1系统主界面设计..............................................................................................................43.2收支模块设计.................................................................................................................53.3统计管理模块设计…………………………………………………………………………5四、调试分析.....................................................................................................................64.1运行结果...............................................................................................................................74.2调试结果...............................................................................................................................84.3程序不足之处.......................................................................................................................84.4改进之处...............................................................................................................................8五、小结.............................................................................................................................8附录…………………………………………………………………………………………………….92【摘要】个人理财管理系统是一款管理个人财物的应用软件。该软件代替了手工记账的麻烦,可以方便的实现个人收支状况的浏览、添加、删除、修改、查询等功能,适合个人管理自己的日常收入收支情况。该系统运用了C++语言程序设计知识中的面向对象的思想,在VC++6.0集成开发环境下完成程序的编写。【关键词】个人理财;管理信息系统;面向对象;VC++6.01.需求分析:1)程序中的收支情况按时间顺序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。2)可以按时间的范围检查账目,记在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。3)可以修改、删除某笔收入或支出。4)当输入时间发生错误(如月份超过12等),要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经超支。5)显示时,要求每笔收入和支出都要重新统计当前情况下的盈余数目。2.概要设计:系统的功能模块划分:整个系统分为收支管理,报表统计管理,系统管理等模块,收支管理模块分为添加收支,修改收支,删除收支,统计管理模块分为收支管理,收支明细,系统管理分为,帮助,退出系统。33.详细设计:个人财政管理收支管理统计管理系统管理添加收支修改收支查询收支删除收支收支管理收支明细帮助退出系统开始进入系统收入支出用户管理数据维护信息查询信息输出退出系统结束43.1系统主界面设计主界面左侧有7个选项,分别为收入模式,支出模式,查看账目,制定目标,记录置零,退出系统,帮助,下侧为“请输入你的选择:”。相应代码:Managermain()//主函数{Managermm;//创建对象charselect;cprintf(======个人财政支出管理======);//显示标题#ifdefMINcout\n\n\n##########################调试模式#########################endl;#endifcout\n\n\t1收入模式endl;//选择1进入收入模式cout\n\t2支出模式endl;//选择2进入支出模式cout\n\t3查看帐目endl;//选择3进入查看帐目模式cout\n\t4制定目标endl;//选择4进入制定目标模式cout\n\t5记录置零endl;//选择5记录置零cout\n\t6退出系统endl;//选择6退出cout\n\t0帮助endl;cout\n\n\t请输入你的选择:;cinselect;if(select=='1'){mm.Deposit();}else{if(select=='2'){mm.Withdraw();}else{if(select=='3'){mm.ViewTotal();}else{if(select=='4'){mm.SetGoal();}else{if(select=='5'){mm.SetZero();}else{if(select=='0'){cout\n\n\n\n程序功能简介:个人财政支出管理程序,完成收入,支出,盈余的记录和管理。主页面下选择数字键进入!'\n''\n';coutendlendlendl;getch();main();//回主函数}else{if(select=='6'){exit(1);}//退出5elsemain();//回主函数}}}}}}}3.2收支模块设计1-输入收入记录动态产生一个新的数据,调用存款函数输入记录,将指向其的指针添加到链表,进行排序。2-输入支出记录动态产生一个新的数据,调用取款函数输入记录,将指向其的指针添加到链表,进行排序。3-输出收入记录调用链表中Showlistdeposit()函数,这个函数指向数据类中的输出收入记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。4-输出支出记录调用链表中Showlistwithdraw()函数,其中这个函数指向数据类中的输出支出记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。3.3统计管理模块设计1-查询收支记录调用链表中Showlistgetbanlance()函数,其中这个函数指向数据类中的数据,然后指针指向下一个指针直到链表尾部。2-按日期查找记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在查找记录时先比较日期与链表中的日期是否有相等的,若6有则定义一个指针指向该结点,调用函数输出该结点的所有记录,指针指向下一个指针,继续查找。3-按日期删除记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在删除记录时先比较日期与链表中的日期是否有相等的,若有则定义一个指针指向该结点,调用函数删除该结点的所有记录,指针指向下一个指针,继续查找。4.调试分析:4.1运行结果:784.2调试结果程序上有小处编码错误,经过检查已经调试过来,调试成功。4.3程序不足之处没有程序监控功能,当输入时间发生错误时,无法准确判断时间,当结余的数目为负数时,也无法及时提醒已经超支。4.4改进之处增加函数循环,置零功能,并在各函数中增加条件编译,达到测试程序目地。5.小结:转眼间一个学期就过去了,课程设计也接近尾声,在这几天的设计课程中,还是学到不少知识,课程一开始,拿到课题之后有点迷茫,不知从何下手,感觉以自己所学的不够用来完成这次课程设计,查找过一些资料之后发现没有想象中那么复杂,做到管理模块设计的时候不太顺利,一开始也没理解模块设计的含义,经过老师指点后才知道怎么去做,总的来说,经过这几天的努力,课程设计也算是完成了,虽然现在的学习已经逐渐深入,但是以前学的知识还是要注意复习,多加练习,才能在遇到问题的时候不会手足无措。9附录#defineMIN//调试模式时保留#defineDE1//调试模式时保留#defineDE2//调试模式时保留#defineWI1//调试模式时保留#defineWI2//调试模式时保留#defineSG//调试模式时保留#defineVT//调试模式时保留#defineSZ//调试模式时保留#includeiostream.h#includefstream.h#includeconio.h#includeiomanip.h#includestdlib.hclassdate{private:intyear,month,day;public:voidsetdate(inty=0,intm=0,intd=0);voidshowdate();};voiddate::setdate(inty,intm,intd){cinymd;year=y;month=m;day=d;}voiddate::showdate(){coutyear年month月day日endl;}classManager//定义类Manager{private:datetime;doubledAmt;//收入数目charans;//存放键盘字符的ASCII码doublenum;//存入输入的数据doublewAmt;//支出数目doublesetAmt;//制定目标doublegAmt;//取目标金额doublebalance;//收支金额10doublenewbalance;//与目标所差金额public://声名我所有的函数voidDeposit();//收入函数voidWithdraw();//支出函数voidViewTotal();//查看帐目voidSetGoal();//制定目标voidSetZero();//记录置零};Managermain()//主函数{Managermm;//创建对象charselect;cprintf(======欢迎进入个人财政管理系统======);//显示标题cout\n\n\t1收入模式endl;//选择1进入收入模式cout\n\t2支出模式endl;//选择2进入支出模式cout\n\t3查看帐目endl;//选择3进入查看帐目模式cout\n\t4制定目标endl;//选择4进入制定目标模式cout\n\t5记录置零endl;//选择5记录置零cout\