资源简介
专题5 信息系统搭建
学习目标 1.掌握系统搭建前准备的工作及流程;
2.掌握Flask路由和视图函数的编写;
3.掌握Flask请求和路由的关系;
4.掌握基本数据库语句的功能和作用.
信息系统的开发包含信息系统搭建前期准备、信息系统搭建和信息系统完善三部分。前期准备指开发前要进行的需求分析和设计工作,沿着信息系统能实现什么功能、怎么做和先干什么后干什么的思路,将前期准备分为需求分析、可行性分析、开发模式选择、概要设计和详细设计五部分。信息系统搭建包含硬件搭建和软件开发两部分,软件开发主要解决服务器端的代码设计。信息系统完善包含系统测试和文档编写两部分工作。
(2024年1月浙江省选考)小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值。根据该阈值和传感器采集的空气湿度值控制加湿器,并将湿度值等数据传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是________(单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是________(单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
(4)智能终端上的程序具有如下功能:每隔1分钟从传感器获取1次湿度值:加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高h,则关闭加湿器;每隔1分钟将湿度值和加湿器状态数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=h
s=0
while True:
#从传感器获取湿度值,保存在newh中,代码略
if s==0:
if newh s=1
#打开加湿器,代码略
else:
if newh>h and lasth>h:
①__________
#关闭加湿器,代码略
②__________
#将newh,s等数据传输到服务器。代码略
sleep(1000*60) #延时1分钟
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
重难点1 信息系统搭建前期准备和应用程序开发
搭建信息系统前需了解信息能解决什么问题,实现哪些功能,就是需要分析,在分析硬件、软件和功能的基础上,进一步分析技术和经济上是否可行,搭建信息系统的社会意义有哪些。Flask框架解决应用程序对用户请求的响应和处理。路由是Flask应用程序中的URL映射。它指定了URL与视图函数之间的关系。视图函数是Flask应用程序中处理请求的函数。它们使用装饰器将路由绑定到函数上。模板是Flask应用程序中用于渲染HTML页面的文件。它们使用Jinja2模板引擎进行渲染。URL的格式为协议:∥IP地址:端口号/路由?参数1 &参数2
例题 小明使用Flask模块制作了某信息系统的用户登录验证子系统,其各个路由、视图说明以及实现程序如表所示,请回答相关问题。
路由地址 视图说明
/ 系统首页
/user/〈name〉 显示欢迎信息以及用户〈name〉对应的信息
/system?name=xiaoming&password=secretinf 传递登录信息完成验证后显示系统管理页面
from flask import Flask, render_template, redirect
app=Flask(_ _name_ _)
@app.route(″/″)
def index():
return render_template(″index.html″)
①____________
def login():
#查询代码略
if len(cur.fetchall()) >0: #找到用户的相关信息
return render_template(″manage.html″, username=usr)
else:
return redirect('/')
if _ _name_ _==″_ _main_ _″:
app.run(②________)
(1)在前期准备中,下列说法正确的是________(多选)
A.明确系统“先干什么,后干什么”属于搭建信息系统前期准备中的概要设计
B.可行性分析主要对信息系统的必要性和可行性进行分析
C.确定采用什么终端设备,具体传感器型号等属于详细设计
D.明确用户对所搭建信息系统的目标期待这一过程属于需求分析
E.考查在现有技术条件下是否可能实现系统搭建这一过程属于概要设计
F.数据库管理系统选择是详细设计过程的主要任务之一
(2)程序第①中空是传递登录信息,进行登录验证并显示系统管理页面的路由与视图函数,那么该处填写的语句是________(单选,选填字母)。
A.@app.route(″/system″,methods=[″GET″])
B.@app.route(″/login″,methods=[″GET″])
C.@app.route(″/user″,methods=[″POST″])
D.@app.route(″/login″,methods=[″POST″,″GET″])
(3)若该Web服务器的地址是192.168.0.1,运行端口是8080,程序试运行时需打开调试功能,那么第②空应该填写的语句是________(单选,选填字母)。
A.host=″192.168.0.1″,port=8080,debug=True
B.host=″http:∥192.168.0.1″,port=8080,debug=True
C.host=″http:∥192.168.0.1:8080″,debug=True
D.host=″192.168.0.1:8080″,port=8080
思维点拨
明考向 本题考查信息系统搭建前准备和使用Flask搭建Web应用程序的相关知识
精点拨 (1)A选项先干什么,后干什么是对系统的详细设计过程。B选项判断所提出的系统是否有必要搭建(必要性),有无实施的可能性(可行性)称为可行性分析。C选项是对资源和环境的需求分析。D选项目标期待属于需要分析。E选项有必要搭建必要性属于可行性分析。F选项选择哪种数据库属于概要设计。(2)考查路由地址和视图函数知识。由题中的路由表可知,路由地址是/system,注意路由地址与视图函数名称无关(可以不相同,但要写一起),而视图函数中获取数据的方式由request.args中获取,因此视图函数的methods参数值必须要有“GET”值方可。(3)考查Web应用程序启动的参数设定知识。应用程序对象的run()函数中的host参数指明了对外提供的服务器IP地址,注意,只需写IP地址即可,不能加协议和端口,而port参数才是指明端口的参数,debug参数可以设置是否启用调试模式
变式 小王开发基于Python的FlaskWeb框架的室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(1)确定“系统需要采用什么型号的传感器?”,属于搭建信息系统前期准备中的________。
A.可行性分析 B.需求分析
C.概要设计 D.详细设计
(2)由上述材料可知,服务器端的IP地址为________,该系统的实现架构属于________(选填:C/S架构、B/S架构)。
(3)实现上述系统的服务器端Python程序如下:
#注意:划横线①③处有选项可选择,②处为填空题
from flask import Flask,render_template,request #导入Flask库函数
app=Flask(_ _name_ _)
@app.route(①________,methods=[″GET″]) #数据采集子页面路由命令
def get():
id=int(request.args.get(″id″)) #获取URL中“id=1”后的数据“1”
d=float(②________) #变量d存储采集到的光线数据
#打开数据库,并将接收的数据存储到数据库中,代码略
return ″get data ok″
#其他系统子页面路由,代码略
if _ _name_ _=='_ _main_ _':
app.run(③________) #启动Web服务器
重难点2 信息系统的搭建
信息系统的搭建包含硬件搭建和软件开发两个过程。一个信息系统,其硬件组成主要包括服务器、网络设备、传感设备、智能终端等。软件开发一般包括数据管理设计、服务器端程序、客户端程序几个部分。信息系统中数据的流转往往分为智能终端通过传感器采集数据和通过执行器发送数据。IoT模块传送传感器收集到的数据到Web服务器并保存到数据库中。IoT模块需要设置无线网络的名称SSID和共享密钥PASSWORD连通无线网络。客户端(含手机)通过浏览器访问Web服务器。Web服务器将处理的结果经IoT模块传送给智能终端,由智能终端启动执行器实现对环境中的事物的控制。
例1 小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是________(单选,填字母)。
(2)该系统网络应用软件的实现架构是________(单选,填字母:A.B/S架构/B.C/S架构)。
(3)若传感器的编号id为1,湿度值h为60提交数据到Web服务器的URL为http:∥192.168.1.6:5000/toserv?h=60&id=1,则服务器端应用实例app中与该URL关联的路由设置语句是@app.route('________')。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t正常、偏低、偏高时,将sta的值对应设为0、1、2。下列Python程序段中符合要求的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(5)小明设定采集并上传数据的时间间隔为1分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因_______________________________________________________________。
(本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答2项,1项正确得1分)
思维点拨
明考向 本题考查信息系统搭建相关知识
精点拨 (1)智能终端通过传感器获取数据,控制器经过处理后,再通过执行器对外部进行控制,故A项正确。(2)浏览器与服务器交换数据,故需采用B/S架构。(3)由“http:∥192.168.1.6:5000/toserv?h=60&id=1”可知,路由为“/toserv”。(4)当t在[tmin,tmax]之间时返回0,小于min返回1,大于tmax返回2,A项由两个分支构成,一个分支结束后,还需执行第二个分支,程序段返值只能是2或者是0,1无法取到;C项的返回值只能是1或者2,0无法取到;故只有B项与D项正确。(5)可能造成上述问题的原因:一是服务器服务中断(服务器断电或服务器系统故障),二是互联网网络服务出现故障浏览器无法更新获取新的采集数据
变式1 小周为庭院鱼池搭建水位预警自动排水系统。该系统中的智能终端从服务器获取水位阈值,根据该阈值和传感器采集的水位值控制排水阀和蜂鸣器,并将水位值等数据传输至Web服务器,存储到数据库中。用户可通过浏览器查询数据和修改阈值,系统结构示意图如图所示。请回答下列问题:
(1)下列关于该系统数据管理的说法,不正确的是________(单选,填字母)。
A.水位传感器采集的数据还可以通过有线的方式传输到Web服务器
B.智能终端只负责数据的采集
C.数据库中的部分数据可以来自用户
(2)智能终端的程序具有如下功能:每隔1分钟从传感器获取1次水位值,根据不同情况,控制执行器作出相应的响应。
排水阀和水位情况 执行器状态
水位值不超过阈值 排水阀关闭
排水阀为关闭状态且水位值超过阈值 排水阀半开
排水阀为半开状态且水位值连续3分钟超过阈值 排水阀全开
排水阀为全开状态且水位值连续5分钟超过阈值 蜂鸣器报警
部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
num=0;s=0 #s表示排水阀状态,值0,1,2分别表示关闭,半开,全开3种状态
while True:
#从传感器获取水位值保存在tmp中,并从服务器获取阈值h,代码略
if tmp>h:
num+=1
if s==0:
#半开排水阀,代码略
s=1
elif①________:
#全开排水阀,代码略
s=2
elif s==2 and num==5:
#触发系统报警,代码略
else:
#关闭排水阀,代码略
s=0
②________
#将水位值tmp、排水阀状态s等数据传输到服务器,代码略
sleep(60*1000) #延时1分钟
(3)Web服务器端程序的部分代码如下:
#导入相关库,代码略
app=Flask(_ _name_ _)
@app.route(″/input″)
def add_da():
#将传感器最近一次的水位数据保存到数据库,代码略
if _ _name_ _==″_ _main_ _″:
app.run(″192.168.1.100″,port=8080,debug=True)
下列说法正确的有________(多选,填字母)。
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.服务器端代码中不能出现两个相同的路由
B.视图函数add_da()必须有返回值
C.该系统服务器的IP地址是192.168.1.100
D.设置“debug=True”增强了系统的安全性
(4)系统运行一段时间后,发现水池有水溢出,排水阀却处于关闭状态,简要说明系统中可能造成上述问题的原因_________________________________________
_____________________________________________________________________。
(本系统中,服务器、通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分,2项正确得2分)
例2 小明为学校实验室搭建火灾监测远程报警系统。由于发生火灾时,光线强度会发生变化,该系统使用光线传感器实时监测实验室中的光线,数据由智能终端经IoT模块发送至Web服务器。若环境光线监测值不在正常范围,智能终端通过服务器的返回结果控制蜂鸣器发出警报。用户通过浏览器可查看实时数据,系统结构示意图如图a所示。
图a
(1)下列关于该系统的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.该系统的数据库存储在智能终端中
B.该系统网络应用软件是通过B/S架构实现的
C.从技术角度分析系统的可行性属于搭建信息系统的前期准备
D.Web服务器中安装的所有软件均是系统软件
(2)该系统Web服务器端程序采用Flask Web框架开发,服务器IP地址为6.196.51.11,端口号为80。网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 主页,实时显示光线检测值数据
2 /input?val=520 获取传感器数据,并返回当前数据的处理情况。低于阈值返回1,否则返回0
3 /data 查看历史数据
在系统测试阶段,小明在浏览器地址栏中输入网址查看历史数据,出现如图b所示的错误,为排查该问题,下列操作可行的是________(单选,填字母)。
图b
A.尝试更换浏览器并再次访问该网址
B.检查该系统服务器端代码连接数据库是否正常
C.查看服务器端路由命令是否设置有:@app.route('/data')
(3)小明按表设计编写的服务器端程序,部分代码如下,请在划线处填入合适的代码。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route('/input')
def add_data():
sen = float(request.args.get('val'))
#将光线等数据存入数据库中,代码略
#从数据库中查询阈值,保存在变量limit中,代码略
if__________________ :
return ' 1'
else:
return '0'
(4)系统测试阶段,发现用强光手电筒照射传感器也会触发火灾警报,请通过增加传感器对该系统鉴别是否发生火灾的方式进行一项扩展,写出增加的传感器名称及实现的功能_________________________________________________________
______________________________________________________________________。
思维点拨
明考向 本题考查信息系统的搭建
精点拨 (1)A选项数据存储在数据库中。D选项为了某一目的开发的是应用软件。(2)访问的页面没有找到,可能是路由设置的问题。(3)表1中要求获取的光线数据sen低于阈值limit返回1。(4)从增加的传感器及功能的角度分析问题
变式2 小峰做了一个“搭建学生寝室管理系统”的实验,该系统可通过人脸识别、指纹识别、校园卡等方式模拟进出寝室管理,并将进出数据发送给服务器。通过浏览器可以查看学生在寝、离寝情况。小峰选择的硬件有:智能终端、IoT模块、摄像头、指纹采集仪、射频识别设备、进出口闸机、服务器等。该系统结构示意图如图所示,其中Web服务器端程序采用FlaskWeb框架开发。
(1)下列硬件设备中,属于执行器的有________(单选,填字母:A.摄像头/B.指纹采集仪/C.射频识别设备/D.进出口闸机)。
(2)下列关于该系统应用软件的网络架构,说法正确的是________(单选,填字母:A.客户端无需安装专用软件,升级维护方便/B.对服务器要求较低/C.能够降低系统通信开销)。
(3)下列功能需要在服务器端程序中实现的是________(多选,填字母:A.原始指纹数据的采集/B.在数据库中查找指纹特征数据/C.闸机的开关/D.根据浏览器的请求返回数据)。
(4)小峰基于FlaskWeb框架编写服务器端程序,部分代码如下。编写完后,若要通过浏览器获取视图函数entry()返回的页面,则访问的URL是http:∥__________。
#导入Flask框架模块及其他相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/')
def index():
#在模板文件上显示从数据库读取的入寝、离寝学生数据,代码略
@app.route('/dorm', methods=['GET', 'POST'])
def entry():
#从数据库读取对应班级学生的在寝、离寝数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=='_ _main_ _':
app.run(host='10.16.1.18',port=8080)
(5)小峰对系统进行动态测试,使用校园卡刷卡,闸机能正常打开,在浏览器中查看系统首页,页面中标题、表格等内容能正常显示,但却未显示刷卡数据,刷新后仍不变(Web服务器数据库的数据读写功能正常)。从程序角度说明造成上述问题的原因有___________________________________________________________、
______________________________________________________________________ (注:回答2项,1项正确得1分)
重难点1 信息系统搭建前期准备和应用程序开发
1.小明搭建某教室亮度检测系统的前期准备中,下列说法正确的是( )
A.明确系统“先干什么,后干什么”属于前期准备中的概要设计
B.可行性分析主要从技术、经济、社会意义等方面分析系统的可行性
C.选择输出设备和介质、确定输出格式这一过程属于需求分析
D.在设计信息系统开发方案时,可以随意选择开发模式
2.小明搭建某教室亮度检测系统,实现同时采集多个教室亮度数据的目标期待,这一过程属于( )
A.需求分析 B.开发模式的选择
C.概要设计 D.详细设计
3.以下有关该信息系统的设计的说法,不正确的是( )
A.系统设计时,主要从技术、经济和社会意义等方面分析系统的可行性
B.系统概要设计时,需要对系统的用户界面、可扩展性需求等方面进行设计考虑
C.系统详细设计时,为确保系统的运行安全和数据保密,需要有安全设计方案
D.在设计车位下面的感应器时,需要考虑其耐用性,说明信息系统对外部环境有依赖性
4.小晨搭建了土壤湿度监测系统,服务器端程序基于Python的Flask Web框架编写,采用模板功能,以index.html为主页模板。部分网站框架示意如图a所示,网站功能页面规划如图b所示。
图a
序号 访问地址 功能说明 备注
1 / 主页,显示当前传感器数据,实时更新 访问地址
2 /gt?id=1 以JSON数据格式返回id为1的湿度传感器的所有数据 id为参数
3 /up?id=1&val=57 提交id为1的湿度传感器的数据值为57 id和val为参数
4 /vt?id=1 显示id为1的湿度传感器的数据折线图
… … … …
图b
下列关于该系统网站框架及功能的说法,正确的是( )
A.该系统只有3个路由及视图函数,对应3个不同的子页面
B.访问该网站主页的URL是http:∥10.18.245.250
C.不同的子页面可以使用不同的网页模板来实现
D.改变访问地址中参数id的值,显示传感器数据的图表不会发生变化
重难点2 信息系统的搭建
1.某“有机蔬菜种植基地实时监测系统”的结构如图所示。Web服务器端程序采用Flask Web框架开发,利用与智能终端连接的传感器采集大棚内的温度、光照强度数据,每隔一段时间由智能终端经IoT模块发送到Web服务器。如果环境监测温度值超过系统设置的阈值,触发通风、喷水或加热设备调节至适宜温度,同时根据环境光照强度自动打开或关闭补光灯。请回答下列问题:
(1)根据该系统的功能要求,图中的①②处的设备分别为________、________(选填字母,A.执行器/B.路由器/C.传感器)。
(2)该系统服务端程序采用Flask Web框架编写,服务器的IP地址是192.168.1.10,端口号为8080,网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 实时显示最新数据
2 /input?tem=20&light=40 提交传感器数据
3 /search 查看显示某一天的历史数据
若要查看某一天的数据记录,在浏览器应输入的URL为_____________________。
(3)该系统每隔一定时间采集大棚内的温度数据,如果超过适宜温度的范围会进行降温或升温的调节(适宜温度为tmin~tmax),计算一段时间内超过适宜温度的次数,列表变量s存储采集到的温度数据,下列程序正确的是________:
A.c=0
for i in s:
if s[i]< tmin or s[i] >tmax:
c +=1
print(″超过适宜温度的次数″,c)
B.c=0
for i in range(len(s)):
if tmin<=s[i]<=tmax:
continue
c +=1
print(″超过适宜温度的次数″,c)
C.c=0;i=1
while i<=len(s):
if not(tmin<=s[i]<=tmax):
c +=1
i +=1
print(″超过适宜温度的次数″,c)
D.c=[0]*len(s)
for i in range(len(s)):
if not(s[i]>=tmin and s[i]<=tmax):
c[i]=1
print(″超过适宜温度的次数″,sun(c))
(4)在系统调试过程中,发现系统一直提示光线不足,简要说明系统中可能造成上述问题的原因_________________________________________________________
(本系统中,通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分)。
2.小强同学为学校阅览室搭建了室内声音监测系统,该系统可以根据声音情况发出警示,系统结构示意图如图所示。传感器采集数据经智能终端上传到服务器,Web服务器处理后的结果经IoT模块传送给智能终端,由智能终端启动执行器实现警示灯的控制。若声音分贝连续10秒高于限定值则警示灯闪烁。用户可以通过浏览器访问Web服务器,查看相关数据。请回答下列问题:
(1)在搭建室内声音监测系统过程中,下列属于前期准备的是________(多选,填字母)。
A.确定采购传感器的具体型号
B.根据用户需求对系统进行测试
C.分析在技术上是否可行
D.编写服务器端程序
(2)完善该系统结构图,若图中A、B、C处的设备由以下三部分组成:
①执行器;②传感器;③智能终端,则A、B、C三处的设备依次为________(填数字编号)。
(3)运行该信息系统,改变环境中声音的分贝值,测试该系统能否根据声音的变化控制警示灯闪烁,该项测试属于软件系统测试中的________(单选,填字母:A.动态测试/B.静态测试)方法。
(4)智能终端将模拟分贝计进行连接以获取声音数据,部分Python程序代码如下。
请回答下列问题:
#设置服务器参数、Wi-Fi账号和密码,并连接WiFi,代码略
while True:
sound=pin1.read_analog()
temp=(sound/1024*3.3)*56 #利用公式将数据转换成分贝
errno,resp = Obloq.get(″get?id=1&fb=″+str(temp),10000)
#根据errno和resp的返回值控制执行器,每1秒采集一次数据,代码略
#web服务器端程序使用Flask框架编写
#将接收到的数据存入数据库,代码略
if_ _name_ _==″_ _main_ _″:
app.run(host=″192.168.0.1″,port=8080)
智能终端访问服务器使用的IP地址是________,连接声音传感器的引脚是________。
(5)小强用浏览器查看声音强度页面,页面动态显示声音强度数据及其采集时间。系统正常工作一段时间后,他发现该页面中声音强度数据不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因:________(多选,填字母)。
A.数据库与Web服务器连接异常
B.传感器损坏
C.Web服务器瘫痪
D.智能终端损坏
3.小辰设计了一个“智能控灯系统”。该系统使用光线传感器和红外传感器来监测室内的光线亮度和人体活动。网络应用软件采用B/S架构,用户可通过浏览器查询室内光线亮度和人体活动的实时和历史数据。硬件按如下方式连接:光线传感器、红外传感器和LED灯接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)下列关于该信息系统中数据存储的说法,不正确的是________(单选,填字母)
A.智能终端有程序存储和数据处理的能力
B.智能终端不能存储任何数据
C.智能终端传递给服务器的数据一般存储在数据库中
(2)智能控灯系统的智能终端和服务器的程序代码如下:
#导入相关库文件
app=Flask(_ _name_ _)
@app.route(″/″)
def index():
#从数据库读取数据并显示,代码略
@app.route(″________″)
def add_data():
#将提交的传感器数据存储到数据库,代码略
if_ _name_ _==″_ _main_ _″:
app.run(host=″192.168.1.101″,port=5050)
若某次提交数据的URL为“http:∥192.168.1.101:5050/update?id=1&val=98”,则划线处应填入________。
(3)该系统可以实现“人来灯亮、人走灯灭”的效果,当环境的亮度值低于阈值且检测到人活动时系统控制灯光开启,同时还要实现没有人活动或亮度值大于等于阈值系统控制灯光关闭。部分Python代码如下,请在划线处填入合适的代码:
#导入相关库,并从服务器获取阈值,保存在h中,代码略
s=0 #变量s标记LED灯的开关状态,1表示开启,0表示关闭
while True:
#从光照传感器获取亮度值,保存在light中,代码略
#从红外传感器获取数据并分析后确定是否有人活动(有人活动为True,没有人活动为False),保存在red中,代码略
if ______:
s = 1
else:
s = 0
#打开或关闭LED灯,将s、light和red传输到服务器,代码略
sleep(500) #延时500ms
(4)若系统运行一段时间后,光线传感器出现故障,可能出现的现象是______________________________________________________________________
(填一个现象)。
4.某公司研发出一套智慧餐厅定位餐号牌系统:顾客就座后将餐号牌插入桌角的定位器内(如图a所示),送餐员即可从客户端查看“001”号顾客就座的桌台信息是“A01”桌。
图a
图b
(1)该系统使用RFID技术识别餐号牌对应编号,这一过程属于信息的________(选填,编码/解码),桌角的定位器属于信息系统的________(选填,输入/输出)设备。
(2)使用智能终端及Web服务器模拟实现上述系统,智能终端通过无线网络将获取到的餐号牌编号及桌台信息上传至服务器。系统结构示意图如图b所示,图中①处应为________;②处应为________。(填字母,A.IoT模块/B.路由器/C.调制解调器/D.Web服务器)
(3)以下是编写的部分服务器端程序。若001号顾客就座于A01桌台,正确提交数据到Web服务器的URL为http:∥192.168.125.20:8088/data?tab=A01&cus=001,请在划线处填入合适的代码。
@app.route(″①________″)
def add_data():
t = request.args.get(″tab″) #t中存储桌台信息
c = int(request.args.get(②__________)) #c中存储餐号牌编号 #打印顾客就座信息,代码略
return ″success″
if _ _name_ _==″_ _main_ _″:
app.run(host=″③________″,port=8088)
(4)根据上述程序,若智能终端数据上传成功,则智能终端接收到的信息为________。
5.小明搭建智慧教室环境管理系统,智能终端通过传感器获取教室的光线、温度等信息,并上传至服务器;智能终端根据阈值自动控制教室的灯、空调等设备的开关;用户可以通过手机浏览器或PC浏览器来访问服务器上的数据,并远程控制教室的灯、空调等设备的开关。该系统的架构如图所示。
(1)该信息系统的架构是________(选填:B/S或C/S)模式,智能终端和服务器的通信采用________(选填:有线或无线)方式。
(2)智能终端上传温度数据的部分代码如下。
while True:
temp=round(pin2.read_analog()/1024*3000/10.24,1)
errno,resp=Obloq.get(″input?id=1&val=″+str(temp),10000) #智能终端向服务器发送温度信息,若在10000毫秒内发送成功,返回发送成功errno的值为200和服务器的处理结果。
if errno==200: #发送成功
if resp=='1': #返回值为1时,打开蜂鸣器
pin8.write_digital(1)
else:
pin8.write_digital(0)
else:
display.scroll(str(errno))
sleep(1000*300)
则温度传感器连接智能终端的端口是________,温度传感器采集温度的时间间隔为________(填整数)分钟。
(3)若服务器地址192.168.1.100,端口为5000,温度传感器某时刻采集的温度值为23.5,则终端上传数据的URL为________(单选,填字母)。
A.http:∥192.168.1.100:5000/input?id=1&val=23.5
B.http:∥192.168.1.100:5000/id=1&val=23.5
C.http:∥192.168.1.100/input?id=1&val=23.5
D.http:∥192.168.1.100/id=1&val=23.5
(4)某一天小明访问Web服务器查询数据,发现教室的温度值超过28 ℃,他通过服务器远程控制打开教室的空调,一个小时后,通过服务器再次查询教室的实时温度,发现温度仍然超过28 ℃。他去教室实地检查,发现教室温度超过28 ℃,而空调并未启动。分析可能的原因有_____________________________________
_____________________________________________________________________。
(注:回答2项,1项正确得1分)
重难点1 信息系统搭建前期准备和应用程序开发
1.智能农业大棚系统确定选择Python自带的嵌入式开源数据库SQLite,这属于搭建信息系统前期准备过程中的阶段是( )
A.需求分析 B.开发模式的选择
C.概要设计 D.详细设计
2.某“教室环境监测系统”的服务器程序基于FlaskWeb框架编写,其服务器的IP地址为:192.168.1.8,Web服务器端口为:88,网站框架示意图如图所示:
访问数据提交页面的地址是( )
A.http:∥192.168.1.8/show?page=1&id=1
B.http:∥192.168.1.8:88/view?id=1
C.http:∥192.168.1.8/input?id=1&val=23
D.http:∥192.168.1.8:88/input?id=1&val=23
3.编写某智能控制系统时,其中语句“SELECT * FROM sensorlog WHERE sensorid = 1”的功能是( )
A.用于在数据库中创建“sensorlog”数据表
B.用于在“sensorlog”数据表中查询字段“sensorid”等于1的记录
C.用于在“sensorlog”数据表中插入字段“sensorid”等于1的记录
D.用于在“sensorlog”数据表中删除字段“sensorid”等于1的记录
4.某温度监测系统采用Flask Web框架开发,部分代码如下:
@app.route(″/import″,methods=['GET','POST'])
#读取某个设备的温度并存储到数据库中
def add_data():
id = int(request.args.get('id'))
tem = float(request.args.get('val'))
db = sqlite3.connect(DATABASE)
cur = db.cursor()
cur.execute(″INSERT INTO degrees (sensor,sensorvalue) VALUES(%d,%f)″ %(id,①________) )
则下列说法正确的是( )
A.请求方式为POST
B.①处代为tem
C.存储的数据表名称为DATABASE
D.存储温度的URL为http:∥10.8.251.173:8080/ import?id=1&tem=29
5.为了方便图书馆自习室的管理和使用,王老师为学校图书馆开发了自习室管理系统。他设计并搭建了一个自习室人流量监测系统,通过传感器采集人流量数据并由智能终端经无线网络传输到Web服务器,当室内总人数高于设定阈值时,通过门口的红灯提醒学生自习室已无空位,图书馆管理人员可以通过浏览器查看相关数据。请回答下列问题:
(1)为统计进出自习室的人数,该信息系统可以使用下列传感器中的________(单选,填字母:A.霍尔传感器/B.近距离传感器/C.红外传感器)。
(2)以下关于该信息系统的说法,正确的是________(多选,填字母)
A.搭建该信息系统采用了C/S模式
B.该系统的人流量历史数据存储在智能终端中
C.图中①处可使用IoT模块连接Wi-Fi
D.把系统分成若干模块,每个模块完成一个特定功能,属于前期准备中的概要设计(注:全部选对的得2分,选对但不全的得1分,不选或选错的得0分)
(3)王老师编写服务器端的程序,部分代码如下。
#导入Flask框架模块及其他模块,代码略
app=Flask(_ _name_ _)
@app.route(″/up″)
def sc():
#将传感器数据上传至服务器,并保存到数据库中,代码略
@app.route(″/search″)
def cx():
#从数据库中读取人流量数据,并呈现在网页页面中,代码略
#服务器其他功能,代码略
if _ _name_ _==″_ _main_ _″:
app.run(host=″192.168.3.24″, port=1000)
若通过浏览器查看人流量数据,则应访问的URL为http:∥________________。
6.小明同学设计了一个登录注册系统,服务器程序采用Flask Web框架编写,在register.html页面中进行注册,注册结果在success_register.html页面中显示,register.html文件代码如图所示。
服务器程序部分代码:
from flask import Flask, request, render_template
#导入flask
import sqlite3
database='data.db'
app=Flask(_ _name_ _)
@app.route('/register') #注册界面
def register():
return render_template('register.html')
@app.route('①________',methods=['POST']) #提交注册数据
def success_register():
#写入数据库,代码略。
return render_template('②________')
if _ _name_ _=='_ _main_ _':
app.run(host='192.168.10.12',port=5000)
(1)请根据register.html文件代码,将划线处的代码补充完整。
(2)访问注册界面的URL为________。
重难点2 信息系统的搭建
1.小明搭建了花园自动浇灌系统,该系统结构示意图如图a所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于水泵的控制。请回答下列问题。
序号 子页面路径 功能说明
1 / 实时显示土壤湿度数据
2 /input?id=1&h=10 提交土壤湿度数据
3 /count 显示土壤湿度统计数据
4 /search 查询显示某一天的历史数据
图b
(1)在搭建信息系统的前期准备中,考虑硬件设备配置、应用软件的选择和通信网络的选择与设计等,属于________(单选,填字母A.需求分析,B.可行性分析,C.概要设计,D.详细设计)
(2)系统根据传感器提交的数据,判断是否需要浇灌。若需要,则开启水泵浇灌10分钟。智能终端部分代码如下,请结合图b,补全代码。
#导入函数库,代码略
#设置智能终端连接Web服务器的参数、连接网络的参数并连接网络,代码略
h=pin0.read_analog()
errno,resp=Obloq.get(″①________?id=1&h=″+str(h),10000)
if errno != 200: #表明网络通信连接异常
display.show(str(errno))
else:
if resp==″1″: #开启水泵进行浇灌
pin1.write_digital(1)
sleep(10*60*1000)
②________
(3)根据上面代码分析可知,该信息系统根据传感器数据做出开启或关闭水泵决策的是____________(选填:Web服务器/智能终端/传感器),水泵属于图a中的________。
(4)若Web服务器的IP地址为“196.168.0.101”,端口为“5000”,要访问“显示土壤湿度统计数据”页面,则正确的URL为________________________________。
2.小明设计并搭建了一个农业大棚管理系统,运用多种传感器设备监测环境中的参数。其中Web服务器端程序采用Flask Web框架开发。其中为了实时检测并调整湿度,系统利用湿度传感器获取大棚湿度,传输给服务器,服务器根据湿度情况,及时调整大棚湿度,使它达到适宜作物生长的湿度值。如图a所示,请回答下列问题:
(1)下列选项分别是图a所示中虚线框内的①②③位置,合理的是________(单选,填字母)。
A.①智能终端 ②传感器 ③执行器
B.①传感器 ②执行器 ③智能终端
C.①执行器 ②智能终端 ③传感器
D.①传感器 ②智能终端 ③执行器
(2)小明在连接无线路由时只要连接到SSID,输入正确口令就可以无线上网,不需要设置IP地址,说明无线路由已经开启了________服务。
A.HTTP B.FTP C.DHCP D.IP
(3)根据图b所示,若湿度传感器编号id为2,湿度值h为55,提交数据到Web服务器的URL为http:∥10.68.251.1/humidity?h=55&id=2,则服务器采用________(选填:POST或GET)方式接收湿度数据。
(4)大棚的合适湿度值为hmin~hmax(湿度值已取整),当前湿度值为h。h在合适范围,则state显示为1,否则显示为2。则下列Python语句符合要求的是________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(5)小明在测试过程中发现当湿度值h>hmax时,h值能传递到数据库中,但农业大棚的湿度没有发生变化。结合图a,简要说明系统中可能造成上述问题的原因:
____________________________________________________________________________________________________________________________________________。
(注:回答2项,多答仅前两项有效。全对2分,1对1错或仅有1项正确得1分)。
3.小明要搭建食用菌大棚智能控制系统,大棚内部安装了温湿度传感设备和智能终端,通过Wi-Fi将实时采集的环境参数传输到云平台,根据菌类生长的适宜温湿度开启或者关闭环境调节设备,自动调节温湿度。用户可以通过手机APP或电脑网页端查看大棚内温湿度实况,并远程控制环境调节设备。请回答下列问题:
(1)温湿度传感器属于该信息系统的________(单选,填字母:A.硬件/B.软件/C.数据)。
(2)可做环境调节设备的是____________(单选,填字母:A.Wi-Fi模块/B.排气扇/C.湿度计)。
(3)小明基于Flask Web框架编写服务器端的程序,部分代码如下。编写完成后,若要通过浏览器获取大棚温湿度数据,则应访问的URL是http:∥________________。
#导入Flask框架模块及其他相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/env')
def main():
#从数据库中读取最近3小时的温湿度数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=='_ _main_ _' :
app.run(host='192.168.4.1',port=8080)
(4)智能终端的程序每隔5分钟从传感器获取1次温湿度值,若温度值或湿度值发生变化,则将数据传输到服务器。部分Python程序如下,在程序中划线处填入合适的代码。
#temp1、hum1赋初值,代码略
while True:
temp = pin0.read_analog() #获取pin0引脚传感器的温度数据
hum = pin1.read_analog() #获取pin1引脚传感器的湿度数据
if ________:
#将温度temp,湿度hum数据传输到服务器,代码略
temp1,hum1 = temp, hum
sleep(1000*60*5) #延时5分钟
(5)系统正常工作一段时间后,小明在电脑网页端查看大棚温湿度数据,发现没有最近2小时的温湿度数据(在此期间大棚的温湿度发生了变化),简要说明系统中造成上述问题的可能原因:______________________________________________
______________________________________________________________________
______________________________________。(注:回答2项,1项正确得1分)
4.某室内环境监控系统采用FlaskWeb框架开发。传感器每分钟采集1次湿度数据(0~100),智能终端通过IoT模块将采集到的数据传输至Web服务器并存储,系统根据采集到的数据与设定的阈值控制除湿机。客户端可通过浏览器查询实时和历史数据。请回答下列问题:
(1)该网络应用软件的实现架构是________(单选,填字母:A.B/S架构,/B.C/S架构)。
(2)系统正常工作一段时间后,发现当前湿度值超过了阈值但除湿机未启动,下列解决问题的方法合理的是________(单选,填字母)。
A.调整湿度阈值,查看除湿机是否正常工作
B.更换湿度传感器,判断是否是湿度传感器故障
C.更换除湿机,判断是否是除湿机故障
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.智能终端中的接口只能用于连接传感器
B.信息系统只能通过串口从传感器获取信息
C.在Flask中,一个路由只能绑定一个视图函数
D.开发完毕后,布署到生产环境中使用时应关闭调试模式
(4)收集一个月的湿度数据处理后得到该月的日平均湿度值,存储在列表h中,例如:列表h中的值为[98,88,84,96,95,93,97,……,83],现要找出相邻两天最大湿度差,部分Python程序如下,请在程序中划线处填入合适的代码。
def findmax():
n=len(h)
imax=0
i=0
while ich=________________
if ch>imax:
imax=ch
i=i+1
return imax
5.智能农业大棚由信息系统来实现大棚的自动化管理,通过传感器实时采集农业大棚内的环境数据,由智能终端经IoT模块发送到Web服务器,Web服务器端程序采用Flask Web框架开发。
(1)自动温度控制系统。温度传感器每隔一定时间采集大棚中的温度,一旦温度超过预设的最高温度40 ℃,控制系统会启动通风和喷水实现降温;如果温度低于预设的最低温度18 ℃,控制系统会启动加热器,给大棚升温;如果温度在19 ℃(含)到39 ℃(含)之间,通风、喷水和加热系统均不工作。
请回答下列问题:
①系统无故障情况下,下列说法正确的是________(多选,填字母)。
A.温度在18 ℃~19 ℃,加热系统可能工作
B.温度在39 ℃~40 ℃,加热系统可能工作
C.温度在18 ℃~19 ℃,通风、喷水系统可能工作
D.温度在39 ℃~40 ℃,通风、喷水系统可能工作
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
②该系统网络应用软件的实现架构是________(单选,填字母:A.B/S架构/B.C/S架构)。
(2)自动补光系统。充足的光照可以提高农产品的产量和质量,光线传感器实时采集大棚内的光照强度,根据光照强度自动打开或关闭大棚中的补光灯。
请回答下列问题:
③自动补光系统结构示意图中A、B处分别为________和________。
④若传感器的编号为1,光照强度值为1110,提交数据到Web服务器的URL为:http:∥192.168.1.6:5000/input?light=1110&id=1,则下列说法正确的有________(多选,填字母)。
A.可采取GET方式进行数据传输
B.服务器端应用实例与该URL关联的路由为“/input”
C.服务器IP地址为192.168.1.6:5000
D.HTTP是一种网络协议
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
6.小明为他们教室搭建了环境温湿度监测系统,该系统结构示意图如图所示。该系统可实时监测教室温湿度数据,并持续运行一周,数据由智能终端经IoT模块发送至Web服务器,若环境温湿度监测值超过设定阈值区间,则控制执行器调节温湿度,用户可以使用浏览器查看实时数据。
本系统服务器端程序采用Flask Web框架编写,数据库管理系统选择sqlite3,服务器的IP地址是192.168.0.1,端口是5000。网站功能页面规划如下:
序 子页面路径 功能说明
1 / 实时显示温湿度数据
2 /input 提交温湿度数据
3 /count 显示温湿度统计数据
4 /search 查询显示某一天的历史数据
(1)上述页面规划属于搭建信息系统的前期准备的阶段是________。
A.需求分析 B.可行性分析 C.概要设计 D.详细设计
(2)根据该系统的功能要求,题图中①②处的设备分别为________、________.
(3)教室里的学生最舒服的温度范围是tmin~tmax,现要实现温度t正常、非正常(偏高或偏低)时,将对应的状态sta的值设为0和1。下列Python程序段中符合要求的有________(多选,填字母)。
(4)小明在某次系统调试时,输入URL后浏览器出现“404”错误信息(服务器反馈404信息表示服务器端无法找到对应的网页),简要说明系统中可能造成上述问题的原因:______________________________________________________________。
(注:回答两项,1项正确得1分)
7.小明为自家花园设计了“自动浇水系统”,该系统结构示意图如图所示。该系统对花园内A、B两处区域的土壤湿度进行监测和控制。各传感器将采集的数据由智能终端经IoT模块发送至服务器进行处理与存储,各执行器用于实现各区域土壤湿度的控制。请回答下列问题:
(1)下列关于该系统的搭建过程,说法正确的是________。(多选,填字母。注:全部选对的得2分,选对但不全的得1分,不选或选错的得0分)
A.该系统采用了B/S开发模式
B.数据库设计属于系统概要设计过程
C.该系统软件开发时,需要编写服务器程序和客户端程序
D.运行系统,从多角度观察程序,发现其中的错误,属于动态测试
(2)A区域的部分智能终端程序如下:
while True:
hum=pin1.read_analog()
errno,resp=Obloq.get(″input?id=1&h1=″+str(hum),10000) #其他代码略
服务器的IP地址为192.168.0.10,端口为8080,若当前A区域的传感器1监测到的湿度值为56,则其提交数据到服务器的URL为:http:∥____________________
_____________________________________________________________________。
(3)如下程序统计某天A、B两区域浇水装置独自启动的时长cA、cB,两区域装置均启动的时长cAB,请在划线处填入合适的代码。
#数组a中存储了某天两个区域的土壤湿度值(a[i][0]为第i+1分钟A区域的土壤湿度值,a[i][1]为第i+1分钟B区域的土壤湿度值,湿度传感器每隔一分钟采集并上传一次数据),土壤湿度低于阈值w启动浇水装置
n=24*60;cA=cB=cAB=0
for i in range(n):
if a[i][0] cAB+=1
elif a[i][0] cA+=1
____________:
cB+=1
(4)系统正常运行一段时间后,小明发现B区域的植物呈现缺水状态,该区域的浇水装置却没有启动。结合图,简要说明系统中可能造成上述问题的原因:____________________________________。(不考虑水管损坏和停水等原因)(注:回答2项,1项得1分;多答仅前两项有效。)
8.小李要帮助体育老师搭建智能体育项目检测系统。其中检测立定跳远的系统中,智能终端从服务器获取考生准考证号,显示在终端的触摸屏上,通过识别身份证和人脸确认信息后考生进入测试区域,每完成一次立定跳远测试,红外传感设备测得的距离或范围判定情况将显示在大屏幕中,测试成绩等数据同步传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询和统计数据。硬件按如下方式连接:红外传感设备和屏幕接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是________(单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是________(单选,填字母)。
A.数据可以从服务器端传输至红外传感设备
B.智能终端中可以存储少量测试数据
C.通过浏览器查看某班级的满分考生数据不必访问数据库
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.服务器端有程序存储和数据处理的能力
B.红外传感器与智能终端的连接必须通过Wi-Fi进行通信
C.智能终端中运行的所有软件都需要在搭建过程中开发
D.多个智能终端都可以通过IoT模块以无线方式连接同一个服务器
(4)智能终端上的程序具有如下功能:在起跳合规的情况下获取一次有效成绩,红外传感器返回测试区域内落点距离起跳点的距离,返回的数据在起跳前为负数,跳跃腾空过程中距离值为0,落地后会返回正整数值,根据立定跳远的规则,当离开测试区域前的最短距离为测试成绩,所获得的数据形如
[-5,-1,-2,-4,0,0,0,0,…,0,0,0,200,190,160,210,0,0,…],则有效成绩记为160。
①在起跳合规的前提下,完成此功能的部分Python程序如下,请在程序中划线处填入合适的代码。
zero= False
while True:
#从传感器获取距离起跳线的值存储在d中
if d<0:
zero = False
elif d== 0:
________________
elif d> 0 and zero:
#A
mindist = d
while d != 0:
if d < mindist:
mindist = d
#B
break
print(mindist)
②由于落地后还可能产生移动,需要继续读取新的落点距离,实现“从传感器获取距离起跳线的值存储在d中”的功能代码应该出现在________(选填,填文字:A处/B处)。
(5)系统搭建完成后,运行一段时间,小王发现自己的浏览器端打开智能体育测试网站的查询界面网页显示出错,现在可以确定的是软件都没有问题,问题可能出在小王的计算机网络连接或者服务器的网络连接中有一处有问题,请设计一种判定哪处网络连接有故障的方法___________________________________________
_____________________________________________________________________。
9.小王搭建了家庭智能浇花系统,系统结构示意图如图所示。土壤湿度传感器采集的数据通过IoT模块传送到Web服务器,客户端可以通过浏览器访问Web服务器。Web服务器将处理的结果经IoT模块传送给智能终端,智能终端启动执行器实现对湿度的控制。
(1)①在设计“智能浇花系统”的前期准备中,小王考虑到浇水不仅与土壤湿度有关,还要考虑温度和光照,所以他准备将来还要为该系统扩展温度采集和光线采集等功能,并在开发过程中为这些功能模块预留接口。这一过程属于________(单选,填字母:A.需求分析/B.可行性分析/C.概要设计/D.详细设计)。
②根据本系统网络应用的软件架构,编写程序时需要编写________程序(单选,填字母:A.服务器端/B.客户端/C.服务器端与客户端)。
(2)智能终端每隔1分钟采集一次数据并提交数据到Web服务器。Web服务器端的部分代码如下:
#导入相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/record')
def data():
#网页显示当前传感器数据,并显示最近的50条湿度记录,代码略
@app.route('/input',methods=['GET'])
def add():
id=int(request.args.get('id')) #获取传感器id
val=float(request.args.get('val')) #获取土壤湿度值val
:
return '1'
else:
return '0'
#其他代码略
if _ _name_ _=='_ _main_ _':
app.run(host='10.46.110.119',port=8080)
①若土壤湿度值val在阈值[h1,h2]内(包括h1和h2),则返回1,否则返回0,则加框处的代码符合要求的有________(多选,填字母)。(注:全部选对得2分,选对但不全得1分,不选或错选得0分)
A.if val>=h1 or val<=h2:
B.if not(val
h2):
C.if (val-h1)*(h2-val)>=0:
D.if h1<=val<=h2:
②若要查看最近的50条土壤湿度记录,则在浏览器地址栏中应输入的网址是_____________________________________________________________________。
(3)系统工作一段时间后,小王用浏览器查看土壤湿度记录,发现页面能正常显示但是该页面上的土壤湿度记录数据不再变化,刷新后仍不变,造成上述问题的原因可能是:________________(多选,填字母)。(注:全部选对得2分,选对但不全得1分,不选或错选得0分)
A.软件存在缺陷
B.执行器故障
C.智能终端和IoT模块连接无线网络出现故障
D.Web服务器停电
10.模拟搭建“室内烟雾实时监控系统”,该系统结构示意图如图所示。智能终端接收烟雾传感器采集的数据,IoT模块传送数据到Web服务器并保存到数据库。Web服务器将数据处理的结果经IoT模块传给智能终端,由智能终端启动继电器实现对水泵的控制,并且用户可以通过浏览器访问网页,查看实时数据。
(1)在设计系统的前期准备中,需要确定所需的软硬件配置,这一过程属于________(单选,填字母:A.需求分析/B.概要设计/C.详细设计)。
(2)“室内烟雾实时监控系统”的开发模式是________(单选,填字母:A.B/S模式/B.C/S模式)。
(3)烟雾传感器每隔1秒采集一次数据,在数据处理的代码中,有函数check(a,b,c)用于检测最近3次烟雾浓度值a、b、c,若至少有两次超过100,则认为有火情,函数返回True,否则返回False。下面是check函数的部分代码,请从选项中选择合适的语句完成填空________(单选,填字母)。
def check(a, b, c):
x=a>100;y=b>100;z=c>100
if________:
return True
return False
A.(x and y and z) or (x or y or z)
B.x and y or x and z or y and z
C.x or y and x or z and y or z
D.not x or not y or not z
(4)在服务器端,配置IP和端口号的语句为server=Server(host=″192.168.1.1″,port=80,threaded=True),设置路由函数的语句为@app.route(″/warn″),则用户访问的URL为http:∥________________。
(5)小明用高浓度的烟雾测试系统,通过客户端查看到烟雾浓度数据已连续超过阈值,但是水泵没有运行,若服务器和终端的代码均正确,则可能的原因是________________________。
专题5 信息系统搭建
学习目标 1.掌握系统搭建前准备的工作及流程;
2.掌握Flask路由和视图函数的编写;
3.掌握Flask请求和路由的关系;
4.掌握基本数据库语句的功能和作用.
信息系统的开发包含信息系统搭建前期准备、信息系统搭建和信息系统完善三部分。前期准备指开发前要进行的需求分析和设计工作,沿着信息系统能实现什么功能、怎么做和先干什么后干什么的思路,将前期准备分为需求分析、可行性分析、开发模式选择、概要设计和详细设计五部分。信息系统搭建包含硬件搭建和软件开发两部分,软件开发主要解决服务器端的代码设计。信息系统完善包含系统测试和文档编写两部分工作。
(2024年1月浙江省选考)小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值。根据该阈值和传感器采集的空气湿度值控制加湿器,并将湿度值等数据传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是________(单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是________(单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
(4)智能终端上的程序具有如下功能:每隔1分钟从传感器获取1次湿度值:加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高h,则关闭加湿器;每隔1分钟将湿度值和加湿器状态数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=h
s=0
while True:
#从传感器获取湿度值,保存在newh中,代码略
if s==0:
if newh s=1
#打开加湿器,代码略
else:
if newh>h and lasth>h:
①__________
#关闭加湿器,代码略
②__________
#将newh,s等数据传输到服务器。代码略
sleep(1000*60) #延时1分钟
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
答案 (1)B (2)C (3)AB (4)①s=0或s=s-1或s=1-s ②lasth=newh (5)从传感器的角度:改变环境湿度,从浏览器观察湿度值是否有实时的更新变化,若没有,说明传感器故障。从执行器角度:通过智能终端直接发送加湿指令,若加湿器未工作,说明加湿器故障。或其他等价答案
解析 (1)本题采用B/S架构,只需要编写服务器端程序。(2)A选项数据可以从服务器端传输至智能终端;B选项程序不需要存在数据库中;C选项湿度历史数据需要长期保存,便于用户访问,应存入数据库。(3)A选项智能终端可以通过烧录的方式存储程序,也具有数据处理能力;B选项智能终端可以通过无线方式、串口、蓝牙等方式连接服务器;C选项增加加湿器与增加传感器没有必然联系,可以利用现有传感器控制加湿器;D选项搭建完成后还可以开发和调试软件。(4)①从传感器获取当前湿度值newh,前一次的湿度值为lasth。当s的值为1,且两次湿度值小于阈值,则将s的值修改为0。②将当前湿度值newh作为前一次的湿度值lasth。(5)略。
重难点1 信息系统搭建前期准备和应用程序开发
搭建信息系统前需了解信息能解决什么问题,实现哪些功能,就是需要分析,在分析硬件、软件和功能的基础上,进一步分析技术和经济上是否可行,搭建信息系统的社会意义有哪些。Flask框架解决应用程序对用户请求的响应和处理。路由是Flask应用程序中的URL映射。它指定了URL与视图函数之间的关系。视图函数是Flask应用程序中处理请求的函数。它们使用装饰器将路由绑定到函数上。模板是Flask应用程序中用于渲染HTML页面的文件。它们使用Jinja2模板引擎进行渲染。URL的格式为协议:∥IP地址:端口号/路由?参数1 &参数2
例题 小明使用Flask模块制作了某信息系统的用户登录验证子系统,其各个路由、视图说明以及实现程序如表所示,请回答相关问题。
路由地址 视图说明
/ 系统首页
/user/〈name〉 显示欢迎信息以及用户〈name〉对应的信息
/system?name=xiaoming&password=secretinf 传递登录信息完成验证后显示系统管理页面
from flask import Flask, render_template, redirect
app=Flask(_ _name_ _)
@app.route(″/″)
def index():
return render_template(″index.html″)
①____________
def login():
#查询代码略
if len(cur.fetchall()) >0: #找到用户的相关信息
return render_template(″manage.html″, username=usr)
else:
return redirect('/')
if _ _name_ _==″_ _main_ _″:
app.run(②________)
(1)在前期准备中,下列说法正确的是________(多选)
A.明确系统“先干什么,后干什么”属于搭建信息系统前期准备中的概要设计
B.可行性分析主要对信息系统的必要性和可行性进行分析
C.确定采用什么终端设备,具体传感器型号等属于详细设计
D.明确用户对所搭建信息系统的目标期待这一过程属于需求分析
E.考查在现有技术条件下是否可能实现系统搭建这一过程属于概要设计
F.数据库管理系统选择是详细设计过程的主要任务之一
(2)程序第①中空是传递登录信息,进行登录验证并显示系统管理页面的路由与视图函数,那么该处填写的语句是________(单选,选填字母)。
A.@app.route(″/system″,methods=[″GET″])
B.@app.route(″/login″,methods=[″GET″])
C.@app.route(″/user″,methods=[″POST″])
D.@app.route(″/login″,methods=[″POST″,″GET″])
(3)若该Web服务器的地址是192.168.0.1,运行端口是8080,程序试运行时需打开调试功能,那么第②空应该填写的语句是________(单选,选填字母)。
A.host=″192.168.0.1″,port=8080,debug=True
B.host=″http:∥192.168.0.1″,port=8080,debug=True
C.host=″http:∥192.168.0.1:8080″,debug=True
D.host=″192.168.0.1:8080″,port=8080
思维点拨
明考向 本题考查信息系统搭建前准备和使用Flask搭建Web应用程序的相关知识
精点拨 (1)A选项先干什么,后干什么是对系统的详细设计过程。B选项判断所提出的系统是否有必要搭建(必要性),有无实施的可能性(可行性)称为可行性分析。C选项是对资源和环境的需求分析。D选项目标期待属于需要分析。E选项有必要搭建必要性属于可行性分析。F选项选择哪种数据库属于概要设计。(2)考查路由地址和视图函数知识。由题中的路由表可知,路由地址是/system,注意路由地址与视图函数名称无关(可以不相同,但要写一起),而视图函数中获取数据的方式由request.args中获取,因此视图函数的methods参数值必须要有“GET”值方可。(3)考查Web应用程序启动的参数设定知识。应用程序对象的run()函数中的host参数指明了对外提供的服务器IP地址,注意,只需写IP地址即可,不能加协议和端口,而port参数才是指明端口的参数,debug参数可以设置是否启用调试模式
答案 (1)BD (2)A (3)A
变式 小王开发基于Python的FlaskWeb框架的室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(1)确定“系统需要采用什么型号的传感器?”,属于搭建信息系统前期准备中的________。
A.可行性分析 B.需求分析
C.概要设计 D.详细设计
(2)由上述材料可知,服务器端的IP地址为________,该系统的实现架构属于________(选填:C/S架构、B/S架构)。
(3)实现上述系统的服务器端Python程序如下:
#注意:划横线①③处有选项可选择,②处为填空题
from flask import Flask,render_template,request #导入Flask库函数
app=Flask(_ _name_ _)
@app.route(①________,methods=[″GET″]) #数据采集子页面路由命令
def get():
id=int(request.args.get(″id″)) #获取URL中“id=1”后的数据“1”
d=float(②________) #变量d存储采集到的光线数据
#打开数据库,并将接收的数据存储到数据库中,代码略
return ″get data ok″
#其他系统子页面路由,代码略
if _ _name_ _=='_ _main_ _':
app.run(③________) #启动Web服务器
答案 (1)B (2)192.168.1.100 B/S架构
(3)①″/s″ ②request.args.get(″d″)
③host=″192.168.1.100″,port=5000
解析 本题考查网络应用程序的开发。(1)需求分析环节主要完成:目标期待、功能需求、性能需求、资源和环境需求、用户界面需求、可扩展性需求。其中,资源和环境需求主要分析在硬件方面,采用什么终端设备,具体的传感器型号,需要什么外部设备和数据通信接口。(2)从图中可知IP地址,系统程序及相关的子系统都部署在Web服务器端,因此属于B/S架构。(3)①数据采集子页面路由,从图中可知路由为“s”。②变量d存储采集到的光线数据,再参照上一条语句,可以得到答案。③根据图中系统主页地址可以得到答案。
重难点2 信息系统的搭建
信息系统的搭建包含硬件搭建和软件开发两个过程。一个信息系统,其硬件组成主要包括服务器、网络设备、传感设备、智能终端等。软件开发一般包括数据管理设计、服务器端程序、客户端程序几个部分。信息系统中数据的流转往往分为智能终端通过传感器采集数据和通过执行器发送数据。IoT模块传送传感器收集到的数据到Web服务器并保存到数据库中。IoT模块需要设置无线网络的名称SSID和共享密钥PASSWORD连通无线网络。客户端(含手机)通过浏览器访问Web服务器。Web服务器将处理的结果经IoT模块传送给智能终端,由智能终端启动执行器实现对环境中的事物的控制。
例1 小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是________(单选,填字母)。
(2)该系统网络应用软件的实现架构是________(单选,填字母:A.B/S架构/B.C/S架构)。
(3)若传感器的编号id为1,湿度值h为60提交数据到Web服务器的URL为http:∥192.168.1.6:5000/toserv?h=60&id=1,则服务器端应用实例app中与该URL关联的路由设置语句是@app.route('________')。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t正常、偏低、偏高时,将sta的值对应设为0、1、2。下列Python程序段中符合要求的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(5)小明设定采集并上传数据的时间间隔为1分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因_______________________________________________________________。
(本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答2项,1项正确得1分)
思维点拨
明考向 本题考查信息系统搭建相关知识
精点拨 (1)智能终端通过传感器获取数据,控制器经过处理后,再通过执行器对外部进行控制,故A项正确。(2)浏览器与服务器交换数据,故需采用B/S架构。(3)由“http:∥192.168.1.6:5000/toserv?h=60&id=1”可知,路由为“/toserv”。(4)当t在[tmin,tmax]之间时返回0,小于min返回1,大于tmax返回2,A项由两个分支构成,一个分支结束后,还需执行第二个分支,程序段返值只能是2或者是0,1无法取到;C项的返回值只能是1或者2,0无法取到;故只有B项与D项正确。(5)可能造成上述问题的原因:一是服务器服务中断(服务器断电或服务器系统故障),二是互联网网络服务出现故障浏览器无法更新获取新的采集数据
答案 (1)A (2)A (3)/toserv (4)BD (5)①连接物联网模块与Web服务器的无线路由器无法正常工作;②物联网模块损坏;③数据表对记录数有数量限制,当记录数达到一定程度时,数据表不再更新。④Web服务器中数据库管理系统无法正常运行。
变式1 小周为庭院鱼池搭建水位预警自动排水系统。该系统中的智能终端从服务器获取水位阈值,根据该阈值和传感器采集的水位值控制排水阀和蜂鸣器,并将水位值等数据传输至Web服务器,存储到数据库中。用户可通过浏览器查询数据和修改阈值,系统结构示意图如图所示。请回答下列问题:
(1)下列关于该系统数据管理的说法,不正确的是________(单选,填字母)。
A.水位传感器采集的数据还可以通过有线的方式传输到Web服务器
B.智能终端只负责数据的采集
C.数据库中的部分数据可以来自用户
(2)智能终端的程序具有如下功能:每隔1分钟从传感器获取1次水位值,根据不同情况,控制执行器作出相应的响应。
排水阀和水位情况 执行器状态
水位值不超过阈值 排水阀关闭
排水阀为关闭状态且水位值超过阈值 排水阀半开
排水阀为半开状态且水位值连续3分钟超过阈值 排水阀全开
排水阀为全开状态且水位值连续5分钟超过阈值 蜂鸣器报警
部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
num=0;s=0 #s表示排水阀状态,值0,1,2分别表示关闭,半开,全开3种状态
while True:
#从传感器获取水位值保存在tmp中,并从服务器获取阈值h,代码略
if tmp>h:
num+=1
if s==0:
#半开排水阀,代码略
s=1
elif①________:
#全开排水阀,代码略
s=2
elif s==2 and num==5:
#触发系统报警,代码略
else:
#关闭排水阀,代码略
s=0
②________
#将水位值tmp、排水阀状态s等数据传输到服务器,代码略
sleep(60*1000) #延时1分钟
(3)Web服务器端程序的部分代码如下:
#导入相关库,代码略
app=Flask(_ _name_ _)
@app.route(″/input″)
def add_da():
#将传感器最近一次的水位数据保存到数据库,代码略
if _ _name_ _==″_ _main_ _″:
app.run(″192.168.1.100″,port=8080,debug=True)
下列说法正确的有________(多选,填字母)。
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.服务器端代码中不能出现两个相同的路由
B.视图函数add_da()必须有返回值
C.该系统服务器的IP地址是192.168.1.100
D.设置“debug=True”增强了系统的安全性
(4)系统运行一段时间后,发现水池有水溢出,排水阀却处于关闭状态,简要说明系统中可能造成上述问题的原因_________________________________________
_____________________________________________________________________。
(本系统中,服务器、通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分,2项正确得2分)
答案 (1)B (2)①s==1 and num==3 ②num=0 (3)AC (4)阈值设置过高或者阈值设置不合理;排水阀故障;排水阀与智能终端连接出错或其他合理答案
解析 本题考查信息系统的搭建。(1)A选项网络可能是有线方式,还可以是无线方式。B选项智能终端解决计算机没有传感器接口,同时还可以连接执行器。C选项当用户查询信息时,数据可以保存到数据库中。(2)①全开排水阀的条件为排水阀为半开状态且水位值连续3分钟超过阈值。②关闭排水阀后,水位值连续超过阈值时间num将清零。(3)A选项两个相同的路由,则不能明确哪个路由来响应请求。B选项若没有return,则可以没有返回值。D选项设置debug属性是为了便于调试,系统开发完成后,设置属性值为True,不利于系统的安全性。(4)从阈值和执行器故障两个角度去思考问题。
例2 小明为学校实验室搭建火灾监测远程报警系统。由于发生火灾时,光线强度会发生变化,该系统使用光线传感器实时监测实验室中的光线,数据由智能终端经IoT模块发送至Web服务器。若环境光线监测值不在正常范围,智能终端通过服务器的返回结果控制蜂鸣器发出警报。用户通过浏览器可查看实时数据,系统结构示意图如图a所示。
图a
(1)下列关于该系统的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.该系统的数据库存储在智能终端中
B.该系统网络应用软件是通过B/S架构实现的
C.从技术角度分析系统的可行性属于搭建信息系统的前期准备
D.Web服务器中安装的所有软件均是系统软件
(2)该系统Web服务器端程序采用Flask Web框架开发,服务器IP地址为6.196.51.11,端口号为80。网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 主页,实时显示光线检测值数据
2 /input?val=520 获取传感器数据,并返回当前数据的处理情况。低于阈值返回1,否则返回0
3 /data 查看历史数据
在系统测试阶段,小明在浏览器地址栏中输入网址查看历史数据,出现如图b所示的错误,为排查该问题,下列操作可行的是________(单选,填字母)。
图b
A.尝试更换浏览器并再次访问该网址
B.检查该系统服务器端代码连接数据库是否正常
C.查看服务器端路由命令是否设置有:@app.route('/data')
(3)小明按表设计编写的服务器端程序,部分代码如下,请在划线处填入合适的代码。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route('/input')
def add_data():
sen = float(request.args.get('val'))
#将光线等数据存入数据库中,代码略
#从数据库中查询阈值,保存在变量limit中,代码略
if__________________ :
return ' 1'
else:
return '0'
(4)系统测试阶段,发现用强光手电筒照射传感器也会触发火灾警报,请通过增加传感器对该系统鉴别是否发生火灾的方式进行一项扩展,写出增加的传感器名称及实现的功能_________________________________________________________
______________________________________________________________________。
思维点拨
明考向 本题考查信息系统的搭建
精点拨 (1)A选项数据存储在数据库中。D选项为了某一目的开发的是应用软件。(2)访问的页面没有找到,可能是路由设置的问题。(3)表1中要求获取的光线数据sen低于阈值limit返回1。(4)从增加的传感器及功能的角度分析问题
答案 (1)BC (2)C (3)sen变式2 小峰做了一个“搭建学生寝室管理系统”的实验,该系统可通过人脸识别、指纹识别、校园卡等方式模拟进出寝室管理,并将进出数据发送给服务器。通过浏览器可以查看学生在寝、离寝情况。小峰选择的硬件有:智能终端、IoT模块、摄像头、指纹采集仪、射频识别设备、进出口闸机、服务器等。该系统结构示意图如图所示,其中Web服务器端程序采用FlaskWeb框架开发。
(1)下列硬件设备中,属于执行器的有________(单选,填字母:A.摄像头/B.指纹采集仪/C.射频识别设备/D.进出口闸机)。
(2)下列关于该系统应用软件的网络架构,说法正确的是________(单选,填字母:A.客户端无需安装专用软件,升级维护方便/B.对服务器要求较低/C.能够降低系统通信开销)。
(3)下列功能需要在服务器端程序中实现的是________(多选,填字母:A.原始指纹数据的采集/B.在数据库中查找指纹特征数据/C.闸机的开关/D.根据浏览器的请求返回数据)。
(4)小峰基于FlaskWeb框架编写服务器端程序,部分代码如下。编写完后,若要通过浏览器获取视图函数entry()返回的页面,则访问的URL是http:∥__________。
#导入Flask框架模块及其他相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/')
def index():
#在模板文件上显示从数据库读取的入寝、离寝学生数据,代码略
@app.route('/dorm', methods=['GET', 'POST'])
def entry():
#从数据库读取对应班级学生的在寝、离寝数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=='_ _main_ _':
app.run(host='10.16.1.18',port=8080)
(5)小峰对系统进行动态测试,使用校园卡刷卡,闸机能正常打开,在浏览器中查看系统首页,页面中标题、表格等内容能正常显示,但却未显示刷卡数据,刷新后仍不变(Web服务器数据库的数据读写功能正常)。从程序角度说明造成上述问题的原因有___________________________________________________________、
______________________________________________________________________ (注:回答2项,1项正确得1分)
答案 (1)D (2)A (3)BD (4)10.16.1.18:8080/dorm (5)①index模块中从数据库中读取数据代码有误;②index模块中将参数传递给模板文件的代码有误;③主页模板文件中,显示服务器传递的数据代码有误。
解析 本题考查信息系统的搭建。(1)ABC均为输入设备。(2)B/S模式只需用浏览器连接服务器,对服务器的要求比较高,通信开销比较大。(3)A选项指纹数据由指纹采集器采集,智能终端传输到服务器;B选项服务器端连接数据并查询数据库中指纹特征数据;C选项闸机作为执行器进行工作;D选项浏览器向服务器发起请求,服务器接收请求之后并进行反馈。(4)由下方代码app.run(host='10.16.1.18',port=8080)可知服务器IP和端口号,视图函数entry()对应的路由是“/dorm”。
(5)根据题干描述,刷卡之后闸机能正常打开,说明执行器、传感器、智能终端、IoT模块、Wi-Fi这些设备和连接都没有问题,并且智能终端通过IoT与Web服务器的数据传输也没有问题;在根据题干描述的浏览器查看系统首页,首页中标题表格等内容都能正常显示,用户端通过互联网与Web服务器的连接也没有问题;并且说明了数据库读写功能正常,也排除了数据库本身的问题,因此问题只能集中在与数据库相关的程序代码上。
重难点1 信息系统搭建前期准备和应用程序开发
1.小明搭建某教室亮度检测系统的前期准备中,下列说法正确的是( )
A.明确系统“先干什么,后干什么”属于前期准备中的概要设计
B.可行性分析主要从技术、经济、社会意义等方面分析系统的可行性
C.选择输出设备和介质、确定输出格式这一过程属于需求分析
D.在设计信息系统开发方案时,可以随意选择开发模式
答案 B
解析 A和C选项属于详细设计。
2.小明搭建某教室亮度检测系统,实现同时采集多个教室亮度数据的目标期待,这一过程属于( )
A.需求分析 B.开发模式的选择
C.概要设计 D.详细设计
答案 A
解析 目标期待属于需求分析。
3.以下有关该信息系统的设计的说法,不正确的是( )
A.系统设计时,主要从技术、经济和社会意义等方面分析系统的可行性
B.系统概要设计时,需要对系统的用户界面、可扩展性需求等方面进行设计考虑
C.系统详细设计时,为确保系统的运行安全和数据保密,需要有安全设计方案
D.在设计车位下面的感应器时,需要考虑其耐用性,说明信息系统对外部环境有依赖性
答案 B
解析 B选项用户界面、可扩展性需求属于需求分析。
4.小晨搭建了土壤湿度监测系统,服务器端程序基于Python的Flask Web框架编写,采用模板功能,以index.html为主页模板。部分网站框架示意如图a所示,网站功能页面规划如图b所示。
图a
序号 访问地址 功能说明 备注
1 / 主页,显示当前传感器数据,实时更新 访问地址
2 /gt?id=1 以JSON数据格式返回id为1的湿度传感器的所有数据 id为参数
3 /up?id=1&val=57 提交id为1的湿度传感器的数据值为57 id和val为参数
4 /vt?id=1 显示id为1的湿度传感器的数据折线图
… … … …
图b
下列关于该系统网站框架及功能的说法,正确的是( )
A.该系统只有3个路由及视图函数,对应3个不同的子页面
B.访问该网站主页的URL是http:∥10.18.245.250
C.不同的子页面可以使用不同的网页模板来实现
D.改变访问地址中参数id的值,显示传感器数据的图表不会发生变化
答案 C
解析 本题考查Flask网页开发相关基础概念。由图b可知,表格中至少有4对路由视图函数,至少对应4个不同的页面。由题图a中服务器主页可知,该网站主页的URL应该为:http:∥10.18.245.250:8080。不同的子页面根据需要显示的内容和采集的数据可以使用不同模板实现。D选项改变访问地址中的id值,所对应的传感器编号发生变化,显示对应id的图表也会发生变化。
重难点2 信息系统的搭建
1.某“有机蔬菜种植基地实时监测系统”的结构如图所示。Web服务器端程序采用Flask Web框架开发,利用与智能终端连接的传感器采集大棚内的温度、光照强度数据,每隔一段时间由智能终端经IoT模块发送到Web服务器。如果环境监测温度值超过系统设置的阈值,触发通风、喷水或加热设备调节至适宜温度,同时根据环境光照强度自动打开或关闭补光灯。请回答下列问题:
(1)根据该系统的功能要求,图中的①②处的设备分别为________、________(选填字母,A.执行器/B.路由器/C.传感器)。
(2)该系统服务端程序采用Flask Web框架编写,服务器的IP地址是192.168.1.10,端口号为8080,网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 实时显示最新数据
2 /input?tem=20&light=40 提交传感器数据
3 /search 查看显示某一天的历史数据
若要查看某一天的数据记录,在浏览器应输入的URL为_____________________。
(3)该系统每隔一定时间采集大棚内的温度数据,如果超过适宜温度的范围会进行降温或升温的调节(适宜温度为tmin~tmax),计算一段时间内超过适宜温度的次数,列表变量s存储采集到的温度数据,下列程序正确的是________:
A.c=0
for i in s:
if s[i]< tmin or s[i] >tmax:
c +=1
print(″超过适宜温度的次数″,c)
B.c=0
for i in range(len(s)):
if tmin<=s[i]<=tmax:
continue
c +=1
print(″超过适宜温度的次数″,c)
C.c=0;i=1
while i<=len(s):
if not(tmin<=s[i]<=tmax):
c +=1
i +=1
print(″超过适宜温度的次数″,c)
D.c=[0]*len(s)
for i in range(len(s)):
if not(s[i]>=tmin and s[i]<=tmax):
c[i]=1
print(″超过适宜温度的次数″,sun(c))
(4)在系统调试过程中,发现系统一直提示光线不足,简要说明系统中可能造成上述问题的原因_________________________________________________________
(本系统中,通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分)。
答案 (1)CA (2)http:∥192.168.1.10:8080/search
(3)BD (4)执行器(补光灯)损坏;阈值设置不合理等
解析 本题考查信息系统的搭建。(1)图中①为输入设备,对应的是传感器。②处为输出设备,对应为执行器。(2)IP地址是192.168.1.10,端口号为8080,查看某一天(历史记录)的路由为search,可以得到相应的URL。(3)A选项i是列表中元素值,B选项正常数据continue跳过本次循环,不执行计数语句,统计非正常数据。C选项i的终值应为len(s)-1。D选项用列表c记录是否正常,若是非正常数据,c[i]值为1,并对c列数进行求和。(4)系统一直提示光线不足,说明网络访问正常,数据上传没有问题。可能是执行器或阈值设置出现问题。
2.小强同学为学校阅览室搭建了室内声音监测系统,该系统可以根据声音情况发出警示,系统结构示意图如图所示。传感器采集数据经智能终端上传到服务器,Web服务器处理后的结果经IoT模块传送给智能终端,由智能终端启动执行器实现警示灯的控制。若声音分贝连续10秒高于限定值则警示灯闪烁。用户可以通过浏览器访问Web服务器,查看相关数据。请回答下列问题:
(1)在搭建室内声音监测系统过程中,下列属于前期准备的是________(多选,填字母)。
A.确定采购传感器的具体型号
B.根据用户需求对系统进行测试
C.分析在技术上是否可行
D.编写服务器端程序
(2)完善该系统结构图,若图中A、B、C处的设备由以下三部分组成:
①执行器;②传感器;③智能终端,则A、B、C三处的设备依次为________(填数字编号)。
(3)运行该信息系统,改变环境中声音的分贝值,测试该系统能否根据声音的变化控制警示灯闪烁,该项测试属于软件系统测试中的________(单选,填字母:A.动态测试/B.静态测试)方法。
(4)智能终端将模拟分贝计进行连接以获取声音数据,部分Python程序代码如下。
请回答下列问题:
#设置服务器参数、Wi-Fi账号和密码,并连接WiFi,代码略
while Tr(共129张PPT)
第一部分 信息与信息系统
专题5 信息系统搭建
1.掌握系统搭建前准备的工作及流程;
2.掌握Flask路由和视图函数的编写;
3.掌握Flask请求和路由的关系;
4.掌握基本数据库语句的功能和作用.
目 录
CONTENTS
体系构建
01
真题再现
02
考点精练
03
当堂检测
04
课后练习
05
体系构建
1
信息系统的开发包含信息系统搭建前期准备、信息系统搭建和信息系统完善三部分。前期准备指开发前要进行的需求分析和设计工作,沿着信息系统能实现什么功能、怎么做和先干什么后干什么的思路,将前期准备分为需求分析、可行性分析、开发模式选择、概要设计和详细设计五部分。信息系统搭建包含硬件搭建和软件开发两部分,软件开发主要解决服务器端的代码设计。信息系统完善包含系统测试和文档编写两部分工作。
真题再现
2
(2024年1月浙江省选考)小华要搭建苗圃大棚环境监控系统。该系统中的智能终端从服务器获取湿度阈值。根据该阈值和传感器采集的空气湿度值控制加湿器,并将湿度值等数据传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询实时和历史数据。硬件按如下方式连接:湿度传感器和加湿器接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是________(单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是________(单选,填字母)。
A.数据无法从服务器端传输至智能终端
B.该系统的数据和程序都应存储在数据库中
C.通过浏览器查看湿度历史数据需要访问数据库
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.智能终端有程序存储和数据处理能力
B.智能终端可以通过IoT模块以无线方式连接服务器
C.该系统如果再增加一个加湿器,必须增加一个湿度传感器
D.支撑该系统运行的所有软件都需要在搭建过程中开发
(4)智能终端上的程序具有如下功能:每隔1分钟从传感器获取1次湿度值:加湿器处于关闭状态时,若连续两次湿度值均低于阈值h,则打开加湿器;加湿过程中,若连续两次湿度值均高h,则关闭加湿器;每隔1分钟将湿度值和加湿器状态数据传输到服务器。部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,并从服务器获取阈值,保存在h中,代码略
lasth=h
s=0
while True:
#从传感器获取湿度值,保存在newh中,代码略
if s==0:
if newh s=1
#打开加湿器,代码略
else:
if newh>h and lasth>h:
①__________
#关闭加湿器,代码略
②__________
#将newh,s等数据传输到服务器。代码略
sleep(1000*60) #延时1分钟
(5)系统搭建完成后,运行一段时间,加湿器始终没有加湿。假设仅湿度传感器、加湿器两个设备存在故障,在不更换设备的前提下,请选择其中一种设备,描述判定该设备是否存在故障的方法。
答案 (1)B (2)C (3)AB (4)①s=0或s=s-1或s=1-s ②lasth=newh
(5)从传感器的角度:改变环境湿度,从浏览器观察湿度值是否有实时的更新变化,若没有,说明传感器故障。从执行器角度:通过智能终端直接发送加湿指令,若加湿器未工作,说明加湿器故障。或其他等价答案
解析 (1)本题采用B/S架构,只需要编写服务器端程序。(2)A选项数据可以从服务器端传输至智能终端;B选项程序不需要存在数据库中;C选项湿度历史数据需要长期保存,便于用户访问,应存入数据库。(3)A选项智能终端可以通过烧录的方式存储程序,也具有数据处理能力;B选项智能终端可以通过无线方式、串口、蓝牙等方式连接服务器;C选项增加加湿器与增加传感器没有必然联系,可以利用现有传感器控制加湿器;D选项搭建完成后还可以开发和调试软件。(4)①从传感器获取当前湿度值newh,前一次的湿度值为lasth。当s的值为1,且两次湿度值小于阈值,则将s的值修改为0。②将当前湿度值newh作为前一次的湿度值lasth。(5)略。
考点精练
3
重难点1 信息系统搭建前期准备和应用程序开发
搭建信息系统前需了解信息能解决什么问题,实现哪些功能,就是需要分析,在分析硬件、软件和功能的基础上,进一步分析技术和经济上是否可行,搭建信息系统的社会意义有哪些。Flask框架解决应用程序对用户请求的响应和处理。路由是Flask应用程序中的URL映射。它指定了URL与视图函数之间的关系。视图函数是Flask应用程序中处理请求的函数。它们使用装饰器将路由绑定到函数上。模板是Flask应用程序中用于渲染HTML页面的文件。它们使用Jinja2模板引擎进行渲染。URL的格式为协议:∥IP地址:端口号/路由?参数1 &参数2
例题 小明使用Flask模块制作了某信息系统的用户登录验证子系统,其各个路由、视图说明以及实现程序如表所示,请回答相关问题。
路由地址 视图说明
/ 系统首页
/user/〈name〉 显示欢迎信息以及用户〈name〉对应的信息
/system?name=xiaoming&password=secretinf 传递登录信息完成验证后显示系统管理页面
from flask import Flask, render_template, redirect
app=Flask(_ _name_ _)
@app.route(″/″)
def index():
return render_template(″index.html″)
①____________
def login():
#查询代码略
if len(cur.fetchall()) >0: #找到用户的相关信息
return render_template(″manage.html″, username=usr)
else:
return redirect('/')
if _ _name_ _==″_ _main_ _″:
app.run(②________)
(1)在前期准备中,下列说法正确的是________(多选)
A.明确系统“先干什么,后干什么”属于搭建信息系统前期准备中的概要设计
B.可行性分析主要对信息系统的必要性和可行性进行分析
C.确定采用什么终端设备,具体传感器型号等属于详细设计
D.明确用户对所搭建信息系统的目标期待这一过程属于需求分析
E.考查在现有技术条件下是否可能实现系统搭建这一过程属于概要设计
F.数据库管理系统选择是详细设计过程的主要任务之一
(2)程序第①中空是传递登录信息,进行登录验证并显示系统管理页面的路由与视图函数,那么该处填写的语句是________(单选,选填字母)。
A.@app.route(″/system″,methods=[″GET″])
B.@app.route(″/login″,methods=[″GET″])
C.@app.route(″/user″,methods=[″POST″])
D.@app.route(″/login″,methods=[″POST″,″GET″])
(3)若该Web服务器的地址是192.168.0.1,运行端口是8080,程序试运行时需打开调试功能,那么第②空应该填写的语句是________(单选,选填字母)。
A.host=″192.168.0.1″,port=8080,debug=True
B.host=″http:∥192.168.0.1″,port=8080,debug=True
C.host=″http:∥192.168.0.1:8080″,debug=True
D.host=″192.168.0.1:8080″,port=8080
思维点拨
明考向 本题考查信息系统搭建前准备和使用Flask搭建Web应用程序的相关知识
精点拨 (1)A选项先干什么,后干什么是对系统的详细设计过程。B选项判断所提出的系统是否有必要搭建(必要性),有无实施的可能性(可行性)称为可行性分析。C选项是对资源和环境的需求分析。D选项目标期待属于需要分析。E选项有必要搭建必要性属于可行性分析。F选项选择哪种数据库属于概要设计。(2)考查路由地址和视图函数知识。由题中的路由表可知,路由地址是/system,注意路由地址与视图函数名称无关(可以不相同,但要写一起),而视图函数中获取数据的方式由request.args中获取,因此视图函数的methods参数值必须要有“GET”值方可。(3)考查Web应用程序启动的参数设定知识。应用程序对象的run()函数中的host参数指明了对外提供的服务器IP地址,注意,只需写IP地址即可,不能加协议和端口,而port参数才是指明端口的参数,debug参数可以设置是否启用调试模式
答案 (1)BD (2)A (3)A
变式 小王开发基于Python的FlaskWeb框架的室内光线强度监测信息系统,系统程序及相关的子系统都部署在Web服务器端,网站框架如图所示。该系统的客户端无需专门的应用程序,用户工作界面通过浏览器来实现,应用程序基本上都集中于服务器端。
(1)确定“系统需要采用什么型号的传感器?”,属于搭建信息系统前期准备中的________。
A.可行性分析 B.需求分析 C.概要设计 D.详细设计
(2)由上述材料可知,服务器端的IP地址为________,该系统的实现架构属于________(选填:C/S架构、B/S架构)。
(3)实现上述系统的服务器端Python程序如下:
#注意:划横线①③处有选项可选择,②处为填空题
from flask import Flask,render_template,request #导入Flask库函数
app=Flask(_ _name_ _)
@app.route(①________,methods=[″GET″]) #数据采集子页面路由命令
def get():
id=int(request.args.get(″id″)) #获取URL中“id=1”后的数据“1”
d=float(②________) #变量d存储采集到的光线数据
#打开数据库,并将接收的数据存储到数据库中,代码略
return ″get data ok″
#其他系统子页面路由,代码略
if _ _name_ _=='_ _main_ _':
app.run(③________) #启动Web服务器
答案 (1)B (2)192.168.1.100 B/S架构
(3)①″/s″ ②request.args.get(″d″)
③host=″192.168.1.100″,port=5000
解析 本题考查网络应用程序的开发。(1)需求分析环节主要完成:目标期待、功能需求、性能需求、资源和环境需求、用户界面需求、可扩展性需求。其中,资源和环境需求主要分析在硬件方面,采用什么终端设备,具体的传感器型号,需要什么外部设备和数据通信接口。(2)从图中可知IP地址,系统程序及相关的子系统都部署在Web服务器端,因此属于B/S架构。(3)①数据采集子页面路由,从图中可知路由为“s”。②变量d存储采集到的光线数据,再参照上一条语句,可以得到答案。③根据图中系统主页地址可以得到答案。
重难点2 信息系统的搭建
信息系统的搭建包含硬件搭建和软件开发两个过程。一个信息系统,其硬件组成主要包括服务器、网络设备、传感设备、智能终端等。软件开发一般包括数据管理设计、服务器端程序、客户端程序几个部分。信息系统中数据的流转往往分为智能终端通过传感器采集数据和通过执行器发送数据。IoT模块传送传感器收集到的数据到Web服务器并保存到数据库中。IoT模块需要设置无线网络的名称SSID和共享密钥PASSWORD连通无线网络。客户端(含手机)通过浏览器访问Web服务器。Web服务器将处理的结果经IoT模块传送给智能终端,由智能终端启动执行器实现对环境中的事物的控制。
例1 小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于实现温湿度的控制。请回答下列问题:
(1)下列选项标注了图中虚线框内的智能终端与传感器执行器之间的数据传输关系,其中合理的是________(单选,填字母)。
(2)该系统网络应用软件的实现架构是________(单选,填字母:A.B/S架构/B.C/S架构)。
(3)若传感器的编号id为1,湿度值h为60提交数据到Web服务器的URL为http:∥192.168.1.6:5000/toserv?h=60&id=1,则服务器端应用实例app中与该URL关联的路由设置语句是@app.route('________')。
(4)菜园里的蔬菜适宜生长的空气温度范围是tmin~tmax。现要求当温度t正常、偏低、偏高时,将sta的值对应设为0、1、2。下列Python程序段中符合要求的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(5)小明设定采集并上传数据的时间间隔为1分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因_______________________________________________________________。
(本系统中,传感器损坏传感器和智能终端连接异常,不会造成上述问题)。(注:回答2项,1项正确得1分)
思维点拨
明考向 本题考查信息系统搭建相关知识
精点拨 (1)智能终端通过传感器获取数据,控制器经过处理后,再通过执行器对外部进行控制,故A项正确。(2)浏览器与服务器交换数据,故需采用B/S架构。
(3)由“http:∥192.168.1.6:5000/toserv?h=60&id=1”可知,路由为“/toserv”。(4)当t在[tmin,tmax]之间时返回0,小于min返回1,大于tmax返回2,A项由两个分支构成,一个分支结束后,还需执行第二个分支,程序段返值只能是2或者是0,1无法取到;C项的返回值只能是1或者2,0无法取到;故只有B项与D项正确。(5)可能造成上述问题的原因:一是服务器服务中断(服务器断电或服务器系统故障),二是互联网网络服务出现故障浏览器无法更新获取新的采集数据
答案 (1)A (2)A (3)/toserv (4)BD (5)①连接物联网模块与Web服务器的无线路由器无法正常工作;②物联网模块损坏;③数据表对记录数有数量限制,当记录数达到一定程度时,数据表不再更新。④Web服务器中数据库管理系统无法正常运行。
变式1 小周为庭院鱼池搭建水位预警自动排水系统。该系统中的智能终端从服务器获取水位阈值,根据该阈值和传感器采集的水位值控制排水阀和蜂鸣器,并将水位值等数据传输至Web服务器,存储到数据库中。用户可通过浏览器查询数据和修改阈值,系统结构示意图如图所示。请回答下列问题:
(1)下列关于该系统数据管理的说法, 的是________(单选,填字母)。
A.水位传感器采集的数据还可以通过有线的方式传输到Web服务器
B.智能终端只负责数据的采集
C.数据库中的部分数据可以来自用户
(2)智能终端的程序具有如下功能:每隔1分钟从传感器获取1次水位值,根据不同情况,控制执行器作出相应的响应。
排水阀和水位情况 执行器状态
水位值不超过阈值 排水阀关闭
排水阀为关闭状态且水位值超过阈值 排水阀半开
排水阀为半开状态且水位值连续3分钟超过阈值 排水阀全开
排水阀为全开状态且水位值连续5分钟超过阈值 蜂鸣器报警
部分Python程序如下,请在程序中划线处填入合适的代码。
#导入相关库,代码略
num=0;s=0 #s表示排水阀状态,值0,1,2分别表示关闭,半开,全开3种状态
while True:
#从传感器获取水位值保存在tmp中,并从服务器获取阈值h,代码略
if tmp>h:
num+=1
if s==0:
#半开排水阀,代码略
s=1
elif①________:
#全开排水阀,代码略
s=2
elif s==2 and num==5:
#触发系统报警,代码略
else:
#关闭排水阀,代码略
s=0
②________
#将水位值tmp、排水阀状态s等数据传输到服务器,代码略
sleep(60*1000) #延时1分钟
(3)Web服务器端程序的部分代码如下:
#导入相关库,代码略
app=Flask(_ _name_ _)
@app.route(″/input″)
def add_da():
#将传感器最近一次的水位数据保存到数据库,代码略
if _ _name_ _==″_ _main_ _″:
app.run(″192.168.1.100″,port=8080,debug=True)
下列说法正确的有________(多选,填字母)。
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.服务器端代码中不能出现两个相同的路由
B.视图函数add_da()必须有返回值
C.该系统服务器的IP地址是192.168.1.100
D.设置“debug=True”增强了系统的安全性
(4)系统运行一段时间后,发现水池有水溢出,排水阀却处于关闭状态,简要说明系统中可能造成上述问题的原因______________________________________
_____________________________________________________________________。
(本系统中,服务器、通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分,2项正确得2分)
答案 (1)B (2)①s==1 and num==3 ②num=0 (3)AC (4)阈值设置过高或者阈值设置不合理;排水阀故障;排水阀与智能终端连接出错或其他合理答案
解析 本题考查信息系统的搭建。(1)A选项网络可能是有线方式,还可以是无线方式。B选项智能终端解决计算机没有传感器接口,同时还可以连接执行器。C选项当用户查询信息时,数据可以保存到数据库中。(2)①全开排水阀的条件为排水阀为半开状态且水位值连续3分钟超过阈值。②关闭排水阀后,水位值连续超过阈值时间num将清零。(3)A选项两个相同的路由,则不能明确哪个路由来响应请求。B选项若没有return,则可以没有返回值。D选项设置debug属性是为了便于调试,系统开发完成后,设置属性值为True,不利于系统的安全性。(4)从阈值和执行器故障两个角度去思考问题。
例2 小明为学校实验室搭建火灾监测远程报警系统。由于发生火灾时,光线强度会发生变化,该系统使用光线传感器实时监测实验室中的光线,数据由智能终端经IoT模块发送至Web服务器。若环境光线监测值不在正常范围,智能终端通过服务器的返回结果控制蜂鸣器发出警报。用户通过浏览器可查看实时数据,系统结构示意图如图a所示。
图a
(1)下列关于该系统的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.该系统的数据库存储在智能终端中
B.该系统网络应用软件是通过B/S架构实现的
C.从技术角度分析系统的可行性属于搭建信息系统的前期准备
D.Web服务器中安装的所有软件均是系统软件
(2)该系统Web服务器端程序采用Flask Web框架开发,服务器IP地址为6.196.51.11,端口号为80。网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 主页,实时显示光线检测值数据
2 /input?val=520 获取传感器数据,并返回当前数据的处理情况。低于阈值返回1,否则返回0
3 /data 查看历史数据
在系统测试阶段,小明在浏览器地址栏中输入网址查看历史数据,出现如图b所示的错误,为排查该问题,下列操作可行的是________(单选,填字母)。
图b
A.尝试更换浏览器并再次访问该网址
B.检查该系统服务器端代码连接数据库是否正常
C.查看服务器端路由命令是否设置有:@app.route('/data')
(3)小明按表设计编写的服务器端程序,部分代码如下,请在划线处填入合适的代码。
#导入Flask框架模块及其他相关模块,代码略
app=Flask(_ _name_ _)
@app.route('/input')
def add_data():
sen = float(request.args.get('val'))
#将光线等数据存入数据库中,代码略
#从数据库中查询阈值,保存在变量limit中,代码略
if__________________ :
return ' 1'
else:
return '0'
(4)系统测试阶段,发现用强光手电筒照射传感器也会触发火灾警报,请通过增加传感器对该系统鉴别是否发生火灾的方式进行一项扩展,写出增加的传感器名称及实现的功能____________________________________________________。
思维点拨
明考向 本题考查信息系统的搭建
精点拨 (1)A选项数据存储在数据库中。D选项为了某一目的开发的是应用软件。
(2)访问的页面没有找到,可能是路由设置的问题。(3)表1中要求获取的光线数据sen低于阈值limit返回1。(4)从增加的传感器及功能的角度分析问题
答案 (1)BC (2)C (3)sen变式2 小峰做了一个“搭建学生寝室管理系统”的实验,该系统可通过人脸识别、指纹识别、校园卡等方式模拟进出寝室管理,并将进出数据发送给服务器。通过浏览器可以查看学生在寝、离寝情况。小峰选择的硬件有:智能终端、IoT模块、摄像头、指纹采集仪、射频识别设备、进出口闸机、服务器等。该系统结构示意图如图所示,其中Web服务器端程序采用FlaskWeb框架开发。
(1)下列硬件设备中,属于执行器的有________(单选,填字母:A.摄像头/B.指纹采集仪/C.射频识别设备/D.进出口闸机)。
(2)下列关于该系统应用软件的网络架构,说法正确的是________(单选,填字母:A.客户端无需安装专用软件,升级维护方便/B.对服务器要求较低/C.能够降低系统通信开销)。
(3)下列功能需要在服务器端程序中实现的是________(多选,填字母:A.原始指纹数据的采集/B.在数据库中查找指纹特征数据/C.闸机的开关/D.根据浏览器的请求返回数据)。
(4)小峰基于FlaskWeb框架编写服务器端程序,部分代码如下。编写完后,若要通过浏览器获取视图函数entry()返回的页面,则访问的URL是http:∥__________。
#导入Flask框架模块及其他相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/')
def index():
#在模板文件上显示从数据库读取的入寝、离寝学生数据,代码略
@app.route('/dorm', methods=['GET', 'POST'])
def entry():
#从数据库读取对应班级学生的在寝、离寝数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=='_ _main_ _':
app.run(host='10.16.1.18',port=8080)
(5)小峰对系统进行动态测试,使用校园卡刷卡,闸机能正常打开,在浏览器中查看系统首页,页面中标题、表格等内容能正常显示,但却未显示刷卡数据,刷新后仍不变(Web服务器数据库的数据读写功能正常)。从程序角度说明造成上述问题的原因有__________________________________________________、
____________________________________________________________________ (注:回答2项,1项正确得1分)
答案 (1)D (2)A (3)BD (4)10.16.1.18:8080/dorm (5)①index模块中从数据库中读取数据代码有误;②index模块中将参数传递给模板文件的代码有误;
③主页模板文件中,显示服务器传递的数据代码有误。
解析 本题考查信息系统的搭建。(1)ABC均为输入设备。(2)B/S模式只需用浏览器连接服务器,对服务器的要求比较高,通信开销比较大。(3)A选项指纹数据由指纹采集器采集,智能终端传输到服务器;B选项服务器端连接数据并查询数据库中指纹特征数据;C选项闸机作为执行器进行工作;D选项浏览器向服务器发起请求,服务器接收请求之后并进行反馈。(4)由下方代码app.run(host='10.16.1.18',port=8080)可知服务器IP和端口号,视图函数entry()对应的路由是“/dorm”。(5)根据题干描述,刷卡之后闸机能正常打开,说明执行器、传感器、智能终端、IoT模块、Wi-Fi这些设备和连接都没有问题,并且智能终端通过IoT与Web服务器的数据传输也没有问题;在根据题干描述的浏览器查看系统首页,首页中标题表格等内容都能正常显示,用户端通过互联网与Web服务器的连接也没有问题;并且说明了数据库读写功能正常,也排除了数据库本身的问题,因此问题只能集中在与数据库相关的程序代码上。
当堂检测
4
重难点1 信息系统搭建前期准备和应用程序开发
重难点2 信息系统的搭建
1.小明搭建某教室亮度检测系统的前期准备中,下列说法正确的是( )
A.明确系统“先干什么,后干什么”属于前期准备中的概要设计
B.可行性分析主要从技术、经济、社会意义等方面分析系统的可行性
C.选择输出设备和介质、确定输出格式这一过程属于需求分析
D.在设计信息系统开发方案时,可以随意选择开发模式
B
解析 A和C选项属于详细设计。
A
解析 目标期待属于需求分析。
2.小明搭建某教室亮度检测系统,实现同时采集多个教室亮度数据的目标期待,这一过程属于( )
A.需求分析 B.开发模式的选择
C.概要设计 D.详细设计
B
解析 B选项用户界面、可扩展性需求属于需求分析。
3.以下有关该信息系统的设计的说法,
A.系统设计时,主要从技术、经济和社会意义等方面分析系统的可行性
B.系统概要设计时,需要对系统的用户界面、可扩展性需求等方面进行设计考虑
C.系统详细设计时,为确保系统的运行安全和数据保密,需要有安全设计方案
D.在设计车位下面的感应器时,需要考虑其耐用性,说明信息系统对外部环境有依赖性
4.小晨搭建了土壤湿度监测系统,服务器端程序基于Python的Flask Web框架编写,采用模板功能,以index.html为主页模板。部分网站框架示意如图a所示,网站功能页面规划如图b所示。
图a
序号 访问地址 功能说明 备注
1 / 主页,显示当前传感器数据,实时更新 访问地址
2 /gt?id=1 以JSON数据格式返回id为1的湿度传感器的所有数据 id为参数
3 /up?id=1&val=57 提交id为1的湿度传感器的数据值为57 id和val为参数
4 /vt?id=1 显示id为1的湿度传感器的数据折线图
… … … …
图b
下列关于该系统网站框架及功能的说法,正确的是( )
A.该系统只有3个路由及视图函数,对应3个不同的子页面
B.访问该网站主页的URL是http:∥10.18.245.250
C.不同的子页面可以使用不同的网页模板来实现
D.改变访问地址中参数id的值,显示传感器数据的图表不会发生变化
C
解析 本题考查Flask网页开发相关基础概念。由图b可知,表格中至少有4对路由视图函数,至少对应4个不同的页面。由题图a中服务器主页可知,该网站主页的URL应该为:http:∥10.18.245.250:8080。不同的子页面根据需要显示的内容和采集的数据可以使用不同模板实现。D选项改变访问地址中的id值,所对应的传感器编号发生变化,显示对应id的图表也会发生变化。
1.某“有机蔬菜种植基地实时监测系统”的结构如图所示。Web服务器端程序采用Flask Web框架开发,利用与智能终端连接的传感器采集大棚内的温度、光照强度数据,每隔一段时间由智能终端经IoT模块发送到Web服务器。如果环境监测温度值超过系统设置的阈值,触发通风、喷水或加热设备调节至适宜温度,同时根据环境光照强度自动打开或关闭补光灯。请回答下列问题:
(1)根据该系统的功能要求,图中的①②处的设备分别为________、________(选填字母,A.执行器/B.路由器/C.传感器)。
(2)该系统服务端程序采用Flask Web框架编写,服务器的IP地址是192.168.1.10,端口号为8080,网站功能页面规划如表所示:
序号 访问地址 功能说明
1 / 实时显示最新数据
2 /input?tem=20&light=40 提交传感器数据
3 /search 查看显示某一天的历史数据
若要查看某一天的数据记录,在浏览器应输入的URL为_____________________。
(3)该系统每隔一定时间采集大棚内的温度数据,如果超过适宜温度的范围会进行降温或升温的调节(适宜温度为tmin~tmax),计算一段时间内超过适宜温度的次数,列表变量s存储采集到的温度数据,下列程序正确的是________:
A.c=0
for i in s:
if s[i]< tmin or s[i] >tmax:
c +=1
print(″超过适宜温度的次数″,c)
B.c=0
for i in range(len(s)):
if tmin<=s[i]<=tmax:
continue
c +=1
print(″超过适宜温度的次数″,c)
C.c=0;i=1
while i<=len(s):
if not(tmin<=s[i]<=tmax):
c +=1
i +=1
print(″超过适宜温度的次数″,c)
D.c=[0]*len(s)
for i in range(len(s)):
if not(s[i]>=tmin and s[i]<=tmax):
c[i]=1
print(″超过适宜温度的次数″,sun(c))
(4)在系统调试过程中,发现系统一直提示光线不足,简要说明系统中可能造成上述问题的原因_______________________________________________________
(本系统中,通信网络、传感器与智能终端的功能均不存在问题。注:回答2项,1项正确得1分)。
答案 (1)CA (2)http:∥192.168.1.10:8080/search
(3)BD (4)执行器(补光灯)损坏;阈值设置不合理等
解析 本题考查信息系统的搭建。(1)图中①为输入设备,对应的是传感器。
②处为输出设备,对应为执行器。(2)IP地址是192.168.1.10,端口号为8080,查看某一天(历史记录)的路由为search,可以得到相应的URL。(3)A选项i是列表中元素值,B选项正常数据continue跳过本次循环,不执行计数语句,统计非正常数据。C选项i的终值应为len(s)-1。D选项用列表c记录是否正常,若是非正常数据,c[i]值为1,并对c列数进行求和。(4)系统一直提示光线不足,说明网络访问正常,数据上传没有问题。可能是执行器或阈值设置出现问题。
2.小强同学为学校阅览室搭建了室内声音监测系统,该系统可以根据声音情况发出警示,系统结构示意图如图所示。传感器采集数据经智能终端上传到服务器,Web服务器处理后的结果经IoT模块传送给智能终端,由智能终端启动执行器实现警示灯的控制。若声音分贝连续10秒高于限定值则警示灯闪烁。用户可以通过浏览器访问Web服务器,查看相关数据。请回答下列问题:
(1)在搭建室内声音监测系统过程中,下列属于前期准备的是________(多选,填字母)。
A.确定采购传感器的具体型号 B.根据用户需求对系统进行测试
C.分析在技术上是否可行 D.编写服务器端程序
(2)完善该系统结构图,若图中A、B、C处的设备由以下三部分组成:
①执行器;②传感器;③智能终端,则A、B、C三处的设备依次为________(填数字编号)。
(3)运行该信息系统,改变环境中声音的分贝值,测试该系统能否根据声音的变化控制警示灯闪烁,该项测试属于软件系统测试中的________(单选,填字母:A.动态测试/B.静态测试)方法。
(4)智能终端将模拟分贝计进行连接以获取声音数据,部分Python程序代码如下。
请回答下列问题:
#设置服务器参数、Wi-Fi账号和密码,并连接WiFi,代码略
while True:
sound=pin1.read_analog()
temp=(sound/1024*3.3)*56 #利用公式将数据转换成分贝
errno,resp = Obloq.get(″get?id=1&fb=″+str(temp),10000)
#根据errno和resp的返回值控制执行器,每1秒采集一次数据,代码略
#web服务器端程序使用Flask框架编写
#将接收到的数据存入数据库,代码略
if_ _name_ _==″_ _main_ _″:
app.run(host=″192.168.0.1″,port=8080)
智能终端访问服务器使用的IP地址是________,连接声音传感器的引脚是________。
(5)小强用浏览器查看声音强度页面,页面动态显示声音强度数据及其采集时间。系统正常工作一段时间后,他发现该页面中声音强度数据不再变化,刷新后仍不变。结合图,简要说明系统中可能造成上述问题的原因:________(多选,填字母)。
A.数据库与Web服务器连接异常 B.传感器损坏
C.Web服务器瘫痪 D.智能终端损坏
答案 (1)AC (2)②③① (3)A (4)192.168.0.1 pin1 (5)BD
解析 本题考查信息系统的搭建。(1)B选项是制作完成后的测试阶段。C选项是可行性分析。(2)略。(3)静态测试主要包括代码检查、静态结构分析和代码质量度量。动态测试主要包括黑盒测试、白盒测试。运行系统属于动态测试。(4)略。(5)数据不再更新说明数据没有采访和上传。AC选项连接异常或服务器瘫痪页面将不能显示数据。
3.小辰设计了一个“智能控灯系统”。该系统使用光线传感器和红外传感器来监测室内的光线亮度和人体活动。网络应用软件采用B/S架构,用户可通过浏览器查询室内光线亮度和人体活动的实时和历史数据。硬件按如下方式连接:光线传感器、红外传感器和LED灯接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)下列关于该信息系统中数据存储的说法, 的是________(单选,填字母)
A.智能终端有程序存储和数据处理的能力
B.智能终端不能存储任何数据
C.智能终端传递给服务器的数据一般存储在数据库中
(2)智能控灯系统的智能终端和服务器的程序代码如下:
#导入相关库文件
app=Flask(_ _name_ _)
@app.route(″/″)
def index():
#从数据库读取数据并显示,代码略
@app.route(″________″)
def add_data():
#将提交的传感器数据存储到数据库,代码略
if_ _name_ _==″_ _main_ _″:
app.run(host=″192.168.1.101″,port=5050)
若某次提交数据的URL为“http:∥192.168.1.101:5050/update?id=1&val=98”,则划线处应填入________。
(3)该系统可以实现“人来灯亮、人走灯灭”的效果,当环境的亮度值低于阈值且检测到人活动时系统控制灯光开启,同时还要实现没有人活动或亮度值大于等于阈值系统控制灯光关闭。部分Python代码如下,请在划线处填入合适的代码:
#导入相关库,并从服务器获取阈值,保存在h中,代码略
s=0 #变量s标记LED灯的开关状态,1表示开启,0表示关闭
while True:
#从光照传感器获取亮度值,保存在light中,代码略
#从红外传感器获取数据并分析后确定是否有人活动(有人活动为True,没有人活动为False),保存在red中,代码略
if ______:
s = 1
else:
s = 0
#打开或关闭LED灯,将s、light和red传输到服务器,代码略
sleep(500) #延时500ms
(4)若系统运行一段时间后,光线传感器出现故障,可能出现的现象是_________________________________________________________(填一个现象)。
答案 (1)B (2)/update (3)red==True and light解析 (1)智能终端可以存储无线密码和主机地址等数据。(2)从URL中可以得到路由为/update。(3)当环境的亮度值低于阈值且检测到人活动时系统控制灯光开启。(4)略。
4.某公司研发出一套智慧餐厅定位餐号牌系统:顾客就座后将餐号牌插入桌角的定位器内(如图a所示),送餐员即可从客户端查看“001”号顾客就座的桌台信息是“A01”桌。
图a
图b
(1)该系统使用RFID技术识别餐号牌对应编号,这一过程属于信息的________(选填,编码/解码),桌角的定位器属于信息系统的________(选填,输入/输出)设备。
(2)使用智能终端及Web服务器模拟实现上述系统,智能终端通过无线网络将获取到的餐号牌编号及桌台信息上传至服务器。系统结构示意图如图b所示,图中①处应为________;②处应为________。(填字母,A.IoT模块/B.路由器/C.调制解调器/D.Web服务器)
(3)以下是编写的部分服务器端程序。若001号顾客就座于A01桌台,正确提交数据到Web服务器的URL为http:∥192.168.125.20:8088/data?tab=A01&cus=001,请在划线处填入合适的代码。
@app.route(″①________″)
def add_data():
t = request.args.get(″tab″) #t中存储桌台信息
c = int(request.args.get(②__________)) #c中存储餐号牌编号 #打印顾客就座信息,代码略
return ″success″
if _ _name_ _==″_ _main_ _″:
app.run(host=″③________″,port=8088)
(4)根据上述程序,若智能终端数据上传成功,则智能终端接收到的信息为________。
答案 (1)解码 输入 (2)①A ②D (3)①/data ②″cus″ ③192.168.125.20
(4)success或″success″
解析 本题考查信息系统的搭建。(1)将采集的餐号牌信息转换为电脑可以识别的文本信息,属于信息的解码。桌角的定位器负责采集信息,(2)智能终端通过传感器采集数据,IoT模块传送传感器收集到的数据经IoT模块传送服务器,或者Web服务器处理的结果经IoT模块传送给智能终端。(3)从URL为http:∥192.168.125.20:8088/data来看,路由为/data。 (4)由语名return '″success″可以得到接收到的信息。
5.小明搭建智慧教室环境管理系统,智能终端通过传感器获取教室的光线、温度等信息,并上传至服务器;智能终端根据阈值自动控制教室的灯、空调等设备的开关;用户可以通过手机浏览器或PC浏览器来访问服务器上的数据,并远程控制教室的灯、空调等设备的开关。该系统的架构如图所示。
(1)该信息系统的架构是________(选填:B/S或C/S)模式,智能终端和服务器的通信采用________(选填:有线或无线)方式。
(2)智能终端上传温度数据的部分代码如下。
while True:
temp=round(pin2.read_analog()/1024*3000/10.24,1)
errno,resp=Obloq.get(″input?id=1&val=″+str(temp),10000) #智能终端向服务器发送温度信息,若在10000毫秒内发送成功,返回发送成功errno的值为200和服务器的处理结果。
if errno==200: #发送成功
if resp=='1': #返回值为1时,打开蜂鸣器
pin8.write_digital(1)
else:
pin8.write_digital(0)
else:
display.scroll(str(errno))
sleep(1000*300)
则温度传感器连接智能终端的端口是________,温度传感器采集温度的时间间隔为________(填整数)分钟。
(3)若服务器地址192.168.1.100,端口为5000,温度传感器某时刻采集的温度值为23.5,则终端上传数据的URL为________(单选,填字母)。
A.http:∥192.168.1.100:5000/input?id=1&val=23.5
B.http:∥192.168.1.100:5000/id=1&val=23.5
C.http:∥192.168.1.100/input?id=1&val=23.5
D.http:∥192.168.1.100/id=1&val=23.5
(4)某一天小明访问Web服务器查询数据,发现教室的温度值超过28 ℃,他通过服务器远程控制打开教室的空调,一个小时后,通过服务器再次查询教室的实时温度,发现温度仍然超过28 ℃。他去教室实地检查,发现教室温度超过28 ℃,而空调并未启动。分析可能的原因有_____________________________________
_____________________________________________________________________。
(注:回答2项,1项正确得1分)
答案 (1)B/S 无线 (2)pin2 5 (3)A (4)执行器故障、执行器与智能终端的连接有问题、空调插座没电了、空调故障、控制模块代码有缺陷、其他合理原因(回答温度传感器、智能终端、IoT模块、服务器、无线信号故障都不正确)
解析 (1)搭建Web服务器属于B/S模式。(2)通过Wi-Fi连接。(3)①由语句pin2.read_analog()可以得到接口。②sleep(1000*300)表示每隔300秒即5分钟采集一次数据。(3)略。(4)能够查询教室的实时温度且温度有变化,说明数据的采集、传输和存储没有问题,但执行器可能出现问题。
课后练习
5
重难点1 信息系统搭建前期准备和应用程序开发
重难点2 信息系统的搭建
1.智能农业大棚系统确定选择Python自带的嵌入式开源数据库SQLite,这属于搭建信息系统前期准备过程中的阶段是( )
A.需求分析 B.开发模式的选择
C.概要设计 D.详细设计
C
解析 选择哪种数据库属于概要设计。
2.某“教室环境监测系统”的服务器程序基于FlaskWeb框架编写,其服务器的IP地址为:192.168.1.8,Web服务器端口为:88,网站框架示意图如图所示:
D
访问数据提交页面的地址是( )
A.http:∥192.168.1.8/show?page=1&id=1
B.http:∥192.168.1.8:88/view?id=1
C.http:∥192.168.1.8/input?id=1&val=23
D.http:∥192.168.1.8:88/input?id=1&val=23
解析 根据题目给出的图片可知“访问数据提交页面的地址”属于“提交数据”页面,而“提交数据”的地址是/input?id=1&val=23,结合访问Web服务器端口为88可得最后的地址为D选项。
3.编写某智能控制系统时,其中语句“SELECT * FROM sensorlog WHERE sensorid = 1”的功能是( )
A.用于在数据库中创建“sensorlog”数据表
B.用于在“sensorlog”数据表中查询字段“sensorid”等于1的记录
C.用于在“sensorlog”数据表中插入字段“sensorid”等于1的记录
D.用于在“sensorlog”数据表中删除字段“sensorid”等于1的记录
B
解析 本题考查数据库查询语句。SELECT表示在数据表中选择某些字段进行查询,FROM后面是数据表名称,WHERE是查询的条件。
则下列说法正确的是( )
A.请求方式为POST
B.①处代为tem
C.存储的数据表名称为DATABASE
D.存储温度的URL为http:∥10.8.251.173:8080/ import?id=1&tem=29
B
解析 本题考查网络应用程序开发。从语句id = int(request.args.get('id'))来看,请求方式为GET。B选项通过URL的请求变量id和val分别存储在变量id和tem中,并将这些值存储到数据表degrees中。C选项中应该是val=29。
5.为了方便图书馆自习室的管理和使用,王老师为学校图书馆开发了自习室管理系统。他设计并搭建了一个自习室人流量监测系统,通过传感器采集人流量数据并由智能终端经无线网络传输到Web服务器,当室内总人数高于设定阈值时,通过门口的红灯提醒学生自习室已无空位,图书馆管理人员可以通过浏览器查看相关数据。请回答下列问题:
(1)为统计进出自习室的人数,该信息系统可以使用下列传感器中的________(单选,填字母:A.霍尔传感器/B.近距离传感器/C.红外传感器)。
(2)以下关于该信息系统的说法,正确的是________(多选,填字母)
A.搭建该信息系统采用了C/S模式
B.该系统的人流量历史数据存储在智能终端中
C.图中①处可使用IoT模块连接Wi-Fi
D.把系统分成若干模块,每个模块完成一个特定功能,属于前期准备中的概要设计(注:全部选对的得2分,选对但不全的得1分,不选或选错的得0分)
(3)王老师编写服务器端的程序,部分代码如下。
#导入Flask框架模块及其他模块,代码略
app=Flask(_ _name_ _)
@app.route(″/up″)
def sc():
#将传感器数据上传至服务器,并保存到数据库中,代码略
@app.route(″/search″)
def cx():
#从数据库中读取人流量数据,并呈现在网页页面中,代码略
#服务器其他功能,代码略
if _ _name_ _==″_ _main_ _″:
app.run(host=″192.168.3.24″, port=1000)
若通过浏览器查看人流量数据,则应访问的URL为http:∥________________。
答案 (1)C (2)CD (3)192.168.3.24:1000/search
解析 (1)红外传感器被设计用于检测移动物体,尤其是人体。(2)A选项Falsk开发的B/S程序。B选项数据往往存储在数据库中。C选项IoT模块通过Wi-Fi连接到服务器。D选项划分模块属于概要设计。(3)由run函数的参数可知服务器地址和端口。从数据库中读取人流量数据的路由为/search。
6.小明同学设计了一个登录注册系统,服务器程序采用Flask Web框架编写,在register.html页面中进行注册,注册结果在success_register.html页面中显示,register.html文件代码如图所示。
服务器程序部分代码:
from flask import Flask, request, render_template
#导入flask
import sqlite3
database='data.db'
app=Flask(_ _name_ _)
@app.route('/register') #注册界面
def register():
return render_template('register.html')
@app.route('①________',methods=['POST']) #提交注册数据
def success_register():
#写入数据库,代码略。
return render_template('②________')
if _ _name_ _=='_ _main_ _':
app.run(host='192.168.10.12',port=5000)
(1)请根据register.html文件代码,将划线处的代码补充完整。
(2)访问注册界面的URL为________。
答案 (1)①/success_register ②success_register.html (2) http:∥ 192.168.10.12:5000/register
解析 本题考查网络应用程序的开发。(1)①通过代码form action='/success register'method=' post'可知路由。②注册结果在success_register.html页面中显示,返回该页面。(2)根据 app.run(host='192.168.10.12',port=5000)和注册路由,得出注册界面的 URL 为http:∥192.168.10.12:5000/register。
1.小明搭建了花园自动浇灌系统,该系统结构示意图如图a所示。Web服务器端程序采用FlaskWeb框架开发。传感器采集的数据由智能终端经IoT模块发送到Web服务器,执行器用于水泵的控制。请回答下列问题。
图b
序号 子页面路径 功能说明
1 / 实时显示土壤湿度数据
2 /input?id=1&h=10 提交土壤湿度数据
3 /count 显示土壤湿度统计数据
4 /search 查询显示某一天的历史数据
(1)在搭建信息系统的前期准备中,考虑硬件设备配置、应用软件的选择和通信网络的选择与设计等,属于________(单选,填字母A.需求分析,B.可行性分析,C.概要设计,D.详细设计)
(2)系统根据传感器提交的数据,判断是否需要浇灌。若需要,则开启水泵浇灌10分钟。智能终端部分代码如下,请结合图b,补全代码。
#导入函数库,代码略
#设置智能终端连接Web服务器的参数、连接网络的参数并连接网络,代码略
h=pin0.read_analog()
errno,resp=Obloq.get(″①________?id=1&h=″+str(h),10000)
if errno != 200: #表明网络通信连接异常
display.show(str(errno))
else:
if resp==″1″: #开启水泵进行浇灌
pin1.write_digital(1)
sleep(10*60*1000)
②________
(3)根据上面代码分析可知,该信息系统根据传感器数据做出开启或关闭水泵决策的是____________(选填:Web服务器/智能终端/传感器),水泵属于图a中的________。
(4)若Web服务器的IP地址为“196.168.0.101”,端口为“5000”,要访问“显示土壤湿度统计数据”页面,则正确的URL为________________________________。
答案 (1)C (2)①/input ②pin1.write_digital(0) (3)Web服务器 执行器
(4)http:∥196.168.0.101:5000/count
解析 (1)硬件设备配置、应用软件的选择和通信网络的选择与设计属于概要设计。(2)①提交土壤湿度数据的路由为/input。②语句sleep(10*60*1000)表示开启水泵浇灌10分钟,然后关闭执行器。(3)当条件resp==″1″成立时,开启水泵进行浇灌,而resp的值来自于服务器。水泵属于执行器。(4)显示土壤温度统计数据页面通过图b可以找到路由为'/count',故URL为http:∥196.168.0.101:5000/count.
2.小明设计并搭建了一个农业大棚管理系统,运用多种传感器设备监测环境中的参数。其中Web服务器端程序采用Flask Web框架开发。其中为了实时检测并调整湿度,系统利用湿度传感器获取大棚湿度,传输给服务器,服务器根据湿度情况,及时调整大棚湿度,使它达到适宜作物生长的湿度值。如图a所示,请回答下列问题:
(1)下列选项分别是图a所示中虚线框内的①②③位置,合理的是________(单选,填字母)。
A.①智能终端 ②传感器 ③执行器
B.①传感器 ②执行器 ③智能终端
C.①执行器 ②智能终端 ③传感器
D.①传感器 ②智能终端 ③执行器
(2)小明在连接无线路由时只要连接到SSID,输入正确口令就可以无线上网,不需要设置IP地址,说明无线路由已经开启了________服务。
A.HTTP B.FTP C.DHCP D.IP
(3)根据图b所示,若湿度传感器编号id为2,湿度值h为55,提交数据到Web服务器的URL为http:∥10.68.251.1/humidity?h=55&id=2,则服务器采用________(选填:POST或GET)方式接收湿度数据。
(4)大棚的合适湿度值为hmin~hmax(湿度值已取整),当前湿度值为h。h在合适范围,则state显示为1,否则显示为2。则下列Python语句符合要求的是________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(5)小明在测试过程中发现当湿度值h>hmax时,h值能传递到数据库中,但农业大棚的湿度没有发生变化。结合图a,简要说明系统中可能造成上述问题的原因:
_________________________________________________________________________________________________________________________________________。
(注:回答2项,多答仅前两项有效。全对2分,1对1错或仅有1项正确得1分)。
答案 (1)D (2)C (3)GET (4)AC (5)①执行器出现故障 ②智能终端与执行器连接出问题 ③程序代码有问题
解析 本题考查信息系统搭建的相关概念及操作。(1)略。(2)DHCP指动态主机配置协议。(3)传递的数据拼接在URL中,所以服务器接收数据的方式是GET方式。(4)B选项[hmin,hmax]是一个列表,该列表中只有两个值,不包含两个值之间的数据。D选项两个条件应该是or的关系。(5)当湿度值大于最大值时,数据能传递到数据库,但是大棚内的湿度没有发生变化,则可能是服务器端代码有问题,或者智能终端到执行器的连接有问题,或者执行器发生了故障。
3.小明要搭建食用菌大棚智能控制系统,大棚内部安装了温湿度传感设备和智能终端,通过Wi-Fi将实时采集的环境参数传输到云平台,根据菌类生长的适宜温湿度开启或者关闭环境调节设备,自动调节温湿度。用户可以通过手机APP或电脑网页端查看大棚内温湿度实况,并远程控制环境调节设备。请回答下列问题:
(1)温湿度传感器属于该信息系统的________(单选,填字母:A.硬件/B.软件/C.数据)。
(2)可做环境调节设备的是____________(单选,填字母:A.Wi-Fi模块/B.排气扇/C.湿度计)。
(3)小明基于Flask Web框架编写服务器端的程序,部分代码如下。编写完成后,若要通过浏览器获取大棚温湿度数据,则应访问的URL是http:∥________________。
#导入Flask框架模块及其他相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/env')
def main():
#从数据库中读取最近3小时的温湿度数据,并返回页面,代码略
#服务器其他功能,代码略
if _ _name_ _=='_ _main_ _' :
app.run(host='192.168.4.1',port=8080)
(4)智能终端的程序每隔5分钟从传感器获取1次温湿度值,若温度值或湿度值发生变化,则将数据传输到服务器。部分Python程序如下,在程序中划线处填入合适的代码。
#temp1、hum1赋初值,代码略
while True:
temp = pin0.read_analog() #获取pin0引脚传感器的温度数据
hum = pin1.read_analog() #获取pin1引脚传感器的湿度数据
if ________:
#将温度temp,湿度hum数据传输到服务器,代码略
temp1,hum1 = temp, hum
sleep(1000*60*5) #延时5分钟
(5)系统正常工作一段时间后,小明在电脑网页端查看大棚温湿度数据,发现没有最近2小时的温湿度数据(在此期间大棚的温湿度发生了变化),简要说明系统中造成上述问题的可能原因:________________________________________
__________________________________________。(注:回答2项,1项正确得1分)
答案 (1)A (2)B (3)192.168.4.1:8080/env (4)temp!=temp1 or hum!=hum1 (5)①Wi-Fi模块发生故障,数据无法上传。②智能终端发生故障,数据无法上传。③传感器发生故障,智能终端采集的数据不发生变化。
解析 (1)温湿度传感器属于系统硬件。(2)可以通过排气扇调节周边环境温度。
(3)根据服务器相关IP和端口及路由可知网址为http:∥192.168.4.1:8080/env。(4)根据题意若温度值或湿度值发生变化上传数据,if语句条件满足是上传数据,故条件为温度和湿度与原数值不同,temp!=temp1 or hum!=hum1。(5)温湿度发生了变化但是数据没有上传,有可能是传输出现问题或者是传感器损坏,采集不到温湿度变化。
4.某室内环境监控系统采用FlaskWeb框架开发。传感器每分钟采集1次湿度数据(0~100),智能终端通过IoT模块将采集到的数据传输至Web服务器并存储,系统根据采集到的数据与设定的阈值控制除湿机。客户端可通过浏览器查询实时和历史数据。请回答下列问题:
(1)该网络应用软件的实现架构是________(单选,填字母:A.B/S架构,/B.C/S架构)。
(2)系统正常工作一段时间后,发现当前湿度值超过了阈值但除湿机未启动,下列解决问题的方法合理的是________(单选,填字母)。
A.调整湿度阈值,查看除湿机是否正常工作
B.更换湿度传感器,判断是否是湿度传感器故障
C.更换除湿机,判断是否是除湿机故障
(3)下列关于该系统支撑技术的说法,正确的有________(多选,填字母)。(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
A.智能终端中的接口只能用于连接传感器
B.信息系统只能通过串口从传感器获取信息
C.在Flask中,一个路由只能绑定一个视图函数
D.开发完毕后,布署到生产环境中使用时应关闭调试模式
(4)收集一个月的湿度数据处理后得到该月的日平均湿度值,存储在列表h中,例如:列表h中的值为[98,88,84,96,95,93,97,……,83],现要找出相邻两天最大湿度差,部分Python程序如下,请在程序中划线处填入合适的代码。
def findmax():
n=len(h)
imax=0
i=0
while ich=________________
if ch>imax:
imax=ch
i=i+1
return imax
答案 (1)A (2)C (3)CD (4)abs(h[i]-h[i+1])或abs(h[i+1]-h[1])
解析 (1)采用FlaskWeb框架开发,属于B/S架构。(2)当前湿度值超过了阈值,说明传感器没有故障,也不可能是阈值设置过高,只可能是执行器的问题。(3)A选项也可以接执行器。B选项也可以从无线网络或蓝牙等方式获取数据。C选项一个路由只能对应一个视力函数。D选项开启调试模式会显示部分信息,不利于安全性。(4)相邻两天湿度差可能是正值,也可能是负值,但求最大差值指差值的绝对值。
5.智能农业大棚由信息系统来实现大棚的自动化管理,通过传感器实时采集农业大棚内的环境数据,由智能终端经IoT模块发送到Web服务器,Web服务器端程序采用Flask Web框架开发。
(1)自动温度控制系统。温度传感器每隔一定时间采集大棚中的温度,一旦温度超过预设的最高温度40 ℃,控制系统会启动通风和喷水实现降温;如果温度低于预设的最低温度18 ℃,控制系统会启动加热器,给大棚升温;如果温度在19 ℃(含)到39 ℃(含)之间,通风、喷水和加热系统均不工作。
请回答下列问题:
①系统无故障情况下,下列说法正确的是________(多选,填字母)。
A.温度在18 ℃~19 ℃,加热系统可能工作
B.温度在39 ℃~40 ℃,加热系统可能工作
C.温度在18 ℃~19 ℃,通风、喷水系统可能工作
D.温度在39 ℃~40 ℃,通风、喷水系统可能工作
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
②该系统网络应用软件的实现架构是________(单选,填字母:A.B/S架构/B.C/S架构)。
(2)自动补光系统。充足的光照可以提高农产品的产量和质量,光线传感器实时采集大棚内的光照强度,根据光照强度自动打开或关闭大棚中的补光灯。
请回答下列问题:
③自动补光系统结构示意图中A、B处分别为________和________。
④若传感器的编号为1,光照强度值为1110,提交数据到Web服务器的URL为:http:∥192.168.1.6:5000/input?light=1110&id=1,则下列说法正确的有________(多选,填字母)。
A.可采取GET方式进行数据传输
B.服务器端应用实例与该URL关联的路由为“/input”
C.服务器IP地址为192.168.1.6:5000
D.HTTP是一种网络协议
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
答案 (1)①AD ②A (2)③传感器或光线传感器执行器或补光灯 ④ABD
解析 (1)①根据题设给定的条件,温度在19 ℃(含)到39 ℃(含)之间,通风、喷水和加热系统均不工作,在18 ℃加热系统可能工作,在40 ℃通风、喷水系统可能工作,因此A、D正确。②该系统Web服务器端程序采用Flask Web框架开发,因此是B/S架构。(2)③数据从A端传到智能终端,因此A处是传感器,智能终端指向B端,因此B处是执行器。④A选项数据通过URL传递,所以是采用GET方式传输。B选项根据给定的URL,关联的路由为“/input”。C选项5000是服务器的端口号。D选项HTTP是超文本传输协议。
6.小明为他们教室搭建了环境温湿度监测系统,该系统结构示意图如图所示。该系统可实时监测教室温湿度数据,并持续运行一周,数据由智能终端经IoT模块发送至Web服务器,若环境温湿度监测值超过设定阈值区间,则控制执行器调节温湿度,用户可以使用浏览器查看实时数据。
本系统服务器端程序采用Flask Web框架编写,数据库管理系统选择sqlite3,服务器的IP地址是192.168.0.1,端口是5000。网站功能页面规划如下:
序 子页面路径 功能说明
1 / 实时显示温湿度数据
2 /input 提交温湿度数据
3 /count 显示温湿度统计数据
4 /search 查询显示某一天的历史数据
(1)上述页面规划属于搭建信息系统的前期准备的阶段是________。
A.需求分析 B.可行性分析 C.概要设计 D.详细设计
(2)根据该系统的功能要求,题图中①②处的设备分别为________、________.
(3)教室里的学生最舒服的温度范围是tmin~tmax,现要实现温度t正常、非正常(偏高或偏低)时,将对应的状态sta的值设为0和1。下列Python程序段中符合要求的有________(多选,填字母)。
(4)小明在某次系统调试时,输入URL后浏览器出现“404”错误信息(服务器反馈404信息表示服务器端无法找到对应的网页),简要说明系统中可能造成上述问题的原因:___________________________________________________________。
(注:回答两项,1项正确得1分)
答案 (1)C (2)传感器 执行器 (3)BC (4)1.路由地址发生了改变 2.输入地址出错 3.路由视图函数被删除
解析 本题考查microbit及Flask等相关知识。(1)页面规划属于概要分析中的模块设计。(2)传感器采集数据传送给智能终端,智能终端控制执行器。(3)A选项赋值语句sta=0最后执行,sta值均为0;D选项若t<=tmax,则sta=0,满足这个分支后不会再判断t是否大于tmin。(4)服务器无法找到对应的网页,可能是路由地址输错,还有可能路由没有对应的视图函数
7.小明为自家花园设计了“自动浇水系统”,该系统结构示意图如图所示。该系统对花园内A、B两处区域的土壤湿度进行监测和控制。各传感器将采集的数据由智能终端经IoT模块发送至服务器进行处理与存储,各执行器用于实现各区域土壤湿度的控制。请回答下列问题:
(1)下列关于该系统的搭建过程,说法正确的是________。(多选,填字母。注:全部选对的得2分,选对但不全的得1分,不选或选错的得0分)
A.该系统采用了B/S开发模式
B.数据库设计属于系统概要设计过程
C.该系统软件开发时,需要编写服务器程序和客户端程序
D.运行系统,从多角度观察程序,发现其中的错误,属于动态测试
(2)A区域的部分智能终端程序如下:
while True:
hum=pin1.read_analog()
errno,resp=Obloq.get(″input?id=1&h1=″+str(hum),10000) #其他代码略
服务器的IP地址为192.168.0.10,端口为8080,若当前A区域的传感器1监测到的湿度值为56,则其提交数据到服务器的URL为:http:∥____________________
_____________________________________________________________________。
(3)如下程序统计某天A、B两区域浇水装置独自启动的时长cA、cB,两区域装置均启动的时长cAB,请在划线处填入合适的代码。
#数组a中存储了某天两个区域的土壤湿度值(a[i][0]为第i+1分钟A区域的土壤湿度值,a[i][1]为第i+1分钟B区域的土壤湿度值,湿度传感器每隔一分钟采集并上传一次数据),土壤湿度低于阈值w启动浇水装置
n=24*60;cA=cB=cAB=0
for i in range(n):
if a[i][0] cAB+=1
elif a[i][0] cA+=1
____________:
cB+=1
(4)系统正常运行一段时间后,小明发现B区域的植物呈现缺水状态,该区域的浇水装置却没有启动。结合图,简要说明系统中可能造成上述问题的原因:____________________________________。(不考虑水管损坏和停水等原因)(注:回答2项,1项得1分;多答仅前两项有效。)
答案 (1)AD (2)192.168.0.10:8080/input?id=1&h1=56 (3)elif a[i][1]解析 本题考查信息系统的搭建。(1)客户端通过浏览器访问信息系统,采用的是B/S模式,只需编写服务器端程序即可;数据库设计属于详细设计阶段;通过系统运行来观察程序,发现错误,属于动态测试。(2)根据服务器的IP地址,端口号和智能终端处代码,可知提交数据到服务器的URL为:http:∥192.168.0.10:8080/input?id=1&h1=56。(3)条件1:A、B两处的土壤湿度可能都小于阈值,条件2:A处小于阈值B处大于等于阈值,条件3:A处大于等于阈值B处小于阈值,条件4:A、B两处都大于等于阈值。(4)传感器2采集土壤湿度,传递给智能终端2,再通过IoT2将数据传递给服务器,服务器根据采集到的数据,进行处理并将操作指令通过智能终端2传递给执行器2,在这条传递路线上任一处发生故障,都可能导致执行器没有启动使得植物处于缺水状态。
8.小李要帮助体育老师搭建智能体育项目检测系统。其中检测立定跳远的系统中,智能终端从服务器获取考生准考证号,显示在终端的触摸屏上,通过识别身份证和人脸确认信息后考生进入测试区域,每完成一次立定跳远测试,红外传感设备测得的距离或范围判定情况将显示在大屏幕中,测试成绩等数据同步传输至Web服务器,存储到数据库中。网络应用软件的实现架构是B/S架构,用户可通过浏览器查询和统计数据。硬件按如下方式连接:红外传感设备和屏幕接入智能终端,智能终端通过IoT模块连接到服务器。请回答下列问题:
(1)要完成该系统的搭建,下列需要编写的程序是________(单选,填字母:A.客户端程序/B.服务器端程序)。
(2)下列关于该系统中数据管理的说法,正确的是________
(单选,填字母)。
A.数据可以从服务器端传输至红外传感设备
B.智能终端中可以存储少量测试数据
C.通过浏览器查看某班级的满分考生数据不必访问数据库
(3)下列关于该系统支撑技术的说法,正确的有________
(多选,填字母)。(注:全部选对的得2分,选对但不全的得
1分,不选或有选错的得0分)
A.服务器端有程序存储和数据处理的能力
B.红外传感器与智能终端的连接必须通过Wi-Fi进行通信
C.智能终端中运行的所有软件都需要在搭建过程中开发
D.多个智能终端都可以通过IoT模块以无线方式连接同一个服务器
(4)智能终端上的程序具有如下功能:在起跳合规的情况下获取一次有效成绩,红外传感器返回测试区域内落点距离起跳点的距离,返回的数据在起跳前为负数,跳跃腾空过程中距离值为0,落地后会返回正整数值,根据立定跳远的规则,当离开测试区域前的最短距离为测试成绩,所获得的数据形如
[-5,-1,-2,-4,0,0,0,0,…,0,0,0,200,190,160,210,0,0,…],则有效成绩记为160。
①在起跳合规的前提下,完成此功能的部分Python程序如下,请在程序中划线处填入合适的代码。
zero= False
while True:
#从传感器获取距离起跳线的值存储在d中
if d<0:
zero = False
elif d== 0:
________________
elif d> 0 and zero:
#A
mindist = d
while d != 0:
if d < mindist:
mindist = d
#B
break
print(mindist)
②由于落地后还可能产生移动,需要继续读取新的落点距离,实现“从传感器获取距离起跳线的值存储在d中”的功能代码应该出现在________(选填,填文字:A处/B处)。
(5)系统搭建完成后,运行一段时间,小王发现自己的浏览器端打开智能体育测试网站的查询界面网页显示出错,现在可以确定的是软件都没有问题,问题可能出在小王的计算机网络连接或者服务器的网络连接中有一处有问题,请设计一种判定哪处网络连接有故障的方法____________________________________
_____________________________________________________________________。
答案 (1)B (2)B (3)AD (4)①zero=True ②B处 (5)小王打开学军中学网址进行测试。或者小王找初中同学用相同的URL登录测试
解析 (1)由于系统是B/S架构,即浏览器/服务器架构,用户通过浏览器与服务器进行交互。因此,需要编写的程序是服务器端程序,以便处理来自客户端的请求,并将数据存储到数据库中。(2)A选项红外传感设备是数据的采集端,数据应从红外传感设备传输到服务器。B选项智能终端可以临时存储少量测试数据。C选项要查看考生数据,必须访问服务器上的数据库。
(3)A选项服务器端需要有存储和处理数据的能力。B选项红外传感器与智能终端的连接不必须通过Wi-Fi,也可以通过有线或其他无线通信方式。C选项智能终端中可能运行一些现成的软件,不一定都需要在搭建过程中开发。D选项IoT模块允许多个智能终端无线连接到同一个服务器。(4)①数据在起跳前为负数,跳跃腾空过程中距离值为0,落地后会返回正整数值,因此如果d等于0,表示考生可能已经起跳,此时将zero设置为True。②根据立定跳远的规则,当离开测试区域前的最短距离为测试成绩,当获取最小值mindist时,存储在d中。(5)略。
9.小王搭建了家庭智能浇花系统,系统结构示意图如图所示。土壤湿度传感器采集的数据通过IoT模块传送到Web服务器,客户端可以通过浏览器访问Web服务器。Web服务器将处理的结果经IoT模块传送给智能终端,智能终端启动执行器实现对湿度的控制。
(1)①在设计“智能浇花系统”的前期准备中,小王考虑到浇水不仅与土壤湿度有关,还要考虑温度和光照,所以他准备将来还要为该系统扩展温度采集和光线采集等功能,并在开发过程中为这些功能模块预留接口。这一过程属于________(单选,填字母:A.需求分析/B.可行性分析/C.概要设计/D.详细设计)。
②根据本系统网络应用的软件架构,编写程序时需要编写________程序(单选,填字母:A.服务器端/B.客户端/C.服务器端与客户端)。
(2)智能终端每隔1分钟采集一次数据并提交数据到Web服务器。Web服务器端的部分代码如下:
#导入相关模块,代码略
app = Flask(_ _name_ _)
@app.route('/record')
def data():
#网页显示当前传感器数据,并显示最近的50条湿度记录,代码略
@app.route('/input',methods=['GET'])
def add():
①若土壤湿度值val在阈值[h1,h2]内(包括h1和h2),则返回1,否则返回0,则加框处的代码符合要求的有________(多选,填字母)。(注:全部选对得2分,选对但不全得1分,不选或错选得0分)
A.if val>=h1 or val<=h2: B.if not(valh2):
C.if (val-h1)*(h2-val)>=0: D.if h1<=val<=h2:
②若要查看最近的50条土壤湿度记录,则在浏览器地址栏中应输入的网址是_____________________________________________________________________。
(3)系统工作一段时间后,小王用浏览器查看土壤湿度记录,发现页面能正常显示但是该页面上的土壤湿度记录数据不再变化,刷新后仍不变,造成上述问题的原因可能是:________________(多选,填字母)。(注:全部选对得2分,选对但不全得1分,不选或错选得0分)
A.软件存在缺陷
B.执行器故障
C.智能终端和IoT模块连接无线网络出现故障
D.Web服务器停电
答案 (1)①A ②A (2)①BCD ②http:∥10.46.110.119:8080/record (3)AC
解析 (1)①分析系统的功能和扩展功能属于需求分析。②该系统为B/S模式,只需编写服务器程序。(2)①在阈值[h1,h2]内是两个条件均要满足,A选项不正确。B选项在两个范围外面的非,阈值在此范围内。C选项(val-h1)和(h2-val)不可能同时小于0,因此条件均成立。②查看数据的路由为record。(3)数据不更新,说明采集数据有问题,而不是执行器问题,也不可能是Web服务器停电问题。
10.模拟搭建“室内烟雾实时监控系统”,该系统结构示意图如图所示。智能终端接收烟雾传感器采集的数据,IoT模块传送数据到Web服务器并保存到数据库。Web服务器将数据处理的结果经IoT模块传给智能终端,由智能终端启动继电器实现对水泵的控制,并且用户可以通过浏览器访问网页,查看实时数据。
(1)在设计系统的前期准备中,需要确定所需的软硬件配置,这一过程属于________(单选,填字母:A.需求分析/B.概要设计/C.详细设计)。
(2)“室内烟雾实时监控系统”的开发模式是________(单选,填字母:A.B/S模式/B.C/S模式)。
(3)烟雾传感器每隔1秒采集一次数据,在数据处理的代码中,有函数check(a,b,c)用于检测最近3次烟雾浓度值a、b、c,若至少有两次超过100,则认为有火情,函数返回True,否则返回False。下面是check函数的部分代码,请从选项中选择合适的语句完成填空________(单选,填字母)。
def check(a, b, c):
x=a>100;y=b>100;z=c>100
if________:
return True
return False
A.(x and y and z) or (x or y or z) B.x and y or x and z or y and z
C.x or y and x or z and y or z D.not x or not y or not z
(4)在服务器端,配置IP和端口号的语句为server=Server(host=″192.168.1.1″,port=80,threaded=True),设置路由函数的语句为@app.route(″/warn″),则用户访问的URL为http:∥________________。
(5)小明用高浓度的烟雾测试系统,通过客户端查看到烟雾浓度数据已连续超过阈值,但是水泵没有运行,若服务器和终端的代码均正确,则可能的原因是________________________。
答案 (1)A (2)A (3)B (4)192.168.1.1:80/warn (5)继电器损坏或水泵损坏
解析 (1)确定所需的软硬件配置属于需求分析。(2)搭建Web服务器属于B/S模式。(3)and的优先级高于or,两次超过100的表达式为x and y、x and z 或y and z,3个表达式中至少有一个成立。(4)略。(5)水泵没有运行表示该执行器出现问题。
展开更多......
收起↑