📌  相关文章
📜  门| Sudo GATE 2020 Mock II(2019年1月10日)|第43章(1)

📅  最后修改于: 2023-12-03 14:58:33.252000             🧑  作者: Mango

门| Sudo GATE 2020 Mock II(2019年1月10日)|第43章

本篇文章是关于2020年GATE模拟考试中的Sudo题目的一道题目的介绍。这道题目是第43章中的一道编程题,主题为“门”。

题目描述

你需要开发一个门禁系统,该系统根据用户输入的身份和密码控制门的开关。系统应满足以下要求:

  1. 用户可以通过向系统输入其身份和密码来登录。
  2. 系统应该支持两种类型的用户:管理员和普通用户。
  3. 管理员可以打开或关闭门。
  4. 普通用户只能请求门是否打开。
  5. 管理员的身份验证可以通过其特殊的管理员密码来完成。
  6. 系统应该能够记录门的每一次打开和关闭操作。
输入

用户输入将包含以下内容:

  1. login <user_type> <password> : 用于登录的命令。<user_type>可以是adminuser<password>是一个字符串。
  2. open : 门打开命令,只有管理员可以执行。
  3. close : 门关闭命令,只有管理员可以执行。
  4. exit : 退出系统命令。
输出

系统应该返回以下内容:

  1. 对于登录命令,如果成功登录,则返回Logged in successfully!,否则返回Invalid login!
  2. 对于打开/关闭命令,如果命令成功,则返回Door is opened/closed!;否则,返回Permission denied!
  3. 对于请求门状态的命令,如果门是打开的,则返回Door is open!;否则,返回Door is closed!
示例

以下是该系统的一个示例运行:

输入:

login admin password
open
login user 1234
check
close
exit

输出:

Logged in successfully!
Door is opened!
Invalid login!
Door is closed!
代码实现
door_status = "closed"
logged_in = False

while True:
    user_input = input().split()

    if user_input[0] == "login":
        user_type = user_input[1]
        password = user_input[2]

        if user_type == "admin" and password == "password":
            logged_in = True
            print("Logged in successfully!")
        elif user_type == "user":
            print("Invalid login!")
        else:
            print("Permission denied!")

    elif not logged_in:
        print("Invalid login!")

    elif user_input[0] == "open":
        if user_type == "admin":
            door_status = "open"
            print("Door is opened!")
        else:
            print("Permission denied!")

    elif user_input[0] == "close":
        if user_type == "admin":
            door_status = "closed"
            print("Door is closed!")
        else:
            print("Permission denied!")

    elif user_input[0] == "check":
        if door_status == "open":
            print("Door is open!")
        else:
            print("Door is closed!")

    elif user_input[0] == "exit":
        break

    else:
        print("Invalid command!")

这是一个基本的门禁系统代码实现。它使用一个循环来持续读取用户输入,并根据输入执行相应的操作。门的状态通过door_status变量进行跟踪,并根据用户的身份和命令来控制门的开关。同时,它还记录每次门的打开和关闭操作。