




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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集成开发环境下完成程序的编写。【关键词】个人理财;管理信息系统;面向对象;VC+6.0 1.需求分析:1)程序中的收支情况按时间顺序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。2)可以按时间的范围检查账目,记在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。3)可以修改、删除某笔收入或支出。4)当输入时间发生错误(如月份超过12等),要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经超支。5)显示时,要求每笔收入和支出都要重新统计当前情况下的盈余数目。 2概要设计:系统的功能模块划分:整个系统分为收支管理,报表统计管理,系统管理等模块,收支管理模块分为添加收支,修改收支, 删除收支,统计管理模块分为收支管理,收支明细,系统管理分为,帮助,退出系统。开始进入系统收入支出用户管理数据维护信息查询信息输出退出系统结束个人财政管理收支管理统计管理系统管理添加收支修改收支查询收支删除收支收支管理收支明细帮助退出系统3详细设计:3.1系统主界面设计主界面左侧有7个选项,分别为收入模式,支出模式,查看账目,制定目标,记录置零,退出系统,帮助,下侧为“请输入你的选择:”。相应代码:Manager main() /主函数 Manager mm; /创建对象char select; cprintf(=个人财政支出管理= );/显示标题# 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(select = 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-输入收入记录动态产生一个新的数据,调用存款函数输入记录,将指向其的指针添加到链表,进行排序。2-输入支出记录动态产生一个新的数据,调用取款函数输入记录,将指向其的指针添加到链表,进行排序。3-输出收入记录调用链表中Showlistdeposit()函数,这个函数指向数据类中的输出收入记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。4-输出支出记录调用链表中Showlistwithdraw()函数,其中这个函数指向数据类中的输出支出记录,定义一个指针,输出指针指向的数据,然后指针指向下一个指针直到链表尾部。3.3 统计管理模块设计1-查询收支记录调用链表中Showlistgetbanlance()函数,其中这个函数指向数据类中的数据,然后指针指向下一个指针直到链表尾部。2-按日期查找记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在查找记录时先比较日期与链表中的日期是否有相等的,若有则定义一个指针指向该结点,调用函数输出该结点的所有记录,指针指向下一个指针,继续查找。3-按日期删除记录在数据类中有一函数可以比较日期,大的返回+1,小的返回+1,相等的返回0。在删除记录时先比较日期与链表中的日期是否有相等的,若有则定义一个指针指向该结点,调用函数删除该结点的所有记录,指针指向下一个指针,继续查找。4调试分析:4.1运行结果:4.2调试结果程序上有小处编码错误,经过检查已经调试过来,调试成功。 4.3程序不足之处没有程序监控功能,当输入时间发生错误时,无法准确判断时间,当结余的数目为负数时,也无法及时提醒已经超支。4.4改进之处增加函数循环,置零功能,并在各函数中增加条件编译,达到测试程序目地。5小结: 转眼间一个学期就过去了,课程设计也接近尾声,在这几天的设计课程中,还是学到不少知识,课程一开始,拿到课题之后有点迷茫,不知从何下手,感觉以自己所学的不够用来完成这次课程设计,查找过一些资料之后发现没有想象中那么复杂,做到管理模块设计的时候不太顺利,一开始也没理解模块设计的含义,经过老师指点后才知道怎么去做,总的来说,经过这几天的努力,课程设计也算是完成了,虽然现在的学习已经逐渐深入,但是以前学的知识还是要注意复习,多加练习,才能在遇到问题的时候不会手足无措。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 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 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 收入模式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(select = 3)mm.ViewTotal();else if(select = 4)mm.SetGoal();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;ifstream 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; coutnt 确认你输入的数据: ; 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(); 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请输入时间: ; time.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; 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;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(); coutendlendlendl;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; cprintf( 收支总数); coutendl; cp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厨垃圾协同发酵工艺优化方案
- 职业学院课程体系实施推进方案
- 1.2 自然资源及其利用 教学设计教学反思-2023-2024学年高中地理人教版(2019)选择性必修3
- 2025钢筋买卖合同
- 病房窗帘与隐私保护设施更新方案
- 毕业论文致谢合集7篇
- 泡沫混凝土保温层施工技术方案
- 任务二 形状补间教学设计-2025-2026学年初中信息技术桂科版八年级上册-桂科版
- 2025年实验室医学检验技师操作规范考核试卷答案及解析
- 2025年儿科输液技术操作规范考核答案及解析
- 进度落后述职报告
- 百家争鸣详解课件
- 肠内营养并发症预防与处理指南
- 《生理性止血》课件
- 《尿液红细胞及形态》课件
- 中医药与人工智能融合应用
- 【直接打印】鲁教版(五四学制)七年级上册地理期末知识点复习提纲
- 潮流玩具项目融资方案
- 互联网加智慧燃气大数据一体化管控平台建设综合解决方案
- 甲状旁腺功能亢进症课件
- 天翼云认证开发工程师必备考试复习题库(高分版)-上(单选题)
评论
0/150
提交评论