zoukankan      html  css  js  c++  java
  • 第二模块:函数编程 第3章·作业讲解

    • 01ATM作业讲解-做作业的步骤
    • 02ATM作业讲解-需求分析
    • 03ATM作业讲解-画流程图
    • 04ATM作业讲解-搭项目架构
    • 05ATM作业讲解-用户认证代码讲解
    • 06ATM作业讲解-用户认证代码和日志代码
    • 07ATM作业讲解-功能分发器代码讲解
    • 08ATM作业讲解-查看账户信息代码讲解
    • 09ATM作业讲解-取现功能代码讲解
    • 10ATM作业讲解-交易中心代码讲解
    • 11ATM作业讲解-后续功能思路讲解
    • 12员工信息表作业讲解-作业思路解析
    • 13员工信息表作业讲解-设计员工表在内存里的数据结构
    • 14员工信息表作业讲解-编写解析where语句的方法
    • 15员工信息表作业讲解-编写解析where语句条件过滤方法
    • 16员工信息表作业讲解-编写解析find语句的方法
    • 17员工信息表作业讲解-使打印数据变得好看
    • 18员工信息表作业讲解-开发update修改功能
    • 19员工信息表作业讲解-开发update修改功能2
    • 20员工信息表作业讲解-支持不加where的语句
    • 21员工信息表作业讲解-作业总结

    01ATM作业讲解-做作业的步骤

    1、作业步骤分析;

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # __Author__:Administrator
    # Version:python3.6.5
    # Date:2018/6/3 0003 23:15
    #01ATM作业讲解-做作业的步骤
    ""
    #作业需求如下:
    """
    额度 15000或自定义
    实现购物商城,买东西加入 购物车,调用信用卡接口结账
    可以提现,手续费5%
    支持多账户登录
    支持账户间转账
    记录每月日常消费流水
    提供还款接口
    ATM记录操作日志
    提供管理接口,包括添加账户、用户额度,冻结账户等。。。
    用户认证用装饰器
    """
    #解题思路:
    """
    1、分析功能、需求;
    2、真的不着急下手编码,先画出流程图;
    3、搭建项目的框架,写软件相当于盖楼,先‘建造’主体框架,再填充具体内容;
    """

    02ATM作业讲解-需求分析

    1、项目需求分析;

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # __Author__:Administrator
    # Version:python3.6.5
    # Date:2018/6/3 0003 23:21
    #需求分析过程
    "模拟实现一个ATM+购物商城程序"
    """
    1、额度 15000或自定义;
    2、实现购物商城,买东西加入购物车,调用信用卡接口结账;
    3、可以提现,手续费为5%
    4、实现多账户登录;
    5、支持账户间转账;
    6、记录每月日常消费流水;
    7、提供还款接口;
    8、ATM记录操作日志;
    9、提供管理接口,包括添加账户、用户额度、冻结账户等;
    10、用户认证用装饰器;
    
    1)账户数据的增删改查; 加钱或减钱
    2)日志操作;
    3)模块间的相互调用;
    4)功能的重用(使用函数)
    """

    03ATM作业讲解-画流程图

    1、使用Processon在线作图软件;

    https://www.processon.com/diagraming/5b140964e4b02e4b26f270c0

    04ATM作业讲解-搭项目架构

    1、开始搭建项目架构;

    05ATM作业讲解-用户认证代码讲解

    06ATM作业讲解-用户认证代码和日志代码

    07ATM作业讲解-功能分发器代码讲解

    08ATM作业讲解-查看账户信息代码讲解

    09ATM作业讲解-取现功能代码讲解

    10ATM作业讲解-交易中心代码讲解

    11ATM作业讲解-后续功能思路讲解

    12员工信息表作业讲解-作业思路解析

    1、不断去让你做你认为做不到的事情,才会成长!

    2、作业的本质——对文件中的内容进行“增删改查”。

    13员工信息表作业讲解-设计员工表在内存里的数据结构

    1、将数据处理后,放置于字典中;

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # __Author__:Administrator
    # Version:python3.6.5
    # Date:2018/6/9 0009 8:15
    ""
    """
    现要求你写一个简单的员工信息增删改查程序,需求如下:
    1,Alex Li,22,13651054608,IT,2013‐04‐01
    2,Jack Wang,28,13451024608,HR,2015‐01‐07
    3,Rain Wang,21,13451054608,IT,2017‐04‐01
    4,Mack Qiao,44,15653354208,Sales,2016‐02‐01
    5,Rachel Chen,23,13351024606,IT,2013‐03‐16
    6,Eric Liu,19,18531054602,Marketing,2012‐12‐01
    7,Chao Zhang,21,13235324334,Administration,2011‐08‐08
    8,Kevin Chen,22,13151054603,Sales,2013‐04‐01
    9,Shit Wen,20,13351024602,IT,2017‐07‐03
    10,Shanshan Du,26,13698424612,Operation,2017‐07‐02
    
    1.可进行模糊查询,语法至少支持下面3种查询语法:
    2.可创建新员工纪录,以phone做唯一键(即不允许表里有手机号重复的情况),staff_id需自增
    3.可删除指定员工信息纪录,输入员工id,即可删除
    4.可修改员工信息,语法如下:
    find name,age from staff_table where age > 22
    find * from staff_table where dept = "IT"
    find * from staff_table where enroll_date like "2013"
    语法: add staff_table Alex Li,25,134435344,IT,2015‐10‐29
    语法: del from staff where id=3
    UPDATE staff_table SET dept="Market" WHERE dept = "IT" 把所有dept=IT的纪录的dept改成Market
    UPDATE staff_table SET age=25 WHERE name = "Alex Li" 把name=Alex Li的纪录的年龄改成25
    5.以上每条语名执行完毕后,要显示这条语句影响了多少条纪录。 比如查询语句 就显示 查询出了多少条、
    修改语句就显示修改了多少条等。
    * 注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!*
    """
    db_file= 'staff.db'#定义数据库文件变量;
    columns = ['id','name','age','phone','dept','enrolled_date']
    def load_db(db_file):
        """
        加载员工信息表,并转成指定格式;
        :param db_file:
        :return:
        """
        data = {}#定义一个空字典;
        for i in columns:
            data[i] =[]
            if columns[-1] in data.keys():
                print(data)#{'id': [], 'name': [], 'age': [], 'phone': [], 'dept': [], 'enrolled_date': []}
        f = open(file=db_file,mode='r',encoding='utf-8')
        for line in f:
            staff_id,name,age,phone,dept,enrolled_date = line.split(',')
            data['id'].append(staff_id)
            data['name'].append(name)
            data['age'].append(age)
            data['phone'].append(phone)
            data['dept'].append(dept)
            data['enrolled_date'].append(enrolled_date)
        print(data)
    load_db(db_file)#通过函数名调用函数的功能;
    def syntax_parser(cmd):
        """
        解析语句,并执行;
        :param cmd:
        :return:
        """
    def main():
        """
        让用户输入语句并执行;
        :return:
        """
        while True:
            cmd = input("[staff_db]:".strip())
            if not cmd:continue
            syntax_parser(cmd)
    1,Alex Li,22,13651054608,IT,2013‐04‐01
    2,Jack Wang,28,13451024608,HR,2015‐01‐07
    3,Rain Wang,21,13451054608,IT,2017‐04‐01
    4,Mack Qiao,44,15653354208,Sales,2016‐02‐01
    5,Rachel Chen,23,13351024606,IT,2013‐03‐16
    6,Eric Liu,19,18531054602,Marketing,2012‐12‐01
    7,Chao Zhang,21,13235324334,Administration,2011‐08‐08
    8,Kevin Chen,22,13151054603,Sales,2013‐04‐01
    9,Shit Wen,20,13351024602,IT,2017‐07‐03
    10,Shanshan Du,26,13698424612,Operation,2017‐07‐02
    staff_db

    14员工信息表作业讲解-编写解析where语句的方法

    1

    15员工信息表作业讲解-编写解析where语句条件过滤方法

    16员工信息表作业讲解-编写解析find语句的方法

    17员工信息表作业讲解-使打印数据变得好看

    18员工信息表作业讲解-开发update修改功能

    19员工信息表作业讲解-开发update修改功能2

    20员工信息表作业讲解-支持不加where的语句

    21员工信息表作业讲解-作业总结

  • 相关阅读:
    DateTime.TryParseExact 万能时间格式转化 DateTime.TryParse
    post接收raw传递数据
    下载文件到本地
    ICollection<T>转lsit
    导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html
    Task.Run() 和Task.Factory.StarNew()的区别
    策略模式与简单工厂模式
    Task
    sql语句select group by order by where一般先后顺序
    拼接in时注意事项
  • 原文地址:https://www.cnblogs.com/tqtl911/p/9109935.html
Copyright © 2011-2022 走看看