C编程小谷记账簿软件项目

一、整体介绍

1.1需求和目标

项目的需求,实现一个叫做“小谷记账簿”的基于命令行界面的家庭记账软件。

我们的目标,是通过项目练习,综合运用在C++第一部分课程中学习到的各种知识,初步掌握编写软件的方法和技巧。

1.2整体功能描述

这个软件相对简单,只需要基于命令行做纯文本的交互,不涉及图形化界面。作为一个记账软件,主要有两大功能:记账和查询。也就是说,软件需要能够记录家庭中每一笔收入、支出的账目,并提供查询收支明细的功能。而且为了让软件有真正的实用价值,需要对数据做持久化保存;我们这里只需要存放在一个指定的文本文件中。

项目采用分级菜单方式,每一级菜单应该有“返回主菜单”功能;主菜单有“退出”选项。

二、页面及功能描述

2.1主菜单

运行软件后首先应该显示主菜单。主菜单提供三个选项:“记账”、“查询”和“退出”,并在下方提示用户输入1-的数字,选择不同的功能。

主菜单界面如下:

2.2记账菜单

在主菜单页面选择“1”,可以进入记账菜单(二级菜单)。记账菜单提供三个选项:“收入”、“支出”和“返回主菜单”;并在下方提示用户按对应的数字进行功能选择。

记账菜单界面如下:

在记账菜单页面选择“1”,可以记录一笔收入账目。账目信息包括:类型(收入/支出)、金额、备注。这里需要提示用户输入账目的金额和备注信息,然后显示完成记账。

类似地,在记账菜单页面选择“2”,可以记录一笔支出账目。提示用户输入账目的金额和备注信息,然后显示完成记账。

2.查询菜单

在主菜单页面选择“2”,可以进入查询菜单。查询菜单提供四个选项:“统计所有账目”、“统计收入”、“统计支出”和“返回主菜单”;并在下方提示用户按对应的数字进行功能选择。

查询菜单界面如下:

在查询菜单页面,选择“1”可以查询所有账目;选择“2”可以查询所有收入;选择“”可以查询所有支出。用户选择之后,除了应该显示对应的账目明细外,还应该对所有账目进行统计汇总。

对应地,选择“1”之后列出所有账目,统计的是总收支;选择“2”之后列出所有收入,统计总收入;选择“”之后列出所有支出,统计总支出。

2.4退出功能

在主菜单页面,选择“”可以退出软件。页面将做确认退出的对话提醒:如果用户输入“Y”则退出,输入“N”则返回主菜单页面。

三、流程设计

.1主流程

.2记账操作流程

.查询操作流程

四、代码设计

4.1核心思路

记账软件处理的数据,就是收入或者支出的“账目”。每一条账目数据,都应该包含收支类型、金额、备注三部分,这可以构建一个结构体类型AccountItem来表示。

而程序运行的开始,应该读取保存在文件中的数据,读取之后应该是一个AccountItem类型的数组。

在流程控制方面,如果用户不选择退出,程序就不会结束,所以应该用一个while循环来处理整个流程;当用户确认退出时,更改一个标志位,用来退出循环。

每一级菜单做键盘选择后,可以用switch分支语句来处理;不同的功能模块,可以包装成函数。

4.2项目文件分类设计

4.2.1头文件

对于一个C++项目来说,构建整体架构很重要的一步就是定义头文件。一般我们会把全局变量、函数声明、以及结构体的定义都放在头文件中。

本项目可以设计两个头文件,来管理不同的内容:

结构体AccountItem的定义,以及涉及到账目操作的函数声明,都可以放在一个头文件account_item.h中;

其它一些通用的设置和功能性函数,可以放在另一个头文件


转载请注明:http://www.aierlanlan.com/rzdk/7646.html