基于C语言开发的教师管理系统

资源下载地址:https://download.csdn.net/download/sheziqiong/85673191

设计任务

① 编写一个教室管理系统, 管理教师的信息和教师所上的课程的信息, 教师的信息包括:教师编号、姓名、性别、出生年月、职称、最后学历、工资、婚否、授课数据集; 授课信息包括:课程编号、课程名称、课时、教室、授课班级、学分、学期;;

② 系统功能的要求:

1.创建和管理教师信息的对象;

2.创建和管理授课信息的对象;

3.增加和删除教师;

4.针对特定教师增加和删除授课信息;

5.基本查询功能;

6.数据文件读写:文件中包含所有教师信息、每个教师的授课信息等数据;

7.基本信息显示:

所有教师信息显示;

扫描二维码关注公众号,回复: 14286368 查看本文章

特定教师的授课信息;

任务分析

首先确定程序管理的数据结构是一个嵌套的 QList,编写一个教师类, 数据成员包含教师的基本信息, 还有一个数据成员是一个储存教师的授课信息的 QList。编写一个课程类,数据成员包含该课程的基本信息。在 mainWindow 类的数据成员中加入一个教师类的 QList,即程序维护的核心数据。;然后设计展示数据的 UI 界面:建立一个 mainwindow 类,通过表格的形式显示所有的教师的信息。可跳转至主窗口的第二页来显示特定教师的所有授课信息。建立一个 tdialog 设计师类用于添加和修改教师的信息,建立一个 cdialog 设计师类用于添加和修改特定教师的课程信息。在主窗口的菜单栏来实现文件的读写和保存,实现筛选,对于特定年龄老师的筛选,建立一个 sxdialog 设计师类来用于选择年龄范围。;最后设计一些工具函数方便操作数据,并开始正式编写,对于主要的数据结构,每个类的数据成员,一步到位设计好,对于筛选等等功能的提升,采取增量式一步步完善。

设计思路与流程

在 mainwindow 类中维护一个教师类的 QList,还有一个 QString 类型的 pathname 私有数据成员作为文件读写的路径。;编写 teacher 类和 course 类,以及对应的修改对话框。;编写 mainwindow 函数的工具函数,再将所有部件耦合起来;

功能介绍

教师信息管理系统可以完成对教师信息和每一个教师的授课信息的增删改,对教师信息可以查询。在添加和修改教师信息的时候回检验教师的 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 还能访问。

测试报告

运行;

打开文件;

打开完毕;

在这里插入图片描述

教师的添加(id 不可重复),修改,删除:

删除;

资源下载地址:https://download.csdn.net/download/sheziqiong/85673191

猜你喜欢

转载自blog.csdn.net/newlw/article/details/125331740