投 稿 類 別 : 資 訊 類 篇 名 : 基 測 申 請 入 學 分 發 系 統 之 研 究 作 者 : 陳 育 琪 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 三 許 靖 愉 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 三 指 導 老 師 : 高 莉 莉 老 師 陳 思 亮 主 任
壹 前 言 一 研 究 動 機 在 校 學 習 程 式 設 計 也 有 段 不 算 短 的 時 間 了, 一 直 以 來 都 是 聽 老 師 們 的 講 解, 對 於 程 式 設 計 仍 有 些 懵 懵 懂 懂, 也 不 知 道 我 們 所 撰 寫 的 程 式 能 達 到 何 等 精 緻 完 美 的 程 度 很 慶 幸 這 學 期 有 專 題 製 作 這 門 課 程, 讓 我 們 能 在 這 個 領 域 裡 挑 戰 自 己 的 極 限 與 激 發 潛 在 的 可 能 在 本 組 與 老 師 討 論 以 後, 我 們 決 定 以 開 發 國 中 基 測 的 申 請 入 學 分 發 系 統 作 為 研 究 主 軸, 並 以 本 校 的 分 發 方 式 來 進 行 系 統 驗 證 二 研 究 目 的 申 請 入 學 是 國 中 畢 業 考 生 們 能 進 入 高 中 職 的 機 會 之 一, 每 年 選 擇 以 申 請 入 學 方 式 進 入 高 中 職 的 人 不 在 少 數 然 而, 申 請 入 學 在 不 同 學 校 都 有 不 同 的 記 分 制 度, 但 大 部 分 學 校 在 處 理 申 請 入 學 資 料 時, 都 還 是 以 極 為 辛 苦 的 人 工 計 分 方 式 排 序, 以 決 定 報 考 學 生 的 入 學 結 果, 既 傷 神 傷 眼 又 費 時 費 力 就 以 本 校 瑞 芳 高 工 為 例, 除 了 要 計 算 加 權 成 績 外, 還 要 處 理 學 生 所 填 選 的 七 個 職 業 類 科 綜 合 高 中, 與 進 修 部 四 個 類 科, 總 共 十 二 個 志 願 序 以 作 為 志 願 分 發 所 以 我 們 希 望 能 製 作 一 款 程 式, 讓 各 高 中 職 的 老 師 可 以 利 用 電 腦 計 分 排 序 的 方 式, 達 到 既 快 速 又 正 確 地 產 生 申 請 入 學 的 考 生 錄 取 結 果 三 研 究 步 驟 首 先, 我 們 查 詢 基 測 的 申 請 入 學 規 則, 並 且 利 用 Microsoft Office Excel 2003 製 作 學 生 相 關 資 料 ( 製 作 學 生 相 關 資 料 是 為 了 開 發 完 程 式 以 後 方 便 我 們 驗 證 系 統 運 作 是 否 正 確 ), 再 來 就 是 規 劃 系 統 所 需 物 件, 並 以 Microsoft Visual Basic 6.0 進 行 程 式 編 寫, 根 據 本 校 加 分 標 準 及 相 關 加 權 分 數 來 進 行 程 式 的 撰 寫, 最 後 把 製 作 完 成 的 學 生 資 料 CSV 檔 ( 逗 點 分 隔 值 檔 案 ), 由 檔 案 通 用 控 制 項 匯 入 主 程 式 中 進 行 資 料 計 算 排 序, 最 後 進 行 結 果 的 驗 證 與 系 統 除 錯, 再 完 成 本 論 文 的 撰 寫 其 步 驟 進 行 方 塊 圖, 如 下 圖 一 所 示 收 集 基 測 分 發 資 料 規 劃 程 式 所 需 物 件 討 論 程 式 演 算 法 則 設 計 程 式 以 及 測 試 圖 一 步 驟 進 行 方 塊 圖 優 化 程 式 撰 寫 論 文 1
為 有 效 掌 握 整 個 專 題 進 度, 我 們 規 劃 了 專 題 計 劃 的 時 間 如 下 圖 二 : 時 間 工 作 收 集 基 測 分 發 資 料 規 劃 程 式 所 需 物 件 討 論 程 式 演 算 法 則 設 計 程 式 以 及 測 試 優 化 程 式 撰 寫 論 文 九 月 十 月 十 一 月 圖 二 時 間 分 配 甘 特 圖 貳 正 文 一 申 請 入 學 成 績 審 查 方 式 介 紹 各 高 中 職 依 據 基 北 區 高 中 職 聯 合 申 請 入 學 簡 章 彙 編 所 列 學 校 之 申 請 條 件, 就 學 生 所 提 資 料 作 書 面 審 查, 各 高 中 職 於 訂 定 評 選 方 式 時, 以 101 年 國 民 中 學 學 生 基 本 學 力 測 驗 之 國 文 數 學 英 語 社 會 自 然 五 科 分 數, 另 得 選 擇 其 中 一 至 二 科 加 權 計 分, 並 應 採 計 寫 作 測 驗 分 數, 作 為 報 名 資 格 條 件 或 加 分 條 件 本 專 題 研 究 以 本 校 瑞 芳 高 工 為 例, 本 校 的 申 請 條 件 如 下 表 表 一 國 立 瑞 芳 高 工 申 請 入 學 資 料 表 項 目 說 明 申 請 門 檻 各 科 ( 寫 作 測 驗 國 文 數 學 英 語 社 會 自 然 ) 合 計 總 分 : 日 間 部 :260 分 以 上 進 修 學 校 :90 分 以 上 總 成 績 核 算 方 式 按 101 年 國 民 中 學 學 生 基 本 學 力 測 驗 加 權 分 數 + 班 級 或 社 團 幹 部 分 數 + 特 別 條 件 分 數 加 權 分 數 英 語 2+ 數 學 2+ 國 文 + 寫 作 測 驗 + 自 然 + 社 會 幹 部 分 數 班 長 或 社 長 每 滿 1 學 期 1.5 分 其 他 班 級 幹 部 每 滿 1 學 期 1 分 特 別 條 件 分 數 名 次 第 4 名 殿 第 1 名 冠 第 2 名 亞 第 3 名 季 軍 乙 等 軍 特 優 軍 優 等 軍 甲 等 區 域 佳 作 全 國 性 級 10 分 8 分 7 分 6 分 院 轄 市 臺 灣 區 級 8 分 6 分 5 分 4 分 縣 市 級 5 分 3 分 2 分 1 分 2
二 專 題 研 究 設 備 本 次 專 題 研 究 所 使 用 的 實 驗 軟 硬 體 設 備 如 下 表 二 所 示 : 表 二 實 驗 過 程 所 使 用 之 設 備 名 稱 中 央 處 理 器 記 憶 體 硬 體 作 業 系 統 程 式 語 言 規 格 Phenom 8400 2.0G/512K*3 FSB3600 1G DDR2 320GB SATA Windows XP SP3 Microsoft Visual Basic 6.0 SP6 三 程 式 設 計 說 明 ( 一 ) 程 式 系 統 架 構 資 料 檔 案 載 入 加 權 分 數 計 算 考 生 成 績 排 序 圖 三 登 記 分 發 系 統 架 構 考 生 志 願 分 發 分 發 結 果 輸 出 上 圖 三 是 本 分 發 系 統 的 系 統 架 構 圖, 主 要 可 分 為 資 料 載 入 加 權 分 數 計 算 總 成 績 核 算 考 生 成 績 排 序 考 生 志 願 分 發 與 結 果 輸 出 等 部 分 ( 二 ) 氣 泡 排 序 法 論 述 氣 泡 排 序 法 又 稱 交 換 排 序 法, 顧 名 思 義 就 是 由 觀 察 氣 泡 的 變 化 推 演 出 來 的 排 序 法 則 此 一 排 序 方 式 的 規 則 是 將 相 鄰 的 資 料 兩 兩 作 比 較, 若 資 料 的 順 序 排 列 不 對, 就 進 行 交 換, 如 此 每 個 循 環 可 運 用 此 法 則 選 出 一 個 最 大 或 最 小 的 數 ; 再 重 複 此 步 驟 便 可 依 序 選 出 第 一 第 二 到 最 小 ( 或 大 ) 的 值 當 資 料 有 N 筆 時, 排 序 會 進 行 N-1 次 循 環, 以 此 將 資 料 的 大 小 順 序 排 出 排 序 內 容 可 以 由 大 到 小, 也 可 由 小 到 大, 氣 泡 排 序 法 可 說 是 眾 多 排 序 法 中 最 簡 單 的 一 個 氣 泡 排 序 法 的 每 個 循 環 進 行 中, 如 果 沒 有 執 行 任 何 一 次 的 資 料 交 換 時, 就 表 示 資 料 已 排 序 成 功, 所 餘 下 的 循 環 就 無 須 再 進 行, 因 此 執 行 效 率 較 一 般 排 序 方 法 為 佳, 故 本 專 題 以 此 排 序 方 法 進 行 資 料 排 序, 下 表 三 以 實 例 說 明 氣 泡 排 序 法 的 排 序 步 驟 3
表 三 氣 泡 排 序 法 簡 述 流 程 表 循 環 次 數 排 序 資 料 排 序 說 明 第 一 循 環 4,1,99,7,28,10,23 原 數 列 1,4,99,7,28,10,23 4 1 兩 數 比 較 後,1 較 小 執 行 交 換 1,4,99,7,28,10,23 4 99 兩 數 比 較 後,4 較 小 不 執 行 交 換 1,4,7,99,28,10,23 99 7 兩 數 比 較 後,7 較 小 執 行 交 換 1,4,7,28,99,10,23 99 28 兩 數 比 較 後,28 較 小 執 行 交 換 1,4,7,28,10,99,23 99 10 兩 數 比 較 後,10 較 小 執 行 交 換 1,4,7,28,10,23,99 99 23 兩 數 比 較 後,23 較 小 執 行 交 換 第 一 循 環 結 束,99 為 最 大 值, 再 下 一 循 環 除 外 第 二 循 環 1,4,7,28,10,23,99 1 4 兩 數 比 較 後,1 較 小 不 執 行 交 換 1,4,7,28,10,23,99 4 7 兩 數 比 較 後,4 較 小 不 執 行 交 換 1,4,7,28,10,23,99 7 28 兩 數 比 較 後,7 較 小 不 執 行 交 換 1,4,7,10,28,23,99 28 10 兩 數 比 較 後,10 較 小 執 行 交 換 1,4,7,10,23,28,99 28 23 兩 數 比 較 後,23 較 小 執 行 交 換 第 二 循 環 結 束,28 為 最 大 值, 再 下 一 循 環 除 外 第 三 循 環 1,4,7,10,23,28,99 經 過 第 三 循 環 的 比 較 後, 並 未 執 行 任 何 一 次 交 換, 表 示 資 料 排 序 成 功 ( 三 ) 程 式 流 程 圖 開 始 載 入 檔 案 分 數 加 權 計 算 排 列 ( 分 數 由 大 到 小 ) 分 發 結 果 輸 出 結 束 科 別 錄 取 人 數 上 限 載 入 考 生 志 願 序 是 否 達 到 門 檻 否 是 志 願 是 否 為 空 是 否 否 符 合 科 別 要 求 是 名 額 是 否 為 空 是 否 圖 四 登 記 分 發 程 式 流 程 圖 4
( 四 ) 程 式 演 算 法 Step1: 在 程 式 一 開 始, 按 下 左 邊 的 讀 取 & 計 算 鍵 載 入 Step2: 載 入 要 分 發 的 檔 案 資 料 Step3: 程 式 會 先 輸 入 學 校 內 所 招 收 各 科 系 之 人 數 上 限 Step4: 將 作 文 級 分 從 中 文 數 字 轉 換 成 阿 拉 伯 數 字 Step5: 將 級 分 數 轉 換 完 後, 程 式 將 會 把 考 生 的 成 績 加 權 並 加 入 幹 部 及 特 殊 比 賽 的 分 數 Step6: 使 用 氣 泡 排 序 法 將 各 考 生 之 加 權 總 分 由 高 至 低 排 列 Step7: 接 著 可 以 按 下 右 邊 的 開 始 鍵, 程 式 首 先 會 自 訂 一 函 數 flag 來 判 別 考 生 是 否 已 有 入 選 的 科 系, 接 著 從 志 願 一 開 始 判 斷 是 否 符 合 科 系 要 求, 若 不 符 合 則 接 著 判 斷 志 願 二, 以 此 類 推 若 考 生 已 入 選 某 科 系, 則 換 下 一 位 考 生 進 行 判 别 Step8: 做 完 上 述 步 驟 後, 程 式 內 的 各 科 系 的 Text 方 塊 即 會 顯 示 計 算 過 後, 已 成 功 錄 取 各 科 系 的 學 生 准 考 證 號 碼 身 分 證 號 碼 及 姓 名 Step9: 若 考 生 皆 沒 選 到 所 填 入 的 志 願, 則 不 會 顯 示 在 介 面 上 ( 五 ) 主 要 程 式 碼 說 明 1 讀 取 資 料 檔 並 且 加 以 排 列 : CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 開 啟 學 生 資 料 檔 n = Array(" 資 訊 ", " 電 子 ", " 電 機 ", " 機 械 ", " 製 圖 ", " 土 木 ", " 建 築 ", " 綜 高 ", " 進 資 訊 ", " 進 電 機 ", " 進 機 械 ", " 進 建 築 ") 學 校 科 別 總 類 s = Array(5, 7, 6, 6, 7, 7, 7, 10, 5, 6, 6, 7) 對 應 科 別 之 入 取 人 數 上 限 i = 0 Do While Not EOF(1) For j = 1 To 24 載 入 資 料 檔 內 容, 如 圖 六 Input #1, m(i, j) 讀 取 作 文 級 分 If i <> 0 Then Select Case m(i, 4) 第 i 筆 資 料 的 第 四 格 位 子 ( 即 作 文 分 數 ) Case " 一 " 若 載 入 值 為 一 5
m(i, 4) = 2 則 將 第 i 筆 資 料 第 四 格 更 改 為 2 Case " 二 " 若 載 入 值 為 二 m(i, 4) = 4 則 將 第 i 筆 資 料 第 四 格 更 改 為 4 Case " 三 " 若 載 入 值 為 三 m(i, 4) = 6 則 將 第 i 筆 資 料 第 四 格 更 改 為 6 Case " 四 " 若 載 入 值 為 四 m(i, 4) = 8 則 將 第 i 筆 資 料 第 四 格 更 改 為 8 Case " 五 " 若 載 入 值 為 五 m(i, 4) = 10 則 將 第 i 筆 資 料 第 四 格 更 改 為 10 Case " 六 " 若 載 入 值 為 六 m(i, 4) = 12 則 將 第 i 筆 資 料 第 四 格 更 改 為 12 Case Else 若 載 入 值 上 面 皆 沒 有 m(i, 4) = 0 則 將 第 i 筆 資 料 第 四 格 更 改 為 0 End Select m(i, 25) = m(i, 4) + m(i, 5) + m(i, 6) * 2 + m(i, 7) * 2 + m(i, 8) + m(i, 9) + m(i, 12) 將 該 考 生 之 分 數 加 權 存 回 第 i 筆 第 25 格 End If i = i + 1 將 i+1 換 下 一 人 Loop total = i 1 計 算 此 資 料 共 有 幾 位 考 生 Close #1 關 閉 資 料 檔 下 圖 五 所 示 為 本 專 題 研 究 的 測 試 資 料 檔, 欄 位 分 為 准 考 證 身 分 證 字 號 姓 名 各 科 成 績 與 考 生 志 願 序 等 資 料, 內 容 虛 構 僅 供 系 統 測 試 所 用 系 統 所 讀 取 資 料 欄 位 圖 五 資 料 檔 展 示 圖 6
2 用 氣 泡 排 序 法 排 列 所 讀 取 資 料 檔 : For i = 1 To total 1 將 第 一 到 倒 數 第 二 筆 資 料 做 必 較 For j = i + 1 To total If m(i, 25) < m(j, 25) Then 若 第 i 筆 資 料 比 第 j 筆 資 料 小 則 For k = 1 To 25 swap m(i, k), m(j, k) 第 i 筆 資 料 與 第 j 資 料 互 換 End If Public Sub swap(a, b) t = a: a = b: b = t 函 數 a b 交 換, 用 來 交 換 i 和 j End Sub 3 將 資 料 依 照 志 願 分 發 至 各 科 系 : Dim flag As Boolean 將 flag 設 為 只 有 true 和 false 的 函 數 用 來 判 別 該 學 生 是 否 已 被 選 入 某 科 別 For i = 1 To total j = 13: flag = True j=13 對 應 到 資 料 庫 中 的 志 願 一,flag 設 為 True Do While m(i, j) <> "" And j < 25 And flag 志 願 一 不 可 為 空 白 且 不 能 超 過 上 限 志 願 十 二 且 flag 必 為 True Select Case m(i, j) 選 擇 志 願 j Case " 資 訊 " 若 志 願 j 為 資 訊 則 往 下 做 If s(0) <> 0 Then 入 選 人 數 不 可 為 0 s(0) = s(0) 1 將 入 選 人 數 扣 一 個 flag = False 表 示 已 選 到 科 系 ans(1, 5 - s(0)) = m(i, 1) &""& m(i, 2) &" "& m(i,3) 該 考 生 之 准 考 證 身 分 證 及 名 字 End If 以 此 類 推 其 他 科 系 皆 為 如 此 End Select j = j + 1 Loop For i = 0 To 11 因 為 科 別 數 目 為 十 二 個 For j = 1 To 10 照 考 生 分 數 高 低 Text1(i) = Text1(i) & ans(i + 1, j) & vbcrlf 對 應 之 科 系 的 介 面 7
為 再 加 上 錄 取 考 生 並 且 換 行 五 研 究 成 果 說 明 首 先 按 下 賭 取 & 計 算 的 按 鈕 選 取 要 分 發 的 資 料 檔 圖 六 登 記 分 發 載 入 檔 案 示 意 圖 顯 示 各 學 生 所 分 配 到 的 科 別 將 讀 取 的 資 料 計 算 並 且 排 列 圖 七 登 記 分 發 系 統 成 果 圖 將 資 料 顯 示 在 介 面 上 8
參 結 論 一 研 究 心 得 起 初 我 們 對 於 排 序 法 的 理 解, 只 侷 限 於 之 前 程 式 設 計 課 程 中 上 過 的 印 象, 那 時 只 覺 得 排 序 資 料 靠 人 力 就 足 夠 了, 不 需 要 做 這 類 的 程 式 可 是 經 過 這 次 論 文 的 討 論 及 研 究, 我 們 才 深 深 體 會 到 排 序 法 有 它 存 在 的 理 由, 如 果 要 排 序 這 類 大 量 又 不 能 出 錯 的 數 字 或 資 料, 單 靠 人 力 是 絕 對 不 足 的 ; 所 以, 我 們 對 發 明 這 些 排 序 法 的 數 學 家 或 科 學 家 們 深 感 敬 佩 經 過 這 次 的 程 式 撰 寫, 讓 我 們 了 解 到 程 式 設 計 這 廣 大 的 知 識 海 洋 可 謂 深 不 可 測, 這 次 的 經 驗 讓 我 們 更 能 精 進 深 入 地 學 習, 並 懂 得 將 程 式 運 用 在 解 決 實 際 的 問 題, 對 我 們 未 來 的 學 習 進 程 有 了 啟 發 作 用 二 未 來 展 望 我 們 希 望 在 未 來 能 設 計 出 一 套 讓 高 中 職 老 師 方 便 利 用 的 電 腦 閱 卷 系 統, 以 減 輕 老 師 們 閱 卷 的 負 擔 也 希 望 我 們 能 把 程 式 擴 大 改 善 到 能 在 開 啟 程 式 後, 就 能 運 用 表 格 控 制 項 輸 入 所 需 的 科 系 或 班 級, 接 著 再 輸 入 分 發 的 人 數, 而 不 是 載 入 檔 案 進 行 整 理 本 組 在 系 統 開 發 過 程 中, 就 曾 為 了 學 生 資 料 檔 案 中, 分 隔 各 資 料 的 逗 點 是 否 補 足 而 傷 透 腦 筋 ; 此 外, 也 還 有 很 多 部 分 都 是 我 們 需 待 改 進 的, 例 如 : 是 否 可 以 在 輸 入 資 料 的 時 候, 就 開 始 進 行 排 序, 而 當 資 料 皆 輸 入 完 畢 後, 各 科 學 生 的 分 發 就 可 以 顯 示 在 螢 幕 上 藉 由 這 次 的 專 題 製 作, 我 們 學 習 到 不 少, 但 學 海 無 涯, 我 們 所 做 的 還 是 不 夠, 期 待 未 來 能 繼 續 鑽 研 相 關 學 問, 並 能 實 際 應 用, 以 解 決 現 代 科 技 社 會 的 各 項 問 題 9
肆 引 述 資 料 [1] 楊 倉 杰 編 著 (2002) Visual Basic 範 例 集 臺 北 市 : 文 魁 資 訊 [2] 洪 國 勝 編 著 (2010) Visual Basic 程 式 設 計 與 專 題 製 作 臺 北 市 : 松 崗 出 版 社 [3] 李 啟 龍 尤 信 翰 編 著 (2009) 資 料 結 構 與 程 式 設 計 臺 北 市 : 文 魁 資 訊 股 份 有 限 公 司 [4] 黃 世 陽 吳 明 哲 何 嘉 益 張 志 成 吳 志 忠 曹 祖 聖 編 著 (1998) Visual Basic 6.0 中 文 版 學 習 範 本 臺 北 市 : 松 崗 出 版 社 [5] 基 北 區 101 學 年 度 高 中 職 聯 合 申 請 入 學 委 員 會 網 站,2012 年 11 月, 取 自 http://adm101.tp.edu.tw/ [6] 維 基 百 科 冒 泡 排 序 ( 氣 泡 排 序 ),2012 年 11 月, 取 自 http://zh.wikipedia.org/wiki/%e5%86%92%e6%b3%a1%e6%8e%92%e5%b A%8F 10