当前位置: 首页 > article >正文

golang小项目1-家庭收支记账系统

项目地址: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 注册

  1. 要求用户输入用户名和密码,若用户名和本地用户名冲突则给出提示。
  2. 注册后用户余额默认为 0。
  3. 注册成功后自动登录。

2.3 登录

要求用户输入用户名和密码,若用户名或密码错误则给出提示。

2.4 收入

  1. 要求用户输入收入金额和备注,系统能修改余额和更新交易记录。
  2. 收入金额必须保证是非负数。

2.5 支出

  1. 要求用户输入支出金额和备注,系统能修改余额和更新交易记录。
  2. 支出金额必须保证是非负数,且支出金额不能超过余额。
  3. 支出为 0 是无效交易,提醒用户。

2.6 转账

  1. 列出转账对象菜单并要求用户选择,其中转账对象是家庭关系,如父亲、母亲等。
  2. 转账对象选完后要求用户输入转账金额、对方用户名和备注,系统能修改双方的余额和更新交易记录。
  3. 转账金额必须保证是非负数,且不能超过转账人的余额。
  4. 转账金额为 0 也是无效交易,提醒用户。
  5. 转账人的备注如果不写,默认加“转给”+转账对象,如“转给母亲”。
  6. 被转账人的备注要写“由”+转账人用户名+“转账”,如“由张三转账”。
  7. 转给自己也是无效交易,要及时提醒用户。

2.7 退出

提示用户是否退出(可用 y/n 等选项),如果用户输入错误的选项,则提示用户重新输入;如果选项正确且用户选择是,则退出软件,否则不退出。

2.8 注销

用户选择注销后立即返回主界面。

2.9 修改密码

要求用户输入新密码,如果和原来一样则提醒用户,不更新密码。

2.10 输入验证

所有选项的输入都必须保证是和菜单上一样的选项。


http://www.kler.cn/a/326986.html

相关文章:

  • [CUDA] ptx使用笔记
  • 高级Python自动化运维:容器安全与网络策略的深度解析
  • OpenEuler 使用ffmpeg x11grab捕获屏幕流,rtsp推流,并用vlc播放
  • 数字信号处理Python示例(5)使用实指数函数仿真PN结二极管的正向特性
  • 力扣排序350题 两个元组的交集2
  • AI打造超写实虚拟人物:是科技奇迹还是伦理挑战?
  • java计算机毕设课设—超级玛丽游戏(附源码、文章、相关截图、部署视频)
  • OJ在线评测系统 后端基础部分开发 完善CRUD相关接口
  • 【ARM 嵌入式 C 入门及渐进26 -- 内敛函数和宏定义的区别】
  • armbian安装docker
  • MongoDB的查询/超详细/表达式符号
  • SQLMap使用指南
  • Linux服务安装node,npm与yarn
  • 0-1开发自己的obsidian plugin DAY 6
  • 数据挖掘的基本步骤和流程解析:深入洞察与策略实施
  • 重修设计模式-行为型-责任链模式
  • ubuntu24.04 最好的输入法是什么?
  • 【ARM 嵌入式 编译系列 10.6 -- ARM toolchain examples】
  • 【Docker】解决Docker Engine stopped
  • cocos打包后发布web,控制台报错.plist资源下载404
  • Netty 与 WebSocket之间的关系
  • 宠物空气净化器该怎么选?希喂、美的、有哈这三款有推荐的吗?
  • 将 Go 作为脚本语言用及一些好用的包
  • 渗透测试入门学习——编写python脚本实现对网站登录页面的暴力破解
  • 自动化办公-Python中的for循环
  • 网络安全中的 EDR 是什么:概述和功能