面向对象程序设计课程设计家庭财务管理系统_第1页
面向对象程序设计课程设计家庭财务管理系统_第2页
面向对象程序设计课程设计家庭财务管理系统_第3页
面向对象程序设计课程设计家庭财务管理系统_第4页
面向对象程序设计课程设计家庭财务管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南城建学院面向对象程序设计课程设计设计说明书课程名称: 面向对象程序设计课程设计 设计题目: 家庭财务管理系统 指导教师: 班 级: 学 号: 学生姓名: 同组人员: 计算机科学与工程系2011 年 6 月 23 日目 录第第 1 章章 选选 题题.21.1 题目背景.21.2 系统实现的具体分工.21.2.1 选题.21.2.2 团队分工.31.3 开发环境.3第第 2 章章 设计内容设计内容.32.1 实现功能.32.2 概要设计(涉及类的框图).42.3 界面设计.6第第 3 章章 系统实现系统实现.63.1 涉及知识点.63.2 系统运行(主要运行界面抓图).73.3 源程序清单(关

2、键代码).7第第 4 章章 测试与实验结果测试与实验结果.16第第 5 章章 结束语结束语.17参考文献参考文献.17第 1 章 选 题1.1 题目背景近几年来,随着我国城乡居民收入的增加和生活水平的提高,家庭理财已成为人们居家过日子的重要内容。社会学家细心的观察到,时下家庭的“小九九”比之计划经济年代,开始发生微妙的变化。现在的城乡家庭生活发生了明显的变化,人们的收入逐渐拉开档次,消费水平也高了。大多数家庭关注的是提高生活质量,一方面精打细算,量入为出,把钱用在刀刃上;另一方面保证适当的娱乐活动、社会交际、智力开发等方面的开支。为此,不少家庭就有中长期财务预算,有基本建设规划。总的说来,家庭

3、理财必须以量入为出为原则,以财产保值增值为目标,处理好积累和消费的关系。因此,应树立以下四个观念:第一,资金运动质量观。资金(包括现金,有价证券,存款等)运动,是家庭经济活动的价值反应,家庭理财应管好用活资金,加速资金周转,提高资金利用效果,力争做到结构合理、偿债能力强、经济效益高,家庭财务做为资金的载体,应力争实现其保值增值。第二,资金使用责任观。家庭财产作为社会资源的一部分,有责任创造社会财富,履行社会责任,为适应我国经济发展的要求,家庭可根据自身状况,适当投资,适度超前消费。第三,经济效益观。家庭经济生活的基本目标,是在满足生活最佳需要的基础上,实现家庭财力的最大化。因此家庭理财要与经济

4、效益挂钩,必须处理好投入与产出的关系,规避各种经济风险,堵塞各种经济漏洞,增收节支,当好家理好财,不断提高经济效益。第四,利益协调观。家庭作为社会的细胞,它无疑又是一个利益结合体。从该意义上讲,家庭理财实质就是处理协调家庭内部及与各有关的经济方面的经济利益关系。在理财实践中,要坚持公正、公平、诚实和守信的原则,妥善处理好家庭内部利益关系、家庭与国家及有关经济单位的利益关系。1.2 系统实现的具体分工家庭财务的中心内容账务管理。人们几乎每一天都会经过许多次货币活动。其中包括了买入卖出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等。如果能把各类不同的活动进行分类,建立不同的账户,分别对活动

5、进行管理,那么无论现在还是将来,你的账务就会清楚明白了。每天,我们对自己账务的操作有如下几类:添加新的数据项,比如今天我卖出了多少元,生活中,我们就要对自己还有多少元。现在我们把这些工作放到程序里去实现,就是这样的操作。某账户今天是添加还是减少,比如对元的操作就是减少。做到程序里,把它存放到一个数据表里就可以了。归结后,账户的操作一般如下:新添,删除,增加,减少,查找,统计。对重要的数据表记录还可以打印。 1.2.1 选题现代社会家庭的理财观念进一步提高,理财手段变得更加丰富。随着生活水平和文化水平的提高,家庭购买电脑的能力和应用电脑的能力开始提高。电脑及其应用的普及化,人们应用电脑进行家庭财

6、务管理的观念增强,因此,开发一个通用性家庭理财软件已经成为社会需求。本系统是一个家庭通用型理财软件,系统目标是把适合家庭化管理的各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷,全面。1.2.2团队分工表 1.1 项目分工一览表角色姓名承担的具体任务组长周广敬程序的整体构架,功能实现。组员郭黎阳功能的实现。组员时兴平调试运行程序,查错,改错。1.3 开发环境编程工具:visual c+ 6.0机型:方正电脑处理器名称:intel(r)core(tm)2 duo cpu e7200 2.53ghz硬盘驱动

