当前位置: 首页 > 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/news/326986.html

相关文章:

  • 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 是什么:概述和功能
  • 【芋道源码】gitee很火的开源项目pig——后台管理快速开发框架使用笔记(微服务版之本地开发环境篇)
  • 计算机网络面试题——第二篇
  • java中创建jdbc应用程序
  • OJ在线评测系统 前端 完善题目提交服务 细讲异步前端请求与后端接口交互
  • 代码随想录算法训练营第34天|46. 携带研究材料、416. 分割等和子集
  • Android 12系统源码_输入系统(三)输入事件的加工和分发
  • Spring RestTemplate 升级 WebClient 导致 OutOfMemoryError
  • SQL进阶技巧:如何利用if语句简化where或join中的条件 | if条件语句的优雅使用方法
  • QT界面制作
  • 粉丝们得以一窥索菲亚罗兰奢华的90岁生日庆祝仪式! 她已完成了所有的遗愿清单 !