Skip to content

Repository files navigation

学生课程管理系统 (Educational Course Management System)

基于 WPF + SQLite + 三层架构 的 .NET 8 学生课程管理系统,支持三种角色(管理员/教师/学生)的教务管理核心功能。


功能列表

用户管理

  • ✅ 三种角色自助注册(Admin / Teacher / Student)
  • ✅ 用户登录(用户名 + 密码)
  • ✅ 管理员对学生/教师信息的增删改查

课程管理

  • ✅ 课程信息维护(课程编号、名称、学分、学期、授课教师)
  • ✅ 教师开设课程(教师可查看自己所授课程)
  • ✅ 按学期筛选课表

选课 & 成绩

  • ✅ 学生自主选课
  • ✅ 教师录入/修改成绩
  • ✅ 学生查看个人成绩单
  • ✅ 成绩统计分析(平均分、总学分)
  • ✅ CSV 文件导出

技术栈

层级 技术
前端 UI WPF (.NET 8, Windows)
后端 .NET 8 (C#)
数据库 SQLite (Microsoft.Data.Sqlite)
架构 三层架构(DAL / BLL / UI)
依赖注入 手动服务定位器 (ServiceLocator)

三层架构说明

EducationalSystem.sln
├── EducationalSystem.DAL          # 数据访问层
│   ├── DbHelper.cs                # SQLite 数据库连接与初始化
│   ├── Entities/                  # 数据实体类
│   │   ├── User.cs                # 用户表实体
│   │   ├── Student.cs             # 学生表实体
│   │   ├── Teacher.cs             # 教师表实体
│   │   ├── Course.cs              # 课程表实体
│   │   └── Enrollment.cs          # 选课记录实体(含成绩)
│   ├── Repositories/              # 仓储层(数据操作)
│   │   ├── UserRepository.cs
│   │   ├── StudentRepository.cs
│   │   ├── TeacherRepository.cs
│   │   ├── CourseRepository.cs
│   │   └── EnrollmentRepository.cs
│   └── Scripts/                   # 建表 SQL 脚本
│
├── EducationalSystem.BLL          # 业务逻辑层
│   ├── Services/                  # 业务服务
│   │   ├── AuthService.cs         # 认证服务
│   │   ├── StudentService.cs
│   │   ├── TeacherService.cs
│   │   ├── CourseService.cs
│   │   └── EnrollmentService.cs
│   └── ServiceLocator.cs          # 服务定位器(全局服务注册)
│
└── EducationalSystem.UI           # 表示层(WPF)
    ├── App.xaml / App.xaml.cs      # 应用程序入口
    ├── Windows/                    # 主窗口
    │   ├── LoginWindow.xaml        # 登录窗口
    │   ├── AdminMainWindow.xaml    # 管理员主窗口
    │   ├── TeacherMainWindow.xaml  # 教师主窗口
    │   └── StudentMainWindow.xaml  # 学生主窗口
    ├── Pages/                      # 功能页面
    │   ├── StudentManagePage       # 学生管理
    │   ├── TeacherManagePage       # 教师管理
    │   ├── CourseManagePage        # 课程管理
    │   ├── CourseOpenPage          # 开课管理
    │   ├── EnrollmentPage          # 学生选课
    │   ├── ScoreEntryPage          # 成绩录入
    │   ├── ScoreQueryPage          # 成绩查询
    │   ├── SchedulePage            # 课表展示
    │   └── TeacherCoursePage       # 教师课程查看
    └── appsettings.json            # 配置文件

引用关系

UI  →  BLL  →  DAL  →  SQLite
      (引用)   (引用)   (NuGet)
  • DAL:底层数据访问,封装 SQLite 操作
  • BLL:业务逻辑层,调用 DAL 完成业务规则
  • UI:WPF 界面层,仅依赖 BLL 接口

数据库表结构

表名 主键 说明
Users Username 用户登录表(含密码哈希与角色)
Students StudentId 学生信息表
Teachers TeacherId 教师信息表
Courses CourseId 课程表(外键 TeacherId → Teachers)
Enrollments (StudentId, CourseId) 选课记录表(含 Score 字段)

运行方法

方式一:直接运行 EXE

  1. 进入 publish_output/ 目录
  2. 双击 EducationalSystem.UI.exe
  3. 首次运行会自动创建 SQLite 数据库文件并初始化表结构

要求:目标电脑需安装 .NET 8 Runtime(若未安装,运行时会自动提示下载)

方式二:源码编译运行

# 还原依赖
cd E:\教务系统
dotnet restore

# 运行
dotnet run --project EducationalSystem.UI

# 发布(生成单文件 exe)
dotnet publish EducationalSystem.UI\EducationalSystem.UI.csproj -c Release -o publish_output

截图

截图占位 — 请运行程序后截图并替换此部分


默认测试账户

角色 用户名 密码
管理员 admin admin123

其他账户请通过注册页面自助创建。

About

学生课程管理系统(C# WPF + SQLite 课设),支持管理员、学生、教师三端,包含选课、成绩录入、课表查看等功能。

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages