ATM管理系统

一:作业信息

博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/homework/11478
作业目标 编写一个简单的ATM机管理系统
学号 3180701323

二:作业要求
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...

三:代码提交及运行截图
1.源代码

import time
class Admin(object):
    admin = "1"
    passward = "1"
 
    def printAdminView(self):
        print("*******************************************************")
        print("*                                                     *")
        print("*                                                     *")
        print("*             欢迎登陆此银行                      *")
        print("*                                                     *")
        print("*                                                     *")
        print("*                                                     *")
        print("*******************************************************")
 
    def printSysFunctionView(self):
        print("*******************************************************")
        print("*         开户(1)              查询(2)               *")
        print("*         取款(3)               存款(4)               *")
        print("*         转账(5)               改密(6)               *")
        print("*                                                     *")
        print("*                   返回(t)                           *")
        print("*                   退出(q)                           *")
        print("*                                                     *")
        print("*                                                     *")
        print("*******************************************************")
 
    def adminOption(self):
        inputAdmin = input("请输入管理员账号:")
        if self.admin != inputAdmin:
            print("账号输入有误!!")
            return 1
        inputPasswd = input("请输入管理员密码:")
        if self.passward != inputPasswd:
            print("密码输入有误!!")
            return 1
        #能执行到这里说明账号密码正确
        print("操作成功!请稍后……")
        time.sleep(2)
        return 0

开户

from card import Card
from user import User
import random
import time
 
class ATM(object):
    def __init__(self, allUsers):
        self.allusers = allUsers
 
    def createUser(self):
        #目标:向用户字典中添加一对键值对(卡号:用户)
        name = input("请输入您的姓名:")
        idCard = input("请输入您的身份证号码:")
        phone = input("请输入您的电话号码:")
        preMoney = int(input("请输入预存款金额:"))
        if preMoney < 0:
            print("预存款输入有误!!开户失败……")
            return 1
 
        onePasswd = input("请设置密码:")
        #验证密码
        if not self.checkPasswd(onePasswd):
            print("密码输入错误!!开户失败……")
            return 1
        #所有需要的信息齐全了
 
        cardStr = self.randomCardId()
        card = Card(cardStr, onePasswd, preMoney)
        user = User(name, idCard, phone, card)
        #存到字典
        self.allusers[cardStr] = user
        print("开户成功!请牢记卡号(%s)……\n(系统将在 3 秒后自动返回!)" % (cardStr))
        time.sleep(3)

查询

 def searchUserInfo(self):
        cardNum = input("请输入您的卡号:")
        user = self.allusers.get(cardNum)
        if self.checkFunc(cardNum, user):
            return 1
        print("账号:%s  余额:%d\n(系统将在 5 秒后自动返回……)" % (user.card.cardId, user.card.cardMoney))
        time.sleep(5)

取款

 def getMoney(self):
        cardNum = input("请输入您的卡号:")
        #验证是否存在卡号
        user = self.allusers.get(cardNum)
        if self.checkFunc(cardNum, user):
            return 1
        getNum = int(input("请输入取款金额:"))
        user.card.cardMoney -= getNum
        print("取款金额:%d   账户余额:%d   手续费:%d\n(系统将在 5 秒后自动返回……)" % (getNum, user.card.cardMoney, 0))
        time.sleep(5)

存款

def saveMoney(self):
        cardNum = input("请输入您的卡号:")
        #验证是否存在卡号
        user = self.allusers.get(cardNum)
        if self.checkFunc(cardNum, user):
            return 1
 
        getNum = int(input("请输入存款金额:"))
        if getNum < 0:
            print("输入有误!!取款失败……")
            return 1
        user.card.cardMoney += getNum
        print("存款金额:%d   账户余额:%d   手续费:%d\n(系统将在 5 秒后自动返回……)" % (getNum, user.card.cardMoney, 0))
        time.sleep(5)

转账

def transfer(self):
        cardNum = input("请输入您的卡号:")
        #验证是否存在卡号
        user = self.allusers.get(cardNum)
        if self.checkFunc(cardNum, user):
            return 1
        tranNum = input("请输入转入账号:")
        tranUser = self.allusers.get(tranNum)
        if not tranUser:
            print("该卡号不存在!!查询失败……")
            return 1
        #判断是否锁定
        if tranUser.card.cardLock:
            print("该卡已被锁定!!请解锁后重试……")
            return 1
        #验证密码
        if not self.checkPasswd(tranUser.card.cardPasswd):
            print("密码输入错误!!该卡已被锁定!!请解锁后重试……")
            tranUser.card.cardLock = True
            return 1
        tranMoney = int(input("请输入转账金额:"))
        if tranMoney > user.card.cardMoney:
            print("余额不足!!转账失败……")
        #开始转账
        user.card.cardMoney -= tranMoney
        tranUser.card.cardMoney += tranMoney
        print("转账成功!转账金额:%d\n(系统将在 5 秒后自动返回……)" % (tranMoney))
        time.sleep(5)

销户

def killUser(self):
        cardNum = input("请输入您的卡号:")
        #验证是否存在卡号
        user = self.allusers.get(cardNum)
        if self.checkFunc(cardNum, user):
            return 1
 
        print("操作成功!请稍候……")
        self.allusers.pop(cardNum)
        time.sleep(2)
        print("该卡号已注销……\n(系统将在 5 秒后自动返回……)")
        time.sleep(5)

运行截图

四:个人小结

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 8
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 15
Development 开发 100 150
Analysis 需求分析(包括学习新技术) 12 6
Design Spec 生成设计文档 5 5
Design Review 设计复审 5 5
Coding Standard 代码规范 3 4
Design 具体设计 10 12
Coding 具体编码 36 21
Code Review 代码复审 5 7
Test 测试(自我测试,修改代码,提交修改) 10 20
Reporting 报告 9 6
Test Report 测试报告 3 2
Size Measurement 计算工作量 2 8
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 6
posted @ 2020-11-18 23:23  计算机183汪学海  阅读(126)  评论(0编辑  收藏  举报