《C++程序设计》课程设计报告家庭月收支管理系统.doc

上传人:精*** 文档编号:852699 上传时间:2023-09-16 格式:DOC 页数:20 大小:222.81KB
下载 相关 举报
《C++程序设计》课程设计报告家庭月收支管理系统.doc_第1页
第1页 / 共20页
《C++程序设计》课程设计报告家庭月收支管理系统.doc_第2页
第2页 / 共20页
《C++程序设计》课程设计报告家庭月收支管理系统.doc_第3页
第3页 / 共20页
《C++程序设计》课程设计报告家庭月收支管理系统.doc_第4页
第4页 / 共20页
《C++程序设计》课程设计报告家庭月收支管理系统.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、C+课程设计目录1需求分析- 2 -2概要设计- 2 -3 详细设计- 3 - 3.1代码设计- 3 - 3.1.1头文件- 3 - 3.1.2源文件- 6 - 3.2流程图设计- 16 -4调试分析- 16 - 4.1遇到的问题- 16 - 4.2经验与体会- 17 -5用户使用说明- 17 -6测试结果- 17 -7参考文献- 20 -摘要:本次课程设计的内容是家庭月收支管理系统的开发,主要采用了C+语言以及面向对象的方法,通过键盘输入家庭成员的姓名、财务编号、金额、日期等信息来记录整个家庭每月的收入与支出情况。该系统实现的功能有:新增账务信息、更改账户信息、删除账户信息、查找账户信息、显

2、示所有账户信息、按月统计收支情况、总计收支情况以及全部删除的功能。1需求分析家庭月收支系统是针对每个家庭的财务管理而开发的,具有相对实用且方便的特点。具体表现为:操作简单、数据的录入与输出、查询和删除快捷,可以有效的管理每月的收入与支出情况,省时省力,优化管理,使记账更方便。用户通过键盘输入财务编号、家庭成员的姓名、金额、支出选项、日期等信息来记录整个家庭每月的收入与支出情况,并依次输出,实现新增账务、更改、删除、查找、显示所有账户信息、按月统计收支情况、总计收支情况以及全部删除的功能。在进入系统时,如果选择错误,会显示“请重新输入”;在录入信息时,如果输入错误,会显示“该财务不存在”。人性化

3、的提示,使得该系统更准确。2概要设计本系统用到两个类,分别是Finance类和Charge类。Finance类主要用来分别输入和获取财务编号、家庭成员的姓名、金额、支出选项、日期,实现财务的录入和标记。Charge类主要用来管理账务信息,通过调用Finance类中录入的信息来实现增加、删除、查找等功能。主函数通过定义一个obj对象,调用Charge类中的financedata()函数,实现整个系统的功能。 mainCharge类Finance类3 详细设计 3.1代码设计 3.1.1头文件Finance.h#include #include #ifndef FINANCE_H#define F

4、INANCE_Husing namespace std;class Financepublic:Finance()char *getname() return name; /获取姓名int getno() return no; /获取财务编号int getacount() return acount; /获取金额int gettag() return tag; /获取删除标记int getontag() return ontag; /获取收支标记int getdate() return date; /获取日期void setname(char na) strcpy(name,na); /设置姓

5、名void income() ontag=1; /收入操作int expenses();/支出操作void del() tag=1; /删除财务void add(int da,int n,char *na,int nu);/增加财务void output();/输出财务private:char name20;/姓名int no;/财务编号int acount;/金额int tag;/删除标记int ontag;/收支标记int date;/财务日期;#endifCharge.h#include Finance.h#include #include #ifndef Charge_H#define

6、 Charge_Hclass Chargefriend ostream & operator(istream & is,Charge &);public:Charge();/构造函数,将finance.txt放到finance中Charge();/析构函数,将finance写到finance.txt中int add(int da,int n,char *na,int nu);/增加账务Finance *q(int id)/查找财务for(int i=0;i=top;i+)if(fini.getno()=id & fini.gettag()=0)return & fini;return NULL

7、;void fmonth(int data);/按月统计财务void fcount();/财务总计void clear();/全部删除void output();/输出void menu();/菜单选项private:int top;/财务记录指针Finance fin10000;/财务记录;#endif 3.1.2源文件Finance.cpp#include Finance.h#include Charge.h#include #include #include using namespace std;void Finance:add(int da,int n,char *na,int nu

8、)/增加财务char ch;tag=0;date=da;no=n;strcpy(name,na);acount=nu;ontag=1;cout支出按(Z),收入按(其他)ch;if(ch=Z | ch=z)ontag=0;int Finance:expenses()/支出操作if(ontag=1)ontag=0;return 1;return 0;void Finance:output()/输出coutsetw(6)datesetw(6)nosetw(18)namesetw(10)(ontag=1?收入:支出)setw(10)acountendl;Charge.cpp#include Fina

9、nce.h#include Charge.h#include #include #include #include using namespace std;ostream & operator(istream & is,Charge & c)return is;Charge:Charge()/构造函数,将finance.txt放到finance中Finance b;top=-1;fstream file(finance.txt,ios:in);while(1)file.read(char *)& b,sizeof(b);if(!file) break;top+;fintop=b;file.cl

