Python入门学习笔记——22.Python编程阶段项目-ATM

'''
使用面向对象编程完成ATM系统

1.注册功能:用户名,手机号,身份证号(18位),密码(两次确认,长度6位)
2.查询功能:账号必须存在,密码(三次机会,不对就锁卡)
3.取款功能:账号必须存在,密码(三次机会,不对就锁卡),取款金额不能大于存款
4.存款功能:账号必须存在,存款金额不能低于0
5.转帐功能:你的账户,转款账户都必须存在,密码(三次机会,不对就锁卡),转账金额不能超过余额
6.锁卡功能:账号必须存在,可以使用密码冻结,还可以使用身份证号冻结
7.解卡功能:账号必须存在,只能使用身份证号进行解锁
8.补卡功能:使用身份证进行补卡,每个身份证只能有一张卡,之前的卡作废
9.改密功能:愿密码进行改密,也可以使用身份证进行改密
10.退出功能:保存数据

扩展功能
给当前ATM增加一个交易记录的功能
就像存折一样,每次对金额的变动都需要记录下来

每个银行卡都有自己的交易记录
记录的格式:
[2019/12/12 12:12:12]存款200元,余额300元。
[2019/12/12 13:13:13]转账向用户:张三,卡号: 100100转账100元,余额200元。
'''

main.py

from operation import Operation
#主程序
class Main:
    def begin():
        while True:
            print('***欢迎使用ATM自动存取款系统***')
            print('有以下功能可供选择:')
            print('      1.注册    2.查询')
            print('      3.取款    4.存款')
            print('      5.转账    6.锁卡')
            print('      7.解卡    8.补卡')
            print('      9.改密    0.退出')
            print('****************************')
            n=int(input('请输入序号选择相应功能:'))
            if n==1:
                o.zhuce()
            elif n==2:
                o.chaxun()
            elif n==3:
                o.get_money()
            elif n==4:
                o.save_money()
            elif n==5:
                o.trans_money()
            elif n==6:
                o.lock()
            elif n==7:
                o.unlock()
            elif n==8:
                o.new_card()
            elif n==9:
                o.change_pwd()
            elif n==0:
                print('退出系统成功,欢迎下次使用!')
                o.save()
                break
            else:
                print('输入不符合规范,请重新输入')

if __name__=='__main__':
    o = Operation()
    Main.begin()

operation.py

from card import Card
from person import Person
import random
import pickle
import os
import time
class Operation():

    def __init__(self):
        #加载卡号用户
        self.load_user()
        #加载用户身份证号
        self.load_user_id()

    #保存
    def save(self):
        with open('user.txt', 'wb') as f:
            pickle.dump(self.user_dict, f)#dump  写入
        with open('userid.txt', 'wb') as f:
            pickle.dump(self.user_id_dict, f)

    #读取
    def load_user(self):
        #如果文件存在   读取文件内容给字典
        if os.path.exists('user.txt'):
            with open('user.txt', 'rb') as f:
                self.user_dict = pickle.load(f)
        else:
            #如果不存在 字典为空
            self.user_dict = {
   }

    #读取user_id
    def load_user_id(self):
    	#如果文件存在,则进行读取
        if os.path.exists('userid.txt'):
            with open('userid.txt', 'rb') as f:
                self.user_id_dict = pickle.load(f)
        #不存在就把user_id_dict设置为空字典
        else:
            self.user_id_dict = {
   }

    #####################################################################
    #1.注册功能:用户名,手机号,身份证号(18位),密码(两次确认,长度6位)
    def zhuce(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值