亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于微信平臺的青少年編程知識答題小程序的設(shè)計

        2023-01-06 03:17:48鄢艷紅
        黑龍江科學(xué) 2022年23期
        關(guān)鍵詞:視圖錯題頁面

        韓 笑,鄢艷紅

        (廣州中醫(yī)藥大學(xué)醫(yī)學(xué)信息工程學(xué)院,廣州 510006)

        開發(fā)一款基于微信小程序的青少年編程知識答題系統(tǒng),主要從可行性和功能性兩方面進(jìn)行需求分析??尚行孕枨蠓治鲋饕獜慕?jīng)濟(jì)、社會環(huán)境、技術(shù)三方面入手,使開發(fā)者以較小成本在較短時間內(nèi)確定其是否可行。功能需求分析主要用于描述各個功能模塊在系統(tǒng)實現(xiàn)過程中的條件與要求。

        經(jīng)濟(jì)可行性。小程序以推廣青少年編程教育為主,可接受其他平臺的推廣廣告,其他平臺也會向用戶宣傳使用小程序。用戶還可推薦朋友使用,可節(jié)省后期宣傳費(fèi)用。小程序使用原生開發(fā)工具及后臺管理相比APP開發(fā),成本更低且更方便。

        社會環(huán)境可行性。小程序題庫中的題目來源均已在小程序中標(biāo)出,不存在侵權(quán)行為,故此基于移動微信端的青少年編程知識平臺符合社會發(fā)展趨勢。

        技術(shù)可行性。小程序通過微信開發(fā)者工具,結(jié)合官方提供的開發(fā)者文檔,完成前端頁面的設(shè)計與開發(fā)。后臺使用一站式云開發(fā),利用云數(shù)據(jù)庫設(shè)計數(shù)據(jù)集合并存儲頁面數(shù)據(jù),利用云函數(shù)訪問云數(shù)據(jù)庫完成業(yè)務(wù)邏輯,實現(xiàn)前端和后端的數(shù)據(jù)交互。云開發(fā)控制臺進(jìn)行可視化后臺管理,保證了系統(tǒng)的穩(wěn)定與高效。

        小程序的主要功能包括登錄、答題、結(jié)果可視化?;谟脩趔w驗增加擴(kuò)展功能,包括搜索題目、制定計劃、評論互動和瀏覽信息。用戶在進(jìn)行相關(guān)操作時皆有智能化操作提示,確保平臺操作的簡便性。

        1 系統(tǒng)設(shè)計

        青少年編程知識答題小程序的主要功能包括登錄注冊、隨機(jī)答題、結(jié)果可視化、搜索題目、制定目標(biāo)、評論互動和瀏覽信息等。后臺通過一站式云開發(fā),利用云數(shù)據(jù)庫,設(shè)計數(shù)據(jù)集合并將頁面數(shù)據(jù)存儲在其中,利用云函數(shù)訪問云數(shù)據(jù)庫,實現(xiàn)頁面數(shù)據(jù)的實時更新。在云函數(shù)中,通過服務(wù)器端API進(jìn)行邏輯實現(xiàn),實現(xiàn)前端和后端的數(shù)據(jù)交互。

        1.1 總體框架

        微信小程序主要采用MINA框架,分為3個層次,即頁面視圖層、邏輯層和系統(tǒng)層。視圖層與邏輯層通過系統(tǒng)層作為橋梁進(jìn)行事件數(shù)據(jù)的互聯(lián)互通。在邏輯層中對數(shù)據(jù)進(jìn)行更改,處理數(shù)據(jù)流傳向系統(tǒng)層后傳向視圖層得到實時更新,同時視圖層的事件數(shù)據(jù)也通過系統(tǒng)層傳向邏輯層進(jìn)行功能實現(xiàn)。

        視圖層由微信提供的WXML和WXSS兩種語言對頁面基本布局進(jìn)行編寫設(shè)計。WXML (WeiXin Mark Language) 是一種與 HTML相似的標(biāo)簽性語言,主要用于編寫頁面與用戶之間的交互前端。WXSS (WeiXin Style Sheet) 則主要對WXML中不同組件風(fēng)格進(jìn)行修改,其作用與CSS樣式表相似。開發(fā)者利用WXML來建立pages的基本構(gòu)架,并利用WXSS對其進(jìn)行設(shè)計裝飾。

        邏輯層是MINA框架的核心,主要通過微信客戶端啟動異步線程單獨加載運(yùn)行,頁面渲染所需的數(shù)據(jù)、頁面交互處理邏輯都在其中實現(xiàn)[1]。邏輯層對pages的生命周期和頁面相關(guān)事件進(jìn)行監(jiān)聽,利用邏輯層開發(fā)語言JavaScript,主要實現(xiàn)頁面交互、數(shù)據(jù)加載和網(wǎng)絡(luò)請求等功能。

        系統(tǒng)層基于微信原生環(huán)境,實現(xiàn)文件、事件、網(wǎng)絡(luò)和權(quán)限管理,保證了視圖層和邏輯層被同時加載。微信小程序的這種邏輯方式大大優(yōu)化了頁面響應(yīng)速度,減少了頁面加載的等待時間,提高了用戶體驗[2]。

        1.2 功能結(jié)構(gòu)

        系統(tǒng)小程序功能模塊包括主要功能和擴(kuò)展功能兩大方面。主要功能包括登錄注冊、隨機(jī)答題、結(jié)果可視化,其中結(jié)果可視化包括答題結(jié)果、答題記錄、錯題本和全網(wǎng)排名。擴(kuò)展功能包括搜索題目、制定計劃、評論互動、瀏覽信息,其中瀏覽信息包括相關(guān)推薦和我的主頁。

        功能結(jié)構(gòu)設(shè)計如圖1所示。

        圖1 小程序功能結(jié)構(gòu)設(shè)計圖Fig.1 Functional structure design of App

        1.3 功能實現(xiàn)

        部分功能模塊界面如圖2所示。

        圖2 部分功能模塊界面圖Fig.2 Interface diagram of some functional modules

        1.4 軟件實現(xiàn)方法

        微信用戶登錄功能。通過調(diào)用登錄接口wx.login()和獲取用戶信息的接口wx.getUserProfile(),實現(xiàn)登錄并獲取用戶信息。

        隨機(jī)答題功能。在邏輯層中連接云數(shù)據(jù)庫,調(diào)用sample方法隨機(jī)從數(shù)據(jù)庫中選取指定數(shù)量的數(shù)據(jù),并調(diào)用get方法獲取數(shù)據(jù)后,發(fā)送到視圖層。

        其中,獲取題庫函數(shù)定義的偽代碼如下。

        dati.aggregate()//數(shù)據(jù)庫集合的聚合操作 .match({根據(jù)’true’對記錄進(jìn)行篩選}) .sample({隨機(jī)抽取題目數(shù)量}) .end().then(res => { console.log(獲取篩選后的集合數(shù)據(jù)) this.setData({ 將數(shù)據(jù)從邏輯層發(fā)送到視圖層});

        模糊搜索功能。通過在頁面輸入信息,傳遞到邏輯層中,連接云數(shù)據(jù)庫,調(diào)用where方法結(jié)合db.RegExp正則表達(dá)式進(jìn)行查詢。

        其中搜索題目的函數(shù)定義的偽代碼如下。

        if (用戶未輸入) {提示請輸入字段}dati.where({使用db.RegExp對’question’進(jìn)行匹配}) .get().then(res => { if (題目存在){ this.setData({將數(shù)據(jù)從邏輯層發(fā)送到視圖層})} else{提示未找到相應(yīng)題目,請重新輸入}})})

        答題排名功能。通過連接云數(shù)據(jù)庫,調(diào)用orderBy方法以總分進(jìn)行升序排列。其中,獲取全網(wǎng)排名的函數(shù)定義的偽代碼如下。

        activityRecord .where({根據(jù)’_openid’對記錄進(jìn)行篩選}) .orderBy(根據(jù)’totalScore’對記錄進(jìn)行降序排列) .get().then(res => { console.log(獲取篩選后的集合數(shù)據(jù)) this.setData({ 將數(shù)據(jù)從邏輯層發(fā)送到視圖層});

        錯題本功能。通過連接云數(shù)據(jù)庫,調(diào)用兩次where方法進(jìn)行聯(lián)表查詢,第一次根據(jù)用戶ID查詢錯題記錄表,得到數(shù)據(jù)組(用戶錯題題目ID),第二次根據(jù)數(shù)組中每個題目ID查詢題目表,調(diào)用get方法獲取數(shù)據(jù)并渲染到視圖頁。

        其中,錯題本的函數(shù)定義的偽代碼如下。

        A.使用云函數(shù)獲取用戶錯題列表//先查詢用戶的錯題ID列表 const queryResult = await db.collection(“wrongtest”) .where({當(dāng)前用戶’_openid’與數(shù)據(jù)庫中’_openid’比較}) .get( ); console.log(將錯題ID列表定義為queryResult); if (用戶’_openid’錯誤) {查詢錯題ID出錯}; if (錯題列表為空) {沒有錯題)//再用題目ID列表查詢題目詳情 const queryResult2 = await db.collection(“dati”) .where({當(dāng)前題目’_id’與數(shù)據(jù)庫中’_id’比較}) .get(); console.log(將題目詳情列表定義為queryResult2); if (題目存在) {查詢成功} else {查詢題目詳情出錯}B.邏輯層調(diào)用云函數(shù)wx.cloud.callFunction({調(diào)用查詢錯題云函數(shù)}) .then((res) => { if (當(dāng)前用戶存在錯題) { console.log(獲取篩選后的集合數(shù)據(jù)) this.setData({將數(shù)據(jù)從邏輯層發(fā)送到視圖層}); else{查詢題目失敗}} .catch(捕捉出現(xiàn)錯誤) .finally(() => { console.log(加載結(jié)束);});

        2 系統(tǒng)測試

        系統(tǒng)測試目的是驗證最終軟件系統(tǒng)是否滿足需求分析。采用黑盒測試,將測試對象認(rèn)為是黑匣子,忽視系統(tǒng)內(nèi)部架構(gòu)和內(nèi)部特性,只考慮系統(tǒng)外部特征,通過對系統(tǒng)輸入數(shù)據(jù)及輸出數(shù)據(jù)的對應(yīng)關(guān)系和對比測試,判斷系統(tǒng)各部分功能的有效性。主要測試的功能模塊是登錄注冊模塊和隨機(jī)答題模塊,詳見表1。

        表1 用戶答題模塊測試用例表Tab.1 Test case table of user answer module

        3 結(jié)語

        本系統(tǒng)小程序體積小、可移動性強(qiáng),能夠使用戶隨時隨地進(jìn)行趣味知識答題,獲取題目答案。評論互動,為用戶提供個性化學(xué)習(xí)服務(wù),為教育行業(yè)提供可選擇的與課堂結(jié)合的線上學(xué)習(xí)平臺,將青少年編程教育與移動學(xué)習(xí)相結(jié)合,為青少年編程教育的發(fā)展提供了新路徑。

        猜你喜歡
        視圖錯題頁面
        大狗熊在睡覺
        刷新生活的頁面
        『壓強(qiáng)』易錯題練習(xí)
        笑笑的錯題
        聚焦數(shù)列中的易錯題
        “圓”易錯題
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        日本夜爽爽一区二区三区| 日韩精品成人区中文字幕| 91偷自国产一区二区三区| 国产性感午夜天堂av| 亚洲乱码av一区二区蜜桃av | 男女超爽视频免费播放| 国产精品嫩草影院午夜| 亚洲人成色7777在线观看| 97久久超碰国产精品旧版| 影音先锋男人站| 男男车车的车车网站w98免费 | 亚洲AV无码一区二区三区天堂网| 精品国产福利久久久| 久热香蕉精品视频在线播放| 久9热免费精品视频在线观看| 影音先锋男人站| 国产免费久久精品国产传媒| 2021av在线| 在线无码精品秘 在线观看| 亚洲日韩国产精品不卡一区在线| 亚洲国产精品午夜一区| 国产女主播在线免费看| 国产女主播福利在线观看| 久久夜色国产精品噜噜亚洲av| 国产av在线观看久久| 99久久精品无码一区二区毛片| 香港aa三级久久三级| 国产ww久久久久久久久久| 亚洲美腿丝袜 欧美另类| 亚洲国产另类久久久精品黑人| 国产成人+亚洲欧洲+综合| 人妻少妇av中文字幕乱码免费| 久久国产女同一区二区| 国产一区二区三区的区| 人妻精品视频一区二区三区| 亚洲av一二三区成人影片| 欧美成人猛交69| 无码人妻久久一区二区三区不卡| 曰本女人与公拘交酡免费视频 | 91精品啪在线看国产网站| 好看午夜一鲁一鲁一鲁|