m0_55781655 2021-06-27 18:22 采纳率: 100%
浏览 28
已采纳

C++程序设计(学校项目管理系统)

 

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-06-27 19:21
    关注

    如有帮助,请采纳。

    #include"iostream"
    #include <fstream>
    #include"stdlib.h"
    #define MAX 100
    using namespace std;
    class person
    {
    public:
        int num;
        char name[20];
        char sex[4];
        int age;
    };
    //Teacher class
    class Teacher:virtual public person
    {
    public:
        char dept[20];
        char special[20];
        char title[20];
        void Input()
        {
            cout<<"Input num:";cin>>num;
            cout<<"Input name:";cin>>name;
            cout<<"Input sex:";cin>>sex;
            cout<<"Input age:";cin>>age;
            cout<<"Input dept:";cin>>dept;
            cout<<"Input special:";cin>>special;
            cout<<"Input title:";cin>>title;
        }
        void Output()
        {
            cout<<"编号: "<<num<<"  "<<"姓名: "<<name<<"  "<<"性别: "<<sex<<"  "<<"年龄: "<<age<<
                "  "<<"所在系: "<<dept<<"  "<<"专业: "<<special<<"  "<<"职称: "<<title<<endl;
        }
    };
    Teacher Tea[MAX];
    static Teatop;

     

    class TeaManager
    {
    public:
        int Add();
        int Search();
        void Show();
        void Edit();
        int Delete();
        void Save();
        void Read();
    };
    int TeaManager::Add()
    {
        Teacher t;
        int i,nu;
        if(Teatop==MAX) 
        {cout<<"人数已满"<<endl;
        return 0;
        }
        cout<<"请输入编号:";cin>>nu;
        for(i=0;i<Teatop;i++)
        {
            if(nu==Tea[i].num)
            {cout<<"已有编号,请从输入"<<endl;
            return 0;
            }
        }
        t.Input();Tea[Teatop]=t;Teatop++;
        cout<<"添加成功!"<<endl;
        return 1;
    }
    int TeaManager::Search()
    {
        int j,n;
        cout<<"请输入编号:";cin>>n;
        for(j=0;j<Teatop;j++)
        {
            if(n==Tea[j].num) break;
        }
        if(j==Teatop)
            cout<<"没有此人!"<<endl;
        else
            Tea[j].Output();
        return 1;
    }
    void TeaManager::Show()
    {
        int i;
        if(Teatop==0)
        {cout<<"记录为空!"<<endl; return;}
        for(i=0;i<Teatop;i++)
            Tea[i].Output();
    }
    void TeaManager::Edit()
    {
        Teacher t1;
        int j,n;
        cout<<"请输入要编辑的人的编号:";cin>>n;
        for(j=0;j<Teatop;j++)
        {
            if(n==Tea[j].num) break;
        }
        if(j==Teatop)
        {cout<<"没有此人!"<<endl;return;};
        cout<<"输入修改后的信息,编号不能改:"<<endl;
        t1.Input();
        Tea[j]=t1;
        cout<<"编辑成功!"<<endl;
    }
    int TeaManager::Delete()
    {
        int j,n;
        cout<<"请输入要删除的人的编号:";cin>>n;
        for(j=0;j<Teatop;j++)
        {
            if(n==Tea[j].num) break;
        }
        if(j==Teatop)
        {cout<<"没有此人!"<<endl;return 0;};
        for(j;j<Teatop;j++)
        {
            Tea[j]=Tea[j+1];
        }
        Teatop--;
        cout<<"删除成功!"<<endl;
        return 1;
    }
    void TeaManager::Save()
    {
        int i;
        ofstream outfile,outfile1;   
        outfile1.open("Teatop.dat",ios::out);
        outfile1<<Teatop;
        outfile.open("Tea_data.dat",ios::binary);   
           if(!outfile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Teatop;i++)
               outfile.write((char *)&Tea[i],sizeof(Tea[i])); 
           outfile.close();   
           cout<<"保存成功!"<<endl;

    void TeaManager::Read()
    {
        int i;
        ifstream infile,infile1; 
        infile1.open("Teatop.dat",ios::in);
        infile1>>Teatop;
        infile.open("Tea_data.dat",ios::binary);   
           if(!infile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Teatop;i++)
               infile.read((char *)&Tea[i],sizeof(Tea[i])); 
           infile.close();  
           cout<<"读取成功!"<<endl;

    void Tea_mune(TeaManager TM)
    {
        int b;
        char c;
        do{
            cout<<"教师管理"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"| 1.添加    ";
            cout<<"2.查询    ";
            cout<<"3.显示    ";
            cout<<"4.编辑    ";
            cout<<"5.删除    ";
            cout<<"6.统计    ";
            cout<<"7.保存    ";
            cout<<"8.读取    ";
            cout<<"0.退出 |"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"请选择:";cin>>b;
            switch(b)
            {
            case 1:TM.Add();break;
            case 2:TM.Search();break;
            case 3:TM.Show();break;
            case 4:TM.Edit();break;
            case 5:TM.Delete();break;
            case 6:cout<<"共有教师人数:"<<Teatop<<endl;break;
            case 7:TM.Save();break;
            case 8:TM.Read();break;
            default:cout<<"\n error"<<endl;break;
            case 0:break;
            }
            cout<<"按回车键继续"<<endl;
            flushall();
            c=getchar();
            system("cls");
        }while(b!=0);
    }

    class Tester:virtual public person
    {
    public:
        char testroom[10];
        char post[10];
        void Input()
        {
            cout<<"Input num:";cin>>num;
            cout<<"Input name:";cin>>name;
            cout<<"Input sex:";cin>>sex;
            cout<<"Input age:";cin>>age;
            cout<<"Input testroom:";cin>>testroom;
            cout<<"Input post:";cin>>post;
        }
        void Output()
        {
            cout<<"编号: "<<num<<"  "<<"姓名: "<<name<<"  "<<"性别: "<<sex<<"  "<<"年龄: "<<age<<
                "  "<<"所在实验室: "<<testroom<<"  "<<"职务: "<<post<<endl;
        }

    };
    Tester Test[MAX];
    static Testop;

    class TestManager
    {
    public:
        int Add();
        int Search();
        void Show();
        void Edit();
        int Delete();
        void Save();
        void Read();
    };
    int TestManager::Add()
    {
        Tester t;
        int i,nu;
        if(Testop==MAX) 
        {cout<<"人数已满"<<endl;
        return 0;
        }
        cout<<"请输入编号:";cin>>nu;
        for(i=0;i<Testop;i++)
        {
            if(nu==Test[i].num)
            {cout<<"已有编号,请从输入"<<endl;
            return 0;
            }
        }
        t.Input();
        Test[Testop]=t;
        Testop++;
        cout<<"添加成功!"<<endl;
        return 1;
    }
    int TestManager::Search()
    {
        int j,n;
        cout<<"请输入编号:";cin>>n;
        for(j=0;j<Testop;j++)
        {
            if(n==Test[j].num) break;
        }
        if(j==Testop)
            cout<<"没有此人!"<<endl;
        else
            Test[j].Output();
        return 1;
    }
    void TestManager::Show()
    {
        int i;
        if(Testop==0)
        {cout<<"记录为空!"<<endl; return;}
        for(i=0;i<Testop;i++)
            Test[i].Output();
    }
    void TestManager::Edit()
    {
        Tester t1;
        int j,n;
        cout<<"请输入要编辑的人的编号:";cin>>n;
        for(j=0;j<Testop;j++)
        {
            if(n==Test[j].num) break;
        }
        if(j==Testop)
        {cout<<"没有此人!"<<endl;return;};
        cout<<"输入修改后的信息,编号不能改:"<<endl;
        t1.Input();
        Test[j]=t1;
        cout<<"编辑成功!"<<endl;
    }
    int TestManager::Delete()
    {
        int j,n;
        cout<<"请输入要删除的人的编号:";cin>>n;
        for(j=0;j<Testop;j++)
        {
            if(n==Test[j].num) break;
        }
        if(j==Testop)
        {cout<<"没有此人!"<<endl;return 0;};
        for(j;j<Testop;j++)
        {
            Test[j]=Test[j+1];
        }
        Testop--;
        cout<<"删除成功!"<<endl;
        return 1;
    }
    void TestManager::Save()
    {
        int i;
        ofstream outfile,outfile1;   
        outfile1.open("Testop.dat",ios::out);
        outfile1<<Testop;
        outfile.open("Test_data.dat",ios::binary);   
           if(!outfile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Testop;i++)
               outfile.write((char *)&Test[i],sizeof(Test[i])); 
           outfile.close();   
           cout<<"保存成功!"<<endl;

    void TestManager::Read()
    {
        int i;
        ifstream infile,infile1; 
        infile1.open("Testop.dat",ios::in);
        infile1>>Testop;
        infile.open("Test_data.dat",ios::binary);   
           if(!infile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Testop;i++)
               infile.read((char *)&Test[i],sizeof(Test[i])); 
           infile.close();  
           cout<<"读取成功!"<<endl;

    void Test_mune(TestManager TM)
    {
        int b;
        char c;
        do{
            cout<<"实验人员管理"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"| 1.添加    ";
            cout<<"2.查询    ";
            cout<<"3.显示    ";
            cout<<"4.编辑    ";
            cout<<"5.删除    ";
            cout<<"6.统计    ";
            cout<<"7.保存    ";
            cout<<"8.读取    ";
            cout<<"0.退出 |"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"请选择:";cin>>b;
            switch(b)
            {
            case 1:TM.Add();break;
            case 2:TM.Search();break;
            case 3:TM.Show();break;
            case 4:TM.Edit();break;
            case 5:TM.Delete();break;
            case 6:cout<<"共有实验员人数:"<<Testop<<endl;break;
            case 7:TM.Save();break;
            case 8:TM.Read();break;
            default:cout<<"\n error"<<endl;break;
            case 0:break;
            }
            cout<<"按回车键继续"<<endl;
            flushall();
            c=getchar();
            system("cls");
        }while(b!=0);
    }

    class Policer:virtual public person
    {
    public:
        char polices[10];
        char post1[10];
        void Input()
        {
            cout<<"Input num:";cin>>num;
            cout<<"Input name:";cin>>name;
            cout<<"Input sex:";cin>>sex;
            cout<<"Input age:";cin>>age;
            cout<<"Input polices:";cin>>polices;
            cout<<"Input post1:";cin>>post1;
        }
        void Output()
        {
            cout<<"编号: "<<num<<"  "<<"姓名: "<<name<<"  "<<"性别: "<<sex<<"  "<<"年龄: "<<age<<
                "  "<<"政治面貌: "<<polices<<"  "<<"职称: "<<post1<<endl;
        }

    };
    Policer Policers[MAX];
    static Policersop;
    class PolicerManager
    {
    public:
        int Add();
        int Search();
        void Show();
        void Edit();
        int Delete();
        void Save();
        void Read();
    };
    int PolicerManager::Add()
    {
        Policer t;
        int i,nu;
        if(Policersop==MAX) 
        {cout<<"人数已满"<<endl;
        return 0;
        }
        cout<<"请输入编号:";cin>>nu;
        for(i=0;i<Policersop;i++)
        {
            if(nu==Policers[i].num)
            {cout<<"已有编号,请从输入"<<endl;
            return 0;
            }
        }
        t.Input();
        Policers[Policersop]=t;
        Policersop++;
        cout<<"添加成功!"<<endl;
        return 1;
    }
    int PolicerManager::Search()
    {
        int j,n;
        cout<<"请输入编号:";cin>>n;
        for(j=0;j<Policersop;j++)
        {
            if(n==Policers[j].num) break;
        }
        if(j==Policersop)
            cout<<"没有此人!"<<endl;
        else
            Policers[j].Output();
        return 1;
    }
    void PolicerManager::Show()
    {
        int i;
        if(Policersop==0)
        {cout<<"记录为空!"<<endl; return;}
        for(i=0;i<Policersop;i++)
            Policers[i].Output();
    }
    void PolicerManager::Edit()
    {
        Policer t1;
        int j,n;
        cout<<"请输入要编辑的人的编号:";cin>>n;
        for(j=0;j<Policersop;j++)
        {
            if(n==Policers[j].num) break;
        }
        if(j==Policersop)
        {cout<<"没有此人!"<<endl;return;};
        cout<<"输入修改后的信息,编号不能改:"<<endl;
        t1.Input();
        Policers[j]=t1;
        cout<<"编辑成功!"<<endl;
    }
    int PolicerManager::Delete()
    {
        int j,n;
        cout<<"请输入要删除的人的编号:";cin>>n;
        for(j=0;j<Policersop;j++)
        {
            if(n==Policers[j].num) break;
        }
        if(j==Policersop)
        {cout<<"没有此人!"<<endl;return 0;};
        for(j;j<Policersop;j++)
        {
            Policers[j]=Policers[j+1];
        }
        Policersop--;
        cout<<"删除成功!"<<endl;
        return 1;
    }
    void PolicerManager::Save()
    {
        int i;
        ofstream outfile,outfile1;   
        outfile1.open("Policersop.dat",ios::out);
        outfile1<<Policersop;
        outfile.open("Policers_data.dat",ios::binary);   
           if(!outfile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Policersop;i++)
               outfile.write((char *)&Policers[i],sizeof(Policers[i])); 
           outfile.close();   
           cout<<"保存成功!"<<endl;

    void PolicerManager::Read()
    {
        int i;
        ifstream infile,infile1; 
        infile1.open("Policersop.dat",ios::in);
        infile1>>Policersop;
        infile.open("Policers_data.dat",ios::binary);   
           if(!infile)
           {cerr<<"open error!"<<endl; return; }
           for(i=0;i<Policersop;i++)
               infile.read((char *)&Policers[i],sizeof(Policers[i])); 
           infile.close();  
           cout<<"读取成功!"<<endl;

    void Policers_mune(PolicerManager TM)
    {
        int b;
        char c;
        do{
            cout<<"行政人员管理"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"| 1.添加    ";
            cout<<"2.查询    ";
            cout<<"3.显示    ";
            cout<<"4.编辑    ";
            cout<<"5.删除    ";
            cout<<"6.统计    ";
            cout<<"7.保存    ";
            cout<<"8.读取    ";
            cout<<"0.退出 |"<<endl;
            cout<<"=========================================================================================="<<endl;
            cout<<"请选择:";cin>>b;
            switch(b)
            {
            case 1:TM.Add();break;
            case 2:TM.Search();break;
            case 3:TM.Show();break;
            case 4:TM.Edit();break;
            case 5:TM.Delete();break;
            case 6:cout<<"共有行政员人数:"<<Policersop<<endl;break;
            case 7:TM.Save();break;
            case 8:TM.Read();break;
            default:cout<<"\n error"<<endl;break;
            case 0:break;
            }
            cout<<"按回车键继续"<<endl;
            flushall();
            c=getchar();
            system("cls");
        }while(b!=0);
    }

    int main()
    {
        TeaManager Tmer1;
        TestManager Tetmer;
        PolicerManager Polimer;
        int a,m;
        char c;
        cout<<"    *************************************";
        cout<<endl<<"    $         高校人员管理系统         $"<<endl;
        cout<<"    *************************************";
        cout<<endl<<"请输入密码:";cin>>m;

        if(m!=666) 
        {
            cout<<"密码错误!"<<endl;
            flushall();
            c=getchar();
            return 0;
        }

        while(a)
        {
            system("cls");
            cout<<endl;
            cout<<"              ****欢迎使用高校人员信息管理系统****"<<endl;
            cout<<"               ================================="<<endl;
            cout<<"               | 1.教师管理                    |"<<endl;
            cout<<"               | 2.实验员管理                  |"<<endl;
            cout<<"               | 3.行政员管理                  |"<<endl;
            cout<<"               | 0.退出                        |"<<endl;
            cout<<"               ================================="<<endl;
            cout<<"请选择:";cin>>a;    

            switch(a)
            {
            case 1:Tea_mune(Tmer1);break;
            case 2:Test_mune(Tetmer);break;
            case 3:Policers_mune(Polimer);break;
            case 0:break;
            default:cout<<"\n error"<<endl;
            cout<<"按回车键继续"<<endl;
            flushall();
            c=getchar();         
            break;
            }
        }

        cout<<endl<<"谢谢使用"<<endl;
        flushall();
        c=getchar();
        return 0;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败