教师信息系统(必须使用C++)

每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资 - 合计扣款。

A、教师信息处理

(1) 输入教师信息

(2) 插入(修改)教师信息:

(3) 删除教师信息:

(4) 浏览教师信息:

提示:具体功能及操作参考题1。

(5)排序、查询功能

(6)退出系统功能

B、教师数据处理:

(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2) 教师实发工资、应发工资、合计扣款计算。

提示:计算规则如题目。

(3) 教师数据管理

  提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件

(4) 教师数据查询:

  提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5) 教师综合信息输出

  提示:输出教师信息到屏幕。
最后附一份实验报告

教职工信息管理系统(C++)_教职工信息管理系统c++_陆鳴笙的博客-CSDN博客 教职工信息管理系统一、问题描述设计一个学校职工管理系统,要求实现如下功能:建立职工信息数据,包括职工编号、姓名、 性别、工资、出生时间、岗位、参加工作时间和年龄(必须计算得到),初始模拟数据 通过文本文件创建(记录不少于 20 个),通过程序载入。求职工(工人和教师分开)的平均年龄;查找、添加或删除一个雇员;浏览全部信息等。一、基本要求(1)使用面向对象编程思想编写开发过程中需要用到的类,比如:使用继承的方法构造 3 个类 :雇员类(虚基类),教师类(有职称和所在系,按职称工资发工资)和工人类(_教职工信息管理系统c++ https://blog.csdn.net/cjl1831050185/article/details/109231072

https://blog.csdn.net/m0_52568673/article/details/117525785

你这是课题还是?

教职工信息管理系统(C++)

1)类定义  
//teacher.h
#include <string>//用string定义数据类型 
#include <iostream>//基本的输入输出函数 
#include <vector>//vector数组 
#include <fstream>//文件操作,打开文件,关闭文件函数 
#include <conio.h>//用getch()函数 ,暂停屏幕,便于观看数据
class employee//雇员类
{
    public:
        int number;
        string name;
        string sex;
        int birthtime;
        string post;
        int worktime;
        int age; 
};
//教师类,继承雇员类 teacher.h

