> # ♻️ 资源
> **大小:** 770KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010779**](https://www.yuque.com/sxbn/ks/100010779)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87450276**](https://download.csdn.net/download/s1t16/87450276)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 教室管理系统
# “语言课程设计”报告
## 设计任务
① 编写一个教室管理系统, 管理教师的信息和教师所上的课程的信息, 教师的信息包括:教师编号、姓名、性别、出生年月、职称、最后学历、工资、婚否、授课数据集; 授课信息包括:课程编号、课程名称、课时、教室、授课班级、学分、学期;;
② 系统功能的要求:
1.创建和管理教师信息的对象;
2.创建和管理授课信息的对象;
3.增加和删除教师;
4.针对特定教师增加和删除授课信息;
5.基本查询功能;
6.数据文件读写:文件中包含所有教师信息、每个教师的授课信息等数据;
7.基本信息显示:
所有教师信息显示;
特定教师的授课信息;
## 任务分析
首先确定程序管理的数据结构是一个嵌套的 QList,编写一个教师类, 数据成员包含教师的基本信息, 还有一个数据成员是一个储存教师的授课信息的 QList。编写一个课程类,数据成员包含该课程的基本信息。在 mainWindow 类的数据成员中加入一个教师类的 QList,即程序维护的核心数据。;然后设计展示数据的 UI 界面:建立一个 mainwindow 类,通过表格的形式显示所有的教师的信息。可跳转至主窗口的第二页来显示特定教师的所有授课信息。建立一个 tdialog 设计师类用于添加和修改教师的信息,建立一个 cdialog 设计师类用于添加和修改特定教师的课程信息。在主窗口的菜单栏来实现文件的读写和保存,实现筛选,对于特定年龄老师的筛选,建立一个 sxdialog 设计师类来用于选择年龄范围。;最后设计一些工具函数方便操作数据,并开始正式编写,对于主要的数据结构,每个类的数据成员,一步到位设计好,对于筛选等等功能的提升,采取增量式一步步完善。
## 设计思路与流程
在 mainwindow 类中维护一个教师类的 QList,还有一个 QString 类型的 pathname 私有数据成员作为文件读写的路径。;编写 teacher 类和 course 类,以及对应的修改对话框。;编写 mainwindow 函数的工具函数,再将所有部件耦合起来;
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375647-7a40b6c9-2ca0-4df4-9985-978ff1acc057.png#averageHue=%23ecedf2&from=url&id=jbo81&originHeight=351&originWidth=642&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
## 功能介绍
教师信息管理系统可以完成对教师信息和每一个教师的授课信息的增删改,对教师信息可以查询。在添加和修改教师信息的时候回检验教师的 id 是否重复,防止不同的老师使用同一个 id,符合实际同时避免程序中获取老师指针的函数出现问题。;可以实现文件的读写,维护好的一份教师信息可以保存,程序导入一份教师信息,进行查看和维护。;实现了 UI 界面和简单的交互。
## 文件与对象描述
1.teacher 类中的 QList<Course_> cList 用于存储课程信息,Course_ getCourse(int cid);;bool removeCourse(int cid)作为工具维护数据,重载 >> 和 << 运算符用于文件读写。;Course 类封装课程的基本信息,重载 >> 和 << 运算符用于文件读写。;tdialog 类数据成员和函数:;tDialog::tDialog(Teacher_ teacher, QWidget _parent, MainWindow _ mainwindow) :构造函数,如果 teacher 为空指针则不显示,否则现在窗口各个输入框中显示当前教师信息(为了同时用于实现修改功能);Teacher_ teacher;该指针用于暂时存储窗口上用户输入的数据。;MainWindow_ mainWindow;//有的函数需要拿到主窗口中维护的的数据,比如检测 id 是否重复。;bool ifok();判断 teacher 的 id 是否重复;void on_buttonBox_accepted();表示用户输入完毕,开始判断并存储 teacher 的数据;分析:由于 teacher 类的构造函数中的 teacher 指针可以缺省,所以可以在修改和添加教师功能中实现复用,修改可以直接通过该对话框完成,添加需要再额外将新创建的 teacher 指针添加到 clist 中。;cdialog 类与 tdialog 类类似且更简单;Mainwindow 类:;MainWindow::MainWindow(QWidget _parent):构造函数,显示所有的教师信息;QList<Teacher _> tList;核心数据;Teacher_ getTeacher(int tid); //根据编号 id 获取老师;Teacher _getTeacher(QString tname);在查找中使用,通过教师的姓名索引;;bool removeTeacher(int tid); //删除编号为 id 的老师;void showTeacher(int row, Teacher_ teacher); //在教师信息页的第 row 行插入显示教师信息;分析:先最基本的显示代码,创建几个 Pushbutton 到该行,由于修改按钮在 show 函数中定义,所以在修改之后不可以调用本身,没法实现复用,再重复一遍基本的显示代码。转到课程按钮对应的函数:先翻页,清除当前课程页原有的信息,然后读取该老师的所有课程信息,显示到课程页上。;void showCourse(int row, Course* course); //在课程信息页的第 row 行插入教师的课程信息;分析:与 showteacher 类似,不过修改时要通过 ui 指针获取当前而教师,在通过该教师的 getcourse 函数获取当前的课程指针。;void removeAllData(); //清除所有数据,以便读入新的数据;Mainwindow 类中的槽函数:;打开文件,保存文件,另存为,筛选功能,添加,返回,显示所有教师;注意数据的修改和显示是独立的。;7.sxdiaolog 类:用于获取筛选条件,由于对话框还没释放,所以 date 还能访问。
## 测试报告
运行;
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375711-bd0694d0-fbeb-474a-9e6e-e613bc60e965.png#averageHue=%23f8f8f8&from=url&id=ZcNm7&originHeight=577&originWidth=765&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)打开文件;
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375785-30108d36-ae96-4f76-a179-7d9ee85a5f4e.png#averageHue=%23666564&from=url&id=aU69z&originHeight=451&originWidth=782&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
打开完毕;
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375842-e4e883aa-8366-4ade-8a51-9f504aacf230.png#averageHue=%23f7f6f6&from=url&id=zByJI&originHeight=610&originWidth=753&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
教师的添加(id 不可重复),修改,删除:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375906-451642b9-0510-47c4-b2ff-179617531007.png#averageHue=%23f1f1f1&from=url&id=uy53X&originHeight=617&originWidth=781&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715647375960-677e5e51-f9ef-4ae5-adf6-181196c610b0.png#averageHue=%23ededed&from=url&id=tpl7H&originHeight=474&originWidth=350&originalType=binary&ratio=1
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++ 实现(界面)教室管理系统【100010779】
共28个文件
cpp:9个
h:7个
ui:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 191 浏览量
2023-02-14
11:11:55
上传
评论
收藏 772KB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010779 编写一个教室管理系统, 管理教师的信息和教师所上的课程的信息, 教师的信息包括:教师编号、姓名、性别、出生年月、职称、最后学历、工资、婚否、授课数据集; 授课信息包括:课程编号、课程名称、课时、教室、授课班级、学分、学期;; 系统功能的要求:1.创建和管理教师信息的对象;2.创建和管理授课信息的对象;3.增加和删除教师;4.针对特定教师增加和删除授课信息;5.基本查询功能;6.数据文件读写:文件中包含所有教师信息、每个教师的授课信息等数据;7.基本信息显示:所有教师信息显示;特定教师的授课信息;
资源推荐
资源详情
资源评论
收起资源包目录
100010779-基于C++ 实现(界面)教室管理系统.zip (28个子文件)
myfirstproject
JS120214_4
cdialog.h 716B
course.h 612B
JS120214_4.pro.user 25KB
mainwindow.h 2KB
mainwindow.cpp 15KB
JS120214_4.pro 849B
teacher.h 1KB
cdialog.cpp 2KB
sxdialog.h 386B
main.cpp 232B
course.cpp 53B
class.cpp 46B
mainwindow.ui 11KB
sxdialog.cpp 415B
class.h 102B
sxdialog.ui 2KB
tdialog.h 1KB
teacher.cpp 626B
cdialog.ui 5KB
tdialog.cpp 3KB
tdialog.ui 8KB
hello world.cpp 199B
LICENSE 1KB
QT设计题目(含指导).doc 80KB
“语言课程设计”报告.doc 635KB
课程设计常用QT功能.pdf 175KB
README.md 11KB
测试数据 610B
共 28 条
- 1
资源评论
神仙别闹
- 粉丝: 3710
- 资源: 7461
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功