用python写出银行管理系统

1 问题

怎么利用已学的python知识简单写出一个银行管理系统,且编写出开户、查询、取款、存款、转账和管理员登录等功能。

2 方法

使用def定义函数、while循环函数、if函数和import函数并带上一些简单的逻辑思维便可以轻松解决这个看似困难实则简单的程序。

#   1.开户
def kaihu():
xingming=input("请输入姓名:")
shenfenzheng=input("请输入身份证:")
shoujihao=input("请输入手机号:")
mima=int(input("请输入密码:"))mima1=int(input('请再次输入密码:'))while mima!=mima1:print("密码输入有误!请重新开户!")
mima=int(input("请输入密码:"))mima1=int(input('请再次输入密码:'))return mima
def kaihu1():
jine=int(input("请输入预存金额:"))print(f"存款成功!您的卡号为{suijikahao},短信已发至您的,手机号上,请注意查收!\n")return jine
kahaomima()
#   合并卡号密码字典
def Merge(kahaomima,zongkahaomima):
ppp = {**kahaomima, **zongkahaomima}return ppp
#   卡号密码字典
def kahaomima(a):
kahaomima={}
kahaomima[suijikahao]=areturn kahaomima
#   合并卡号金额字典
def Jine(kahaojine,zongkahaojine):
eee = {**kahaojine, **zongkahaojine}return eee
#   卡号密码字典
def kahaojine(aa):
kahaojine={}
kahaojine[suijikahao]=aareturn kahaojine
#   随机号码
def Suijikahao():import randoms1=0s2=0s3=0s4=0s5=0s6=0s1=random.randint(0,9)while s2==s1:s2=random.randint(0,9)while s3==s1 or s3==s2:s3=random.randint(0,9)while s4==s1 or s4==s2 or s4==s3:s4=random.randint(0,9)while s5==s1 or s5==s2 or s5==s3 or s5==s4:s5=random.randint(0,9)while s6==s1 or s6==s2 or s6==s3 or s6==s4 or s6==s5:s6=random.randint(0,9)if s1==0:x=s2*100000+s3*10000+s4*1000+s5*100+s6*10else:x=s1*100000+s2*10000+s3*1000+s4*100+s5*10+s6return x
#   2 .查询
def chaxun():
kahao=int(input("请输入您的卡号:"))if kahao in zongkahaomima:
mima=input("请输入您的密码:")
fansile=str(zongkahaomima[kahao])
jihui=3
huihe=1while mima!=fansile:
cishu=3-huihe
mima=input(f"密码错误!\n您还有{cishu}次机会,请再次输入密码:")
huihe+=1if cishu==0:print("密码错误次数已达三次,正在返回功能界面!")return 0print(f"您的账户余额为:{zongkahaojine[kahao]}元\n")else:print("你输入的卡号不存在!将返回主界面!")return 0
#   3.取款
def qukuan():
kahao=int(input("请输入您的卡号:"))gg=123if kahao in zongkahaomima:
mima=input("请输入您的密码:")
fansile=str(zongkahaomima[kahao])
jihui=3
huihe=1while mima!=fansile:
cishu=3-huihe
mima=input(f"密码错误!\n您还有{cishu}次机会,请再次输入密码:")
huihe+=1if cishu==0:print("密码错误次数已达三次,正在返回功能界面!")return ggreturn kahaoelse:print("你输入的卡号不存在!将返回主界面!")return gg
def qukuan1():
qukuan=int(input("密码正确!\n请输入取款金额:"))global yuewhile qukuan>yue:
qukuan=int(input("余额不足!请重新输入取款金额:"))
aaaa=int(zongkahaojine[kahao])
yue=aaaa-qukuanprint(f"取款成功!请留意手机信息!\n您的余额为:{yue}元\n")return yue
#   4.存款
def cunkuan():
kahao=int(input("请输入您的卡号:"))gg=123if kahao in zongkahaomima:
mima=input("请输入您的密码:")
fansile=str(zongkahaomima[kahao])
jihui=3
huihe=1while mima!=fansile:
cishu=3-huihe
mima=input(f"密码错误!\n您还有{cishu}次机会,请再次输入密码:")
huihe+=1if cishu==0:print("密码错误次数已达三次,正在返回功能界面!")return ggreturn kahaoelse:print("你输入的卡号不存在!将返回主界面!")return gg
def cunkuan1():
cunkuan=int(input("密码正确!\n请输入存款金额:"))
aaaa=int(zongkahaojine[kahao])
yue=aaaa+cunkuanprint(f"存款成功!请留意手机信息!\n您的余额为:{yue}元\n")return yue
#   5.转账
def zhuanzhang():
kahao=int(input("请输入您的卡号:"))gg=123if kahao in zongkahaomima:
mima=input("请输入您的密码:")
fansile=str(zongkahaomima[kahao])
jihui=3
huihe=1while mima!=fansile:
cishu=3-huihe
mima=input(f"密码错误!\n您还有{cishu}次机会,请再次输入密码:")
huihe+=1if cishu==0:print("密码错误次数已达三次,正在返回功能界面!")return ggreturn kahaoelse:print("你输入的卡号不存在!将返回主界面!")return gg
def zhuanzhang1():
kahao=int(input("请输入您要转账的卡号:"))gg=123if kahao in zongkahaomima:
mima=input("请输入您的密码:")
fansile=str(zongkahaomima[kahao])
jihui=3
huihe=1while mima!=fansile:
cishu=3-huihe
mima=input(f"密码错误!\n您还有{cishu}次机会,请再次输入密码:")
huihe+=1if cishu==0:print("密码错误次数已达三次,正在返回功能界面!")return ggreturn kahaoelse:print("你输入的卡号不存在!将返回主界面!")return gg
def zhuanzhang2():
zhuanzhang=int(input("密码正确!\n请输入转账金额:"))return zhuanzhang
def zhuanzhang3():
aaaa=int(zongkahaojine[kahao1])
yue=aaaa-zhuanprint(f"转账成功!请留意手机信息!\n您的余额为:{yue}元\n")return yue
#   主界面
def zhujiemian():import timeprint("正在进入系统,请稍后......")
time.sleep(1)print("正在进入系统,请稍后......(3)")
time.sleep(1)print("正在进入系统,请稍后......(2)")
time.sleep(1)print("正在进入系统,请稍后......(1)")
time.sleep(1)print("*"*40)print("*"*40)print("***      1.开户        2.查询        ***\n***                                  ***   \n***      3.取款        4.存款        ***")print("***                                  ***\n***      5.转账        6.锁定        ***\n***                                  ***   \n***      7.解锁        8.退出        ***")print("*"*40)print("*"*40)
#---------------------------------------------------------------------------------
guanliyuanid='admin'
guanliyuanpsw='admin123'
guanliyuanzhanghu=str(input("请输入管理员账户:"))
guanliyuanmima=str(input("请输入密码:"))
while guanliyuanid != guanliyuanzhanghu or guanliyuanpsw != guanliyuanmima:    
guanliyuanzhanghu=input("账号或密码错误!请重新输入!\n请输入管理员账户:")
guanliyuanmima=input("请输入密码:")print("欢迎登录银行系统")
zhujiemian()
zongkahaomima={}
zongkahaojine={}
a = str()
aa = str()
x=0
while x!=13841354351384354381813543846846438:#不知道输入什么就输入一串神秘代码x=int(input("请输入你的操作(输入数字1~8):"))if x==1:
suijikahao=Suijikahao()a = kaihu()aa = kaihu1()Merge(kahaomima(a),zongkahaomima)
zongkahaomima = Merge(kahaomima(a), zongkahaomima)
Jine(kahaojine(aa),zongkahaojine)
zongkahaojine = Jine(kahaojine(aa),zongkahaojine)
yue=aaif x==2:
chaxun()if x==3:
kahao = qukuan()if kahao!=123:
yue = qukuan1()
zongkahaojine[kahao]=yueif x==4:
kahao = cunkuan()if kahao!=123:
yue = cunkuan1()
zongkahaojine[kahao]=yueif x==5:kahao1 = zhuanzhang()if kahao1!=123:
zhuan = zhuanzhang2()kahao2 = zhuanzhang1()if kahao2!=123:
yue = zhuanzhang3()
zongkahaojine[kahao1]=yue
zongkahaojine[kahao2]=zongkahaojine[kahao2]+zhuanif x==8:
zhanghu=str(input("请输入账户:"))
mima=str(input("请输入密码:"))if zhanghu==guanliyuanid and mima==guanliyuanpsw:print("退出成功!")breakelse:print("账号或密码错误!将重新加载主界面!")
zhujiemian()

