大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第X篇文章,第三阶段的课程:Python进阶知识:知识总结,用前面写过的项目写一个简单的ATM取款机(上)。
经过60多篇文章,我们掌握了计算机的基础知识、Python的基础知识,包括:运算符、常量与变量、Python中的数据类型及方法、流程控制、文件的读写操作、模块与包、异常处理、常用内置库、函数等知识;理论上,使用现在所掌握的知识已经可以完成很多需求了;所以,我们现在可以使用前面所学的内容写一个简单的项目,模拟开发一个A简单TM取款机。
我们做任何项目(不论项目大小)都应该把需求、实现需求的流程整理清楚;
一、ATM取款机都有哪些功能(需求)呢?
按照使用的流程思考,一般的ATM取款机的功能如下:
1、登陆功能(插入银行卡,能够识别银行卡,输入密码,能够验证密码);
2、查询余额功能;
3、取款功能;
4、存款功能;
5、修改密码的功能;
6、转账功能;
7、退出功能;
二、要实现这些功能,我们需要开发什么内容?
一般软件都是以MVC架构的方式,包括:用户视图层、逻辑接口层、数据处理层共3层结构;
A. 用户视图层:用户最终看到的结果都将展现在这里,用户的各种操作结果都会返回到这里;
B. 逻辑接口层:处理用户所有的操作需求;
C. 数据处理层:用户的数据创建、修改、保存、删除操作;
如果前面的看不懂,没关系,下面是另一个解说版本:
1、前端视图
我们需要开发一个用户界面,这个界面是给ATM机的用户看的,用户在上面可以通过相应的操作实现指定的功能;
2、后端的逻辑处理
用户登陆ATM机,我们需要判断账号和密码是否正确;用户取款,我们要判断用户的余额;取款、存款、修改密码、查询余额、转账等这些功能我们都需要进行相应的判断 ;
需要实现这些逻辑,我们就必须在用户看不到的地方(后台),有一整套逻辑实现这些功能;
3、数据的交互
如果我们只是管理1个或者是10个人的银行卡账户,我们不需要做什么数据交互;但ATM机一般都会有几万甚至几百万的客户进行使用,为了保证能够方便管理所有客户的信息,我们必须为每一个客户都建立独立的数据档案(这个是必须的!);
数据的交互一般包括两个方面:读取数据和修改并保存数据;
所有软件,不管是大型还是小型,都是基于这种框架进行设计;前端是给用户看和操作的(比如:浏览器),后端的逻辑处理是核心,根据处理的逻辑进行相应的操作,数据的操作是独立的;比如:MVC、MTV、BS、CS之类的框架都差不多,万变不离其宗,最终还是前端 、后端、数据分享的模式,因为这样的模式是比较科学,也比较方便团队协作与开发。
三、站在程序猿的角度,ATM机的一般使用流程
整个软件的运行流程如下:
1. 用户提交操作(用户视图层)====>>
2. 将操作与数据传递给逻辑接口层====>>
3. 逻辑接口层经过判断====>>
4. 调用数据(数据处理层)====>>
5. 将结果返回给用户(用户视图层)。
下面是另一个版本解说:
1、用户插入银行卡,输入密码;
2、银行卡的账号和密码被读取并加密,传输入到后台;
3、程序触发了校验账户和密码的功能;
① 首先,先从数据库中查找账户信息,如果没有这个账户会返回“没有这个账户的”报告;
② 如果存在这个账户,程序会将这个账户的信息读取;将前端传输过来的数据和后台读取的数据进行校验,校验一致,返回“登陆成功的界面”;校验不通过,返回“密码错误的”提示;
4、到了这里,用户已经成功登陆了,这个时候用户可以进行其他的操作(如:取款),直到退出。
前面的步骤1、2、3就是登陆功能的基础逻辑,后面的查询余功能、取款功能、转账功能都跟这个逻辑差不多;先判断,判断通过了执行哪一步,判断不通过执行什么。
其实,很多大型的程序,都是由无数个这种简单条件判断的逻辑组成的;如果你不在乎程序的效率,甚至只要有N个if、else、elif也能实现特别复杂的功能。
最后,我们已经将需要开发的功能和实现功能的逻辑、ATM机的架构都理清楚了,下一篇文章我们开始写具体的代码;
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。