内容正文:
4.2搭建信息系统(分层作业)
【基础达标】
1. 信息系统的程序编写中涉及服务器端程序、客户端程序和智能终端程序编写等,下列信息系统的开发过程中只需要编写服务器端程序的是 ( )
A.火绒杀毒软件 B.网易门户网站
C.去哪儿网 App D.室内环境实时监测系统
2.某 B/S 架构的信息系统通过 micro:bit 开发板收集自带的传感器数据并传送到 Web 服务器,使用数据库存储每日温度数据。则搭建该系统服务器时,下列软件中无须安装的是 ( )
A.数据库管理系统 B.传感器驱动程序
C.操作系统 D.网卡驱动程序
3. 有很多智能终端都会连接一块扩展板,例如 micro:bit 开发板也可以连接扩展板。下列关于扩展板作用的说法,正确的是 ( )
A.增加主板与传感器连接的便捷性
B.连接扩展板后,采集数据速度变快
C.开发板不连接扩展板无法正常使用
D.连接扩展板后,会使主板运行速度明显变慢
4. 使用 Python 连接某个 SQLite 数据库,若该数据库不存在,则 ( )
A.程序报错
B.系统会自动创建该数据库
C.程序不报错,只是无法进行数据库操作
D.在程序结束后该数据库也随即消失
5. 编写“图书借阅管理系统”的服务器端程序,若要读取 user 数据表中 number 字段值为 1 的所有记录,其中 number 字段的数据类型为字符型,下列执行的命令语句恰当的是 ( )
A.SELECT all FROM user WHERE number=1
B.SELECT all FROM user WHERE number="1"
C.SELECT * FROM user WHERE number=1
D.SELECT * FROM user WHERE number="1"
6. 执行下列数据库操作代码。
sql="select id from user where name is NOT NULL"
cur.execute(sql)
if many:
result=cur.fetchall()
print("多条",result)
else:
result=cur.fetchone()
print("单条",result)
下列说法正确的是 ( )
A.select 是数据库插入记录语句
B.当前代码的功能是显示 name 不为空的所有记录内容
C.程序中只能使用名为 sql 的变量名,保存 SQL 查询语句
D.当前代码的功能是显示 name 不为空的所有 id 字段值
【巩固提升】
7. 小明想在“室内环境监测系统”中加入一个喷淋系统新功能,当烟雾超过预警值时,喷淋系统会进行灭火,同时将火情信息反馈给用户,下列几种信息反馈方式最全面且合理的是 ( )
A.服务器将数据使用电子邮件发送给用户,同时打开喷淋系统
B.服务器向设定用户发送手机短信,同时打开喷淋系统
C.智能终端打开喷淋系统,同时蜂鸣器报警,服务器向设定用户 发送短信
D.智能终端利用扬声器发出预警声音,用户登录系统打开喷淋系统
8. 小陈准备为班级植物区搭建植物环境监测系统,该系统每隔 30 分钟对土壤温湿度进行一次监测,当土壤日平均湿度低于临界值时,系统自动对植物进行浇水,以保证检测期间植物生长的土壤日平均湿度在 17%~44% 范围内。系统结构示意图如图 a 所示。
(1)根据信息系统的功能要求,图中①处的设备名称是_____(单选 ,填字母 :A.路由器 / B.交换机 / C.智能终端)。
(2)该系统服务器端程序采用 Flask Web 框架编写,服务器的 IP 地址是 192.168.1.10,端口号是 8000,若要查看传感器采集的数据,应访问的页面地址是 http://____________
(3)将数据库中 4 月中旬的土壤温湿度数据导出为文件“day.xlsx”,如图 b 所示。并制作 4 月中旬(十天)的土壤日平均湿度变化情况,如图 c 所示,部分代码如下,请在划线处填入合适的代码。
图b 图c
import pandas as pd
import matplotlib.pyplot as plt
#图表显示中文字体,代码略
#读取 Excel文件中的数据
df=pd.read_excel("day.xlsx")
data=[]
#从“时间”格式中提取日期数据
for t in df["时间"]:
data. append( ① )
#添加一列数据,列标题为“日期”
df["日期"]=data
df1=df.groupby("日期",as_index=False).mean()
x=df1["日期"]
y= ②
plt.ylim(15,45) #设置 y 轴的坐标范围
#设置图表标题
plt.title("4月中旬土壤日平均湿度变化情况")
plt.plot(x,y) #绘制折线图
plt.show()
(4)分析如图 c 所示的“4月中旬土壤日平均湿度变化情况”图表可知,该系统在运行期间对植物生长土壤的湿度控制_____________(选填:达到 / 未达到)预期目标。
【链接高考】
9. 小明为家庭小菜园搭建了环境温湿度监测系统,该系统结构示意图如图所示。Web 服务器端程序采用 Flask Web 框架开发。传感器采集的数据由智能终端经 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)小明设定采集并上传数据的时间间隔为 1 分钟。他用浏览器查看温湿度页面,页面动态显示最新的温度、湿度及其采集时间。系统正常工作一段时间后,他发现该页面不再变化,刷新后仍不变。结合题图,简要说明系统中可能造成上述问题的原因___________________________________ (本系统中,传感器损坏、传感器和智能终端连接异常,不会造成上述问题)
10. 小华要搭建书房环境监控系统,该系统能实现监测书房温度和湿度,出现异常时发出警报。用户通过浏览器查看实时监测结果和历史数据。小华已选择的硬件有:智能终端、温湿度传感器、执行器(如蜂鸣器)、服务器等,系统的硬件搭建方式是:服务器通过无线网络连接智能终端,智能终端连接传感器和执行器。请回答下列问题:
(1)该系统中,智能终端与服务器端之间的数据传输_________(单选,填字母:A.只能由智能终端到服务器端 / B.只能由服务器端到智能终端 / C.既可以由智能终端到服务器端,也可以由服务器端到智能终端)。
(2)下列功能需要在智能终端程序中实现的是________(单选,填字母:A. 采集温湿度传感器上的数据 / B.处理浏览器访问请求)。
(3)小华基于 Flask Web 框架编写服务器端的程序,部分代码如下。编写完成后,若要通过浏览器获取视图函数 index() 返回的页面,则应访问的 URL 是 http://____________________。
#导入 Flask 框架模块及其他相关模块,代码略
app=Flask(__name__)
@app.route('/')
def index():
#从数据库读取温度和湿度数据,并返回页面,代码略
#服务器其他功能,代码略
if __name__=='__main__':
app.run(host='192.168.1.108',port=5000)
(4)请通过增加传感器和执行器对该系统功能进行一项扩展,写出增加的传感器和执行器名称及实现的功能________________________________。
(5)小华将系统中某天 24 小时的湿度数据导出,部分数据如图 a 所示(时间格式为“时:分:秒”),分析每小时的最大湿度值,线形图如图 b 所示,部分 Python 程序如下: 图b
图a
import pandas as pd
import matplotlib.pyplot as plt
dft=pd.read_csv('data.csv') #读取文件 data.csv 中的数据
dft.insert(0,'小时','') #插入列
for i in dft.index:
t=dft.at[i,'时间'] #通过行标签和列标签选取单个值
dft.at[i,'小时']=t[0:2]
dfh=dft.groupby(_______________,as_index=False).max() #分组求最大值
#设置绘图参数,显示如图 b 所示的线形图,代码略
plt.plot(dfh['小时'],dfh['监测值']) #绘制线形图
①请在程序中划线处填入合适的代码。
②小华分析线形图发现存在湿度值大于等于 100 的噪声数据,要删除 dft 对象中的噪声数据,下列代码段中,能正确实现的有______(多选,填字母)。
A.dft=dft[dft['监测值']<100]
B.dft=dft['监测值']<100
C.n=len(dft[dft['监测值']>=100])
dft=dft.sort_values('监测值') #升序排序
dft=dft.tail(n) #获取尾部数据行
D.for i in dft.index:
if dft.at[i,'监测值']>=100:
dft=dft.drop(i) #删除行
参考答案
【基础达标】
1.B 解析:杀毒软件是典型的 C/S 模式信息系统,网站 Web 应用只需要开发服务器端,客户端通过浏览器访问。App 开发中要同时开发服务器端程序和移动端程序,室内环境实时监测系统除了服务器端程序还有智能终端程序。
2.B 解析:服务器不连接传感器,故服务器端不用安装传感器的驱动。
3.A 解析:智能终端连接扩展板的目的是增加开发板与传感器连接的便捷性,使用鳄鱼夹连接传感器比较不方便且不稳定。使用扩展板可以增加扩展性,但对开发板和传感器的性能没有影响。
4.B 解析:利用 Python 连接到一个现有的数据库,若数据库不存在,将新创建一个数据库,最后返回一个数据库对象。
5.D 解析:筛选数据表所有满足条件(number 类型是字符型“1”)的记录,不能使用参数 all,具体命令为:SELECT * FROM user WHERE number="1"。
6.D 解析:数据库命令 select id from user where name is NOT NULL 是查询 name 字段值不等于空的记录,并将字段; id 的值进行显示。
【巩固提升】
7. C 解析:烟雾数据超过预警值即打开喷淋系统,同时蜂鸣器报警,并通过短信反馈给用户这种方式最为全面且合理。
8. (1)C (2)192.168.1.10:8000/view (3)①t[0:5] 或其他等价答案 ②df1["湿度"] 或 df1.湿度 (4)达到
解析:(1)①处连接了执行器与传感器,故该设备为智能终端。(2)已知 IP 地址和端口号,根据图 a 中的“页面 2”可知访问查看传感器采集的数据页面地址是 http://192.168.1.10: 8000/view。(3)①处从“时间”列表中提取日期数据,观察图 b 可知日期数据对应前 5 位,故填入代码为 t[0:5]。②处对应图 c 的 Y 轴数据为平均湿度,故填入代码为 df1["湿度"]或 df1. 湿度。(4)观察图 c 发现 4 月中旬土壤日平均湿度有明显的高低变化,说明系统在运行期间对植物生长土壤的湿度控制达到了预期目标。
【链接高考】
9. .(1)A (2)A (3)/toserv (4)①连接物联网模块与 Web 服务器的无线路由器无法正常工作;②物联网模块损坏;③数据库数据量到一定程度不再更新;④Web 服务器中数据库管理系统无法正常运行(仅供参考)
解析:(1)智能终端通过传感器获取数据,数据经过控制器处理后,再通过执行器对外部进行控制,故选项 A 正确。(2)根据题目描述和题图(浏览器与服务器交换数据)可知,数据的传输集中于 Web 服务器端,故该网络应用软件的实现构架是 B/S 架构。(3)根据URL “http://192.168.1.6:5000/toserv?h=60&id=1” 可知,路由为“/toserv”。(4)根据系统架构图各部分功能分析。
10. .(1)C (2)A (3)192.168.1.108:5000 或 192.168.1.108:5000/ (4)①增加光敏传感器、LED 灯和电机,在光照强度低于一定阈值时,通过 LED 灯进行照明;在光照强度高于一定阈值时,通过电机关闭窗帘。②增加空气质量传感器和电机,在空气质量异常(超过预设阈值)时通过电机打开换气扇进行通风。③增加温度传感器和电机,检测书房内的温度,通过电机控制空调的开关,以保持书房内的温度在舒适的范围内 或其他等价答案 (5)①'小时' 或 ['小时'] 或 dfh['小时'] ②AD
解析:(1)根据系统的硬件搭建方式描述,服务器通过无线网络连接智能终端,智能终端连接传感器和执行器。这意味着智能终端和服务器之间可以进行双向通信。智能终端可以将传感器采集到的数据发送给服务器,服务器接收并存储这些数据。同时,服务器也可以向智能终端发送指令或控制信号,智能终端接收并执行这些指令或控制信号。因此,数据传输是双向的,既可以由智能终端到服务器端,也可以由服务器端到智能终端。
(2)根据系统的硬件搭建方式描述,智能终端连接传感器和执行器,可以推断出智能终端需要负责与传感器进行通信,采集温湿度传感器上的数据。通过采集传感器数据,智能终端可以将这些数据发送给服务器进行存储和处理,并且可以通过执行器控制实施相应的操作。因此,智能终端程序需要实现的功能是采集温湿度传感器上的数据,并将其传递给服务器进行后续处理。
(3)在程序代码中,Flask 框架通过 @app.route('/') 路由将视图函数 index() 绑定到 URL 路径上,该 URL 路径也就是默认的根路径,即 '/'。当访问该根路径时,Flask 会自动调用 index() 函数并获取其返回的页面 。 根据代码中的 app.run(host='192.168.1.108',port=5000) 可知,Flask 应用运行的主机 IP 为 192.168.1.108,端口为 5000。因此,可以通过浏览器访问 http://192.168.1.108:5000/ 来获取 index() 函数返回的页面。
(4)略。
(5)①折线图以小时为横轴、监测值为纵轴,所以程序中以“小时”列的值进行分组并求最大值。②选项 A,“dft=dft[dft['监测值']<100]”通过使用布尔索引,保留监测值小于 100 的行,实现了删除湿度值大于等于 100 的噪声数据。选项 B,“dft=dft['监测值']<100”只是返回了一个布尔索引,不会对原 dft 对象进行修改,不能实现删除噪声数据。选项 C,“n=len(dft[dft['监测值']>=100])”只计算了湿度值大于等于 100 的噪声数据的数量,不会对原 dft 对象进行修改,不能实现删除噪声数据。选项 D,“for i in dft.index:if dft.at[i,'监测值']>=100:dft=dft.drop(i)”通过遍历 dft 的索引,判断监测值是否大于等于 100,若满足条件,则使用 drop() 函数删除相应的行,实现了删除湿度值大于等于 100 的噪声数据。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$