国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python Tkinter課堂手機(jī)監(jiān)管系統(tǒng)的設(shè)計

2019-05-10 09:42:50張喜紅王玉香
中州大學(xué)學(xué)報 2019年2期
關(guān)鍵詞:控件列表路由器

張喜紅,王玉香

(亳州職業(yè)技術(shù)學(xué)院 電子與電氣工程系,安徽 亳州 236800)

移動互聯(lián)網(wǎng)時代的快速到來,使得智能手機(jī)與人形影不離。高校大學(xué)生群體中幾乎人手一部智能手機(jī),已成為他們進(jìn)行人際交往、信息獲取、休閑娛樂、生活購物等活動的得力工具。智能手機(jī)給學(xué)生生活帶來了積極意義的同時,也對大學(xué)課堂產(chǎn)生了巨大的負(fù)面影響,成為當(dāng)前課堂的“隱形殺手”之一,學(xué)生在上課聊QQ,看網(wǎng)絡(luò)小說、打游戲的行為極其普遍,隱形逃課之風(fēng)日趨高漲。有些學(xué)校為了制止這些不良行為,采取上課之前強(qiáng)制收繳手機(jī)等措施。然而,在大力推行“智慧課堂”的時代下,采用如此霸道的監(jiān)管方式顯得不盡人意,如:學(xué)生在課堂上可能需要應(yīng)用智能手機(jī)進(jìn)行檢索文獻(xiàn)、共享資源等學(xué)習(xí)行為[1-3]。由此可見,探索一套有效的監(jiān)管方式,使智能手機(jī)由課堂“隱形殺手”變?yōu)椤罢n堂助手”,極具意義。

基于上述背景,以亳州職業(yè)技術(shù)學(xué)院現(xiàn)有多媒體教室的硬件資源為基礎(chǔ),兼顧課堂“藍(lán)墨云”班課的使用,基于Python語言設(shè)計了一款課堂手機(jī)輔助管理系統(tǒng),建立了通過無線路由局域網(wǎng)對學(xué)生手機(jī)終端行為的監(jiān)管、考評、激勵機(jī)制,同時實現(xiàn)了教師按需控制局域網(wǎng)接入Internet網(wǎng)絡(luò)。

1 系統(tǒng)的組成及工作流程

系統(tǒng)的整體組成結(jié)構(gòu)如圖1所示,由教師電腦終端、無線路由器、學(xué)生智能手機(jī)終端組成。無線路由器WLAN端口接入Internet網(wǎng)絡(luò),教師電腦通過有線或無線方式接入無線路由器,學(xué)生智能手機(jī)終端通過Wifi連接到無線路由器,組建班級局域網(wǎng)。系統(tǒng)設(shè)計的基本思路是:智能手機(jī)同一時段內(nèi)只能選擇WLAN或數(shù)據(jù)流量訪問Internet網(wǎng)絡(luò),即學(xué)生手機(jī)加入班級局域網(wǎng)指定的Wifi無線路由器后,只能通過此無線路由訪問Internet互聯(lián)網(wǎng),要想通過其他網(wǎng)絡(luò)或數(shù)據(jù)流量訪問Internet互聯(lián)網(wǎng),必須先斷開與班級局域網(wǎng)的連接。同時,學(xué)生智能手機(jī)網(wǎng)卡的MAC地址具全球唯一性,無線路由器的管理頁面大多給出了當(dāng)前接入設(shè)備的MAC地址信息列表。因此,在事先建立班級成員手機(jī)MAC地址統(tǒng)計信息表的基礎(chǔ)上,通過掃描無線路由器接入設(shè)備的MAC地址信息列表,便可實時監(jiān)控學(xué)生手機(jī)與班級局域網(wǎng)的連接狀態(tài),進(jìn)而及時把握學(xué)生的行為動向。

具體實施流程如下:

①課前教師事先統(tǒng)計班級學(xué)生姓名或?qū)W號與其手機(jī)MAC地址的對應(yīng)信息表。

②上課時,要求班級成員通過密鑰接入指定的無線路由,與教師電腦組建局域網(wǎng)。

③教師電腦端通過課堂手機(jī)輔助管理系統(tǒng)軟件,按1min時間間隔,周期性自動提取接入無線路由器的學(xué)生手機(jī)MAC地址列表信息,并與步驟①中的MAC地址信息表進(jìn)行比對,統(tǒng)計每位學(xué)生在一個課時內(nèi)連入指定無線路由網(wǎng)的次數(shù)。

