Skip to content

Repository files navigation

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

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


功能列表

用户管理

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

课程管理

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

选课 & 成绩

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

技术栈

层级技术
前端 UIWPF (.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 接口

数据库表结构

表名主键说明
UsersUsername用户登录表(含密码哈希与角色)
StudentsStudentId学生信息表
TeachersTeacherId教师信息表
CoursesCourseId课程表(外键 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

截图

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


默认测试账户

角色用户名密码
管理员adminadmin123

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

About

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

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages