Problem Description
电厂控制系统的设备有很多监测点,监测点的传感器将监测到的实时数据传送到厂级监控中心,使工程师能方便的分析电厂设备的运行状态。厂级监控中心需要将这些数据存入数据库(INSERT),并且能查询(QUERY),修改(MODIFY),删除(DELETE)这些数据。
这些数据只有两种类型:模拟量(AI,浮点数, 3 位小数,例如电流,温度等 ),开关量(DI,值为 0 或 1 的数,例如开关的闭合等)。每种数据有三个属性:监测点的名称(最长20 个字符),监测到的值,数据类型。
现在需要你实现这个小型的数据库系统支持以上四种操作。
现定义以上四种操作的格式为:
OPERATION TYPE NAME VALUE(可选)。
例如删除一条数据的操作为:DELETE DI Temperature
查询为: QUERY DI Temperature
修改: MODIFY DI Temperature 1
存入为: INSERT DI Temperature 0
当以上操作失败时给出提示信息: OPERATION ERROR,例如查询,修改,删除的数据不存在,插入已经存在过的一条数据(名称和类型都重复的数据),都会失败。否则给出成功提示SUCCESSED。
Input Description
第一行为一个整数n,表示接下来有n 行输入,每一行为以上四种操作之一。
Output Description
对每行的操作输出相应的操作结果。
Sample Input
7
INSERT DI Temperature 1
INSERT AI Switch 500.500
QUERY DI Temperature
MODIFY DI Temperature 0
DELETE DI Temperature
QUERY DI Temperature
INSERT AI Switch 63.333
Sample Output
SUCCESSED
SUCCESSED
1
SUCCESSED
SUCCESSED
OPERATION ERROR
OPERATION ERROR
Hint
我的想法:
我的代码:
if __name__ == '__main__':
while True:
try:
n = int(input())
except:
break
data_base = []
for i in range(0, n):
line = input().split(" ")
data_one = []
out = []
if line[0] == "INSERT":
flag = True
for item in data_base:
if line[1] in item and line[2] in item:
flag = False
out.append("OPERATION ERROR")
break
if flag:
out.append("SUCCESSED")
data_one.append(line[1])
data_one.append(line[2])
data_one.append(line[3])
data_base.append(data_one)
elif line[0] == "QUERY":
flag = True
for item in data_base:
if line[1] in item and line[2] in item:
flag = False
out.append(item[2])
break
if flag:
out.append("OPERATION ERROR")
elif line[0] == "DELETE":
flag = True
for item in data_base:
if line[1] in item and line[2] in item:
flag = False
data_base.remove(item)
out.append("SUCCESSED")
break
if flag:
out.append("OPERATION ERROR")
elif line[0] == "MODIFY":
flag = True
for item in data_base:
if line[1] in item and line[2] in item:
flag = False
data_base[int(data_base.index(item))][2] = line[3]
out.append("SUCCESSED")
break
if flag:
out.append("OPERATION ERROR")
for it in out:
print(it)