3 结语

 通过这个程序可以更加简单的了解银行管理系统的运行方法,更可以加强我们的逻辑思维和严谨性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BAT 利用BAT替换SQL文件中的参数成为可执行SQL文件

1. BAT文件 将下面的代码保存成“01_ExeSqlCre.bat”文件。 echo off SETLOCAL ENABLEDELAYEDEXPANSIONIF EXIST %~dp0\10_Program_Exec.sql (DEL /Q %~dp0\10_Program_Exec.sql )CHCP 65001 FOR /F "EOL. TOKENS* DELIMS" %%a IN (dir /a /b *.sql) DO (FOR /F &q…

ACIS中如何求点在FACE参数域内的坐标

1. 点在 FACE 上 如果点在FACE上,可以采用surface的直接接口:surface::param、surface::test_point和surface::test_point_tol。 virtual SPApar_pos surface::param ( const SPAposition & pos, const SPApar_pos & param_guess SpaAcis::…

【SQL Server数据库】数据的增删改操作

目录 一、用SQL语句完成下列功能。 1、新开设一门课程,名叫网络安全与防火墙,学时40,编号为“0118”,主要介绍网络的安全与主要的防火墙软件。 2、先建立monitor表,其结构与student表大致一样.…

华为仓颉编程语言观感

这里写自定义目录标题 相似点(主要与Swift进行对比)不同点亮点 花了半天时间,对华为新出的仓颉编程语言做了简单的了解,整体观感如下: 仓颉语言看起来是一门大而全的语言,吸纳了现存的很多中编程语言的范式…

图书管理系统(详解版 附源码)

目录 项目分析 实现页面 功能描述 页面预览 准备工作 数据准备 创建数据库 用户表 创建项目 导入前端页面 测试前端页面 后端代码实现 项目公共模块 实体类 公共层 统一结果返回 统一异常处理 业务实现 持久层 用户登录 用户注册 密码加密验证 添加图书…

Cesium默认bing地图数据,还支持哪些地图的数据源呢?

传统的前端开发增长乏力了,新兴的web3D方向前端开发需求旺盛,这一块在国外很成熟,在国内兴起不久, 甚至很多前端老铁都没听过,没见过,没有意识到,前端除了框架、vue、uniapp这些烂大街的&#x…

黑马苍穹外卖7 用户下单+订单支付(微信小程序支付流程图)

地址簿 数据库表设计 就是基本增删改查,与前面的类似。 用户下单 用户点餐业务流程: 购物车-订单提交-订单支付-下单成功 展示购物车数据,不需要提交到后端 数据库设计:两个表【订单表orders,订单明细表order_d…

cnpm run dev 报错 Error: Cannot find module ‘fs/promises’

主要原因是babel版本冲突 卸载以下依赖可以解决问题: 之后重新安装babel-loader依赖 可能会报以下错误: 接着安装babel-core依赖 项目顺利启动

【启明智显分享】低成本RISC-V工业级HMI方案推荐

伴随着工业4.0的迅猛发展,工业HMI以方便、快捷的特点逐渐成为工业的日常应用,成为备受追捧的全新多媒体交互设备。 什么是工业HMI?工业HMI是用于工业自动化系统中的人机交互界面,通常由触摸屏、按钮、指示灯、显示器等组成&#…

如何正确使用C#短信接口发送招生短信

群发短信对教育机构来讲虽然是个不错的招生工具,但怎么使用决定着生源转化效率,如果是为了单纯的发短信而发短信效率当然不好,那么如何正确使用招生群发短信呢?技巧才是关键! 教育短信发送较多的就是招生群发短信内容,而运营商对教育行业内容审核一般比较严格,需要短信公司特殊…

新媒体矩阵系统是什么?怎么搭建矩阵系统?

目录 前言: 一、新媒体矩阵分别是什么? 1、横向矩阵 2、 纵向矩阵 二、新媒体矩阵的作用? 1、多元化发展,吸引目标 2、多平台协同,放大宣传效果 3、多平台运营,分散风险 三、怎么做矩阵系统&…

【摄像头标定】双目摄像头标定及矫正-opencv(python)

双目摄像头标定及矫正 棋盘格标定板标定矫正 棋盘格标定板 本文使用棋盘格标定板,可以到这篇博客中下载:https://blog.csdn.net/qq_39330520/article/details/107864568 标定 要进行标定首先需要双目拍的棋盘格图片,20张左右,…

企业微信内嵌H5项目接入聊天功能

产品需求是,在列表中把符合条件的列表接入聊天功能,以下是详细步骤: 1.引入企业微信 <script src"https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js"></script> 2.获取wx签名(必须要) /*** 获取wx签名**/ export function getWxJsApi(data) {r…

RKmedia进行vi-vo模块

一、简介 分析一下rkmedia的代码&#xff0c;给自己加深一下印象 二、代码 2.1 头文件以及定义 首先包含了必要的头文件&#xff0c;以及rkmedia底层的库 static bool quit 是定义了布尔类型的变量来表示这个程序的运行状态 false表示没停止 true表示停止 sigterm_handle…

pdf压缩,pdf压缩在线,pdf文件太大怎么变小

在数字化时代&#xff0c;PDF文档因其跨平台、保持原样、易于阅读和打印等特点&#xff0c;成为了我们日常工作和生活中不可或缺的一部分。然而&#xff0c;随着PDF文件的不断累积&#xff0c;存储空间逐渐变得紧张&#xff0c;特别是在处理大量大型PDF文件时&#xff0c;如何有…

【Python】在 VS Code 里面绘制动图不显示动画的解决办法

在 VS Code 中&#xff0c;可以通过以下步骤来确保动画正确显示&#xff1a; 配置 VS Code 使用适当的绘图后端&#xff1a; VS Code 中使用 matplotlib 的动画功能&#xff0c;需要配置适当的绘图后端。推荐使用 TkAgg 或者 Qt5Agg 后端。你可以在代码中显式指定&#xff1a;…

若依前后端分离项目整合shardingjdbc分表(详细,分片字段订单id)

文章目录 1. 引入Maven依赖2.引入配置文件3.兼容之前的数据库源,使用现在的sharding数据库源&#xff08;shardingjdbc默认的数据源&#xff09;&#xff0c;但是配置好文件之后是没有生效的&#xff0c;需要加配置文件覆盖4. 检测是否成功5. 如何使用&#xff0c;在需要使用的…

qt开发-14_QListwidget 仿qq好友列表制作

QListWidget 继承 QListView。QListWidget 类提供了一个基于项的列表小部件。QListWidg et 是一个便捷的类&#xff0c;它提供了一个类似于 QListView&#xff08;下一小节将讲到&#xff09;提供的列表视图&#xff0c;但 是提供了一个用于添加和删除项目的基于项目的经典接口…

第10章 启动过程组 (启动过程组的重点工作)

第10章 启动过程组 10.3启动过程组的重点工作&#xff0c;在第三版教材第362~364页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;项目启动会议 1、作用 标志着对项目经理责权的定义结果的正式公布&#xff0c;通常由项目经理负责组织和召开。2、目的 使项目各…

数据库常用操作命令

数据库基本操作 #查看数据库 show databases#创建数据库 create database db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;#使用数据库 use db;用户操作 #创建用户 create user 用户名IP地址 identified by 密码;#删除用户 drop user 用户名IP地址;#修改用户 rename user …