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

 //teacher.h
#include <string.h>//用string定义数据类型 
#include <iostream>//基本的输入输出函数 
#include <vector>//vector数组 
#include <fstream>//文件操作,打开文件,关闭文件函数 
#include <conio.h>//用getch()函数 ,暂停屏幕,便于观看数据
using namespace std;
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();//修改工人信息 
};
//教职工信息管理系统.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;
        }
    }
}
//教职工信息管理系统.cpp
int main()
{
    Admin a; 
    while(1)
    {
        system("cls");
        int n;
        cout<<"                                     -----------------------                                 "<<endl;
        cout<<"                                         教职工管理系统                                      "<<endl;
        cout<<"                                        1、教师管理系统                                      "<<endl;
        cout<<"                                        2、工人管理系统                                      "<<endl;
        cout<<"                                        0、安全退出系统                                      "<<endl;
        cout<<"                                     -----------------------                                 "<<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;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值