ATM
<h1><center> ATM系统项目说明文档</center></h1>
<p>运用Python基础知识,来模拟出银行系统。
要求:使用面对对象编程来完成项目开发</p>
<h2>ATM系统的主要功能:</h2>
<ol>
<li>注册 :用户名,手机号,身份证(18位),密码(两次确认,长度6位)</li>
<li>查询 : 账号必须存在,密码(三次机会,不对锁卡)</li>
<li>取款 :账号必须存在,密码(三次机会,不对锁卡),取款金额不能大于存款</li>
<li>存款 :账号必须存在,存款金额不能对于0</li>
<li>转账 :你的账户,转账账户都必须存在,密码(三次机会,不对就锁卡),转账金额不能大于存款</li>
<li>锁卡 :账号必须存在,可以使用密码冻结,还可以使用身份证号冻结</li>
<li>解卡 :账号必须存在,只能使用身份证号进行解锁</li>
<li>补卡 :使用身份证进行补卡,每个身份证只能有一张卡,之前的卡作废</li>
<li>改密 :原密码进行改密,也可以使用身份证进行改密</li>
<li>退出 :(保持)</li>
</ol>
<h2>项目分析</h2>
<p>根据要求进行分析,思考如何对项目进行设计和架构</p>
<h3>问题一 :如何使用面对对象编程思想来完成?</h3>
<h3>问题二 :当前的项目功能和项目演示中,大家看到几个对象?</h3>
<h3>银行卡对象 :Card 存储银行卡信息</h3>
<p>卡号 :cardid
密码 :passwrod
余额 :money
锁卡 :islock</p>
<h3>用户对象 :Person 存储用户信息</h3>
<p>用户名 :name
身份证号 :userid
手机号 :phone
卡 :card 银行卡对象</p>
<h3>操作器对象 :Controller 具体的操作控制类</h3>
<ol>
<li>注册 :regiser</li>
<li>查询 :query</li>
<li>取款 :get_money</li>
<li>存款 :add_money</li>
<li>转账 :save_money</li>
<li>锁卡 :lock</li>
<li>解卡 :unlock</li>
<li>补卡 :new_card</li>
<li>改密 :change_pwd</li>
<li>退出 :save</li>
</ol>
<h3>视图对象 :Views,显示操作界面</h3>
<p>欢迎界面,操作界面</p>
<h3>思考如何存储数据?</h3>
<p>使用文件进行存储
卡号 :用户==user——dict == user.text
身份证 :卡号 == user——id_dict == userid.text</p>
<h3>开发周期</h3>
<p>花4小时左右的时间,去分析这个项目
花6小时左右的时间,去完成和实现项目</p>
<h3>扩张功能</h3>
<p>给当前ATM增加一个 交易记录 的功能
像存折一样,对每次的金额变动进行记录</p>
<p>记录的格式:
[2021/12/15 12:12:12] 存款200元,余额300元
[2021/12/15 12:12:13] 取款200元,余额100元</p>
<h3>目录说明</h3>
<p>main.py = 主程序文件
Packages = 创建文件包,模块</p>
<ol>
<li><strong>init</strong>.py</li>
<li>CardClass.py = 银行卡类</li>
<li>ControllerClass.py = 操作类</li>
<li>PersonClass.py = 用户类</li>
<li>ViewClass.py = 视图类
Databases = 存放数据</li>
<li>user.text = 用户信息</li>
<li>userid.text = 银行卡信息</li>
</ol>
<h3>列表树状图</h3>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/d2f7beb699753a7329f9937bcfe4183c" alt="" /></p>