我想用c++编程这一题教师工作最管理系统 建立教师工作量管系统,对教师工作量相关信息进行管理。教师工作量相关信息包括教师工号、教师姓名、学期、工作量和年度总工作量等。具体要求如下: (1)建立该系统的存储结构。 (2)录入教师每个学斯的工作量信息。 (3)查找菜个教师某个学期的工作量。 (4)修改某个教师某个学期的工作量 (5)删除某个教师工作量的相关信息 (6)统计某个教师年度总工作量。 (7)对教师的年度总工作量进行排名。
时间: 2024-03-14 07:47:21 浏览: 20
好的,这是一个比较典型的教师工作量管理系统,我们可以采用面向对象编程的思想来实现。下面是我的建议:
1. 存储结构
我们可以定义一个 Teacher 类来存储每个教师的信息,包括工号、姓名、学期、工作量和年度总工作量。具体代码如下:
```c++
class Teacher {
private:
string id; // 工号
string name; // 姓名
string semester; // 学期
int workload; // 工作量
int totalWorkload; // 年度总工作量
public:
Teacher(string id, string name) {
this->id = id;
this->name = name;
this->semester = "";
this->workload = 0;
this->totalWorkload = 0;
}
string getId() {
return id;
}
string getName() {
return name;
}
string getSemester() {
return semester;
}
int getWorkload() {
return workload;
}
int getTotalWorkload() {
return totalWorkload;
}
void setSemester(string semester) {
this->semester = semester;
}
void setWorkload(int workload) {
this->workload = workload;
}
void addWorkload(int workload) {
this->workload += workload;
this->totalWorkload += workload;
}
};
```
我们可以将每个教师的信息存储在一个 Teacher 对象中,再将所有教师的信息存储在一个 vector<Teacher> 中,实现数据的存储和管理。
2. 录入教师每个学期的工作量信息
我们可以定义一个 addWorkload 函数来实现录入教师每个学期的工作量信息。具体代码如下:
```c++
void addWorkload(vector<Teacher>& teachers, string id, string name, string semester, int workload) {
bool found = false;
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].getId() == id) {
found = true;
teachers[i].addWorkload(workload);
teachers[i].setSemester(semester);
break;
}
}
if (!found) {
Teacher teacher(id, name);
teacher.addWorkload(workload);
teacher.setSemester(semester);
teachers.push_back(teacher);
}
}
```
该函数会在 vector<Teacher> 中查找是否存在该教师的信息,如果存在,则将工作量加上本次录入的工作量,否则创建一个新的 Teacher 对象,并将其添加到 vector<Teacher> 中。
3. 查找菜个教师某个学期的工作量
我们可以定义一个 getWorkload 函数来实现查找某个教师某个学期的工作量。具体代码如下:
```c++
int getWorkload(vector<Teacher>& teachers, string id, string semester) {
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].getId() == id && teachers[i].getSemester() == semester) {
return teachers[i].getWorkload();
}
}
return -1; // 表示未找到该教师某个学期的工作量
}
```
该函数会在 vector<Teacher> 中查找是否存在该教师某个学期的信息,如果存在,则返回该教师某个学期的工作量,否则返回 -1。
4. 修改某个教师某个学期的工作量
我们可以定义一个 setWorkload 函数来实现修改某个教师某个学期的工作量。具体代码如下:
```c++
bool setWorkload(vector<Teacher>& teachers, string id, string semester, int workload) {
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].getId() == id && teachers[i].getSemester() == semester) {
teachers[i].addWorkload(workload - teachers[i].getWorkload());
return true;
}
}
return false; // 表示未找到该教师某个学期的信息
}
```
该函数会在 vector<Teacher> 中查找是否存在该教师某个学期的信息,如果存在,则将工作量修改为本次输入的工作量,否则返回 false。
5. 删除某个教师工作量的相关信息
我们可以定义一个 deleteTeacher 函数来实现删除某个教师工作量的相关信息。具体代码如下:
```c++
bool deleteTeacher(vector<Teacher>& teachers, string id, string semester) {
for (vector<Teacher>::iterator it = teachers.begin(); it != teachers.end(); it++) {
if (it->getId() == id && it->getSemester() == semester) {
teachers.erase(it);
return true;
}
}
return false; // 表示未找到该教师某个学期的信息
}
```
该函数会在 vector<Teacher> 中查找是否存在该教师某个学期的信息,如果存在,则删除该教师某个学期的信息,否则返回 false。
6. 统计某个教师年度总工作量
我们可以定义一个 getTotalWorkload 函数来实现统计某个教师年度总工作量。具体代码如下:
```c++
int getTotalWorkload(vector<Teacher>& teachers, string id) {
for (int i = 0; i < teachers.size(); i++) {
if (teachers[i].getId() == id) {
return teachers[i].getTotalWorkload();
}
}
return -1; // 表示未找到该教师的信息
}
```
该函数会在 vector<Teacher> 中查找是否存在该教师的信息,如果存在,则返回该教师的年度总工作量,否则返回 -1。
7. 对教师的年度总工作量进行排名
我们可以定义一个 sortTeachers 函数来实现对教师的年度总工作量进行排名。具体代码如下:
```c++
bool cmp(Teacher& t1, Teacher& t2) {
return t1.getTotalWorkload() > t2.getTotalWorkload();
}
void sortTeachers(vector<Teacher>& teachers) {
sort(teachers.begin(), teachers.end(), cmp);
}
```
该函数会使用 STL 中的 sort 函数,按照教师的年度总工作量从大到小排序。
以上就是我对于用 c++ 编程实现教师工作量管理系统的建议,希望能对你有所帮助。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)