项目地址:golang小项目
参考资料:尚硅谷golang教程P229
家庭收支记账系统
1. 系统简介
1.1 项目背景
在现代社会中,家庭的财务管理显得尤为重要。随着生活成本的不断上升,家庭需要有效地记录和分析收支情况,以确保财务健康。然而,许多家庭缺乏合适的工具来帮助他们进行系统化的财务管理,导致预算不合理和支出失控,从而影响到家庭的经济稳定。为了满足这一需求,我开发了基于命令行界面的《家庭收支记账系统》。该系统旨在通过提供简单易用的界面和功能,帮助家庭用户更好地管理日常财务。通过清晰记录收入和支出,用户能够提高财务透明度,制定合理的预算,从而做出更明智的经济决策。
1.2 系统功能概述
用面向对象的方式实现基于命令行界面的《家庭收支记账系统》,该软件能实现注册、登录、记录家庭的收入与支出、打印收支明细表、转账、注销、修改密码等功能。其中收支明细表显示所有交易记录,一条交易记录由交易类型(收入/支出)、用户余额(交易后)、交易金额、备注组成。所有数据都存在本地的 TXT 文件中,软件要实现对文件数据的读和写。
1.3 开发环境与框架
- 操作系统:Windows 11
- 开发工具:Visual Studio Code 1.89.1
- 编程语言:Go 1.23.1
2. 系统需求分析
2.1 打印菜单
只打印菜单,参考界面如下:
-
主界面
-
登录后界面
-
收支明细记录
2.2 注册
- 要求用户输入用户名和密码,若用户名和本地用户名冲突则给出提示。
- 注册后用户余额默认为 0。
- 注册成功后自动登录。
2.3 登录
要求用户输入用户名和密码,若用户名或密码错误则给出提示。
2.4 收入
- 要求用户输入收入金额和备注,系统能修改余额和更新交易记录。
- 收入金额必须保证是非负数。
2.5 支出
- 要求用户输入支出金额和备注,系统能修改余额和更新交易记录。
- 支出金额必须保证是非负数,且支出金额不能超过余额。
- 支出为 0 是无效交易,提醒用户。
2.6 转账
- 列出转账对象菜单并要求用户选择,其中转账对象是家庭关系,如父亲、母亲等。
- 转账对象选完后要求用户输入转账金额、对方用户名和备注,系统能修改双方的余额和更新交易记录。
- 转账金额必须保证是非负数,且不能超过转账人的余额。
- 转账金额为 0 也是无效交易,提醒用户。
- 转账人的备注如果不写,默认加“转给”+转账对象,如“转给母亲”。
- 被转账人的备注要写“由”+转账人用户名+“转账”,如“由张三转账”。
- 转给自己也是无效交易,要及时提醒用户。
2.7 退出
提示用户是否退出(可用 y/n 等选项),如果用户输入错误的选项,则提示用户重新输入;如果选项正确且用户选择是,则退出软件,否则不退出。
2.8 注销
用户选择注销后立即返回主界面。
2.9 修改密码
要求用户输入新密码,如果和原来一样则提醒用户,不更新密码。
2.10 输入验证
所有选项的输入都必须保证是和菜单上一样的选项。