版本:2026-06-08
适用平台:Windows(控制台程序)
双击 x64\Debug\Bigwork2.exe 或在 Visual Studio 中按 F5 运行。
首次运行会自动在程序所在目录创建 data\ 文件夹(若不存在)。
请输入你登录的身份:
1.管理员
2.教师
3.学生
4.退出
输入数字 1、2、3 选择对应身份,或输入 4 退出程序。
注意:输入非数字字符会被识别为无效输入,程序会提示重新输入,不会死循环。
┌─────────────────────────────────────┐
│ 教务管理系统 │
│ │
│ ┌────────┐ ┌────────┐ ┌───────┐ │
│ │ 管理员 │ │ 教师 │ │ 学生 │ │
│ └───┬────┘ └───┬────┘ └──┬────┘ │
│ │ │ │ │
│ ·添加教师 ·录入成绩 ·查看GPA │
│ ·删除教师 ·查看成绩 ·查看成绩 │
│ ·添加学生 ·删除成绩 ·选课/退课│
│ ·删除学生 ·查看排名 │
│ ·查看师生 │
└─────────────────────────────────────┘
三种角色各自独立,使用独立的账户密码登录,操作互不干扰。
系统自带以下账户(密码均可在对应文件中修改):
| 角色 | 用户名/编号 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | aaa |
123456 |
存储在 data/user.txt |
| 教师 | 1001(工号) |
123456 |
姓名:wanglaoshi,存储在 data/teacher.txt |
| 学生 | 12(学号) |
123456 |
姓名:zhangsan |
| 学生 | 4(学号) |
123456 |
姓名:wangwu |
| 学生 | 5(学号) |
123456 |
姓名:zhaoliu |
学生账户存储在
data/students.txt,每行一条,格式:姓名 学号 密码
你选择了管理员身份
请输入管理员用户名:
aaa
请输入管理员密码:
123456
登录成功后进入管理员菜单。
请输入需要执行的操作:
1.添加教师
2.添加学生
3.显示教师
4.显示学生
5.删除教师
6.删除学生
7.退出
输入教师的姓名、编号、密码。系统会自动检查编号是否重复,重复则拒绝添加。
请输入教师姓名:
liulaoshi
请输入教师编号:
1002
请输入教师密码:
666666
教师添加成功
输入学生的姓名、学号、密码。系统自动检查学号是否重复。
请输入学生姓名:
lisi
请输入学生学号:
6
请输入学生密码:
123456
学生添加成功
列出所有已注册的教师信息:
教师姓名:wanglaoshi 教师编号:1001 教师密码:123456
教师姓名:liulaoshi 教师编号:1002 教师密码:666666
列出所有已注册的学生信息:
学生姓名:zhangsan 学生学号:12 学生密码:123456
学生姓名:wangwu 学生学号:4 学生密码:123456
学生姓名:zhaoliu 学生学号:5 学生密码:123456
输入要删除的教师编号,确认即可删除。
请输入要删除的教师编号:
1002
教师删除成功
输入要删除的学生学号,系统会同时清理该学生的成绩文件和课程文件。
请输入要删除的学生学号:
6
学生删除成功
你选择了教师身份
请输入你的教职工号:
1001
请输入你的密码:
123456
登录成功
======老师菜单 ======
1. 添加学生成绩
2. 显示学生成绩
3. 删除学生成绩
4. 退出
输入学生学号、课程名称、学分和分数(百分制),系统自动计算绩点。
请输入学生ID:
12
请输入课程名称:
Math
请输入课程学分:
4
请输入学生成绩:
85
成绩文件自动生成在
data/12_Grade.txt,格式:Math 85 4 3
绩点换算规则:
| 百分制分数 | 绩点 |
|---|---|
| 90 – 100 | 4.0 |
| 80 – 89 | 3.0 |
| 70 – 79 | 2.0 |
| 60 – 69 | 1.0 |
| 0 – 59 | 0.0 |
输入学生学号,显示该学生所有课程成绩。
请输入学生ID:
12
课程名称:Math
成绩:85
学分:4
输入学生学号和要删除的课程名称。
请输入学生ID:
12
请输入要删除的课程名称:
Math
成绩删除成功
你选择了学生身份
请输入你的学号:
12
请输入你的密码:
123456
登录成功
====== 学生菜单 ======
1. 查看GPA
2. 查看课程成绩
3. 查看课程管理
4. 添加课程
5. 删除课程
6. 查看排名
0. 退出
显示加权平均绩点。
你的GPA为:3.0
计算公式:GPA = Σ(绩点 × 学分) ÷ Σ学分
例如:Math 85分(绩点3.0, 4学分) + English 92分(绩点4.0, 2学分)
GPA = (3.0×4 + 4.0×2) ÷ (4+2) = 20÷6 = 3.33
显示所有已有成绩的课程详情:
课程名称:Math
成绩:85
学分:4
绩点:3
显示已选课程的时间地点安排:
课程名称:Math
上课时间:Mon-8:00
上课地点:A101
若无已选课程,显示"课程为空"。
输入课程名称、上课时间和地点:
请输入课程名称:
Math
请输入上课时间:
Mon-8:00
请输入上课地点:
A101
课程添加成功
注意:当前版本不检查课程时间冲突和容量上限。
输入要退选的课程名称:
请输入要退选的课程名称:
Math
课程退选成功
显示你在全校学生中的 GPA 排名:
你的排名:第 2 / 5 名
你的GPA:3.33
排名按 GPA 降序排列,GPA 最高的排第 1。
项目/
├── Bigwork2.exe ← 可执行程序
└── data/ ← 数据目录(自动创建)
├── user.txt ← 管理员账户(只有一行)
├── teacher.txt ← 教师列表
├── students.txt ← 学生列表
├── {学号}_Grade.txt ← 学生成绩(教师录入后生成)
└── {学号}_Courses.txt ← 学生课程(学生选课后生成)
| 文件名 | 格式 | 示例 |
|---|---|---|
user.txt |
用户名 密码 |
aaa 123456 |
teacher.txt |
姓名 工号 密码 |
wanglaoshi 1001 123456 |
students.txt |
姓名 学号 密码 |
zhangsan 12 123456 |
{id}_Grade.txt |
课程名 百分制分数 学分 绩点 |
Math 85 4 3 |
{id}_Courses.txt |
课程名 时间 地点 |
Math Mon-8:00 A101 |
你可以用记事本直接编辑这些 txt 文件:
- 重置管理员密码:修改
user.txt中的第二项 - 批量导入学生:在
students.txt中追加新行(格式:姓名 学号 密码) - 手动修改成绩:编辑对应
{学号}_Grade.txt文件
⚠️ 手动编辑后请确保每行字段数量正确,且字段间用空格分隔。
确保 Windows 终端的编码设置为 UTF-8。在终端标题栏右键 → 属性 → 选项 → 勾选"使用旧版控制台"的相反设置。
检查学号是否输入正确。成绩文件名格式为 data/{学号}_Grade.txt,学号不匹配会导致文件写入不同位置。
确认同一次登录中所有学生都有 GPA 数据。若 GPA 为 0 或未录入成绩,排名可能受影响。
删除 data\ 文件夹,下次运行程序会自动重建目录。但预设账户也会丢失,需要手动创建 user.txt 等文件。
当前程序使用 _mkdir(Windows API)和 VS 项目文件,不能直接在其他系统编译。但路径分隔符已统一使用 /,移植成本较低。
程序不会崩溃或死循环。会提示"无效输入,请重新输入",重新等待正确输入。