7、器:wdc wd1600aajs-22waao系统内存:金士顿内存 2gb显示卡: nvidia geforce 9400 gt显示器: 方正科技 fg981-w9操作系统:microsoft windows xp professional第 2 章 设计内容2.1 实现功能家庭财务的中心内容账务管理。人们几乎每一天都会经过许多次货币活动。其中包括了买入卖出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等。如果能把各类不同的活动进行分类,建立不同的账户,分别对活动进行管理,那么无论现在还是将来,你的账务就会清楚明白了。每天,我们对自己账务的操作有如下几类:添加新的数据项,比如今天我卖出了

8、多少钱,生活中,我们就要对自己还有多少钱,今天所得的利润进行统计。现在我们把这些工作放到程序里去实现,就是这样的操作。某账户今天是添加还是减少,比如对钱的操作就是减少,如果与这个操作相关的账户是现金。做到程序里,把它存放到一个数据表里就可以了。归结后,账户的操作一般如下:新添,删除,增加,减少,查找,转账,统计。2.2 概要设计(涉及类的框图)finance 类类private: 私有成员变量私有成员变量int tag;/删除标记 1:已删 0:未删 int no;/财务编号 char name20;/姓名 int acount;int ontag;/ int date;/财务日期public

9、: 公共函数声明公共函数声明finance() char *getname() return name; /获取姓名 int getno() return no; /获取财务编号 int getacout()return acount; int gettag() return tag; /获取删除标记 int getontag() return ontag; int getdate() return date; /获取日期 void setname(char na);/设置 void delfinance() tag=1;/删除财务 void addfinance(int da,int n,c

10、har *na,int nu);/增加财务 int borrowfinance();/支出操作 void retfinance();/收入操作 void disp();/输出财务 bdatabase 类类private: 私有成员变量私有成员变量int top; /财务记录指针 finance financemaxb; /财务记录 public: 公共函数声明公共函数声明bdatabase();/构造函数,将 finance.txt 读到 finance中 void clear();/全部删除int addfinance(int da,int n,char *na,int nu);/增加收入

11、finance *query(int financeid);/查找财务 void financedata();/财务维护 void financecount();/ 财务统计void financecount(int data); / 按月财务统计void disp(); /显示财务bdatabase();/析构这个类 表表 1 1 业务流程图符号业务流程图符号符号名称说明实体数据的源点/终点输入/输出表示输入或输出的报表处理能改变数据值或数据位置的加工或部件数据流用来连接其他符号,指明数据流动方向存储表示任何种类的联机存储收入支出表收入支出帐簿账务设置信息收入支出管理用户时间类型总计统计文件

12、记录2.3 界面设计在用户界面部分,根据需求分析结果,用户需要一个友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。在界面设计部分,本系统为用户提供友好、方便、直观、简洁的操作环境。可供用户选择的项目主要有:退出,新增账务,删除账务,查找账务,显示所有账务,总计。第 3 章 系统实现3.1 涉及知识点类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等。3.2 系统运行(主要运行界面抓图)图 3.1 系统主界面系统功能实现3.3 源程序清单(关键代码)/程序主函数程序主函数/#include #include #incl

13、ude #include #include finance.h#include bdatabase.husing namespace std; void bdatabase:financedata() char choice; char bname40; int danum;int financeid;int acount;int date;finance *b; while (choice!=0) cout endl;coutnntt_欢迎进入家庭财务收支系统_ endl;cout endl; cout 菜单 endl; cout endl; cout 0.退出 endl; cout 1.新

14、增账务 endl; cout 2.更改账务 endl; cout 3.删除账务 endl; cout 4.查找账务 endl;cout 5.显示所有账务 endl;cout 6.总计 endl;cout 7.按时间统计 endl;cout 8.全部删除 endl; cout 9.将信息存入文件 endl; cout endl; cout endl; cout choice; switch (choice) case 1: cout 输入财务编号: financeid; cout 输入家庭成员名: bname; cout 输入金额: acount; cout输入时间:如 2010 年 7 月写成

15、 20107danum;addfinance(danum,financeid,bname,acount); break; case 2: cout 输入财务编号: financeid; b=query(financeid); if (b=null) cout 该财务不存在 endl; break; cout 输入新的家庭成员名: bname; b-setname(bname); break; case 3: cout 读入财务编号: financeid; b=query(financeid); if (b=null) cout 该财务不存在 delfinance(); break; case

16、4: cout 读入财务编号: financeid; b=query(financeid); if (b=null) cout 该财务不存在disp(); break; case 5: cout setw(6) 时间setw(6) 编号 setw(18) 家庭成员名 setw(10)收支类别 setw(10)金额endl; disp(); break;case 6: financecount(); break; case 7:cout请输入年月date;financecount(date); break; case 8: clear();cout删除成功!endl;break; case 9:

