iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Software Development

一份考卷不夠你可以出兩份!用 google apps script 出線上考題系列 第 5

[DAY 05] MultipleChoiceItem

接下來是佔考試中最大宗的選擇題啦~~

這個選擇題是指form 中的「單選題
最明顯的部分
是預覽模式下,選項前方為小圓框,且最多選一個選項
https://ithelp.ithome.com.tw/upload/images/20210906/20130625DxOJLEYBcl.png


更詳細的部分可以參考 文檔
接下來不囉嗦直接上碼

function multipleChoiceFunction(formID){
  // 這段是建立單選題的例子
  var form = FormApp.openById(formID)
  var mc = form.addMultipleChoiceItem();

  mc.setTitle('單選題讓作答者僅能選擇一個選項')
    .setHelpText('單選題的正確答案恰有一個,以此題為例,答案為A')
    .setChoices([
      // mc.createChoice('答案文字描述', 正確答案為true;錯誤答案為false)

      mc.createChoice('A', true),
      mc.createChoice('B', false),
      mc.createChoice("C", false)
    ])
    .setRequired(false);  //是否為必答,是為true;否為false
}

.setTitle 讓你寫題目內容
.setHelpText讓你可以寫註解
.setChoices 如果你沒有要設定哪些是正解,可以直接輸入一個list
.createChoice如果要設定哪個是正解,就要在第二參數寫true/false
.setRequired是否為必答,我是設false啦,如同[DAY 01]所說,題目多時間少時可能不是每一題都能答完,至少要讓人家可以交卷呀!!
.setPoints 選擇題是少數可以由GAS設定分數的題型,在此須注意配分須為整數

執行結果應可如下
https://ithelp.ithome.com.tw/upload/images/20210906/20130625edctJzlVp4.png


其實後來我在form 的設定中
都會設定 form.setIsQuiz(false).setLimitOneResponsePerUser(true).setCollectEmail(true)
因為雖然google form 中的每一題幾乎都可以手動設定分數與正解
但目前在GAS中僅支援單選、多選可以設定分數與正解
故將form 設定為測驗的意義不大
所以改採「收集email」並「限定回答一次」代替


上一篇
[DAY 04] Image Item
下一篇
[DAY 06] CheckBoxItem
系列文
一份考卷不夠你可以出兩份!用 google apps script 出線上考題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言