记账管理系统

文末附有完整项目代码


在当今快节奏的生活中,学会记账对于个人和家庭的财务管理至关重要。今天就来给大家分享如何用 Python 实现一个简单的记账管理系统。

首先,我们来了解一下这个系统的功能:

  • 用户可以进行注册,成功后跳转登录页面。
  • 登录后,普通用户能修改个人信息、查看财务信息、进行财务记录以及查看月收支或年收支统计。
  • 管理员登录后可管理所有用户,如删除用户、查询用户,还能管理其他管理员,进行基本的删除、查看、修改等操作。

下面我们来看看实现这个系统的关键代码部分。

先创建一个Account类,用于存储金额并提供存钱、取钱功能:

python

class Account:
    def __init__(self, balance=0):
        self.balance = balance  # 初始化账户,设定初始余额,默认为0

    def deposit(self, amount):  # 存入指定金额
        if amount > 0:
            self.balance += amount
            print(f"存款成功,当前余额:{self.balance}")
        else:
            print("存款失败,请输入正数金额")

    def withdraw(self, amount):  # 取出指定金额
        if 0 < amount <= self.balance:
            self.balance -= amount
            print(f"取款成功,当前余额:{self.balance}")
        else:
            print("取款失败,余额不足或输入无效")

然后是处理用户输入的部分,使用循环确保程序持续运行,直到用户选择退出:

python

def main():
    account = Account()  # 创建一个新的账户实例
    while True:
        command = input("请输入指令(d-存款,w-取款,q-退出):")
        if command == 'q':
            print("感谢使用,再见!")
            break
        elif command in ('d', 'w'):
            try:
                amount = float(input("请输入金额:"))
                if command == 'd':
                    account.deposit(amount)
                elif command == 'w':
                    account.withdraw(amount)
            except ValueError:
                print("输入无效,请输入数字")
        else:
            print("未知命令,请重新输入")

为了保存账户信息,使用pickle模块进行序列化和反序列化:

python

import pickle

def save_account(account, filename='account.dat'):
    with open(filename, 'wb') as f:
        pickle.dump(account, f)  # 序列化对象到文件
        print("账户信息已保存")

def load_account(filename='account.dat'):
    try:
        with open(filename, 'rb') as f:
            return pickle.load(f)  # 从文件中反序列化对象
    except FileNotFoundError:
        print("找不到保存的账户信息,将创建新账户")
        return Account()

# 修改main函数以支持保存和加载
def main():
    account = load_account()
    while True:
        #...省略其他代码...
        if command == 'q':
            save_account(account)
            print("感谢使用,再见!")
            break
        #...省略其他代码...

最后,还可以添加日志记录功能,记录每笔交易:

python

def log_transaction(action, amount):
    with open('transactions.log', 'a') as f:
        f.write(f"{action}{amount}")  # 记录每笔交易

通过这个简单的记账管理系统,我们可以轻松记录日常收支,更好地了解自己的财务状况,实现合理规划和管理个人财务的目标。希望大家也能动手尝试,让自己的财务管理更加高效!

 资源

 完整地址

 源码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值