25.ATM+购物车 项目开发实战(上)

1.编写README.md

 

在pycharm中,新建的文件如果扩展名是md,会自动打开Markdown编辑器。

# 项目的说明书
## 项目:ATM + 购物车

# 项目需求:
    1.额度15000或自定义     -->  注册功能
    2.实现购物商城,买东西加入购物车,调用信用卡接口结账  --> 购物功能、支付功能
    3.可以提现,手续费5%   --> 提现功能
    4.支持多账户登录  --> 登录功能
    5.支持账户间转账  --> 转账功能
    6.记录日常消费 -->  记录流水功能
    7.提供还款接口 -->  还款功能
    8.ATM记录操作日志 --> 记录日志功能
    9.提供管理接口,包括添加账户、用户额度,冻结账户等。。。 ---> 管理员功能
    10.用户认证用装饰器  --> 登录认证装饰器
    

## "用户视图层" 展示给用户选择的功能
    1、注册功能
    2、登录功能
    3、查看余额
    4、提现功能
    5、还款功能
    6、转账功能
    7、查看流水
    8、购物功能
    9、查看购物车
    10、管理员功能

# 一个项目是如何从无到有
## 一 需求分析
    1.拿到项目,会先在客户那里一起讨论需求,
    商量项目的功能是否能实现,周期与价格,得到一个需求文档。
    
    2.最后在公司内部需要开一次会议,最终得到一个开发文档,
    交给不同岗位的程序员进行开发。
        - Python: 后端,爬虫
        
        - 不同的岗位:
            - UI界面设计:
                - 设计软件的布局,会分局软件的外观切成一张张图片。
            
            - 前端:
                - 拿到UI交给他的图片,然后去搭建网页面。
                - 设计一些页面中,哪些位置需要接收数据,需要进行数据交互。
            
            - 后端:
                - 直接核心的业务逻辑,调度数据库进行数据的增删查改。
            
            - 测试:
                - 会给代码进行全面测试,比如压力测试,界面测试(CF卡箱子)。
            
            - 运维:
                - 部署项目。
        
        
        
    
## 二 程序的架构设计
### 1、程序设计的好处
    1)思路清晰
    2)不会出现写一半代码时推翻重写
    3)方便自己或以后的同事更好维护
    
### 2、三层架构设计的好处
    1)把每个功能都分层三部分,逻辑清晰
    2)如果用户更换不同的用户界面或不同,
    的数据储存机制都不会影响接口层的核心
    逻辑代码,扩展性强。
    3)可以在接口层,准确的记录日志与流水。
    
### 3、三层架构
#### 一 用户视图层
    用于与用户交互的,可以接受用户的输入,打印接口返回的数据。
    
#### 二 逻辑接口层
    接受 用户视图层 传递过来的参数,根据逻辑判断调用数据层加以处理,
    并返回一个结果给 用户视图层。
    
#### 三 数据处理层
    接受接口层传递过来的参数,做数据的 
        - 保存数据  save()
        - 查看数据  select()
        - 更新数据
        - 删除数据

## 三 分任务开发
## 四 测试
## 五 上线



# 统计代码
file ---> settings ---> Plugins ---> 

2.程序架构图

所有的程序架构,大体上都是这么一个架构图。

 3.软件目录

项目目录:

项目文件夹:ATM

        配置相关文件夹conf

                settings.py

        核心算法相关文件夹core

                admin.py

                src.py

        数据相关文件夹db

                user_data文件夹存放数据

                db_handler.py

        数据交互相关文件夹interface

                admin_interface.py

                bank_interface.py

                user_interface.py

                shop_interface.py

        通用组件文件夹lib

                common.py

        日志文件夹log

        启动文件start.py

        软件说明文件README.md

 4.启动文件:start.py

注意:所有软件程序的启动文件都可以这么写,以后可以拿来就用

'''
程序的入口
'''
import sys
import os

# 添加解释器的环境变量
sys.path.append(
    os.path.dirname(__file__)
)

from core import src

# 开始执行项目函数
if __name__ == '__main__':

    # 1、先执行用户视图层
    src.run()

5.主程序框架ATM/core目录下的src.py:

注意:主程序架构所有软件程序都可以借鉴使用

'''
用户视图层
'''
# 全局变量,记录用户是否已登录
login_user = None


# 1、注册功能
def register():
    pass


# 2、登录功能
def login():
    pass


# 3、查看余额
def check_balance():
    pass


# 4、提现功能
def withdraw():
    pass


# 5、还款功能
def repay():
    pass


# 6、转账功能
def transfer():
    pass


# 7、查看流水
def check_flow():
    pass


# 8、购物功能
def shopping():
    pass


# 9、查看购物车
def check_shop_car():
    pass


# 10、管理员功能
def admin():
    pass



# 创建函数功能字典
func_dic = {
    '1': register,
    '2': login,
    '3': check_balance,
    '4': withdraw,
    '5': repay,
    '6': transfer,
    '7': check_flow,
    '8': shopping,
    '9': check_shop_car,
    '10': admin,
}


# 视图层主程序
def run():
    while True:
        print('''
        ===== ATM + 购物车 =====
            1、注册功能
            2、登录功能
            3、查看余额
            4、提现功能
            5、还款功能
            6、转账功能
            7、查看流水
            8、购物功能
            9、查看购物车
            10、管理员功能
        ========= end =========
        ''')

        choice = input('请输入功能编号: ').strip()

        if choice not in func_dic:
            print('请输入正确的功能编号!')
            continue

        func_dic.get(choice)()  # func_dic.get('1')() ---> register()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值