17、 break; default:cout请重新输入:; /main() 函数的实现,程序的主界面的引导函数的实现,程序的主界面的引导 void main() char choice; int financeid; bdatabase bookdb; while(choice!=0) system(cls);coutntto(_)o欢迎使用家庭理财管理系统 n;cout endl; cout 主菜单 endl; cout endl; cout 1.进入家庭理财管理系统 endl; cout endl; cout 0.退出 endl; cout endl; cout choice; switch

18、(choice) case 1: bookdb.financedata(); break; case 0: break; default:return; /bdatabase.h 头文件头文件 bdatabase 类的声明类的声明#include #include #include #include #include finance.h#ifndef bdatabaseh#define bdatabasehconst int maxb=10000;class bdatabase private: int top; /财务记录指针 finance financemaxb; /财务记录 publi

19、c: bdatabase();/构造函数,将 finance.txt 读到 finance中 void clear();/全部删除int addfinance(int da,int n,char *na,int nu);/增加收入 finance *query(int financeid)/查找财务 for (int i=0;i=top;i+) if (financei.getno()=financeid &financei.gettag()=0) return &financei; return null; void financedata();/财务维护 void fina

20、ncecount();/ 财务统计void financecount(int data); / 按月财务统计void disp(); bdatabase(); /析构函数,将 finance写到 finance.txt 文件中 ; #endif/bdatabase.cpp bdatabase 功能函数功能函数#include #include #include #include #include finance.h#include bdatabase.hbdatabase:bdatabase()/构造函数,将 finance.txt 读到 finance中 finance b; top=-1;

21、 fstream file(finance.txt,ios:in); while (1) file.read(char *)&b,sizeof(b); if (!file) break; top+; financetop=b; file.close(); void bdatabase:clear()/全部删除 top=-1; int bdatabase:addfinance(int da,int n,char *na,int nu)/增加收入 finance *p=query(n); if (null=p) top+; financetop.addfinance(da,n,na,nu)

22、; return 1; return 0; void bdatabase:financecount()/ 财务统计int bnum=0;int rnum=0;int mcout=0;int bcout=0;int rcout=0;for(int i=0;i=top;i+)if(financei.getontag()=1)bcout+=financei.getacout();bnum+;financei.disp();elsercout+=financei.getacout();rnum+;financei.disp(); mcout=bcout-rcout; cout收入总金额bcoutend

23、l; cout支出总金额:rcoutendl; cout收支结余:mcoutendl;void bdatabase:financecount(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(financei.getdate()=da)if(financei.getontag()=1)bcout+=financei.getacout();bnum+;financei.disp();elsercout+=financei.g

24、etacout();rnum+;financei.disp(); mcout=bcout-rcout; cout收入总金额bcoutendl; cout支出总金额:rcoutendl; cout收支结余:mcoutendl;void bdatabase:disp() for (int i=0;i=top;i+) if (financei.gettag()=0) financei.disp(); bdatabase:bdatabase() /析构函数,将 finance写到finance.txt 文件中 fstream file(finance.txt,ios:out); for (int i=

25、0;i=top;i+) if (financei.gettag()=0) file.write(char *)&financei,sizeof(financei); file.close(); /finance.h finance 头文件头文件 finance 类的声明类的声明#include #include #include #include #ifndef financeh#define financehclass finance private: int tag;/删除标记 1:已删 0:未删 int no;/财务编号 char name20;/姓名 int acount;in

26、t ontag;/ int date;/财务日期public: finance() char *getname() return name; /获取姓名 int getno() return no; /获取财务编号 int getacout()return acount; int gettag() return tag; /获取删除标记 int getontag() return ontag; int getdate() return date; /获取日期 void setname(char na);/设置 void delfinance() tag=1;/删除财务 void addfina

27、nce(int da,int n,char *na,int nu);/增加财务 int borrowfinance() if (ontag=1) ontag=0; return 1; return 0; /支出操作 void retfinance();/收入操作 void disp();/输出财务 ; #endif/finance.cpp finance 函数的功能实现函数的功能实现#include #include #include #include #include finance.h#include bdatabase.hvoid finance:setname(char na)/设置

28、strcpy(name,na); void finance:addfinance(int da,int n,char *na,int nu)/增加财务 char ch;tag=0; date=da;no=n; strcpy(name,na);acount=nu;ontag=1; cout 记录为支出按(y) ,收入(其他键)ch;if(ch=y|ch=y)ontag=0; void finance:retfinance()/收入操作 ontag=1; void finance:disp()/输出财务 cout setw(6) date setw(6) no setw(18) name setw(10)(ontag=1? 收入:支出) setw(10)acountendl; 第 4 章 测试与实验结果我在这次课程设计中种主要负责程序的整体架构和财务库类的功能实现。通过思考,我发现针对本题目对账目进行处理比对用户进行管理要简便许多,于是我选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论