# 學生課程選課管理系統 - 報告講稿 ## 開場白 各位老師、同學大家好,我是第三組的代表。今天要向大家介紹我們的專題:「學生課程選課管理系統」。 --- ## 一、發想過程 首先談談我們為什麼選擇這個題目。 選課系統是每位大學生都會使用的重要系統,具有實際應用價值與教育意義。我們認為透過開發這個系統,可以達到幾個學習目標: - **學習真實世界中多角色權限管理的實作** - 這是實務上非常重要的能力 - **理解教務系統的運作邏輯** - 深入了解我們每天使用的系統背後的設計 - **練習資料庫與關聯設計** - 這是本課程的核心學習目標 - **體驗完整的系統開發流程** - 從需求分析到測試的完整經驗 --- ## 二、系統用途及設計說明 ### 系統用途 本系統提供三種角色使用: 1. **管理員** - 擁有完整的後台管理功能 2. **教師** - 負責課程與學生管理 3. **學生** - 進行選課與課表查詢 ### 資料庫設計 我們的資料庫總共設計了五張表: - 使用者帳號表 - 學生資料表 - 教師資料表 - 課程資料表 - 選課紀錄表 這五張表透過適當的關聯設計,能夠支援所有系統功能。 --- ## 三、大致功能 接下來介紹各角色的功能規劃。 ### 管理員功能 管理員擁有最完整的權限,包括: - 學生資料管理、教師資料管理、課程資料管理 - 帳號管理與權限設定 - 選課統計報表、課程開課狀況報表 - 系統參數設定,例如選課時間、學分上限等 ### 教師功能 教師可以: - 查看授課課程列表 - 查詢選課學生名單並匯出名單 - 檢視個人課表 - 修改個人資料 ### 學生功能 學生使用者能夠: - 課程查詢、選課與退選 - 檢視個人課表 - 查看已選學分統計 - 修改個人資料 --- ## 四、小組分工 我們七位組員的分工如下: - **組員1**: 資料庫設計、關聯設定、整體協調 - **組員2**: 管理員介面、資料管理功能 - **組員3**: 教師介面、課程管理功能 - **組員4**: 學生介面、選課功能 - **組員5**: 各類查詢設計、報表製作 - **組員6**: 核心邏輯、驗證函式、權限控制 - **組員7**: 介面美化、測試、文件撰寫 每個人都有明確的任務,同時也會互相支援。 --- ## 五、時程預估 我們預計用(八)六週完成這個專題: **第1-2週:需求分析與資料庫設計** - 完成資料表設計與關聯圖(ERD) - 建立Access資料庫檔案 - 輸入測試資料 **第3-4週:核心功能開發** - 完成基本的CRUD功能 **第5-6週:進階功能開發** - 選課邏輯實作,包括衝堂檢查、人數限制 - 報表設計,如課表、名單、統計 - 查詢表單優化,加入篩選、排序功能 **第7-8週:整合測試與優化** (已經是報告的時間,所以會再往前調整) - 系統整合測試 - 使用者介面優化 --- ## 六、可能用到的技術或技巧 在開發過程中,我們會運用以下技術: - 資料表設計 - 查詢(Query)設計 - 表單設計 - 報表設計 - VBA程式設計 --- ## 七、可能遇到的障礙或問題及解決方法 我們也預想到幾個可能遇到的問題,並準備了解決方案: ### 問題1: 多使用者權限控制 **挑戰**: Access不像網頁系統有session機制,如何記錄當前登入者? **解決方案**: - 使用全域變數(模組層級)儲存登入資訊 - 建立登入表單,驗證後將UserID、Role存入全域變數 - 在各表單開啟時檢查權限,控制功能顯示或隱藏 ### 問題2: 選課衝堂檢查 **挑戰**: 如何判斷新選課程是否與已選課程時間衝突? **解決方案**: - 在課程資料表設計時,統一上課時間格式,例如:"(一)3-4、(三)7-8" - 使用查詢檢查是否存在相同時段的已選課程 ### 問題3: 避免重複選課 **挑戰**: 如何防止學生重複選同一門課? **解決方案**: - 在選課表單檢查是否已選過該課程 - 資料表設定複合主鍵(StudentID + CourseID) - 設定驗證規則防止重複 --- ## 結語 以上就是我們第三組的專題提案。這個選課管理系統不僅具有實用性,更能讓我們學習到完整的資料庫設計與系統開發技能。我們會按照規劃的時程,努力完成這個專題。 謝謝各位的聆聽,如果有任何問題,歡迎提出討論!