Skip to content

Admin-AAA/Simulated-course-selection

Repository files navigation

MEM 选课助手

这是一个专为 MEM(工程管理硕士)项目设计的选课辅助工具,帮助学生高效规划课程、避免时间冲突,并可视化生成学期课表。

✨ 主要功能

1. 智能选课与冲突检测

  • 可视化日历:以周末(周六/周日)为核心的 18 周全学期日历视图。
  • 冲突检测:自动检测课程时间冲突,并在列表和日历中高亮显示(红色警告)。
  • 学分统计:实时计算已选总学分、核心必修课进度、GPA 课程学分。
  • 智能推荐:提供"一键智能排课"功能,自动生成无冲突的推荐选课方案,优先选择同教室课程以减少奔波。

2. 课程管理

  • 课程列表:展示所有可选课程,支持按课程名、老师、教室进行实时搜索过滤。
  • 状态标记:清晰标记"必修"、"GPA"、"本周课程"等状态。
  • 必修课追踪:自动追踪核心必修课程组(如 MEM6001, MEM6002 等)的完成情况。

3. 数据导出与分享

  • 导出课表图片:生成高分辨率的学期课表图片(PNG格式),包含所有周次的课程安排,布局清晰美观。
  • 同步到日历:支持导出 .ics 日历文件,可直接导入 Apple Calendar, Google Calendar, Outlook 等主流日历应用。
  • 备份与恢复:支持导出选课记录为 JSON 文件,方便在不同设备间同步或备份选课方案。
  • 添加已有课程信息:可录入「已修核心必修课程(门数)」「已修 GPA 学分」「已修 非GPA 学分」,统计会自动叠加,并随导出/导入记录保存(不影响课表冲突检测与日历导出)。

4. 现代化界面

  • 响应式设计:完美支持移动端访问,手机上自动切换为卡片式布局,操作体验流畅。
  • 本地存储:自动保存选课状态到浏览器本地存储(LocalStorage),刷新页面不丢失数据。

🛠 技术栈

  • 核心:原生 HTML5, CSS3, JavaScript (ES6+)
  • 样式:CSS Variables, Flexbox/Grid 布局, 移动端适配
  • 图标库Remix Icon
  • 字体:Google Fonts (Inter, Noto Sans SC)
  • 工具库

📂 项目结构

.
├── index.html      # 主页面结构
├── styles.css      # 全局样式与响应式布局
├── app.js          # 核心逻辑(状态管理、渲染、交互、导出功能)
└── README.md       # 项目说明文档

🚀 快速开始

  1. 打开项目:直接在浏览器中打开 index.html 文件即可使用。
  2. 选择课程:在下方课程列表中勾选心仪的课程。
  3. 查看冲突:观察顶部仪表盘的"时间冲突"指标,或日历视图中的红色警告。
  4. 调整方案
    • 手动取消冲突课程。
    • 或点击"使用推荐方案"让系统自动规划。
  5. 导出结果
    • 点击"保存图片"下载课表分享。
    • 点击"同步到日历"将课程导入手机日程。
    • 如需把已修课程/学分计入统计,可点击顶部"添加已有课程信息"录入。

📝 数据说明

目前课程数据硬编码在 app.jsCOURSES 常量中。数据包含课程代码、名称、学分、周次、时间、教室、老师等信息。

如需更新课程数据,请修改 app.js 中的 COURSES 数组配置。

📱 移动端体验

在手机浏览器打开时,系统会自动调整为移动端模式:

  • 顶部统计栏自动折叠适配。
  • 课程列表转换为易于点击的卡片视图。
  • 侧边栏复选框方便单手操作。

注:本项目为纯前端应用,无后端服务器,所有数据均存储在用户本地浏览器中。

About

模拟选课

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors