zoukankan      html  css  js  c++  java
  • [从零开始学Python]综合实例1

    实例:学员信息管理系统

    在这里插入图片描述

    '''
        学员信息管理系统
        1.学员信息数据源
        2.查看学员信息
        3.添加学员信息
        4.删除学员信息
        5.退出系统
        6.界面和交互
    '''
    
    # 1.学员信息数据源
    stu_list = [
        {'name':'zhangsan','age':20,'classid':'Python01'},
        {'name':'lisi','age':22,'classid':'Python02'},
        {'name':'wangwu','age':26,'classid':'Python03'}
    ]
    
    # 2.查看学员信息
    def show_info():
        '''
    
        :return:
        '''
        if(len(stu_list)==0):
            print('='*20,'没有学员信息','='*20)
        else:
            print('|{0:<5}|{1:<10}|{2:<5}|{3:<10}|'.format('sid','name','age','classid'))
            print('-'*40)
            for i,stu_dict in enumerate(stu_list):
                print('|{0:<5}|{1:<10}|{2:<5}|{3:<10}|'.format(i+1,stu_dict['name'],stu_dict['age'],stu_dict['classid']))
    
    # 3.添加学员信息
    def add_stu(name,age,classid):
        stu_dict={}
        stu_dict['name']=name
        stu_dict['age']=age
        stu_dict['classid']=classid
        stu_list.append(stu_dict)
    
    # 4.删除学员
    def del_stu(sid):
        sid_int = int(sid)
        stu_list.pop(sid_int)
    
    # 5.推出系统
    def loginOut():
        pass
    
    # 6.界面和交互
    while True:
        # 输出初始界面
        print('='*12,'学员管理系统','='*12)
        print('{:1}{:13}{:15}'.format(' ','1.查看学员信息','2.添加学员信息'))
        print('{:1}{:13}{:15}'.format(' ','3.删除学员信息','4.退出系统'))
        print('='*36)
        key = input('请输入对应的选择:')
        # 根据键入值,执行对应操作
        if key=='1':
            print('='*12,'学员信息浏览','='*12)
            show_info()
            input('按下回车继续:')
        elif key=='2':
            print('=' * 12, '添加学员信息', '=' * 12)
            name = input('请输入学生的姓名:')
            age = input('请输入学生的年龄:')
            classid = input('请输入学生的班级号:')
            add_stu(name,age,classid)
            show_info()
            input('按下回车继续:')
        elif key=='3':
            print('=' * 12, '删除学员信息', '=' * 12)
            show_info()
            sid = input('请输入要删除学员的sid:')
            del_stu(int(sid))
            show_info()
            input('按下回车继续:')
        elif key=='4':
            loginOut()
            print('=' * 15, '再见', '=' * 16)
            break
        else:
            print('操作无效!')

    实例:银行信息管理系统

    依照依照这个思路,我们还可以设计一个银行信息管理系统
    在这里插入图片描述

    # 1.银行用户信息表
    
    user_lib = [{"id":"11022701","passwd":'123456','balance':100000},
                {"id":'11022702','passwd':'123457','balance':200000},
                {'id':'11022703','passwd':'123458','balance':300000},
                {'id':'1','passwd':'1','balance':300000}]
    
    # 2.登陆功能
    
    def login_user():
        '''
        @Description:账号认证
        :return:
        '''
    
        print('='*12,'登陆界面','='*12)
        id = input('请输入您的账号:')
        flag = 0
        for i in user_lib:
            if id == i['id']:
                passwd = input('请输入您的密码:')
                if passwd == i['passwd']:
                    print('登陆成功!')
                    print('-' * 39)
                    flag=1
                    user_page2(i['id'])
                else :
                    print('密码错误!')
                    print('-' * 39)
                    input('按回车返回上一级菜单')
                    login_user()
        if flag==0 :
            print('账号不存在!')
            print('-' * 39)
            input("按回车返回上一级菜单。")
            flag=1
    # 2.测试 登陆功能
    # login_user()
    
    # 3.退出功能
    def loginOut():
        print('byebye~')
        pass
    
    # 4.取钱功能
    def useMoney(user_a):
        for i in user_lib:
            if user_a == i['id']:
                num = int(input('请输入您要取出的金额:'))
                if i['balance'] >=num:
                    i['balance'] = i['balance']-num
                    print('您的余额为:',i['balance'],'元!')
                    print('-' * 39)
                    input('按回车返回上一级菜单!')
                else :
                    print("您的余额不足!")
                    print('-' * 39)
                    input('按回车返回上一级菜单!')
    # 4.测试 取钱
    # useMoney('11022701')
    
    # 5.存钱功能
    def saveMoney(user_a):
        for i in user_lib:
            if user_a == i['id']:
                num = int(input('请输入您要存入的金额:'))
                i['balance'] = i['balance']+num
                print('您的余额为:',i['balance'],'元!')
                print('-' * 39)
                input('按回车返回上一级菜单!')
    
    # 5.测试 存钱
    # saveMoney('11022701')
    
    # 6.界面 1
    def uer_page1():
        while True:
            # 设置初始界面
            print('='*12,'网上银行登陆界面','='*12)
            print('{:1} {:13} {:15}'.format(' ','1.登陆到您的账号','2.退出当前界面'))
            print('-'*39)
            key = input('请输入对应的选择:')
            if key == '1' :
                login_user()
            elif key == '2':
                loginOut()
                break
    
    # 6.界面 2
    def user_page2(user_id):
        while True:
            # 设置初始界面
            print('=' * 12, '个人用户界面', '=' * 12)
            print('{:1} {:13} {:15}'.format(' ', '1.在线存款', '2.在线取款'))
            print('{:1} {:13} {:15}'.format(' ', '3.查询余额', '4.返回'))
            print('-' * 39)
            key = input('请输入对应的选择:')
            if key == '1':
                saveMoney(user_id)
            elif key == '2':
                useMoney(user_id)
            elif key == '3':
                for i in user_lib:
                    if user_id == i['id']:
                        print('您的余额为:',i['balance'])
                        print('-' * 39)
                        input('按回车返回上一级菜单!')
            elif key == '4':
                break
                uer_page1()
    
    uer_page1()
      print('您的余额为:',i['balance'])
                    print('-' * 39)
                    input('按回车返回上一级菜单!')
        elif key == '4':
            break
            uer_page1()
    

    uer_page1()

    
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7o4aYBR-1580562157441)(C:Users刘生伟AppDataRoamingTypora	ypora-user-imagesimage-20200201210042612.png)]
    
  • 相关阅读:
    leetcode 68 Text Justification
    了解HTTP协议
    对编码的一点理解
    极简WebSocket聊天室
    统一响应数据的封装
    BitMap
    SPI机制
    Holder类
    Java的标签
    二叉树的非递归遍历
  • 原文地址:https://www.cnblogs.com/hzshisan/p/12571088.html
Copyright © 2011-2022 走看看