④課程結(jié)束后,將步驟③中得到的每課時連網(wǎng)次數(shù)直觀展示,并按一定的比例納入平時成績考評體系,進(jìn)而激勵學(xué)生課堂規(guī)范上網(wǎng)。

⑤當(dāng)教師需要使用“藍(lán)墨云”等Internet互聯(lián)網(wǎng)軟件與學(xué)生開展互動教學(xué)時,教師可通過課堂手機(jī)輔助管理系統(tǒng)軟件實時開啟與Internet互聯(lián)網(wǎng)的連接。同時,為了防止學(xué)生瀏覽與課堂無關(guān)的Internet互聯(lián)媒體,互動結(jié)束后可實時斷開與Internet互聯(lián)網(wǎng)的連接。

圖1 系統(tǒng)組成示意圖

2 系統(tǒng)軟件的設(shè)計與實現(xiàn)

2.1 系統(tǒng)的GUI主界面

鑒于手機(jī)監(jiān)管系統(tǒng)軟件的GUI界面不是很復(fù)雜,GUI界面設(shè)計采用Python語言提供的Tkinter圖形界面模塊進(jìn)行設(shè)計[4]。課堂手機(jī)監(jiān)管系統(tǒng)的GUI主界面如圖2所示,界面主要由文本標(biāo)簽控件、按鈕控件及文本輸入控件等三類控件構(gòu)成。各標(biāo)簽控件的作用相對簡單,用于顯示軟件的使用步驟說明?!奥窂竭x擇”按鈕用于選擇設(shè)置班級學(xué)生智能手機(jī)MAC地址信息統(tǒng)計表;“啟動監(jiān)控”與“停止監(jiān)控”按鈕用于啟動或停止系統(tǒng)掃描并統(tǒng)計學(xué)生智能手機(jī)接入無線路由網(wǎng)的次數(shù);“查看結(jié)果”按鈕用于課堂結(jié)束后,向?qū)W生展示在線次數(shù)的統(tǒng)計結(jié)果;“連接網(wǎng)絡(luò)”與“斷開網(wǎng)絡(luò)”按鈕用于教師實時控制無線路由網(wǎng)絡(luò)接入與斷開Internet互聯(lián)網(wǎng)。

使用Tkinter進(jìn)行GUI界面開發(fā),主要包括窗口實例化、控件定義、控件屬性設(shè)置及控件布局等步驟。窗口的實例化通過Tk()類實現(xiàn),如master = Tk()即可創(chuàng)建一個名為self. master的窗口容器。當(dāng)窗口創(chuàng)建好后,可在窗口中使用title0 = Label(master, text='請按如下說明使用本軟件', font='20', bg='white', fg='blue')格式語句添加文本標(biāo)簽控件,第一項參數(shù)用于指定控件的容器為master窗口容器,其他參數(shù)分別為顯示的文本內(nèi)容、字體大小、背景色、文字顏色。按鈕控件可使用link_internet = Button(master, text='停止監(jiān)控', command= open_internet)格式語句添加,第一項參數(shù)同樣也是指定控件的容器,text參數(shù)為按鈕顯示的文本內(nèi)容,command參數(shù)是按鈕的事件命令,open_internet為自定義的按鈕功能函數(shù)。各控件在容器如何布局,通過Tkinter提供的pack()、grid()兩種方法實現(xiàn):pack()用于實現(xiàn)控件自上到下的布局;grid()用于實現(xiàn)在子容器中按表格布局。如:link_internet.grid(row=0, column=0)可將link_internet控件布局到當(dāng)前容器0行、0列的位置。

圖2 GUI界面圖

2.2 路由器的自動化管理

課堂手機(jī)監(jiān)管系統(tǒng)軟件獲取當(dāng)前接入無線路由器設(shè)備的Mac地址列表,或管理Internet互聯(lián)網(wǎng)的接入或斷開,都需模擬瀏覽器通過HTTP請求訪問路由器的各個管理頁面。requests或selenium模塊是Python實現(xiàn)HTTP請求常用方法[5-6]。requests對靜態(tài)交互網(wǎng)頁的請求與獲取實現(xiàn)較為簡單,但對于動態(tài)網(wǎng)頁需進(jìn)行抓包分析后設(shè)計請求方式,實現(xiàn)相對困難。Selenium是一款用于Web自動化測試的工具包,它提供的webdriver工具可模擬人工操控瀏覽器請求網(wǎng)頁,結(jié)合無界面的PhantomJS瀏覽器,可實現(xiàn)自動化請求網(wǎng)頁[7]。經(jīng)實際測試,鑒于通過requests請求無線路由器的URL地址返回為空,最終決定采用Selenium與PhantomJS模擬人工操作本地瀏覽器的方式,實現(xiàn)無線路由器的無界面控制管理。以登錄無線路由器管理后臺為例,其關(guān)鍵代碼如下所示:

