題庫製作():循序出題

檔名:laitexttest.aw4

  1. 功能及特色:
  2. 此檔案的目的在於利用readextfile()函數取外部文字檔案-當做我們的試題(題庫),再利用getline()函數來分行讀取的外部文字檔-每一題的結構分成答案、題目及選項,一個檔案可放多個題目。然後使用者輸入答案後判斷是否正確,給予適當的回饋。

  3. 流程圖:
  4. 各圖示說明:

    1)載入外部文字檔:

                      
    此圖是在流程圖中1的部分,利用ReadExtFile()函數讀取外部文字檔案,而我們自訂一變數total接受ReadExtFile()函數所讀取的外部文字檔案之全部之內容(例如:上述的檔案testa.txt)。

    ReadExtFile()函數的用法:ReadExtFile("磁碟:\\路徑\\檔名")

    ※其中路徑中要用雙斜線\\。

    2)亂數出題及清除上次輸入答案

                       
    此圖是在流程圖中
    2的部分,目的設定題目的變數n及其初值。

    3)利用getline()函數來讀取答案、題目、選項:

                       
    此圖為流程圖上
    3的部分,我們利用getline()函數來讀取一行資料【註:getline(資料來源變數,選取第幾行資料)】,其中應先注意我們在建立外部文字檔testa.txt(如下檔案)時,應遵循下列格式--第一行為答案;第二行為題目;第三行為選項(此三行為一題),以下類推。如此我們就可以自訂變數ans來接收答案:ans:=GetLine(total,1+3*n-1)prob變數來接收題目:prob:=GetLine(total,2+3*(n-1))sel變數來接收題目的選項:sel:=GetLine(total,3+3*(n-1))。而n為題次,利用n來取每一題的答案、題目、選項所在的行數。

    例如:n=1時,1+3*(n-1)=1取第一行,即答案;2+3*(n-1)=2取第二行,即
    題目;
    3+3*(n-1)=3取第三行,即選項。

                n=2時,1+3*(n-1)=4取第四行;2+3*(n-1)=5取第五行;3+3*(n-1)=6取第六行。

    以下以此類推。

    1-1.gif (6531 bytes)

    4)顯示題目:


    此圖是流程圖中
    4的部分,目的在編排題目顯現出來版面設計。

    5)結束:(做完五題即結束)


    此圖為流程圖上
    5的部分,目的在設定當我們做完五題後結束程式

    6)比對答案、提供回饋:


    此圖是在流程圖中
    6的部分,stu是來自使用者在流程圖4的部分輸入在輸入框中的系統內定變數Entrytextans是我們在流程圖3的地方所取自檔案的正確解答、feed是之後要設定回饋的變數、而good變數是在流程圖7的部分,作為判斷是執行正回饋還是負回饋的方向指標。

    7)正、負回饋的設定:


    此圖是在流程圖中
    7的部分,目的利用流程圖6的部分所得到的good變數來判斷程式是要流向正回饋(good=1)還是流向負回饋(good=2)。

    8)正回饋設定:


    此圖是在流程圖中
    8的部分,目的設定正回饋畫面。

    9)負回饋設定:


    此圖是在流程圖中
    9的部分,目的設定負回饋畫面。

    10)結束畫面:


    此圖是在流程圖中
    10的部分,目的設定最後離開時的結束畫面。

    11)畫面停留:由於回饋畫面太快以至於會誤認為沒有回饋畫面,解決的辦法有二:

      1. 加入wait圖示:
      2. a)加入『工具列』中『WAIT』圖示於回饋圖示後面(如流程圖中11的部分),則在執行檔案後,就會發現有一個「continue」按鈕(如下圖),按鈕後就會執行下一題。

        b)修改contiune按鈕名稱:利用「Modify」、「File」、「Properties」就可進入『PropertiesFile』視窗。(如下圖)先選取視窗下面的【Interaction】,然後就可直接在【Label:】中鍵入你要的按鈕名稱(例如:修改成中文「繼續」),另外,也可以在【Wait Button:】後面的…..變更按鈕為圖形按鈕。

        c)更改按鈕位置:先執行此檔案,在任何文字位置【註:需要在「contiune」按鈕出現時】雙按滑鼠,此時可進入修改狀態,再移動「contiune」鈕。

        【結果如下:】

      3. 方法二是將決策路徑中的參數Erase Contents:中設定成Don't Erase

    這樣的話,回饋畫面會留在執行的畫面上不會被清除。

  5. 執行結果:


執行檔案後,檔案會去讀取外部資料檔(
testa.txt)後秀出題目,要求使用者輸入答案後,經程式判斷是否正確再給予回饋畫面。