10、ose();Charge:Charge()/析构函数,将finance写到finance.txt中ofstream ofile;ofile.open(finance.txt);ofilesetw(6)月份setw(6)编号setw(18)家庭成员姓名setw(10)收入类别setw(10)金额endl;for(int i=0;i=top;i+)if(fini.gettag()=0)ofilesetw(6)fini.getdate()setw(6)fini.getno()setw(18)fini.getname()setw(10)(fini.getontag()=1?收入:支出)setw(10)

11、fini.getacount()endl;ofile.close();int Charge:add(int da,int n,char *na,int nu)/增加收入Finance *p=q(n);if(NULL=p)top+;fintop.add(da,n,na,nu);return 1;return 0;void Charge:fmonth(int data)/按月统计财务int da=data;int Bnum=0;int Rnum=0;int Mcout=0;int Bcout=0;int Rcout=0;for(int i=0;i=top;i+)if(fini.getdate()=

12、da)if(fini.getontag()=1)Bcout+=fini.getacount();Bnum+;fini.output();elseRcout+=fini.getacount();Rnum+;fini.output();Mcout=Bcout-Rcout;cout收入总金额:Bcoutendl;cout支出总金额:Rcoutendl;cout收支结余:Mcoutendl;void Charge:output()for(int i=0;i=top;i+)if(fini.gettag()=0)fini.output();void Charge:fcount()/财务总计int Bnum

13、=0;int Rnum=0;int Mcout=0;int Bcout=0;int Rcout=0;for(int i=0;i=top;i+)if(fini.getontag()=1)Bcout+=fini.getacount();Bnum+;fini.output();elseRcout+=fini.getacount();Rnum+;fini.output();Mcout=Bcout-Rcout;cout收入总金额:Bcoutendl;cout支出总金额:Rcoutendl;cout收支结余:Mcoutendl;void Charge:clear()/全部删除top=-1;void Cha

14、rge:menu()/菜单选项char x= ;char bname40;int dnum;int id;int acount;int date;Finance *b;while(x!=0)cout*endlendl;cout 欢迎进入家庭财务收支系统 endlendl;cout 菜单 endlendl;cout 1.新增账务信息 endl;cout 2.更改账户信息 endl;cout 3.删除账户信息 endl;cout 4.查找账户信息 endl;cout 5.显示所有账户信息 endl;cout 6.按月统计收支情况 endl;cout 7.总计收支情况 endl;cout 8.全部删

15、除 endl;cout 0.退出 endlendl;cout*endl;coutx;switch(x)case1:cout输入财务编号:id;cout输入家庭成员名:bname;cout输入金额:acount;cout输入月份:dnum;add(dnum,id,bname,acount);break;case2:cout输入财务编号:id;b=q(id);if(b=NULL)cout该财务不存在endl;break;cout输入新的家庭成员名:bname;b-setname(bname);break;case3:cout输入财务编号:id;b=q(id);if(b=NULL)cout该财务不存

16、在del();break;case4:cout输入财务编号:id;b=q(id);if(b=NULL)cout该财务不存在output();break;case5:coutsetw(6)月份setw(6)编号setw(18)家庭成员姓名setw(10)收入类别setw(10)金额endl;output();break;case6:cout请输入月份:date;fmonth(date);break;case7:fcount();break;case8:clear();cout删除成功!endl;break;default:cout请重新输入;Main.cpp#include Finance.h#

17、include Charge.h#include #include using namespace std;void main()Charge obj;obj.menu();菜单 3.2流程图设计7.总计6.按月统计3.删除账户5.显示所有账户0.退出1.新增账务2.更改账户4.查找账户结束4调试分析 4.1遇到的问题本系统在整个设计实验过程中,遇到以下几个问题:1) 在信息的录入及输出过程中,ifile、ofile的使用遇到了问题,不知道该怎么实现.read和.write的二进制的转换;2) 在实现查询、增加、按月统计的功能时,代码的编写有些困难,借鉴了网上的代码。 4.2经验与体会自己一个

18、人独自设计程序是一个相当大的挑战,在开始进行编写时的思路以及编程过程中会遇到很多的问题。在寻找思路的时候,我先是去网上查了一下相关的代码,然后再将其中有些函数运用到自己的程序中。在实现文件的录入与读取时,我用了相当长的时间,最后实现了文件的录入,不过在下一次打开程序时文件不能读取,这个问题我还没有解决。本次课程设计给我的体会是:要脚踏实地的学习,加强动手操作能力,勤思考,多锻炼,为以后的深入学习做铺垫。5用户使用说明进入本系统后,根据提示,选择08八个数字,进行操作即可看到需要的数据。1. 新增账务信息(增加新的账务,即收支记录)2. 更改账户信息(家庭成员名输入错误,可重新输入)3. 删除账

19、户信息(若账户录入错误,可选择删除)4. 查找账户信息(可对已有记录进行查找)5. 显示所有账户信息(显示所有录入的账户信息)6. 按月统计收支情况(根据提示输入日期,按照月份统计该月的收支情况)7. 总计收支情况(统计所有的财务信息进行收支计算)8. 全部删除(对已有记录进行全部删除)0. 退出(退出本系统)6测试结果进入系统看到如下界面:选择1,增加账务:选择2,更改账户:选择3:删除账户选择4:查找账户正确输入:错误输入:选择5:显示所有账户选择6:按月统计选择7:总计选择8:全部删除文本文档finance.txt里面存入的数据如下:7参考文献1 C+程序设计,吴乃陵,况迎辉编著,高等教育出版社2 C+程序设计实践教程,吴乃陵,李海文编著,高等教育出版社- 19 -

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

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922