ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:222.81KB ,
资源ID:852699      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-852699.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C++程序设计》课程设计报告家庭月收支管理系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

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

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