玩命加载中 . . .

使用PyQt5实现带UI界面的简易ATM系统


前言

本项目仅作学习之用,不得用作其他用途。

项目地址:https://github.com/Er-Jia/PyQt5--ATM

运行环境

Win 10 专业版

python 3.8.5

pyQt5

pyqt5安装教程在这里,非常详细,感谢大佬的无私分享

mysql 8.0

使用pymysql与数据库进行交互

实现过程

1.分析系统实现的功能需求

1.管理员界面

开户

开户包括用户信息输入(姓名,电话,身份证号码)和密码确认。

用户信息输入限制条件:选项填入不为空,电话和身份证不能超过一定长度,身份证下不能有已冻结的账号。

密码确认:给用户提供一个六位数字账号,用户输入密码并再次确定密码,密码不为空且只能是六位数字

解锁账户:

输入账户和身份证号解锁,判断输入是否符合规范

注销账户:

输入账户和密码注销账户,判断输入是否符合规范

登录:

输入账户和密码登录,判断输入是否符合规范,三次密码输错后账号冻结

2.ATM界面

存款,取款,转账,查询,退卡(此处应有每个界面输入密码功能,但是时间仓促就没加)

存款包括选择金额存款和自定义金额存款

取款包括选择金额取款和自定义金额取款

自定义金额需要判断输入是否符合存取款条件

转账需判断对方账户状况并且判断数入金额是否符合转账条件

所有界面都可以跳转ATM界面或退卡

退卡界面会在显示10秒钟之后直接跳转到管理员界面

3.与mysql进行交互

所有增删改查操作都需要与数据库进行交互

2.界面设计

使用Qtdesigner工具进行系统界面设计

总共有13个界面

1.管理员界面 (manager.py)

2.用户信息输入界面 (signin.py)

3.账号输出和密码确认界面 (signin1.py)

4.解锁账户 (unlock.py)

5.注销账户 (signout.py)

6.登录 (login.py)

7.ATM界面 (atm.py)

8.存款 (deposit.py)

9.自定义金额存款 (deposit1.py)

10.取款 (cash.py)

11.自定义金额取款 (cash1.py)

12.转账 (transfer.py)

13.查询 (inquiry.py)

14.退卡 (card_out.py)

数据库设计

系统数据库只有两张表

user表(姓名(name),电话(tel),身份证号(id))

card表(卡号(cno),持卡人身份证(id),密码(pwd),账户余额(balance),账户状态(status))

具体如下图:

image-20210723005255840

函数设计

main.py

界面实例定义

界面之间跳转函数

各种功能实现函数(夹杂在界面跳转函数之内,使用func内的函数)

按键和函数连接

func.py

各种与数据库交互功能

包括各种增删改查操作

系统运行截图

管理界面

image-20210723001721864

开户界面

image-20210723001818474

登录界面

image-20210723001857440

atm界面

image-20210723002039378

取款界面

image-20210723002108261

查询界面

image-20210723004358048

总结

时间较为紧张,很多功能并未实现,细节方面也很粗略,估计也没有机会再去完善,暂且如此吧


文章作者: Er-Jia
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Er-Jia !
评论
  目录