校园卡ATM机实现以及用户账号管理(Python,期末,大作业,小项目)

本文介绍了基于Python的校园卡账户管理系统,包括用户账户创建、登录、余额查询、交易操作以及管理员权限管理,数据存储在Excel文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分源代码:

# -*- coding: utf-8 -*-
#author :32301227, time:2024年1月1日11:12:06 version:1.0.0

import pandas as pd
def deleteID(userID):
    #删除账户
    print("--------------------------")
    for i in df.index :
        if df.at[i,"id"] == userID :
            if df.at[i,"wallet"] != 0 :
                print("余额尚不为 0 ,请先取款, 删除账户失败")
                print("--------------------------")
                return
            else :
                df.drop(index = i, inplace=True)
                print("您的账户",userID,"已删除")
                print("--------------------------")
                return

def changeID(userID):
    #修改账户ID
    print("--------------------------")
    newID = str(input("请输入新的账号: "))
    if newID in df['id'].values:
        print("该账号已存在,请输入一个新的账号")
        return
    for i in df.index :
        if df.at[i,"id"] == userID:
            df.loc[i,"id"] = newID
            
            print("修改账号成功")
            print("--------------------------")
            break
    return
def changePassword(userID):
    #修改密码
    print("--------------------------")
    if userID not in df['id'].values:
        print("该账号不存在")
        return
    newPassword = str(input("请输入新的密码: "))
    checkPassword = str(input("请再次输入密码: "))
    if newPassword == checkPassword :
        for i in df.index :
            if df.at[i,"id"] == userID:
                df.loc[i,"password"] = newPassword
                
                print("修改密码成功")
                print("--------------------------")
                return
    else :
        print("两次密码不一致,修改密码失败")
        print("--------------------------")
        return

def checkBalance(userID):
    #实现余额查询功能
    print("--------------------------")
    for i in df.index :
        if str(df.at[i,"id"]) == userID :
            print("您的余额是 : " , df.at[i,"wallet"] , " 元")
            print("--------------------------")
            break
    return
def withDraw(userID):
    #取款
    print("--------------------------")
    userInput = int(input("请输入取款金额: "))  
    for i in df.index :
        if df.at[i,"id"] == userID:
            if float(df.at[i,"wallet"]) < float(userInput):
                print("余额不足,取款失败")
                print("--------------------------")
                return
            df.at[i,"wallet"] -= userInput  # Subtract the withdrawal amount from the current balance
            print("取款成功,您的余额是 : ", df.at[i,"wallet"], " 元")
            print("--------------------------")
            return
def deposite(userID):
    #存款
    print("--------------------------")
    userInput = int(input("请存入: "))
    for i in df.index :
        if df.at[i,"id"] == userID:
            df.at[i,"wallet"] += userInput  # Add the deposit amount to the current balance
            print("您已成功存入" , userInput , " 元 , 当前账户余额"   , df.at[i,"wallet"] ," 元" )
            print("--------------------------")
            return
    print("账号不存在,存款失败")
    print("--------------------------")
    return
def cardin():
    #登录,账号密码校验
    #成功则为账号,失败则为"0"
    print("--------------------------")
    userID = str(input("请输入你的学号: "))
    if userID not in df['id'].values:
        print("错误的账号或密码")
        print("--------------------------")
        return "0"
    userPassword = str(input("请输入你的密码: "))
    for i in df.index:
        if str(df.at[i,"id"]) == str(userID) and userPassword == df.at[i,"password"]:
            print("成功登录")
            print("--------------------------")
            return userID
    print("错误的账号或密码")
    print("--------------------------")
    return "0"

def newUser():
    #新建校园网账号
    print("--------------------------")
    newID = str(input("请输入你的学号: "))
    if newID in df['id'].values:
        print("该学号已存在,请输入一个新的学号")
        return
    newPassword = str(input("请设置一个密码: "))
    checkPassword = str(input("请再次输入密码: "))
    if newPassword == checkPassword:
        df.loc[df.shape[0]] = [newID, newPassword, 0]  # Add a new row to the DataFrame
        print("新账号创建成功")
        print("--------------------------")
        return
    else:
        print("两次密码不一致,新账号创建失败")
        print("--------------------------")
        return
def checkAdmin():
    #验证管理员账户
    print("--------------------------")
    adminPassword = "123456"
    userInput = str(input("请输入管理员密码: "))
    if userInput == adminPassword :
        return True
    print("管理员密码错误")
    print("--------------------------")
    return False
df = pd.read_excel("users.xlsx") #读取excel
flag = True
while(flag == True):
    try :   
        while(True):
            print("--------------------------")
            print("[1] 新建账户")
            print("[2] 登录账户&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小岛上的恨雨寒

如有喜欢可随意支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值