admin管理员组

文章数量:1647982

【开发该软件的操作系统】:windows10

【软件开发环境/开发工具】:PyCharm

【编程语言】:Python

【开发目的】:这是老师布置的作业啦~ 供初学者参考学习

【开发者】:江西农业大学2020级大二学生


题目要求:

创建一个Account类来模拟一台ATM机,创建一个有10个账户的列表,其id为0-9,并初始化收支为100美元。系统提示用户输入一个id,如果输入的id不正确,要求输入正确的id,如果正确显示主菜单,1:支出,3:收钱,3:存钱;4:退出。一旦退出,系统需要重新输入id。

我的代码:

listId = [100]
listId = listId * 10


class Account:

    def prinTable(self):
        print("1 支 出")
        print("2 收 钱")
        print("3 存 钱")
        print("4 查 询")
        print("5 退 出")

    def test(self, lix):
        while 1:
            INumber = int(input("请输入你的ID:"))
            if 0 <= INumber <= 9:

                numb1 = 0
                while numb1 != 5:
                    self.prinTable()
                    numb1 = int(input("请输入你的选择:"))
                    if numb1 == 1:
                        tem1 = float(input("请输入支出金额:"))
                        lix[INumber] = lix[INumber] - tem1
                    elif numb1 == 2:
                        tem1 = float(input("请输入收入金额:"))
                        lix[INumber] = lix[INumber] + tem1
                    elif numb1 == 3:
                        tem1 = float(input("请输入存钱金额:"))
                        lix[INumber] = lix[INumber] + tem1
                    elif numb1 == 4:
                        print("您的余额为:", lix[INumber])


a1 = Account()
a1.test(listId)

结果如下:   

 

   老师代码:

class Account:
    def __init__(self):
        self.accounts = {} #账户字典:卡号做关键字,余额作为值
        for i in range(0,10): # 初始化所有账户
            self.accounts[i] = 100
        self.currentId = -1 # 当前插入的卡的卡号,-1表明现在ATM上没有插卡

    # 插卡,id:插入卡的卡号
    def check(self,id):
        if id in self.accounts: # 插入的卡是账户字典中的卡,正确的卡进行操作
            self.currentId = id # 记录插入的卡的卡号
            return True  # True表明插入的卡是正确的卡
        else:
            return False # False:插入的不是正确的卡

    # 存钱操作 ,amount参数就是存钱的金额
    # True:表明存钱成功
    def save(self,amount):
        result = False
        if amount < 0:
            print("你存钱的金额不正确")
        elif self.currentId == -1:
            print("你还没有输入你的账户id,正确登录ATM系统")
        else:
            self.accounts[self.currentId] += amount
            result = True
        return result

    # 取钱
    def take(self,amount):
        result = False
        if amount < 0 :
            print("你取款的金额不正确")
        elif self.currentId == -1:
            print("你还没有输入你的账户id正确登录ATM系统")
        elif amount > self.accounts[self.currentId]:
            print("账户金额不足")
        else:
            self.accounts[self.currentId] -= amount
            result = True

        return result

atm = Account() # 创建ATM对象

id = int(input("请输入你的账号id进入ATM系统:"))
if atm.check(id):
    while True:
        print("*********ATM系统**********")
        print("1、存钱\n2、取钱\n3、查询\n4、退出")
        func = int(input("请输入你要进行的操作(1,2,3,4):"))
        if func == 1:
            amount = float(input("请输入你要存钱的金额:"))
            if atm.save(amount):
                print("存钱成功")
        elif func == 2:
            amount = float(input("请输入你要取钱的金额:"))
            if atm.take(amount):
                print("取钱成功")
        elif func == 3:
            print("你的账户余额是:",atm.accounts[atm.currentId])
        else:
            break
    print("退出ATM系统,再见")

 结果如下:

 原文链接:

Python创建一个Account类来模拟一台ATM机,创建一个有10个账户的列表,其id为0-9,并初始化收支为100美元。

共同进步,祝大家学有所成! 

本文标签: 创建一个一台收支初始化账户