Skip to content

About

一个基于 SQLite 的学生选课管理系统,支持学生端和教师端两种角色,学生可以自主选课、查看成绩,教师可以统一管理学生和课程信息。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

学生选课系统 Android 应用

一个基于 SQLite 的学生选课管理系统,支持学生端和教师端两种角色,学生可以自主选课、查看成绩,教师可以统一管理学生和课程信息。

✨ UI设计

🎨 Material Design 配色

  • 学生端:青蓝色主题(#00BCD4),清新明亮
  • 教师端:紫色主题(#673AB7),专业稳重
  • 登录页:蓝色主题(#1976D2),通用中性

学生选课系统

🎯 设计特点

  1. 卡片式布局 - 所有信息使用卡片容器,层次分明
  2. 彩色按钮 - 功能按钮使用不同颜色区分优先级
  3. 图标Emoji - 使用Emoji图标增强视觉识别
  4. 统一间距 - 严格的8dp网格系统,视觉统一
  5. 状态栏适配 - 学生端和教师端状态栏颜色不同

功能特性

👨‍🎓 学生端功能

  1. 我的信息 - 查看个人基本信息(学号、姓名、性别、年龄、电话)
  2. 我的课程 - 查看已选修的所有课程及成绩
  3. 选课 - 浏览可选课程列表并选择新课程
  4. 我的成绩 - 查看各科成绩和平均分
  5. 更新个人信息 - 修改姓名、性别、年龄、电话(学号不可修改)
  6. 退出登录 - 返回登录界面

学生登录 学生中心 我的课程

选课 我的成绩 个人信息

👨‍🏫 教师端功能

  1. 学生管理 - 添加、编辑、删除学生信息
  2. 课程管理 - 添加、编辑、删除课程信息
  3. 选课管理 - 为学生选课、录入成绩、删除选课记录
  4. 成绩查询 - 查询学生的各科成绩和平均分
  5. 统计信息 - 查看学生总数、课程总数、各课程选修人数
  6. 退出登录 - 返回登录界面

教师中心 学生管理 添加学生

📦 示例数据

系统首次运行时自动导入示例数据:

学生(5名):

  • 2021001 张三(男,20岁)
  • 2021002 李四(女,19岁)
  • 2021003 王五(男,21岁)
  • 2021004 赵六(女,20岁)
  • 2021005 孙七(男,22岁)

课程(6门):

  • CS101 计算机基础(3学分)
  • CS201 数据结构(4学分)
  • CS301 操作系统(3.5学分)
  • MATH101 高等数学(5学分)
  • MATH201 线性代数(3学分)
  • ENG101 大学英语(4学分)

选课记录(8条): 包含部分学生已选修部分课程并录入成绩。

系统要求

  • Android Studio
  • JDK 17 或以上版本(当前配置JDK 21)
  • Android SDK 24+

构建说明

⚠️ 网络配置要求

1. 配置 JDK

当前项目已配置 JDK 21 (D:\\Program Files\\Java\\jdk-21.0.10)。

如需修改,请在 gradle.properties 文件中更新:

org.gradle.java.home=你的JDK路径

2. 构建项目

gradlew assembleDebug

或在 Android Studio 中点击 Build -> Make Project

3. 运行应用

连接Android设备或启动模拟器,然后运行应用。

数据库设计

学生表 (students)

  • student_id (TEXT, 主键)
  • name (TEXT)
  • gender (TEXT)
  • age (INTEGER)
  • phone (TEXT)

课程表 (courses)

  • course_id (TEXT, 主键)
  • course_name (TEXT)
  • credits (REAL)

选课表 (enrollments)

  • student_id (TEXT, 外键)
  • course_id (TEXT, 外键)
  • grade (REAL, 默认-1表示未录入)
  • 主键: (student_id, course_id)

项目结构

app/src/main/java/com/example/studentcourse/
├── UserRole.java              # 用户角色枚举
├── UserSession.java           # 用户会话管理
├── DatabaseInitializer.java   # 数据库初始化工具
├── Student.java               # 学生模型
├── Course.java                # 课程模型
├── Enrollment.java            # 选课模型
├── DBHelper.java              # 数据库帮助类
├── StudentDAO.java            # 学生数据访问
├── CourseDAO.java             # 课程数据访问
├── EnrollmentDAO.java         # 选课数据访问
├── LoginActivity.java         # 登录界面
├── MainActivity.java          # 旧版主界面(保留)
├── StudentDashboardActivity.java      # 学生端主界面
├── TeacherDashboardActivity.java      # 教师端主界面
├── StudentMyCoursesActivity.java      # 学生我的课程
├── StudentSelectCourseActivity.java   # 学生选课
├── StudentGradesActivity.java         # 学生成绩
├── StudentProfileActivity.java        # 学生个人信息
├── StudentManageActivity.java         # 教师-学生管理
├── StudentEditActivity.java           # 教师-编辑学生
├── CourseManageActivity.java          # 教师-课程管理
├── CourseEditActivity.java            # 教师-编辑课程
├── EnrollmentManageActivity.java      # 教师-选课管理
├── GradeQueryActivity.java            # 教师-成绩查询
└── StatisticsActivity.java            # 教师-统计信息

使用说明

登录方式

  1. 启动应用后,首先看到登录界面
  2. 选择角色(学生/教师)
  3. 输入学号/工号
  4. 点击登录按钮

示例账号:

  • 学生:2021001(张三)
  • 教师:T001(任意输入即可)

学生端使用流程

  1. 登录后查看个人信息
  2. 点击"我的课程"查看已选课程
  3. 点击"选课"选择新课程
  4. 点击"我的成绩"查看成绩和平均分
  5. 点击"更新个人信息"修改个人资料
  6. 点击"退出"返回登录界面

教师端使用流程

  1. 登录后查看教师信息
  2. 点击"学生管理"添加、编辑、删除学生
  3. 点击"课程管理"添加、编辑、删除课程
  4. 点击"选课管理"为学生选课、录入成绩
  5. 点击"成绩查询"查看学生成绩
  6. 点击"统计信息"查看统计数据
  7. 点击"退出"返回登录界面

About

一个基于 SQLite 的学生选课管理系统,支持学生端和教师端两种角色,学生可以自主选课、查看成绩,教师可以统一管理学生和课程信息。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages