浙教版(2019)必修2《第四章 信息系統的搭建實例》2022年單元測試卷
發布:2024/4/20 14:35:0
一、選擇題
-
1.某智能終端連接溫度傳感器和風扇,實現利用溫度數據控制風扇開與關,部分代碼如下:
m=35
while True:
x=int((pin2.read_analog( )/10.24)*3)#將溫度傳感器獲取的溫度數據轉換為攝氏溫度
if x>m:
m=x
elif x==m:
pin14.write_digital(1)#風扇開
else:
pin14.write_digital(0)#風扇關
sleep(500)#①
下列說法正確的是( )A.溫度傳感器連接在pin14引腳 B.風扇連接在pin2引腳 C.①處的數字500 改為1000,獲取溫度的速度會加快 D.當溫度等于35攝氏度時,風扇可能開 組卷:5引用:2難度:0.5
二、解答題(共2小題,滿分0分)
-
3.大力老師為了強健班級學生體魄,推出樂跑活動,現開發“樂跑系統”,其功能需求如下:
①校園環形跑道需要設置4個打卡點,學生佩戴電子標簽經過每處打卡點時,都會記錄下該生經過該點的打卡時間,相應的數據上傳到服務器。
②學生可以通過瀏覽器訪問該系統,進入該系統的“登錄模塊”,登錄后,會顯示“歡迎頁面”,其中包含“個人數據查詢”、“排行榜”、“全校樂跑數據可視化”三個鏈接。
③單擊“個人數據查詢”鏈接進入個人數據查詢頁面,查詢個人每次有效跑步時長(完整打完四個點并且總時長在8分鐘內)。
④單擊“排行榜”鏈接進入排行榜頁面,顯示有效跑步時長次數最多的20名學生信息。
⑤單擊“全校樂跑數據可視化”進入數據可視化頁面。
信息課代表承接了該系統的設計與開發,基于上述需求分析,設計了系統工作流程如題圖1所示,系統框架如圖2所示。
(1)根據以上描述,該信息系統采用的開發模式為
(2)根據上述該系統介紹,結合題圖2可知,訪問“可視化頁面”頁面的URL為
(3)系統數據采集部分工作原理如題圖3所示,圖①處應為
(4)課代表經過前期的規劃設計,對該系統的“登錄模塊”進行界面設計及代碼編寫。登錄模塊具體需求:學生數據(用戶名、密碼)由學校統一導入數據庫中;學生登錄系統后,即進入用戶登錄界面;輸入其用戶名、密碼進行驗證,驗證正確則直接跳轉到“歡迎頁面”。具體代碼如下。
#相關模塊導入代碼略
class BaseLogin(FlaskForm):
#表單定義代碼略
app=Flask( name _)
#啟用 CSRF 保護,代碼略
@app.jye.ai ('/',methods=['GET','POST'])
def index ( ):
#進入登錄頁面代碼略
@app.jye.ai ('/login',methods=['GET','POST'])
def baselogin ( ):
form=BaseLogin ( )#創建表單對象,生成登錄界面用戶名和密碼框
if form.validate_on_submit ( ):#判斷提交信息是否通過
conn=sqlite3.connect ('test.jye.ai')
cur=conn.jye.ai ( )
cur.execute (“select*from user where username='%s'“%uname)
data=cur.fetchall ( )#獲取查詢結果的全部數據
#獲取相關信息,進入歡迎頁面相關判斷代碼略
else:
if name==“main“:
app.jye.ai(host=“0.0.0.0“,port=8080)
根據上述代碼可知,完成以下問題:
①分析程序可知,存儲學生數據(用戶名、密碼)的數據表名為
②如要實現:當用戶提交信息未通過時,跳轉至“login.jye.ai”登錄頁面,則上述代碼中方框內的代碼為
A.return request(“login.jye.ai“,form=form)
B.return redirect(“login.jye.ai“,form=form)
C.return render_template(“login.jye.ai“,form=form)組卷:2引用:2難度:0.3 -
4.小方在學習了信息化系統搭建知識后,很想為家鄉做點實事,考慮到家鄉每年都會防汛抗旱,她在市應急支援局做了調研,開發了本地的“數字智訊”系統,實現通過互聯網獲取各采樣點的溫度、濕度、風力等數據,并根據一定的閾值自動觸發調節系統和報警裝置,該系統的架構如圖所示:
信息采集終端部分代碼如下:
IP=“202.101.190.111“;PORT=“8080“;SSID=“yzzx1“;PASSWORD=“yzzx@2017“#設置連接參數
uart.init(baudrate=9600,bits=8,parity=None,stop=1,tx=pin2,rx=pin1)
while Obloq.connectWifi(SSID,PASSWORD,10000)!=True:
display.jye.ai(“.“)
display.jye.ai(Obloq.ifconfig ( ))
Obloq.httpSet(IP,PORT)#根據 ip 和 port 建?連接
while True:
temp=round(pin1.read_analog ( )/1024*3000/10.24,1)#讀取溫度
hum=round(pin2.read_analog ( ),1)#讀取濕度
rain=round(pin3.read_analog ( ),1)#讀取雨量
winpower=round(pin4.read_analog ( ),1)#讀取風力
errno,resp=Obloq.jye.ai(“input?t=“+str(temp)&“h=“+str(hum) &“r=“+str(rain)
&“w=“+str(winpower),10000)
if errno==200:
display.jye.ai(resp)
if resp==“1“:
music.jye.ai(1000,3000)
display.jye.ai(“SOS“)
#其他各種報警設備驅動代碼
else:
display.jye.ai(str(errno))
sleep(10000*5)#設置采集間隔時間
WEB 服務器部分代碼如下所示:
from flask import Flask
app=Flask(_name _)
@app.jye.ai('/')
def index _:
#讀取終端最近?次的溫度、濕度、雨量、風力存?temp、hum、rain、winpower,代碼略
return“當前溫度“+str(temp)+“當前濕度“+str(hum)+“當前雨量“+str(rain)+“當前風力“+str(winpower)
@app.jye.ai('/input',methods=['POST','GET'])
def add_data _:#終端上傳最新采集的數據
#代碼略
#maxtemp,mintemp,maxhum,minhum,maxrain,minrain,maxwinpower,minpower,變量分別為溫度、濕度、雨量、風力的最大、最小的報警閥值
#以下為溫度報警
if sensorvalue1>maxtemp or sensorvalue1<mintemp:
return'1'
else:
return'0'
#濕度、雨量、風力報警代碼略
if _name _=='_main _':
app.jye.ai(host=“202.101.190.111“,port=8080)
(1)搭建系統的前期準備工作有如下 5 個主要過程:①開發模式的選擇②概要設計③需求分析④詳細設計⑤可行性分析,在實施時正確的步驟是
A.③⑤①②④
B.③①④②⑤
C.⑤③①④②
D.③⑤①④②
(2)從圖中可以看出,該信息系統的架構是
(3)服務器端采用組卷:1引用:2難度:0.4