from selenium import webdriver

import time

password = '填入你自己的密碼'

Routers_URL= 'http://192.168.11.1/'

My_driver = webdriver.PhantomJS(executable_path=r'F:phantomjsinphantomjs.exe')

My_driver.get(Routers_URL)#模擬請求路由器管理后臺登錄頁面

time.sleep(1)#等待響應(yīng)近回所需的時間

My_driver.find_element_by_id('pcPassword').send_keys(password) #模擬在密碼欄輸入登陸密碼

My_driver.find_element_by_id('logIn').click()#模擬單擊登陸按鈕事件

其中My_driver = webdriver.PhantomJS(executable_path=r'F:phantomjsinphantomjs.exe')語句用于指定無界面瀏覽器PhantomJS的驅(qū)動程序安裝路徑;find_element_by_id('pcPassword')語句用于從網(wǎng)頁中定位光標(biāo)到指定的位置;send_keys(password)用于向指定的位置填寫相應(yīng)的內(nèi)容;click()用于模擬鼠標(biāo)單擊指定位置的操作;time.sleep(1)用于實現(xiàn)休眠等待1s,具體時長需依據(jù)網(wǎng)頁返回的響應(yīng)速度決定。

2.3 MAC信息列表的提取

連入無線路由器MAC地址列表信息的提取過程,可通過如下步驟實現(xiàn):①通過2.2節(jié)中的無界面自動化WEB操控方式,進(jìn)入到無線路由器的MAC信息列表頁面,獲得MAC信息列表頁網(wǎng)頁源碼。②從獲得的MAC信息列表網(wǎng)頁源碼中,定位、過濾、提取每個接入設(shè)備的MAC信息。MAC信息列表的定位、過濾、提取采用Python的正則表達(dá)式實現(xiàn),關(guān)鍵實現(xiàn)代碼如下:

#定位到MAC地址列表區(qū)域,提取所有接入設(shè)備MAC地址

R_Mac_List = My_driver.find_element_by_id('wanmac')

now_mac_text= R_Mac_List.text#將MAC地址列表信息轉(zhuǎn)化為文本

now_mac=re.findall(r"[0-9 a-f A-F]{2}:[0-9 a-f A-F]{2}:[0-9 a-f A-F]{2}:[0-9 a-f A-F]{2}"

r":[0-9 a-f A-F]{2}:[0-9 a-f A-F]{2}",now_mac_text) #正則表達(dá)式匹配

2.4 在線簽到次數(shù)的統(tǒng)計

去除網(wǎng)絡(luò)連接存在故障的情況,在單位時間內(nèi)統(tǒng)計學(xué)生手機(jī)MAC地址在無線路由網(wǎng)絡(luò)的存在次數(shù),在一定程度上能夠反映學(xué)生是否接入其他網(wǎng)絡(luò),訪問與課堂無關(guān)的信息情況。具體的實現(xiàn)方法是:以一定的時間間隔,周期性的將已知學(xué)生姓名的手機(jī)MAC數(shù)據(jù)表與當(dāng)前獲得的MAC信息列表進(jìn)行對比,若當(dāng)前獲得的MAC信息列表中存在某已知學(xué)生姓名的手機(jī)MAC地址信息,則將此學(xué)生的簽到次數(shù)加1。關(guān)鍵實現(xiàn)代碼如下,其中now_mac為當(dāng)前接入路由器的所有MAC地址;self.student_Mac為事先已知學(xué)生姓名的手機(jī)MAC地址數(shù)組;self.timeCount為簽到計數(shù)器。

def conect_count(self,now_mac):

for i in range(len(now_mac)):

for j in range(len(self.timeCount)):

if now_mac[j] == self.student_Mac[j]:

self.timeCount[j] = self.timeCount[j] + 1;

else:

continue

2.5 在線次數(shù)統(tǒng)計結(jié)果的展示

