接續上一篇文章:將Google文件中的題目轉換成線上測驗的Google表單
我要將在 Google 文件中的題目、標準答案、詳解,請 ChatGPT 產生 Google Apps Script 程式碼,可以自動轉成 Google 測驗表單,並設定答案和詳解。
Google 文件內容(每一題的格式)如下,注意其網址中的 ID,稍後會用到。
請 ChatGPT 產生 Google Apps Script 程式碼,提示詞:
每一題的範例改成如下:
1. 以下哪一項不是國家認同的基礎?
(A) 多元文化社會
(B) 多元公民身分保障
(C) 國家主權
(D) 公民參與
答案: (A) 多元文化社會
詳解: 多元公民身分保障是國家認同的基礎,而國家主權對內及對外都廣泛影響人民生活。公民參與也是民主社會的重要一環。多元文化社會雖然重要,但並未在資料來源中被提及為國家認同的基礎。
將這些程式碼改成可以將這10個題目、答案和詳解,自動轉成測驗用的Google表單,並且設定成測驗題,並且設定正確答案和解答。 其中,「答案:」之後為標準答案,「詳解:」之後為解析。
這一次在畫布介面下修正了3次錯誤,得到了正確的程式碼:
執行程式碼所產生的 Google 測驗表單如下,已有題目和設定答案及詳解。
操作步驟可參考:將Google文件中的題目轉換成線上測驗的Google表單
你只要稍加設定 Googel 表單,就可以讓使用者作答了。
使用者測驗完,即可看到自己的測驗結果了!
以下是本例的程式碼,供您利用:
// 1. 開啟您的 Google Apps Script 編輯器。
// 2. 創建一個新專案,並貼上以下程式碼。
// 3. 確保您有包含選擇題的 Google 文件,並在腳本中設置其檔案 ID。
// 4. 執行 createForm()。
function createForm() {
// 替換為您的 Google 文件 ID
const docId = "YOUR_DOCUMENT_ID";
// 替換為您希望建立的 Google 表單名稱
const formTitle = "自動生成的 Google 表單";
// 開啟文件並取得內容
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
const text = body.getText();
// 使用正則表達式解析文件中的題目、選項、答案與詳解
const questionRegex = /\d+\.\s(.+?)\n\(A\)\s(.+?)\n\(B\)\s(.+?)\n\(C\)\s(.+?)\n\(D\)\s(.+?)\n答案:\s\((.)\)\s(.+?)\n詳解:\s(.+)/g;
let match;
// 建立 Google 表單
const form = FormApp.create(formTitle);
form.setIsQuiz(true); // 設定表單為測驗模式
// 逐一匹配選擇題並新增到表單
while ((match = questionRegex.exec(text)) !== null) {
const question = match[1].trim();
const optionA = match[2].trim();
const optionB = match[3].trim();
const optionC = match[4].trim();
const optionD = match[5].trim();
const correctAnswerLetter = match[6].trim();
const correctAnswerText = match[7].trim();
const explanation = match[8].trim();
// 新增單選題到表單
const item = form.addMultipleChoiceItem();
const choices = [
item.createChoice(optionA, correctAnswerLetter === 'A'),
item.createChoice(optionB, correctAnswerLetter === 'B'),
item.createChoice(optionC, correctAnswerLetter === 'C'),
item.createChoice(optionD, correctAnswerLetter === 'D')
];
item.setTitle(question)
.setChoices(choices)
.setPoints(1); // 設定分數
// 添加正確和錯誤的回饋
const correctFeedback = FormApp.createFeedback().setText("正確!\n詳解:" + explanation).build();
const incorrectFeedback = FormApp.createFeedback().setText("錯誤!\n詳解:" + explanation).build();
item.setFeedbackForCorrect(correctFeedback);
item.setFeedbackForIncorrect(incorrectFeedback);
}
// 返回表單連結
Logger.log("表單已建立: " + form.getEditUrl());
}
留言列表