教室管理系统)
♻️ 资源大小770KB➡️资源下载https://download.csdn.net/download/s1t16/87450276教室管理系统“语言课程设计”报告设计任务① 编写一个教室管理系统, 管理教师的信息和教师所上的课程的信息, 教师的信息包括:教师编号、姓名、性别、出生年月、职称、最后学历、工资、婚否、授课数据集; 授课信息包括课程编号、课程名称、课时、教室、授课班级、学分、学期② 系统功能的要求:1创建和管理教师信息的对象2创建和管理授课信息的对象3增加和删除教师4针对特定教师增加和删除授课信息5基本查询功能6数据文件读写文件中包含所有教师信息、每个教师的授课信息等数据7基本信息显示所有教师信息显示特定教师的授课信息任务分析首先确定程序管理的数据结构是一个嵌套的 QList编写一个教师类, 数据成员包含教师的基本信息, 还有一个数据成员是一个储存教师的授课信息的 QList。编写一个课程类数据成员包含该课程的基本信息。在 mainWindow 类的数据成员中加入一个教师类的 QList即程序维护的核心数据。然后设计展示数据的 UI 界面建立一个 mainwindow 类通过表格的形式显示所有的教师的信息。可跳转至主窗口的第二页来显示特定教师的所有授课信息。建立一个 tdialog 设计师类用于添加和修改教师的信息建立一个 cdialog 设计师类用于添加和修改特定教师的课程信息。在主窗口的菜单栏来实现文件的读写和保存实现筛选对于特定年龄老师的筛选建立一个 sxdialog 设计师类来用于选择年龄范围。最后设计一些工具函数方便操作数据并开始正式编写对于主要的数据结构每个类的数据成员一步到位设计好对于筛选等等功能的提升采取增量式一步步完善。设计思路与流程在 mainwindow 类中维护一个教师类的 QList还有一个 QString 类型的 pathname 私有数据成员作为文件读写的路径。编写 teacher 类和 course 类以及对应的修改对话框。编写 mainwindow 函数的工具函数再将所有部件耦合起来功能介绍教师信息管理系统可以完成对教师信息和每一个教师的授课信息的增删改对教师信息可以查询。在添加和修改教师信息的时候回检验教师的 id 是否重复防止不同的老师使用同一个 id符合实际同时避免程序中获取老师指针的函数出现问题。可以实现文件的读写维护好的一份教师信息可以保存程序导入一份教师信息进行查看和维护。实现了 UI 界面和简单的交互。文件与对象描述1.teacher 类中的 QListCourse cList 用于存储课程信息CoursegetCourse(int cid);bool removeCourse(int cid)作为工具维护数据重载 和 运算符用于文件读写。Course 类封装课程的基本信息重载 和 运算符用于文件读写。tdialog 类数据成员和函数:tDialog::tDialog(Teacherteacher, QWidgetparent, MainWindowmainwindow) 构造函数如果 teacher 为空指针则不显示否则现在窗口各个输入框中显示当前教师信息为了同时用于实现修改功能Teacherteacher;该指针用于暂时存储窗口上用户输入的数据。MainWindowmainWindow;//有的函数需要拿到主窗口中维护的的数据比如检测 id 是否重复。bool ifok();判断 teacher 的 id 是否重复void on_buttonBox_accepted();表示用户输入完毕开始判断并存储 teacher 的数据分析由于 teacher 类的构造函数中的 teacher 指针可以缺省所以可以在修改和添加教师功能中实现复用修改可以直接通过该对话框完成添加需要再额外将新创建的 teacher 指针添加到 clist 中。cdialog 类与 tdialog 类类似且更简单Mainwindow 类MainWindow::MainWindow(QWidgetparent)构造函数显示所有的教师信息QListTeacher tList;核心数据TeachergetTeacher(int tid); //根据编号 id 获取老师TeachergetTeacher(QString tname);在查找中使用通过教师的姓名索引bool removeTeacher(int tid); //删除编号为 id 的老师void showTeacher(int row, Teacherteacher); //在教师信息页的第 row 行插入显示教师信息分析先最基本的显示代码创建几个 Pushbutton 到该行由于修改按钮在 show 函数中定义所以在修改之后不可以调用本身没法实现复用再重复一遍基本的显示代码。转到课程按钮对应的函数先翻页清除当前课程页原有的信息然后读取该老师的所有课程信息显示到课程页上。void showCourse(int row, Course* course); //在课程信息页的第 row 行插入教师的课程信息分析与 showteacher 类似不过修改时要通过 ui 指针获取当前而教师在通过该教师的 getcourse 函数获取当前的课程指针。void removeAllData(); //清除所有数据以便读入新的数据Mainwindow 类中的槽函数打开文件保存文件另存为筛选功能添加返回显示所有教师注意数据的修改和显示是独立的。7.sxdiaolog 类用于获取筛选条件由于对话框还没释放所以 date 还能访问。测试报告运行打开文件打开完毕教师的添加id 不可重复修改删除修改删除查询通过名字)筛选教授筛选年龄7.显示全部8.另存为小结数据的显示和修改是分开的注意代码的复用性根据功能要注意各个类的数据成员的设计防止数据的生命周期和可见域问题可以稍微多封装一些数据到各个子窗口类中。注意函数和类的层级关系并联系复用的函数和类注意局部对象的问题。报告填写说明设计任务填写课程设计的任务及要求任务分析填写对设计任务的理解和规划设计思路和流程填写软件设计的基本思路和重要流程图功能介绍填写系统的主要功能文件与对象描述对系统的组成文件及其类对象进行介绍测试报告对所使用的测试数据及测试结果进行介绍请在文中插入重要的软件的运行界面及数据显示结果图片提示图片截屏请使用快捷键 AltPrintScreen 或 PrintScreen