• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 使用Python3 编写简单信用卡管理程序

使用Python3 编写简单信用卡管理程序

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python3程序开发指南,python3小程序,python3程序实例,python3爬虫程序,python3程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1、程序执行代码:

#Author by Andy
#_*_ coding:utf-8 _*_
import os,sys,time
Base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(Base_dir)
str="欢迎使用银行信用卡自助服务系统!\n"
for i in str:
  sys.stdout.write(i)
  sys.stdout.flush()
  time.sleep(0.3)
while True:
  print("1、管理人员入口。")
  time.sleep(0.3)
  print("2、用户登录入口。")
  print("3、退出请按q!")
  choice=input(":")
  from core import main
  Exit_flag=True
  while Exit_flag:
    user_choice=main.menu(choice)
    if user_choice == '1':
      main.get_user_credit()
    elif user_choice == '2':
      main.repayment()
    elif user_choice == '3':
      main.enchashment()
    elif user_choice == '4':
      main.change_pwd()
    elif user_choice == '5':
      main.transfer()
    elif user_choice == '6':
      main.billing_query()
    elif user_choice == '7':
      print("该功能正在建设中,更多精彩,敬请期待!")
    elif user_choice == 'a':
      main.change_user_credit()
    elif user_choice == 'b':
      main.add_user()
    elif user_choice == 'c':
      main.del_user()
    elif user_choice == 'd':
      main.change_pwd()
    elif user_choice == 'q' or user_choice == 'Q':
      print("欢迎再次使用,再见!")
      Exit_flag = False
</div>

2、程序功能函数:

#Author by Andy#_*_ coding:utf-8 _*
import json,sys,os,time,shutil
Base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(Base_dir)
#定义认证装饰器
def auth(func):
  def wrapper(*args,**kwargs):
    # print("请输入卡号和密码进行验证!")
    f = open(Base_dir+'\data\\user_db.txt', 'r')
    Log_file = open(Base_dir+'\logs\log.txt', 'a+', encoding='utf-8')
    Bill_log_file = open(Base_dir + '\logs\\bill_log.txt', 'a+', encoding='utf-8')
    func_name = func.__name__
    Time_formate = '%Y-%m-%d %X'
    start_time = time.strftime(Time_formate, time.localtime())
    user_data = json.load(f)
    count=0
    while count < 3:
      global user_id
      global user_pwd
      user_id = input('请输入您的卡号:')
      user_pwd = input('请输入您的密码:')
      if user_id in user_data:
        if user_pwd == user_data[user_id]['Password']:
          Log_file.write(start_time + ' 卡号 %s 认证成功!\n' % user_id)
          Log_file.flush()
          time.sleep(1)
          Log_file.close
          keywords = func(*args, **kwargs)
          if func_name == 'repayment' or func_name == 'transfer' or func_name == 'enchashment':
            Bill_log_file.write(start_time + ' 卡号 '+ user_id + ' 发起 ' + func_name + ' 业务,金额为: %s \n' % keywords)
            Bill_log_file.flush()
            time.sleep(1)
            Bill_log_file.close
            return keywords
          else:
            return keywords
        else:
          print('卡号或密码错误!请重新输入!')
          Log_file.write(start_time + ' 卡号 %s 认证失败!\n' % user_id)
          Log_file.flush()
          time.sleep(1)
          Log_file.close
          count +=1
      else:
        print("卡号不存在,请确认!")
      if count == 3:
        print("对不起,您已输错3三次,卡号已锁定!")
        Log_file.write(start_time + ' 卡号 %s 因连续三次验证失败而被锁定!\n' % user_id)
        time.sleep(1)
        Log_file.close
  return wrapper
#定义菜单函数,根据不同用户显示不通菜单。
def menu(choice):
  if choice == '2':
    print( "请选择服务类别:\n"
       "1、查询信用额度。\n"
       "2、信用卡还款。\n"
       "3、信用卡提现。\n"
       "4、修改口令。\n"
       "5、信用卡转账。\n"
       "6、信用卡账单查询。\n"
       "7、轻松购物。\n"
       "8、退出请按q!\n")
    service_items = input('-->')
  elif choice == '1':
    print("请选择服务类别:\n"
       "a、修改用户信用额度。\n"
       "b、新增信用卡用户。\n"
       "c、删除信用卡用户。\n"
       "d、修改用户口令。\n"
       "e、退出请按q!\n")
    service_items = input('-->')
  else:
    print("感谢使用,祝生活愉快!")
    exit()
  return service_items
# 定义备份用户数据文件函数
def back_up_file():
  Time_formate = '%Y-%m-%d'
  Sys_time = time.strftime(Time_formate, time.localtime())
  shutil.copy(Base_dir + "\data\\user_db.txt", Base_dir + "\data\\user_db--" + Sys_time + ".bak.txt")