為了及時將簽到次數(shù)以直觀的形式呈現(xiàn)給學(xué)生,對學(xué)生課堂規(guī)范使用手機(jī)起到激勵、警示作用,課堂教學(xué)結(jié)束時,需點(diǎn)擊圖2所示GUI主界面上的“查看結(jié)果”按鈕,展示本堂課學(xué)生的在線次數(shù)。與“查看結(jié)果”按鈕對應(yīng)的結(jié)果展示功能函數(shù),采用Python語言提供的matplotlib繪圖工具包實現(xiàn)[8],結(jié)果展示方式采用柱狀圖模式,具體實現(xiàn)代碼如下:

def Display_result(self):

try:

plt.figure(u'統(tǒng)計結(jié)果')

matplotlib.rcParams['font.family'] = 'SimHei'

matplotlib.rcParams['font.size'] = 10

plt.xlabel(u'學(xué)生姓名')

plt.ylabel(u"在線次數(shù)")

plt.bar(range(len(self.student_name)),self.timeCount)

plt.xticks(range(len(self.student_name)),self.student_name,rotation=0)

plt.title(u"在線次數(shù)統(tǒng)計結(jié)果",fontproperties = 'SimHei', fontsize = 20)

plt.show()

except:

messagebox.showinfo('提示', '運(yùn)行錯誤!') # 顯示對話框

3 測試與分析

教師電腦采用CPU型號為Intel(R) Core(TM) i3-4160 3.6GHz,內(nèi)存為4GB,操作系統(tǒng)為Win7-64位的宏機(jī)臺式電腦,無線路由器選用迅捷FW450R,學(xué)生人數(shù)24名,在12m*7m大小的教室內(nèi)按圖1所示的拓?fù)浣Y(jié)構(gòu)組建網(wǎng)絡(luò),以45min為一課時,測試系統(tǒng)的各項功能。24名受測試學(xué)生在線次數(shù)統(tǒng)計結(jié)果如圖3所示,去除網(wǎng)絡(luò)連接故障因素,可知6,10,16,23,26,17號學(xué)生在課中接入班級無線互聯(lián)網(wǎng)的次數(shù)較低,一定程度上客觀反映了這些學(xué)生在課中有不規(guī)范使用手機(jī)的行為;其余學(xué)生在課中的在線次數(shù)達(dá)40次以上,去除瀏覽手機(jī)本地媒體的行為,基本上可排除接入其他網(wǎng)絡(luò)瀏覽與課堂無關(guān)資源的情況。因此,可將此項數(shù)據(jù)按一定的權(quán)重納入平時成績的評定體系,激勵、警示學(xué)生課中規(guī)范使用手機(jī)。同時,教師通過軟件控制班級無線局域網(wǎng)接入Internet互聯(lián)網(wǎng)的實驗結(jié)果顯示,在點(diǎn)擊“連接網(wǎng)絡(luò)”按鈕后,整個班級局域網(wǎng)可在3~5s的時間內(nèi)實時接入Internet互聯(lián)網(wǎng);在點(diǎn)擊“斷開網(wǎng)絡(luò)”按鈕后,整個班級局域網(wǎng)在1~2s的時間內(nèi)實時斷開與Internet互聯(lián)網(wǎng)的連接。

圖3 學(xué)生手機(jī)在線次數(shù)統(tǒng)計結(jié)果柱狀圖

猜你喜歡
控件列表路由器
巧用列表來推理
買千兆路由器看接口參數(shù)
科教新報(2022年24期)2022-07-08 02:54:21
學(xué)習(xí)運(yùn)用列表法
擴(kuò)列吧
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
你所不知道的WIFI路由器使用方法?
不含3-圈的1-平面圖的列表邊染色與列表全染色
無線路由器輻射可忽略
就這樣玩會VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
巧設(shè)路由器,下載更快速
平乡县| 绵竹市| 礼泉县| 资讯 | 噶尔县| 嘉义市| 临安市| 广东省| 肃南| 连云港市| 阿合奇县| 彭泽县| 当阳市| 阳山县| 贵德县| 讷河市| 安吉县| 汪清县| 正蓝旗| 安国市| 横山县| 八宿县| 日喀则市| 深圳市| 济源市| 洪洞县| 青川县| 出国| 修水县| 拜城县| 汾阳市| 剑阁县| 巴青县| 玉田县| 平度市| 丹寨县| 曲麻莱县| 台南市| 台中市| 西充县| 景德镇市|