首页 > 数据库 >Problem I: 实现一种电厂小型实时数据库系统

Problem I: 实现一种电厂小型实时数据库系统

时间:2023-04-29 21:22:34浏览次数:39  
标签:return Temperature DI lines 实时 Problem find 数据库系统 SUCCESSED

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
  ac代码:  
 1 def find(p,lines):
 2     for i in lines:
 3         if p in i :
 4             return 1
 5     return 0
 6 def delete(p,lines):
 7     for i in lines:
 8         if p in i :
 9             lines.remove(i)
10             print('SUCCESSED')
11             return 1
12     return 0
13 def modify(p,lines,y):
14     for i in lines:
15         if p in i :
16             i[3] = y
17             print('SUCCESSED')
18             return 1
19     return 0
20 def query(p,lines):
21     for i in lines:
22         if p in i :
23             print(i[3])
24             return 1
25     return 0
26 n = int(input())
27 lines = []
28 i = 0
29 for i in range(n):
30     x = []
31     x = input().split()
32     if x[0]=='INSERT':
33         if find(x[1],lines) and find(x[2],lines):
34             print('OPERATION ERROR')
35             continue
36         else:
37             lines.append(x)
38             print('SUCCESSED')
39     elif x[0] == 'QUERY' and find(x[2],lines) and find(x[1],lines) :
40         query(x[2],lines)
41     elif x[0] == 'MODIFY' and find(x[2], lines) and find(x[1],lines):
42         modify(x[2],lines,x[3])
43     elif x[0] == 'DELETE' and find(x[2], lines) and find(x[1],lines):
44         delete(x[2],lines)
45     else :
46         print('OPERATION ERROR')
47         continue

 

 

 

标签:return,Temperature,DI,lines,实时,Problem,find,数据库系统,SUCCESSED
From: https://www.cnblogs.com/hangsingplus/p/17364496.html

相关文章

  • Problem F: 电阻器的分类
    ProblemDescription陈是电子元件实验室的一名负责老师,学校最近采购了一批电阻器,他需要做的工作就是给这些电阻器分好类,并且计算好每种电阻器的数量,并按照大小顺序给他们排好序,存放在实验室中。已知电阻器总共有四类:薄膜电阻器filmresistor(FILM)绕线式电阻器wireresistor......
  • Problem E: 二十四点
    ProblemDescription二十四点是一款著名的纸牌游戏,其游戏的目标是使用3个加减乘除运算使得4张纸牌上数字的运算结果为24。定义每一个游戏由4个从1-9的数字和3个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其它字符,运算顺序按照四则运算顺序进行。其中加法用+表示,减......
  • Problem G: 锁屏密码
    ProblemDescription在九宫格键盘中,数字和字母在一个按键上面,其中数字2对应的字母是”abc”,3对应的是”def”,4对应的是”ghi”,5对应的是”jkl”,6对应的是”mno”,7对应的是”pqrs”,8对应的是”tuv”,9对应的是”wxyz”。首先有一个仅包含小写字母的明文密码,如字母tmj,然后,按照九......
  • Problem C: 命令行选项
    ProblemDescription请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后......
  • Problem J: 括号匹配问题
    ProblemDescription在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用......
  • 实时人脸检测
    importcv2#加载分类器face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')#开启摄像头video_capture=cv2.VideoCapture(0)whileTrue:#读取视频帧ret,frame=video_capture.read()#检查是否成功读取了视频帧......
  • node.js用ffmpeg切rtsp实时视频流为mp4,并且在网页上播放
    用express.js框架,这部分太简单了,省略npm或者yarn安装fluent-ffmpeg路由部分代码:router.rtspTrackingHandle=function(req,res){logger.info('[tracking]:rtsphandle');leturl=req.query.url||'';//leturl='rtsp://admin:jeewey123@19......
  • 计算实时分贝值
    首先安装依赖:sudoaptinstall-yportaudio19-devpipinstallpyaudio接着运行程序,记得插入麦克风importnumpyasnpimportscipy.signalassignalimportpyaudio#创建PyAudio对象pa=pyaudio.PyAudio()#打开音频输入流stream=pa.open(format=pyaudio.paInt......
  • 在jupyterlab中使用按钮控制matplotlib绘图,并实时更新绘图
    直接上代码importmatplotlib.pyplotaspltimportnumpyasnpimportipywidgetsaswidgetsimporttimefromIPython.displayimportJavascript,display,clear_output,update_displayclassPltTest:def__init__(self):self.output=widgets.Output......
  • OpenCV实现停车场车位实时检测
    目录1.数据预处理(1)背景过滤(2)边缘检测(3)停车场区域提取2.确定停车位(1)霍夫变换检测直线(2)过滤霍夫变换检测到的直线(3)以列为单位,划分停车位(4)锁定每个车位(5)截取出每个停车位的图像,作为训练模型的数据。3.模型训练及预测(1)模型训练(2)模型预测本文通过获取停车场的一......