#定义获取用户数据信息函数
def get_user_data():
  with open(Base_dir + "\data\\user_db.txt", 'r+',encoding='utf-8') as f:
    user_data = json.load(f)
  return user_data
#定义用户数据变量
user_data = get_user_data()
#定义查询信用额度函数
@auth
def get_user_credit():
  user_credit=user_data[user_id]['Credit']
  print("您目前的信用额度为:%s元\n"
     %(user_credit))
  time.sleep(2)
  return user_credit
#定义信用卡还款函数
@auth
def repayment():
  user_data = get_user_data()
  user_credit=int(user_data[user_id]['Credit'])
  user_balance=int(user_data[user_id]['Balance'])
  user_bill = user_credit - user_balance
  print("您目前需要还款金额为:%s元.\n" %user_bill)
  Exit_flag=True
  while Exit_flag:
    repayment_value=input("请输入还款金额:")
    if repayment_value.isdigit():
      repayment_value=int(repayment_value)
      user_data[user_id]['Balance'] = user_data[user_id]['Balance'] + repayment_value
      f = open(Base_dir + "\data\\user_db.txt", 'r+', encoding='utf-8')
      json.dump(user_data, f)
      f.close()
      print("恭喜,还款成功!")
      print("您目前需要还款金额为:%s元.\n" % (user_data[user_id]['Credit'] - user_data[user_id]['Balance']))
      time.sleep(1)
      Exit_flag = False
      return repayment_value
    else:
      print("请输入正确的金额!")
#定义信用卡提现函数
@auth
def enchashment():
  user_credit=user_data[user_id]['Credit']
  print("你可用的取现额度为:%s" %user_credit)
  Exit_flag=True
  while Exit_flag:
    enchashment_value=input("请输入您要取现的金额:")
    if enchashment_value.isdigit():
      enchashment_value=int(enchashment_value)
      if enchashment_value % 100 == 0:
        if enchashment_value <= user_credit:
          user_data[user_id]['Balance'] = user_credit - enchashment_value
          f = open(Base_dir + "\data\\user_db.txt", 'r+', encoding='utf-8')
          json.dump(user_data, f)
          f.close()
          print("取现成功,您目前的可用额度为:%s" %user_data[user_id]['Balance'])
          time.sleep(1)
          Exit_flag = False
          return enchashment_value
        else:
          print("您的取现额度必须小于或等于您的信用额度!")
      else:
        print("取现金额必须为100的整数倍!")
    else:
      print("输入有误,取现金额必须为数字,且为100的整数倍")
@auth
#定义信用卡转账函数
def transfer():
  user_balance=user_data[user_id]['Balance']
  print("您目前的可用额度为:%s" %user_balance)
  Exit_flag=True
  while Exit_flag:
    transfer_user_id = input("请输入对方帐号:")
    transfer_value = input("请输入转账金额:")
    if transfer_user_id in user_data.keys():
      while Exit_flag:
        if transfer_value.isdigit():
          while Exit_flag:
            transfer_value=int(transfer_value)
            user_passwd=input("请输入口令以验证身份:")
            if user_passwd == user_data[user_id]['Password']:
              user_balance = user_balance- transfer_value
              user_data[transfer_user_id]['Balance']=int(user_data[transfer_user_id]['Balance']) + transfer_value
              f = open(Base_dir + "\data\\user_db.txt", 'r+', encoding='utf-8')
              json.dump(user_data, f)
              f.close()
              print("转账成功,您目前的可用额度为:%s" % user_balance)
              time.sleep(1)
              Exit_flag = False
              return transfer_value
            else:
              print("密码错误,请重新输入!")
        else:
          print("转账金额,必须为数字,请确认!")
    else:
      print("帐号不存在,请确认!")
# @auth
#定义信用卡账单查询函数

  


 

您可能想查找下面的文章:

  • 使用Python3 编写简单信用卡管理程序

相关文章

  • tensorflow模型继续训练 fineturn实例
  • python连接mysql数据库示例(做增删改操作)
  • Python实现压缩与解压gzip大文件的方法
  • Pycharm学习教程(5) Python快捷键相关设置
  • 使用url_helper简化Python中Django框架的url配置教程
  • Python多线程和队列操作实例
  • Python中使用glob和rmtree删除目录子目录及所有文件的例子
  • Python实现给文件添加内容及得到文件信息的方法
  • python 查找文件夹下所有文件 实现代码
  • 详解Python实现按任意键继续/退出的功能

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中在脚本中引用其他文件函数的实现方法
    • python通过get,post方式发送http请求和接收http响应的方法
    • python用装饰器自动注册Tornado路由详解
    • Python通过select实现异步IO的方法
    • python web框架学习笔记
    • Python编程中的异常处理教程
    • 在Django的session中使用User对象的方法
    • python操作数据库之sqlite3打开数据库、删除、修改示例
    • 在Django中同时使用多个配置文件的方法
    • Python实例之wxpython中Frame使用方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有