设计管理系统

设计管理系统

# 定义显示操作页面的函数
def show_welcome():
    welcome = """
        ========================================
                 **欢迎来到XX管理系统**            
                     1.登  录                    
                     2.注  册                    
                     3.退  出
        ========================================   
    """
    print(welcome)


def new_file_dict():
    f = open(data_loc, 'w', encoding='utf-8')
    f.write('{}')
    f.close()


def check_data_file(path: str, contents='{}'):
    try:
        with open(path, 'r+', encoding='utf-8') as f:
            open_flag = 0
            result = f.read()   # 检查文件是否为空
            if not len(result):
                f.write(contents)
                f.seek(0)
                result = f.read()
            result = eval(result)
            if type(result) != dict:
                print('文件里数据不是字典')
                raise TypeError
    except FileNotFoundError:
        # 文件不存在,需要创建
        open_flag = 1
        new_file_dict()
    finally:
        if open_flag == 1:
            print('没有该文件,但已成功创建')


# 检查账号是否存在文件中
def check_acc(account_name):
    try:
        with open(data_loc, 'r+', encoding='utf-8') as f:
            open_flag = 0
            result = eval(f.read())
            value = result.get(account_name, '账号不存在')
            if value == '账号不存在':
                return False, result
            else:
                print('该账号已存在')
                return True, result
    except:
        # 文件不存在,需要创建
        open_flag = 1
    finally:
        if open_flag == 1:
            print('文件打开时出错!')


# 定义注册函数
def register():
    account_name = input('请输入账号(3-6位): ')
    pass_word = input('请输入账号(6-12位): ')
    # 检查账号和密码长度
    if not (3 <= len(account_name) <= 6 and 6 <= len(pass_word) <= 12):
        print('账号或密码长度不对')
        return
    # 从文件中读取数据,检查输入的账号是否存在
    # 用exist来记录是否存在该账号,用result来记录文件中的内容
    exist, result = check_acc(account_name)
    # 如果存在账号,退出
    if exist:
        return
    # 将新账户和密码,存入到文件中
    with open(data_loc, 'wt', encoding='utf-8') as f:
        result.update({account_name: pass_word})
        f.write(str(result))
        print('注册成功!')
    return


# 定义登录函数
def log_in():
    account_name = input('请输入账号: ')
    pass_word = input('请输入密码: ')
    try:
        f = open(data_loc)
        open_flag = 0
        result = eval(f.read())
        value = result.get(account_name, '账号不存在')
        f.close()
        if value == '账号不存在':
            print('账号不存在')
            return
        elif value == pass_word:
            print('登陆成功')
            return
    except:
        open_flag = 1
    finally:
        if open_flag == 1:
            print('文件打开时出错!')


# 定义退出函数
def exit_sys():
    print('您退出了系统!')
    exit()


# 主函数
def operator_manage_sys():
    while True:
        # 显示操作页面的函数
        show_welcome()
        operator = input('请选择1-3: ')
        if operator == '1':
            log_in()
        elif operator == '2':
            register()
        elif operator == '3':
            exit_sys()
        else:
            print('请选择正确操作')


if __name__ == '__main__':
    data_loc = 'text.txt'
    check_data_file(data_loc)
    operator_manage_sys()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值