class Teacher:public employee{
    public:
        string title;
        string system;
        double salary;
};
//工人类,继承雇员类   teacher.h
class Worker:public employee{
    public:
        string department;
        int level;
        double salary;
};
//管理类,实现增删改查   teacher.h
class Admin{
    public:
        vector<Teacher>tlist;//储存教师信息的vector数组 
        vector<Worker>wlist;//储存工人信息的 vector数组 
        int ReadTeacher(); //读取教师信息文件 
        int ReadWorker();//读取工人信息文件 
        void Writeteacher();//写入教师信息文件 
        void Writeworker();//写入工人信息文件 
        void Display_teacher();//显示所有教师信息 
        void Display_worker();//显示所有工人信息 
        void Add_teacher();//添加教师信息  
        void Add_worker();//添加工人信息   
        void find_teacher();//按Name查找Teacher  
        void find_worker();//按Name查找工人  
        void del_teacher();//删除教师信息  
        void del_worker();//删除工人信息   
        void menu_teacher();// 教师菜单 
        void menu_worker();//  工人菜单 
        double arrage_teacher();// 教师平均Age 
        double arrage_worker();// 工人平均Age 
        void change_teacher();//修改教师信息
        void change_worker();//修改工人信息 
};
(2)增删改查函数的实现
//教职工信息管理系统.cpp
int Admin::ReadTeacher()//读取文件内的教师数据
{
    fstream readfile("teacher.txt");
    int tow=0;
    if(readfile)
    {
        Teacher t;
        if (!(readfile >> t.number>>t.name>>t.sex>>t.salary>>t.birthtime>>t.post>>t.worktime>>t.age>>t.title>>t.system))//如果第一次读取为空
        {
            cout << "\t空"<<endl;
            return 1;
        }
        tlist.push_back(t);
        tow++;
        while(readfile >> t.number>>t.name>>t.sex>>t.salary>>t.birthtime>>t.post>>t.worktime>>t.age>>t.title>>t.system)//读取后存入vector容器中
        {
            tow++;
            tlist.push_back(t); //vector数组第要调用 push_back函数进行读入 
        }
        cout<<"所有 信息加载成功......."<<endl; 
        readfile.close();//文件操作完成后,需要关闭文件 
        return tow;
    }
    else
    {
        ofstream outfile;//磁盘中不存在文件的话则创建
        outfile.open("teacher.txt");//创建通讯录文件 
        if (!outfile.is_open()) //未能打开新创建的文件 
        {
            cout << "文件没有创建!"<<endl;
            return -1;
        }
        else
        {
            cout << "文件不存在,但是已经创建!\n";
            cout << "\t文件夹为空\n";
        }
        outfile.close();//文件操作完成后,需要关闭文件 
    }
    return 2;    
}
//教职工信息管理系统.cpp
int Admin::ReadWorker()//读取文件内的工人数据
{
    fstream readfile("worker.txt");
    int wow=0;
    if(readfile)
    {
        Worker w;
        if (!(readfile >> w.number>>w.name>>w.sex>>w.salary>>w.birthtime>>w.post>>w.worktime>>w.age>>w.department>>w.level))//如果第一次读取为空
        {
            cout << "\t空"<<endl;
            return 1;
        }
        wlist.push_back(w);
        wow++;
        while(readfile >> w.number>>w.name>>w.sex>>w.salary>>w.birthtime>>w.post>>w.worktime>>w.age>>w.department>>w.level)//读取后存入vector容器中
        {
            wow++;
            wlist.push_back(w); //vector数组第要调用 push_back函数进行读入 
        }
        cout<<"所有  信息加载成功......."<<endl; 
        readfile.close();//文件操作完成后,需要关闭文件 
        return wow;
    }
    else
    {
        ofstream outfile;//磁盘中不存在文件的话则创建
        outfile.open("worker.txt");//创建通讯录文件 
        if (!outfile.is_open()) //未能打开新创建的文件 
        {
            cout << "文件没有创建!"<<endl;
            return -1;
        }
        else
        {
            cout << "文件不存在,但是已经创建!\n";
            cout << "\t文件夹为空\n";
        }
        outfile.close();//文件操作完成后,需要关闭文件 
    }
    return 2;    
}
//教职工信息管理系统.cpp
void Admin::Writeteacher()//向文件内写入教师数据
{
    ofstream outfile("teacher.txt");//打开文件 
    vector<Teacher>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)
    {
        iter->age=2020-iter->birthtime/10000;
        outfile<<iter->number<<"\t"<<iter->name<<"\t"<<iter->sex<<"\t"<<iter->salary<<"\t"<<iter->birthtime<<"\t"<<iter->post<<"\t"
        <<iter->worktime<<"\t"<<iter->age<<"\t"<<iter->title<<"\t"<<iter->system<<endl;
    }
    outfile.close(); //关闭文件 
}
//教职工信息管理系统.cpp
void Admin::Writeworker()//向文件内写入工人数据
{
    ofstream outfile("worker.txt");//打开文件 
    vector<Worker>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)
    {
        iter->age=2020-iter->birthtime/10000;
        outfile<<iter->number<<"\t"<<iter->name<<"\t"<<iter->sex<<"\t"<<iter->salary<<"\t"<<iter->birthtime<<"\t"<<iter->post<<"\t"
        <<iter->worktime<<"\t"<<iter->age<<"\t"<<iter->department<<"\t"<<iter->level<<endl;
    }
    outfile.close(); //关闭文件 
}
//教职工信息管理系统.cpp
void Admin::Display_teacher()//显示所有的教师信息
{
    vector<Teacher>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)
    {
        cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\tBirthtime: "<<iter->birthtime<<"\nPost:"<<iter->post<<"\tWorktime:"
        <<iter->worktime<<"\tAge:"<<iter->age<<"\ttitle: "<<iter->title<<"\tsystem:"<<iter->system<<endl<<endl;
    }
}
void Admin::Display_worker() //显示所有的工人信息
{
    vector<Worker>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)
    {
        cout<<"Number: "<<iter->number<<"\t\t Name:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\tBirthtime: "<<iter->birthtime<<"\nPost:"<<iter->post<<"\tWorktime:"
        <<iter->worktime<<"\tAge:"<<iter->age<<"\tdepartment: "<<iter->department<<"\tlevel:"<<iter->level<<endl<<endl;
    }
}
//教职工信息管理系统.cpp
void Admin::Add_teacher() //添加教师信息
{
    Teacher t;
    cout<<"Input Teacher Number:";cin>>t.number;
    cout<<"Input Teacher Name:";cin>>t.name;
    cout<<"Input Teacher Sex:";cin>>t.sex;
    cout<<"Input Teacher Salary:";cin>>t.salary;
    cout<<"Input Teacher出生日期:";cin>>t.birthtime;
    cout<<"Input Teacher WorkTime:";cin>>t.worktime;
    cout<<"Input Teacher岗位:";cin>>t.post;
    cout<<"Input Teacher title:";cin>>t.title;
    cout<<"Input Teacher所在系:";cin>>t.system;
    t.age=2020-t.birthtime/10000;//计算输入人物的Age 
    tlist.push_back(t);//向Teacher数组中添加数据 
    this->Writeteacher();//保存数据 
}
//教职工信息管理系统.cpp
void Admin::Add_worker()//添加工人信息
{
    Worker w;
    cout<<"Input Worker Number:";cin>>w.number;
    cout<<"Input Worker Name:";cin>>w.name;
    cout<<"Input Worker Sex:";cin>>w.sex;
    cout<<"Input Worker Salary:";cin>>w.salary;
    cout<<"Input Worker出生日期:";cin>>w.birthtime;
    cout<<"Input WorkerWorkTime:";cin>>w.worktime;
    cout<<"Input Worker岗位:";cin>>w.post;
    cout<<"Input Worker Department:";cin>>w.department;
    cout<<"Input Worker技术级:";cin>>w.level;
    w.age=2020-w.birthtime/10000;//计算输入的Worker的Age 
    wlist.push_back(w);//向vector数组中添加数据 
    this->Writeworker();//向文件中写入 
}
//教职工信息管理系统.cpp
void Admin::find_teacher()//查找教师信息
{
    string _name;
    cout<<"Input TeacherName: ";   cin>>_name;
    vector<Teacher>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==_name)
        {
        cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\n出生日期: "<<iter->birthtime<<"\t岗位:"<<iter->post<<"\tWorkTime:"
        <<iter->worktime<<"\tAge:"<<iter->age<<"\ttitle: "<<iter->title<<"\t所在系:"<<iter->system<<endl;    }
    }     
}
//教职工信息管理系统.cpp
void Admin::find_worker()//查找工人信息
{
    string _name;
    cout<<"Input WorkerName: ";   cin>>_name;
    vector<Worker>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==_name)
        {
        cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\n出生日期: "<<iter->birthtime<<"\t岗位:"<<iter->post<<"\tWorkTime:"
        <<iter->worktime<<"\tAge:"<<iter->age<<"\nDepartment: "<<iter->department<<"\t技术级:"<<iter->level<<endl;}
    }
}
//教职工信息管理系统.cpp
void Admin::del_teacher()//删除教师信息
{
    if(tlist.empty()){//调用empty函数判断数组是否为空 
        cout << "没有信息可以删除!"<<endl;
        return;
    }
    string _name;
    cout<<"Input TeacherName: ";   cin>>_name;
    vector<Teacher>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->tlist.begin();iter!=this->tlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==_name)
        {
            tlist.erase(iter);//调用erase函数对数组中元素进行删除 
            this->Writeteacher();//写入文件 
            cout<<"删除成功!"<<endl;
            return;
            }
        else
            ++iter;
        }
}
//教职工信息管理系统.cpp
void Admin::del_worker()//删除工人信息
{
    if(wlist.empty()){//调用empty函数判断数组是否为空 
        cout << "没有信息可以删除!"<<endl;
        return;
    }
    string _name;
    cout<<"Input TeacherName: ";   cin>>_name;
    vector<Worker>::iterator iter;//vector数组保存的磁盘文件 
    for(iter=this->wlist.begin();iter!=this->wlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==_name)
        {
            wlist.erase(iter);//调用erase函数对数组中元素进行删除 
            this->Writeworker();
            cout<<"删除成功!"<<endl;
            return;
            }
        else
            ++iter;
    }
}
//教职工信息管理系统.cpp
double Admin::arrage_teacher()//计算教师的总Age 
{
    vector<Teacher>::iterator iter;//定义迭代器 
    double tsum=0;
    for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        tsum=tsum+iter->age;
    }
    return tsum;//返回Teacher的总Age
}
//教职工信息管理系统.cpp
double Admin::arrage_worker()//计算工人的总Age 
{
    double wsum=0;
    int wow=0;
    vector<Worker>::iterator iter;//定义迭代器 
    for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        wsum=wsum+iter->age;
    }    
    return wsum;//返回Worker的总Age
}
//教职工信息管理系统.cpp
void Admin::change_teacher() //修改教师的信息 
{
    string name;
    cout<<"Input想修改的Teacher的Name: "; cin>>name;
    vector<Teacher>::iterator iter;//定义迭代器 
    for(iter=this->tlist.begin();iter!=this->tlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==name)
        {
            cout<<"Input Teacher的Salary:";cin>>iter->salary;
            cout<<"Input Teacher的岗位:";cin>>iter->post;
            cout<<"Input Teacher的title:";cin>>iter->title;
            cout<<"Input Teacher的所在系:";cin>>iter->system;
            this->Writeteacher();
            return ;
        }
        else
            ++iter;
    }
    cout << "未检索到此Teacher!"<<endl;
}
//教职工信息管理系统.cpp
void Admin::change_worker()//修改工人信息 
{
    string name;
    cout<<"Input想修改的Worker的Name: "; cin>>name;
    vector<Worker>::iterator iter;//定义迭代器 
    for(iter=this->wlist.begin();iter!=this->wlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历 
    {
        if(iter->name==name)
        {
            cout<<"Input Worker的Salary:";cin>>iter->salary;
            cout<<"Input Worker的岗位:";cin>>iter->post;
            cout<<"Input Worker所在Department:";cin>>iter->department;
            cout<<"Input Worker的技术级:";cin>>iter->level;
            this->Writeworker();
            return ;
        }
        else
            ++iter;
    }
    cout << "未检索到此Worker!"<<endl;
}
//教职工信息管理系统.cpp
void Admin::menu_teacher()//教师管理端的菜单 
{
    int n1=ReadTeacher();//Teacher总人数 
    double sum1=arrage_teacher();//Teacher总Age 
    while(1)
    {
        int n;
        system("cls");
        cout<<"----------------------------"<<endl;
        cout<<"|        教 师 管 理       |"<<endl;
        cout<<"----------------------------"<<endl;
        cout<<"|   1、显示所有教师信息    |"<<endl; 
        cout<<"|   2、按Name查找教师信息  |"<<endl; 
        cout<<"|   3、添加教师信息        |"<<endl; 
        cout<<"|   4、删除教师信息        |"<<endl; 
        cout<<"|   5、修改教师信息        |"<<endl; 
        cout<<"|   6、教师平均Age        |"<<endl;
        cout<<"|   0、返回主菜单          |"<<endl;
        cout<<"----------------------------"<<endl;
        cout<<"请选择: ";cin>>n;
        switch(n)
        {
            case 1:Display_teacher();getch();break;
            case 2:find_teacher(); getch();break;
            case 3:Add_teacher();getch();break;
            case 4:del_teacher();getch();break;
            case 5:change_teacher();getch();break;
            case 6: cout<<"所有Teacher的平均Age是: "<<sum1/n1<<" 岁"<<endl; getch();break;
            case 0:return;
        }
    }
}
//教职工信息管理系统.cpp
void Admin::menu_worker()//工人管理端的菜单 
{
    int n2=ReadWorker();//Worker总人数 
    double sum2=arrage_worker();//Worker总Age 
    while(1)
    {
        int n;
        system("cls");
        cout<<"-----------------------------"<<endl;
        cout<<"|       工 人 管 理         |"<<endl;
        cout<<"-----------------------------"<<endl;
        cout<<"|   1、显示所有工人信息     |"<<endl; 
        cout<<"|   2、按Name查找工人信息   |"<<endl; 
        cout<<"|   3、添加工人信息         |"<<endl; 
        cout<<"|   4、删除工人信息         |"<<endl; 
        cout<<"|   5、修改工人信息         |"<<endl;
        cout<<"|   6、工人平均Age         |"<<endl;
        cout<<"|   0、返回主菜单           |"<<endl;
        cout<<"-----------------------------"<<endl;
        cout<<"请选择: ";cin>>n;
        switch(n)
        {
            case 1:Display_worker();getch();break;
            case 2:find_worker(); getch();break;
            case 3:Add_worker();getch();break;
            case 4:del_worker();getch();break;
            case 5:change_worker(); getch();break;
            case 6:cout<<"所有Worker的平均Age是: "<<sum2/n2<<" 岁"<<endl; getch();break;
            case 0:return;
        }
    }
}
(3)主函数
//教职工信息管理系统.cpp
int main()
{
    Admin a; 
    while(1)
    {
        system("cls");
        int n;
        cout<<"  教职工管理系统 "<<endl;
        cout<<"  1、教师管理系统"<<endl;
        cout<<"  2、工人管理系统"<<endl;
        cout<<"  0、安全退出系统"<<endl; 
        cout<<"请选择: ";cin>>n;
        switch(n)
        {
            case 1: a.menu_teacher(); getch();break;
            case 2: a.menu_worker();getch();break;
            case 3: {
                int n2=a.ReadWorker()/*n1=a.ReadTeacher()*/;
                double sum2=a.arrage_worker();
                cout<<"所有Teacher的平均Age是: "<<sum2/n2<<" 岁"<<endl;
                a.Writeworker();
            }
            case 4:{
                    int n1=a.ReadTeacher();
                    double sum1=a.arrage_teacher();
                    cout<<"所有Worker的平均Age是: "<<sum1/n1<<" 岁"<<endl;}
                    getch();break;
            case 0: return 0;
        }
    }
}


看博客用详细代码http://t.csdn.cn/S6Sy4

下面是一个使用C++编写的教师信息系统的代码,并对每一句代码进行了注释说明。实验报告还请楼主自己来根据自己实际需求编写了。

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
#include <cstdlib>

using namespace std;

// 定义教师信息结构体
struct Teacher {
    char id[10];  // 教师号
    char name[20];  // 姓名
    char gender[5];  // 性别
    char department[30];  // 单位名称
    char address[50];  // 家庭住址
    char phone[20];  // 联系电话
    double basic_salary;  // 基本工资
    double subsidy;  // 津贴
    double living_allowance;  // 生活补贴
    double pay;  // 应发工资
    double tel_fee;  // 电话费
    double utilities;  // 水电费
    double rent;  // 房租
    double income_tax;  // 所得税
    double health_insurance;  // 卫生费
    double accumulation_fund;  // 公积金
    double total_deductions;  // 合计扣款
    double actual_salary;  // 实发工资
};

const int MAX_TEACHERS = 100;
Teacher teachers[MAX_TEACHERS];  // 教师数组
int teacher_count = 0;  // 当前教师数量

// 根据教师号查找教师在数组中的下标
int find_teacher_index(const char* id) {
    for (int i = 0; i < teacher_count; i++) {
        if (strcmp(teachers[i].id, id) == 0) {
            return i;
        }
    }
    return -1;
}

// 输入教师信息
void input_teacher_info() {
    if (teacher_count >= MAX_TEACHERS) {  // 判断教师数量是否已达到上限
        cout << "已达到最大教师数量,无法添加新教师。" << endl;
        return;
    }
    cout << "请输入教师号、姓名、性别、单位名称、家庭住址、联系电话:" << endl;
    cin >> teachers[teacher_count].id >> teachers[teacher_count].name >> teachers[teacher_count].gender
        >> teachers[teacher_count].department >> teachers[teacher_count].address >> teachers[teacher_count].phone;
    teacher_count++;  // 更新教师数量
}

// 插入(修改)教师信息
void insert_teacher_info() {
    char id[10];
    cout << "请输入要修改的教师号:" << endl;
    cin >> id;
    int index = find_teacher_index(id);
    if (index == -1) {  // 判断是否找到教师
        cout << "没有找到教师信息。" << endl;
        return;
    }
    cout << "请输入修改后的教师信息:" << endl;
    cin >> teachers[index].id >> teachers[index].name >> teachers[index].gender
        >> teachers[index].department >> teachers[index].address >> teachers[index].phone;
}

// 删除教师信息
void delete_teacher_info() {
    char id[10];
    cout << "请输入要删除的教师号:" << endl;
    cin >> id;
    int index = find_teacher_index(id);
    if (index == -1) {  // 判断是否找到教师
        cout << "没有找到教师信息。" << endl;
        return;
    }
    for (int i = index; i < teacher_count - 1; i++) {
        // 将后面的教师信息向前移动一位
        teachers[i] = teachers[i + 1];
    }
    teacher_count--;  // 更新教师数量
    cout << "删除成功!" << endl;
}

// 浏览教师信息
void browse_teacher_info() {
    cout << "教师号\t姓名\t性别\t单位名称\t家庭住址\t联系电话" << endl;
    for (int i = 0; i < teacher_count; i++) {
        cout << teachers[i].id << "\t" << teachers[i].name << "\t" << teachers[i].gender << "\t"
            << teachers[i].department << "\t" << teachers[i].address << "\t" << teachers[i].phone << endl;
    }
}

// 教师数据处理
// 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据
void input_teacher_data() {
    char id[10];
    cout << "请输入教师号:" << endl;
    cin >> id;
    int index = find_teacher_index(id);
    if (index == -1) {  // 判断是否找到教师
        cout << "没有找到教师信息。" << endl;
        return;
    }
    cout << "请输入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金:" << endl;
    cin >> teachers[index].basic_salary >> teachers[index].subsidy >> teachers[index].living_allowance
        >> teachers[index].tel_fee >> teachers[index].utilities >> teachers[index].rent
        >> teachers[index].income_tax >> teachers[index].health_insurance >> teachers[index].accumulation_fund;
    // 计算应发工资、合计扣款、实发工资
    teachers[index].pay = teachers[index].basic_salary + teachers[index].subsidy + teachers[index].living_allowance;
    teachers[index].total_deductions = teachers[index].tel_fee + teachers[index].utilities +
        teachers[index].rent + teachers[index].income_tax + teachers[index].health_insurance +
        teachers[index].accumulation_fund;
    teachers[index].actual_salary = teachers[index].pay - teachers[index].total_deductions;
    cout << "录入成功!" << endl;
}

// 教师数据管理
// 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
void manage_teacher_data() {
    char id[10];
    cout << "请输入教师号:" << endl;
    cin >> id;
    int index = find_teacher_index(id);
    if (index == -1) {  // 判断是否找到教师
        cout << "没有找到教师信息。" << endl;
        return;
    }
    cout << "教师号\t姓名\t性别\t单位名称\t家庭住址\t联系电话\t基本工资\t津贴\t生活补贴\t应发工资\t电话费\t水电费\t房租\t所得税\t卫生费\t公积金\t合计扣款\t实发工资" << endl;
    cout << teachers[index].id << "\t" << teachers[index].name << "\t" << teachers[index].gender << "\t"
        << teachers[index].department << "\t" << teachers[index].address << "\t" << teachers[index].phone << "\t"
        << teachers[index].basic_salary << "\t" << teachers[index].subsidy << "\t" << teachers[index].living_allowance << "\t"
        << teachers[index].pay << "\t" << teachers[index].tel_fee << "\t" << teachers[index].utilities << "\t"
        << teachers[index].rent << "\t" << teachers[index].income_tax << "\t" << teachers[index].health_insurance << "\t"
        << teachers[index].accumulation_fund << "\t" << teachers[index].total_deductions << "\t" << teachers[index].actual_salary << endl;
    cout << "请输入修改后的教师信息:" << endl;
    cin >> teachers[index].id >> teachers[index].name >> teachers[index].gender
        >> teachers[index].department >> teachers[index].address >> teachers[index].phone
        >> teachers[index].basic_salary >> teachers[index].subsidy >> teachers[index].living_allowance
        >> teachers[index].tel_fee >> teachers[index].utilities >> teachers[index].rent
        >> teachers[index].income_tax >> teachers[index].health_insurance >> teachers[index].accumulation_fund;
    // 计算应发工资、合计扣款、实发工资
    teachers[index].pay = teachers[index].basic_salary + teachers[index].subsidy + teachers[index].living_allowance;
    teachers[index].total_deductions = teachers[index].tel_fee + teachers[index].utilities +
        teachers[index].rent + teachers[index].income_tax + teachers[index].health_insurance +
        teachers[index].accumulation_fund;
    teachers[index].actual_salary = teachers[index].pay - teachers[index].total_deductions;
    // 将修改后的教师信息写入文件
    ofstream outfile("teacher_info.txt");
    outfile << teacher_count << endl;
    for (int i = 0; i < teacher_count; i++) {
        outfile << teachers[i].id << "\t" << teachers[i].name << "\t" << teachers[i].gender << "\t"
            << teachers[i].department << "\t" << teachers[i].address << "\t" << teachers[i].phone << "\t"
            << teachers[i].basic_salary << "\t" << teachers[i].subsidy << "\t" << teachers[i].living_allowance << "\t"
            << teachers[i].pay << "\t" << teachers[i].tel_fee << "\t" << teachers[i].utilities << "\t"
            << teachers[i].rent << "\t" << teachers[i].income_tax << "\t" << teachers[i].health_insurance << "\t"
            << teachers[i].accumulation_fund << "\t" << teachers[i].total_deductions << "\t" << teachers[i].actual_salary << endl;
    }
    outfile.close();
    cout << "修改成功!" << endl;
}

// 统计教师工资情况
void statistics_teacher_salary() {
    double total_pay = 0, total_deductions = 0, total_actual_salary = 0;
    for (int i = 0; i < teacher_count; i++) {
        total_pay += teachers[i].pay;
        total_deductions += teachers[i].total_deductions;
        total_actual_salary += teachers[i].actual_salary;
    }
    cout << "应发工资总额:" << fixed << setprecision(2) << total_pay << endl;
    cout << "扣款总额:" << fixed << setprecision(2) << total_deductions << endl;
    cout << "实发工资总额:" << fixed << setprecision(2) << total_actual_salary << endl;
}

// 从文件中读取教师信息
void read_teacher_info_from_file() {
    ifstream infile("teacher_info.txt");
    if (!infile) {  // 判断文件是否存在
        cout << "文件不存在。" << endl;
        return;
    }
    infile >> teacher_count;
    for (int i = 0; i < teacher_count; i++) {
        infile >> teachers[i].id >> teachers[i].name >> teachers[i].gender
            >> teachers[i].department >> teachers[i].address >> teachers[i].phone
            >> teachers[i].basic_salary >> teachers[i].subsidy >> teachers[i].living_allowance
            >> teachers[i].pay >> teachers[i].tel_fee >> teachers[i].utilities
            >> teachers[i].rent >> teachers[i].income_tax >> teachers[i].health_insurance
            >> teachers[i].accumulation_fund >> teachers[i].total_deductions >> teachers[i].actual_salary;
    }
    infile.close();
    cout << "读取成功!" << endl;
}

int main() {
    read_teacher_info_from_file();  // 从文件中读取教师信息
    while (true) {
        cout << "请输入命令(1-6):" << endl;
        cout << "1. 输入教师信息" << endl;
        cout << "2. 插入(修改)教师信息" << endl;
        cout << "3. 删除教师信息" << endl;
        cout << "4. 浏览教师信息" << endl;
        cout << "5. 教师数据处理" << endl;
        cout << "6. 统计教师工资情况" << endl;
        cout << "0. 退出程序" << endl;
        int command;
        cin >> command;
        switch (command) {
            case 0: {
                cout << "程序已退出。" << endl;
                return 0;
            }
            case 1: {
                input_teacher_info();
                break;
            }
            case 2: {
                insert_teacher_info();
                break;
            }
            case 3: {
                delete_teacher_info();
                break;
            }
            case 4: {
                browse_teacher_info();
                break;
            }
            case 5: {
                manage_teacher_data();
                break;
            }
            case 6: {
                statistics_teacher_salary();
                break;
            }
            default: {
                cout << "无效命令。" << endl;
                break;
            }
        }
    }
    return 0;
}

这个代码实现了一个教师信息系统,可以对教师的基本信息、工资、扣款等进行录入、修改、删除和查看。主要包含如下几个函数:

  • input_teacher_info():输入教师信息,包括教师编号、姓名、性别、部门、家庭地址、联系电话、基本工资、津贴、生活补助等。
  • insert_teacher_info():插入或修改教师信息,可以根据教师编号查找到对应的信息并进行修改。
  • delete_teacher_info():删除教师信息,可以根据教师编号查找到对应的信息并进行删除。
  • browse_teacher_info():浏览教师信息,可以查看所有教师的信息。
  • manage_teacher_data():教师数据处理,可以计算教师的电话费、水电费、房租、个人所得税、医疗保险、公积金等,以及计算教师的实际工资。
  • statistics_teacher_salary():统计教师工资情况,包括应发工资总额、扣款总额和实发工资总额。
  • read_teacher_info_from_file():从文件中读取教师信息。

参考 https://blog.csdn.net/cjl1831050185/article/details/109231072

c++实现的教师信息系统,支持增删改查等基本功能,代码地址:https://download.csdn.net/download/jinxin031988/1320806
如果你是要做实验报告的话,可能还需要写设计的流程,那你可以直接参考相关的设计论文:
教师信息管理系统C++课程设计论文:https://www.docin.com/p-521880486.html

简单很,就是信息有点多,网上一搜仿照一下就行

发来看看?