家庭财务管理系统(C++面向对象课程设计附课设报告)

0004 家庭财务管理系统(C++面向对象课程设计)

摘要:主要用于记录家庭财务支出和收入等记录的程序设计,其主要开发平台为 Windows 10,程序设计开发环境为 Microsoft visual studio或者Codeblocks,程序运行平台为 Windows 10。 对于收入支出进行记录,采用面向对象的解决方法。程序经过调试,初步实现了设计 目标,并且经过完善后,可以应用和解决简单的实际问题。



一、问题描述

1、设计参考的问题

系统具有帐务处理的一般功能,包括家庭月收入管理、月支岀管理、并能按年、月统计家庭收入总和与支岀综合可按月支出费用进行降序排序同时系统提供收入或支出的添加、修改、删除操作。

2、设计目的

(1)清晰简便明了的操作,减少不必要的精力消耗。传统的理财系统中,有大量的 冗余功能,使用户的大部分精力将耗费在了解复杂的界面与繁琐的操作上,而作为缺少 个人理财所应具有的简便明了的特点。通过此理财系统,用户可以将绝大部分精力放在 对账目的研究上,而不是无意义的操作上。
(2)提供更好的服务。理财系统可以较迅速、有效地收集各种个人财务信息,用 户可以直接从系统中获得自己所需的个人财务信息,并根据相关的信息做出决策和相应的行动方案
(3)降低成本。该理财系统没有繁琐的操作,简便易懂的操作使用户减少了上手 时间,降低了使用成本。


二、需求分析

1、设计思路

1.登录系统:
输入正确密码进行登录,如密码错误提示重新输入密码,为确保账本安全,只有五 次输入机会,五次后将不具有打开此账户的权力。
2.新增账目:
可以增加账目内容,保存新增账目信息,以便查阅。
3.删除账目:
删除无用或过期账目,此功能为彻底删除,删除后不可恢复数据,若输入日期有误 系统给出提示。
4.查询及修改:
查看账目信息,查账后可以是否对账目进行修改,修改错误账目,并保存修改信息, 若输入日期有误系统给出提示。
5.统计账目:
输入你想查询的账目的起、止日期,若输入日期有误系统给出提示,统计系统自动 分类一段时间内的交易类别和消费类别,方便查看。

2、设计要求及成果

根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;

三、总体设计

系统的本软件具有六大模块:登录系统,输入账目,删除账目,查询及修改,统计信 息,退出系统。
登录系统:输入密码进行登录,如密码错误提示重新输入密码。
新增账目:增加账目内容,方便查阅。
删除账目:删除无用或过期账目。
查询及修改:查看账目,修改错误账目。
统计账目:统计与分析账目信息。

四、详细设计

1.总体框架图

在这里插入图片描述

2.部分关键代码

类的设计(Financing类)

class Financing
{
   public:
      string year;
      string month;
      string income;
      string expense;
      string surplus;

      void addFinance(Financing finInfo);

      void deleteFinance(int delectNum);

      void updateIncome(int delectNum,string money);
      void updateExpense(int delectNum,string money);

};

按年月排序

void des_Order()
{
   int length = vecFinance.size();
   for(int i=0;i<length;i++)
   {
      Financing it = vecFinance.at(i);
      for(int j=i+1;j<length;j++)
      {
         Financing itj = vecFinance.at(j);

         if(atoi(it.year.c_str())<atoi(itj.year.c_str())){
               Financing temp = vecFinance.at(i);
               vecFinance.at(i) = vecFinance.at(j);
               vecFinance.at(j) = temp;
         }

         if(atoi(it.year.c_str())==atoi(itj.year.c_str()))
         {
            if(atoi(it.month.c_str())<atoi(itj.month.c_str())){
               Financing temp = vecFinance.at(i);
               vecFinance.at(i) = vecFinance.at(j);
               vecFinance.at(j) = temp;
            }
         }
      }
   }
}

读取文件与查询

void saveFile()
{
   // 以写模式打开文件
   ofstream outfile;
   outfile.open("FinancingInfo.txt");
   string lineData;

   //遍历查询
   vector<Financing>::iterator it;
   for(it = vecFinance.begin() ; it != vecFinance.end() ; it++)
   {
      lineData = (*it).year+" "+(*it).month+" "+(*it).income+" "+(*it).expense+" "+(*it).surplus;
      outfile<<lineData<<endl;
      //cout<<(*it).year<<" "<<(*it).month<<" "<<(*it).income<<" "<<(*it).expense<<" "<<(*it).surplus<<endl;
   }
   outfile.close();
}


五、运行截图

1、主界面

在这里插入图片描述

2、查看账目信息

在这里插入图片描述

3、综合信息统计

在这里插入图片描述

4、添加、删除与修改

在这里插入图片描述

资源学习与下载

CSDN下载:家庭财务管理系统vs版本(C++面向对象课程设计)
CSDN下载:家庭财务管理系统 codeblocks版本(C++面向对象课程设计)

CSDN下载:课程设计报告:家庭财务管理系统

联系作者

如需要本资源下载也可以直接添加作者QQ,并可以获取资源预览、软件安装、工程导入、协助运行、算法解释、报告协助撰写等售后服务

随时在线,欢迎交流

QQ:2215991436(心源易码 派大星)
备用QQ:402501817(心源易码 佩奇)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中杯可乐多加冰

请我喝杯可乐吧,我会多加冰!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值