《面向对象程的序设计》课程设计家庭财务管理系统文档格式.docx
- 文档编号:22770096
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:24
- 大小:99.59KB
《面向对象程的序设计》课程设计家庭财务管理系统文档格式.docx
《《面向对象程的序设计》课程设计家庭财务管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《《面向对象程的序设计》课程设计家庭财务管理系统文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
如果能把各类不同的活动进行分类,建立不同的账户,分别对活动进行管理,那么无论现在还是将来,你的账务就会清楚明白了。
每天,我们对自己账务的操作有如下几类:
添加新的数据项,比如今天我卖出了多少元,生活中,我们就要对自己还有多少元。
现在我们把这些工作放到程序里去实现,就是这样的操作。
某账户今天是添加还是减少,比如对元的操作就是减少。
做到程序里,把它存放到一个数据表里就可以了。
归结后,账户的操作一般如下:
新添,删除,增加,减少,查找,统计。
对重要的数据表记录还可以打印。
1.2.1选题
现代社会家庭的理财观念进一步提高,理财手段变得更加丰富。
随着生活水平和文化水平的提高,家庭购买电脑的能力和应用电脑的能力开始提高。
电脑及其应用的普及化,人们应用电脑进行家庭财务管理的观念增强,因此,开发一个通用性家庭理财软件已经成为社会需求。
本系统是一个家庭通用型理财软件,系统目标是把适合家庭化管理的各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷,全面。
1.2.2团队分工
表1.1项目分工一览表
角色
姓名
承担的具体任务
组长
周广敬
程序的整体构架,功能实现。
组员
郭黎阳
功能的实现。
时兴平
调试运行程序,查错,改错。
1.3开发环境
编程工具:
VisualC++6.0
机型:
方正电脑
处理器名称:
Intel(R)Core(TM)2DuoCPUE7200@2.53GHz
硬盘驱动器:
WDCWD1600AAJS-22WAAO
系统内存:
金士顿内存2GB
显示卡:
NVIDIAGeFORCE9400GT
显示器:
方正科技FG981-W9
操作系统:
MicrosoftWindowsXPProfessional
第2章设计内容
2.1实现功能
添加新的数据项,比如今天我卖出了多少钱,生活中,我们就要对自己还有多少钱,今天所得的利润进行统计。
某账户今天是添加还是减少,比如对钱的操作就是减少,如果与这个操作相关的账户是现金。
新添,删除,增加,减少,查找,转账,统计。
2.2概要设计(涉及类的框图)
Finance类
private:
私有成员变量
inttag;
//删除标记1:
已删0:
未删
intno;
//财务编号
charname[20];
//姓名
intacount;
intontag;
//
intdate;
//财务日期
public:
公共函数声明
Finance(){}
char*getname(){returnname;
}//获取姓名
intgetno(){returnno;
}//获取财务编号
intgetacout(){returnacount;
}
intgettag(){returntag;
}//获取删除标记
intgetontag(){returnontag;
intgetdate(){returndate;
}//获取日期
voidsetname(charna[]);
//设置
voiddelfinance(){tag=1;
}//删除财务
voidaddfinance(intda,intn,char*na,intnu);
//增加财务
intborrowfinance();
//支出操作
voidretfinance();
//收入操作
voiddisp();
//输出财务
BDatabase类
inttop;
//财务记录指针
Financefinance[Maxb];
//财务记录
BDatabase();
//构造函数,将finance.txt读到finance[]中
voidclear();
//全部删除
intaddfinance(intda,intn,char*na,intnu);
//增加收入
Finance*query(intfinanceid);
//查找财务
voidfinancedata();
//财务维护
voidfinancecount();
//财务统计
voidfinancecount(intdata);
//按月财务统计
//显示财务
~BDatabase();
//析构这个类
表1业务流程图符号
符号
名称
说明
实体
数据的源点/终点
输入/输出
表示输入或输出的报表
处理
能改变数据值或数据位置的加工或部件
数据流
用来连接其他符号,指明数据流动方向
存储
表示任何种类的联机存储
2.3界面设计
在用户界面部分,根据需求分析结果,用户需要一个友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
在界面设计部分,本系统为用户提供友好、方便、直观、简洁的操作环境。
可供用户选择的项目主要有:
退出,新增账务,删除账务,查找账务,显示所有账务,总计。
第3章系统实现
3.1涉及知识点
类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等。
3.2系统运行(主要运行界面抓图)
图3.1系统主界面
系统功能实现
3.3源程序清单(关键代码)
//程序主函数//
#include<
iostream>
iomanip>
string>
fstream>
#include"
Finance.h"
BDatabase.h"
usingnamespacestd;
voidBDatabase:
:
financedata()
{
charchoice;
charbname[40];
intdanum;
intfinanceid;
Finance*b;
while(choice!
='
0'
)
{
cout<
<
"
—————————————————————————————"
endl;
\n\n\t\t^_^欢迎进入家庭财务收支系统^_^"
╭————————————————————————————╮"
∣菜单∣"
├————————————————————————————┤"
∣0.退出∣"
∣1.新增账务∣"
∣2.更改账务∣"
∣3.删除账务∣"
∣4.查找账务∣"
∣5.显示所有账务∣"
∣6.总计∣"
∣7.按时间统计∣"
∣8.全部删除∣"
∣9.将信息存入文件∣"
╰————————————————————————————╯"
——————————————————————————————"
请选择您要服务的类别:
"
;
cin>
>
choice;
switch(choice)
{
case'
1'
cout<
输入财务编号:
cin>
financeid;
输入家庭成员名:
bname;
输入金额:
acount;
cout<
输入时间:
如2010年7月写成20107"
danum;
addfinance(danum,financeid,bname,acount);
break;
2'
cout<
cin>
b=query(financeid);
if(b==NULL)
{
cout<
该财务不存在"
break;
}
输入新的家庭成员名:
b->
setname(bname);
3'
读入财务编号:
该财务不存在"
<
endl;
delfinance();
4'
disp();
5'
setw(6)<
时间"
setw(6)<
编号"
setw(18)<
家庭成员名"
setw(10)<
收支类别"
金额"
disp();
6'
financecount();
7'
cout<
请输入年月"
cin>
date;
financecount(date);
8'
clear();
删除成功!
case'
9'
break;
default:
请重新输入:
;
}
}
}
//main()函数的实现,程序的主界面的引导
voidmain()
{charchoice;
BDatabaseBookDB;
while(choice!
system("
cls"
);
\n\t\tO(∩_∩)O~欢迎使用家庭理财管理系统\n"
cout<
∣主菜单∣"
∣1.进入家庭理财管理系统∣"
∣∣"
case'
BookDB.financedata();
return;
}
//BDatabase.h头文件BDatabase类的声明
#ifndefBDATABASEH
#defineBDATABASEH
constintMaxb=10000;
classBDatabase
Finance*query(intfinanceid)//查找财务
for(inti=0;
i<
=top;
i++)
if(finance[i].getno()==financeid&
&
finance[i].gettag()==0)
{
return&
finance[i];
}
returnNULL;
//析构函数,将finance[]写到finance.txt文件中
};
#endif
//BDatabase.cppBDatabase功能函数
iostream.h>
iomanip.h>
string.h>
fstream.h>
BDatabase:
BDatabase()//构造函数,将finance.txt读到finance[]中
Financeb;
top=-1;
fstreamfile("
finance.txt"
ios:
in);
while
(1)
file.read((char*)&
b,sizeof(b));
if(!
file)break;
top++;
finance[top]=b;
file.close();
voidBDatabase:
clear()//全部删除
intBDatabase:
addfinance(intda,intn,char*na,intnu)//增加收入
Finance*p=query(n);
if(NULL==p)
top++;
finance[top].addfinance(da,n,na,nu);
return1;
return0;
financecount()//财务统计
{
intBnum=0;
intRnum=0;
intMcout=0;
intBcout=0;
intRcout=0;
for(inti=0;
i++)
{
if(finance[i].getontag()==1)
{
Bcout+=finance[i].getacout();
Bnum++;
finance[i].disp();
}
else{
Rcout+=finance[i].getacout();
Rnum++;
}
Mcout=Bcout-Rcout;
收入总金额"
Bcout<
支出总金额:
Rcout<
收支结余:
Mcout<
financecount(intdata)//按月财务统计
intda=data;
if(finance[i].getdate()==da)
if(finance[i].getontag()==1)
{
}
else{
Mcout=Bcout-Rcout;
disp()
if(finance[i].gettag()==0)
finance[i].disp();
BDatabase:
~BDatabase()//析构函数,将finance[]写到finance.txt文件中
out);
file.write((char*)&
finance[i],sizeof(finance[i]));
//Finance.hFinance头文件Finance类的声明
#ifndefFINANCEH
#defineFINANCEH
classFinance
intgetacout(){returnaco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程的序设计 面向 对象 设计 课程设计 家庭 财务管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)