词文 2019-12-21 09:14 采纳率: 0%
浏览 773

为什么我看了这个关于高校人员信息管理系统设计的代码运行时总是会说找不到“common.h”这个文件,这个那里有错误呢?

#ifndef COMMON_H_INCLUDED
#define COMMON_H_INCLUDED

#include
#include
#include

class COMMON
{
protected:
std::string name;
bool sex;
int age;
std::string id;
static int person_sum;
static int man_sum;
static int woman_sum;
public:
COMMON(std::string a, bool b, int c, std::string d);
virtual ~COMMON();
static int get_person_sum();
static int get_man_sum();
static int get_woman_sum();
virtual void show(){}
virtual void show_row(){}
virtual bool change(){}

std::string get_name(){return name;}
bool get_sex(){return sex;}
int get_age(){return age;}
std::string get_id(){return id;}

};

int COMMON::person_sum = 0;
int COMMON::man_sum = 0;
int COMMON::woman_sum = 0;

int COMMON::get_person_sum()
{
return person_sum;
}

int COMMON::get_man_sum()
{
return man_sum;
}

int COMMON::get_woman_sum()
{
return woman_sum;
}

COMMON::COMMON(std::string a, bool b, int c, std::string d): name(a), sex(b), age(c), id(d)
{
person_sum++;
if(b) man_sum++;
else woman_sum++;
}

COMMON::~COMMON()
{
person_sum--;
if(sex) man_sum--;
else woman_sum--;
}

#endif // COMMON_H_INCLUDED

tester.h 实验员:

#ifndef TESTER_H_INCLUDED
#define TESTER_H_INCLUDED

#include"common.h"

class TESTER: public COMMON
{
private:
std::string laboratory;
std::string title;
static int tester_sum;
public:
TESTER(std::string a = "haha", bool b = 1, int c = 19, std::string d = "1",
std::string e = "tt", std::string f = "学生");
~TESTER();

static int get_tester_sum();
virtual void show();
virtual void show_row();
virtual bool change();

std::string get_laboratory(){return laboratory;}
std::string get_title(){return title;}

};

int TESTER::tester_sum = 0;

int TESTER::get_tester_sum()
{
return tester_sum;
}

TESTER::TESTER(std::string a, bool b, int c, std::string d, std::string e, std::string f):
COMMON(a,b,c,d), laboratory(e), title(f)
{
tester_sum++;
}

TESTER::~TESTER()
{
tester_sum--;
}

void TESTER::show()
{
std::cout << "实验员:\n";
std::cout << "姓名:\t\t" << name << std::endl;
std::cout << "姓别:\t\t";
if(sex) std::cout << "男\n";
else std::cout << "女\n";
std::cout << "年龄:\t\t" << age << std::endl;
std::cout << "ID:\t\t" << id << std::endl;
std::cout << "所属实验室:\t" << laboratory << std::endl;
std::cout << "职务:\t\t" << title << std::endl;
}

void TESTER::show_row()
{
std::cout << std::left << std::setw(8) << name;
if(sex) std::cout << std::left << std::setw(8) << "男";
else std::cout << std::left << std::setw(8) << "女";
std::cout << std::left << std::setw(8) << age;
std::cout << std::left << std::setw(16) << id;
std::cout << std::left << std::setw(16) << laboratory;
std::cout << std::left << std::setw(16) << title;
std::cout << std::endl;
}

bool TESTER::change()
{
std::cout << "姓名:\t\t" ;
std::string new_name;
std::cin >> new_name;
for(unsigned int i = 0; i < new_name.length(); i++)
{
if(new_name[i] >= '0' && new_name[i] <= '9')
{
std::cout << "输入非法,输入任意键返回\n";
return 1;
}
}
name = new_name;

std::cout << "姓别:\t\t";
std::string a;
std::cin >> a;
if(sex) man_sum--;
else woman_sum--;
if(a == "男") sex = 1, man_sum++;
else sex = 0, woman_sum++;

std::cout << "年龄:\t\t";
std::cin >> age;

std::cout << "所属实验室:\t";
std::cin >> laboratory;

std::cout << "职务:\t\t";
std::cin >> title;
return 0;

}

#endif // TESTER_H_INCLUDED

teacher.h 教师:

#ifndef TEACHER_H_INCLUDED
#define TEACHER_H_INCLUDED

#include"common.h"

class TEACHER: virtual public COMMON
{
protected:
std::string department;
std::string profession;
std::string title;
static int teacher_sum;
public:
TEACHER(std::string a = "xixi", bool b = 1, int c = 30, std::string d = "213",
std::string e = "计算机与信息工程学院", std::string f = "计算机科学与技术", std::string g = "教师");
~TEACHER();

static int get_teacher_sum();
virtual void show();
virtual void show_row();
virtual bool change();

std::string get_department(){return department;}
std::string get_profession(){return profession;}
std::string get_title(){return title;}

};

int TEACHER::teacher_sum = 0;

int TEACHER::get_teacher_sum()
{
return teacher_sum;
}

TEACHER::TEACHER(std::string a, bool b, int c, std::string d, std::string e, std::string f, std::string g):
COMMON(a,b,c,d), department(e), profession(f), title(g)
{
teacher_sum++;
}

TEACHER::~TEACHER()
{
teacher_sum--;
}

void TEACHER::show()
{
std::cout << "教师:\n";
std::cout << "姓名:\t\t" << name << std::endl;
std::cout << "姓别:\t\t";
if(sex) std::cout << "男\n";
else std::cout << "女\n";
std::cout << "年龄:\t\t" << age << std::endl;
std::cout << "ID:\t\t" << id << std::endl;
std::cout << "院系:\t\t" << department << std::endl;
std::cout << "专业:\t\t" << profession << std::endl;
std::cout << "职务:\t\t" << title << std::endl;
}

void TEACHER::show_row()
{
std::cout << std::left << std::setw(8) << name;
if(sex) std::cout << std::left << std::setw(8) << "男";
else std::cout << std::left << std::setw(8) << "女";
std::cout << std::left << std::setw(8) << age;
std::cout << std::left << std::setw(16) << id;
std::cout << std::left << std::setw(16) << department;
std::cout << std::left << std::setw(16) << profession;
std::cout << std::left << std::setw(16) << title;
std::cout << std::endl;
}

bool TEACHER::change()
{
std::cout << "姓名:\t\t" ;
std::string new_name;
std::cin >> new_name;
for(unsigned int i = 0; i < new_name.length(); i++)
{
if(new_name[i] >= '0' && new_name[i] <= '9')
{
std::cout << "输入非法,输入任意键返回\n";
return 1;
}
}
name = new_name;

std::cout << "姓别:\t\t";
std::string a;
std::cin >> a;
if(sex) man_sum--;
else woman_sum--;
if(a == "男") sex = 1, man_sum++;
else sex = 0, woman_sum++;

std::cout << "年龄:\t\t";
std::cin >> age;

std::cout << "院系:\t\t";
std::cin >> department;

std::cout << "专业:\t\t";
std::cin >> profession;

std::cout << "职务:\t\t";
std::cin >> title;
return 0;

}

#endif // TEACHER_H_INCLUDED

administrator.h 行政人员:

#ifndef ADMINISTRATOR_H_INCLUDED
#define ADMINISTRATOR_H_INCLUDED

#include"common.h"

class ADMINISTRATOR: virtual public COMMON
{
protected:
std::string politics;
std::string position;
static int administrator_sum;
public:
ADMINISTRATOR(std::string a = "huhu", bool b = 1, int c = 39, std::string d = "176",
std::string e = "群众", std:: string f = "社会主义新青年");
~ADMINISTRATOR();

static int get_administrator_sum();
virtual void show();
virtual void show_row();
virtual bool change();

std::string get_politics(){return politics;}
std::string get_position(){return position;}

};

int ADMINISTRATOR::administrator_sum = 0;

int ADMINISTRATOR::get_administrator_sum()
{
return administrator_sum;
}

ADMINISTRATOR::ADMINISTRATOR(std::string a, bool b, int c, std::string d, std::string e, std::string f):
COMMON(a,b,c,d), politics(e), position(f)
{
administrator_sum++;
}

ADMINISTRATOR::~ADMINISTRATOR()
{
administrator_sum--;
}

void ADMINISTRATOR::show()
{
std::cout << "行政人员:\n";
std::cout << "姓名:\t\t" << name << std::endl;
std::cout << "姓别:\t\t";
if(sex) std::cout << "男\n";
else std::cout << "女\n";
std::cout << "年龄:\t\t" << age << std::endl;
std::cout << "ID:\t\t" << id << std::endl;
std::cout << "政治面貌:\t" << politics << std::endl;
std::cout << "职称:\t\t" << position << std::endl;
}

void ADMINISTRATOR::show_row()
{
std::cout << std::left << std::setw(8) << name;
if(sex) std::cout << std::left << std::setw(8) << "男";
else std::cout << std::left << std::setw(8) << "女";
std::cout << std::left << std::setw(8) << age;
std::cout << std::left << std::setw(16) << id;
std::cout << std::left << std::setw(16) << politics;
std::cout << std::left << std::setw(16) << position;
std::cout << std::endl;
}

bool ADMINISTRATOR::change()
{
std::cout << "姓名:\t\t" ;
std::string new_name;
std::cin >> new_name;
for(unsigned int i = 0; i < new_name.length(); i++)
{
if(new_name[i] >= '0' && new_name[i] <= '9')
{
std::cout << "输入非法,输入任意键返回\n";
return 1;
}
}
name = new_name;

std::cout << "姓别:\t\t";
std::string a;
std::cin >> a;
if(sex) man_sum--;
else woman_sum--;
if(a == "男") sex = 1, man_sum++;
else sex = 0, woman_sum++;

std::cout << "年龄:\t\t";
std::cin >> age;

std::cout << "政治面貌:\t";
std::cin >> politics;

std::cout << "职称:\t\t";
std::cin >> position;
return 0;

}

#endif // ADMINISTRATOR_H_INCLUDED

tea&admi.h 教师及行政人员:

#ifndef TEAADMI_H_INCLUDED
#define TEAADMI_H_INCLUDED

#include"teacher.h"
#include"administrator.h"

class TEAADMI: public TEACHER, public ADMINISTRATOR
{
private:
static int teaadmi_sum;
public:
TEAADMI(std::string a = "maomao", bool b = 1, int c = 59, std::string d = "0",
std::string e = "计算机与信息工程学院", std::string f = "计算机科学与技术", std::string g = "教师",
std::string h = "群众", std:: string i = "社会主义新青年");
~TEAADMI();
static int get_teaadmi_sum();
virtual void show();
virtual void show_row();
virtual bool change();
};

int TEAADMI::teaadmi_sum = 0;

int TEAADMI::get_teaadmi_sum()
{
return teaadmi_sum;
}

TEAADMI::TEAADMI(std::string a, bool b, int c, std::string d, std::string e, std::string f, std::string g, std::string h, std::string i):
COMMON(a,b,c,d), TEACHER(a,b,c,d,e,f,g), ADMINISTRATOR(a,b,c,d,h,i)
{
teaadmi_sum++;
}

TEAADMI::~TEAADMI()
{
teaadmi_sum--;
}

void TEAADMI::show()
{
std::cout << "教师及行政人员:\n";
std::cout << "姓名:\t\t" << name << std::endl;
std::cout << "姓别:\t\t";
if(sex) std::cout << "男\n";
else std::cout << "女\n";
std::cout << "年龄:\t\t" << age << std::endl;
std::cout << "ID:\t\t" << id << std::endl;
std::cout << "院系:\t\t" << department << std::endl;
std::cout << "专业:\t\t" << profession << std::endl;
std::cout << "职务:\t\t" << title << std::endl;
std::cout << "政治面貌:\t" << politics << std::endl;
std::cout << "职称:\t\t" << position << std::endl;
}

void TEAADMI::show_row()
{
std::cout << std::left << std::setw(8) << name;
if(sex) std::cout << std::left << std::setw(8) << "男";
else std::cout << std::left << std::setw(8) << "女";
std::cout << std::left << std::setw(8) << age;
std::cout << std::left << std::setw(16) << id;
std::cout << std::left << std::setw(16) << department;
std::cout << std::left << std::setw(16) << profession;
std::cout << std::left << std::setw(16) << title;
std::cout << std::left << std::setw(16) << politics;
std::cout << std::left << std::setw(16) << position;
std::cout << std::endl;
}

bool TEAADMI::change()
{
std::cout << "姓名:\t\t" ;
std::string new_name;
std::cin >> new_name;
for(unsigned int i = 0; i < new_name.length(); i++)
{
if(new_name[i] >= '0' && new_name[i] <= '9')
{
std::cout << "输入非法,输入任意键返回\n";
return 1;
}
}
name = new_name;

std::cout << "姓别:\t\t";
std::string a;
std::cin >> a;
if(sex) man_sum--;
else woman_sum--;
if(a == "男") sex = 1, man_sum++;
else sex = 0, woman_sum++;

std::cout << "年龄:\t\t";
std::cin >> age;

std::cout << "院系:\t\t";
std::cin >> department;

std::cout << "专业:\t\t";
std::cin >> profession;

std::cout << "职务:\t\t";
std::cin >> title;

std::cout << "政治面貌:\t";
std::cin >> politics;

std::cout << "职称:\t\t";
std::cin >> position;
return 0;

}

#endif // TEA&ADMI_H_INCLUDED

interface.h 界面:

#ifndef INTERFACE_H_INCLUDED
#define INTERFACE_H_INCLUDED

#include"teacher.h"
#include"tester.h"
#include"administrator.h"
#include"tea&admi.h"

#include
#include
#include

/*----------------函数声明-------------------*/

void interface_login(); //初始界面
void interface_Manager(); //管理者界面
void staff_list(); //管理者清单

#include"myfun.h"

/*----------------函数定义-------------------*/

void interface_Manager() //管理界面
{
int n=1;
while(n)
{
system("cls");
std::cout << "------------欢迎来到只有神知道的领域 o(*≧▽≦)ツ----------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "------------- 输入1 添加信息 -------------\n";
std::cout << "------------- 输入2 查询信息 -------------\n";
std::cout << "------------- 输入3 浏览信息 -------------\n";
std::cout << "------------- 输入4 修改信息 -------------\n";
std::cout << "------------- 输入5 删除信息 -------------\n";
std::cout << "------------- 输入6 统计信息 -------------\n";
std::cout << "------------- 输入0 返回上一级 -------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cin >> n;
switch(n)
{
case 1:Add_information();break;
case 2:
{
int a = 1;
if(!Query_information()) break;
while(a)
{
std::cout << "输入1 修改信息\n";
std::cout << "输入2 删除信息\n";
std::cout << "输入0 返回上一级\n";
std::cin >> a;
switch(a)
{
case 1:Edit_information(); a = 0; break;
case 2:Delete_information(); a= 0; break;
}
}
break;
}
case 3:
{
int a=1;
while(a)
{
Browse_information();
std::cout << "输入1 修改信息\n";
std::cout << "输入2 删除信息\n";
std::cout << "输入0 返回上一级\n";
std::cin >> a;
switch(a)
{
case 1:Edit_information(); break;
case 2:Delete_information(); break;
}
}
break;
}
case 4:Edit_information(); break;
case 5:Delete_information(); break;
case 6:count_information(); break;
}
}
}

void interface_login() //登入界面
{
int n=1;
while(n)
{
system("cls");
std::cout << "----------欢迎进入高校人员信息管理系统 o(*≧▽≦)ツ--------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "------------- 输入1 管理员账号登入 -------------\n";
std::cout << "------------- 输入2 查询信息 -------------\n";
std::cout << "------------- 输入3 浏览信息 -------------\n";
std::cout << "------------- 输入4 统计信息 -------------\n";
std::cout << "------------- 输入5 观看制作信息 -------------\n";
std::cout << "------------- 输入0 关闭系统 -------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cin >> n;
switch(n)
{
case 1:login(); break;
case 2:if(Query_information()) std::cout << "输入任意键,返回上一级\n", getch(); break;
case 3:Browse_information(); std::cout << "输入任意键,返回上一级\n"; getch(); break;
case 4:count_information(); break;
case 5:staff_list(); break;
}
}
}

void staff_list() //制作人员名单
{
system("cls");
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "--------------Include the following members----------------\n";
std::cout << "-------------- wzy ----------------\n";
std::cout << "-------------- ToRe ----------------\n";
std::cout << "-----------------------------------------------------------\n";
std::cout << "-----------------------------------------------------------\n\n\n";
std::cout << "\n输入任意键返回主菜单…\n";
getch();
}

#endif // INTERFACE_H_INCLUDED

myfun.h 主要功能实现:

#ifndef MYFUN_H_INCLUDED
#define MYFUN_H_INCLUDED

#include
#include
#include

/*----------------成员声明-------------------*/

std::multimap sear;

std::vector tester;
std::vector teacher;
std::vector administrator;
std::vector teaadmi;

/*----------------函数声明-------------------*/

void Information_load(); //信息加载
void room_delete(); //释放空间
void login(); //登入函数
void Add_information(); //添加信息
bool Query_information(); //显示查询信息
void Browse_information(); //浏览信息
void Edit_information(); //修改信息
void Delete_information(); //删除信息
void count_information(); //统计信息

/*----------------函数定义-------------------*/

void Information_load() //信息加载
{
std::ifstream in;
in.open("实验员.txt", std::ios::in);
std::string name, id;
int age;
bool sex;
while(in >> name)
{
std::string laboratory, title;
in >> sex >> age >> id >> laboratory >> title;
TESTER *t = new TESTER(name,sex,age,id,laboratory,title);
tester.push_back(t);
sear.insert(make_pair(name, t));
sear.insert(make_pair(id, t));
}
in.close();

in.open("教师.txt", std::ios::in);
while(in >> name)
{
    std::string department, profession, title;
    in >> sex >> age >> id >> department >> profession >> title;
    TEACHER *t = new TEACHER(name,sex,age,id,department,profession,title);
    teacher.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
}
in.close();

in.open("行政人员.txt", std::ios::in);
while(in >> name)
{
    std::string politics, position;
    in >> sex >> age >> id >> politics >> position;
    ADMINISTRATOR *t = new ADMINISTRATOR(name,sex,age,id,politics,position);
    administrator.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
}
in.close();

in.open("教师&行政人员.txt", std::ios::in);
while(in >> name)
{
    std::string department, profession, title, politics, position;
    in >> sex >> age >> id >> department >> profession >> title >> politics >> position;
    TEAADMI *t = new TEAADMI(name,sex,age,id,department,profession,title,politics,position);
    teaadmi.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
}

}

void room_delete() //释放空间
{
for(auto iter:tester) delete iter;
for(auto iter:teacher) delete iter;
for(auto iter:administrator) delete iter;
for(auto iter:teaadmi) delete iter;
}

void login() //登入函数
{
std::string com;
system("cls");
std::cout << "请输入密码\n";
getchar();
std::getline(std::cin,com);
if(com == "bokuwasinnsekainokamitonaru") interface_Manager();
else
{
std::cout << "密码错误,输入任意键返回上一级\n";
getch();
}
}

void Add_information()//添加信息
{
system("cls");
std::cout << "请输入添加类型\n1:实验员\t2:教师\t\t3:行政人员\t4:教师及行政人员\n";
int flag; std::cin >> flag;
std::string name, se, id;
int age;
bool sex = 0;
std::cout << "ID:\t\t"; std::cin >> id;
for(unsigned int i = 0; i < id.length(); i++)
{
if(id[i] < '0' || id[i] > '9')
{
std::cout << "输入非法,输入任意键返回\n";
getch();
return;
}
}

std::multimap<std::string, COMMON *>::iterator beg, en;
beg = sear.lower_bound(id);
en = sear.upper_bound(id);
if(beg != en)
{
    std::cout << "此ID已存在,输入任意键返回\n";
    getch();
    return;
}

std::cout << "姓名:\t\t"; std::cin >> name;
for(unsigned int i = 0; i < name.length(); i++)
{
    if(name[i] >= '0' && name[i] <= '9')
    {
        std::cout << "输入非法,输入任意键返回\n";
        getch();
        return;
    }
}

std::cout << "性别:\t\t"; std::cin >> se; if(se == "男") sex = 1;
std::cout << "年龄:\t\t"; std::cin >> age;
if(flag == 1)
{
    std::string laboratory, title;
    std::cout << "实验室名称:\t"; std::cin >> laboratory;
    std::cout << "职务:\t\t"; std::cin >> title;
    TESTER *t = new TESTER(name,sex,age,id,laboratory,title);
    tester.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
    std::ofstream out;
    out.open("实验员.txt", std::ios::app);
    out << name << " " << sex << " " << age << " " << id << " ";
    out << laboratory << " " << title << std::endl;
    out.close();
}
if(flag == 2)
{
    std::string department, profession, title;
    std::cout << "院系:\t\t"; std::cin >> department;
    std::cout << "专业:\t\t"; std::cin >> profession;
    std::cout << "职务:\t\t"; std::cin >> title;
    TEACHER *t = new TEACHER(name,sex,age,id,department,profession,title);
    teacher.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
    std::ofstream out;
    out.open("教师.txt", std::ios::app);
    out << name << " " << sex << " " << age << " " << id << " ";
    out << department << " " << profession << " " << title << std::endl;
    out.close();
}
if(flag == 3)
{
    std::string politics, position;
    std::cout << "政治面貌:\t"; std::cin >> politics;
    std::cout << "职称:\t\t"; std::cin >> position;
    ADMINISTRATOR *t = new ADMINISTRATOR(name,sex,age,id,politics,position);
    administrator.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
    std::ofstream out;
    out.open("行政人员.txt", std::ios::app);
    out << name << " " << sex << " " << age << " " << id << " ";
    out << politics << " " << position << std::endl;
    out.close();
}
if(flag == 4)
{
    std::string department, profession, title, politics, position;
    std::cout << "院系:\t\t"; std::cin >> department;
    std::cout << "专业:\t\t"; std::cin >> profession;
    std::cout << "职务:\t\t"; std::cin >> title;
    std::cout << "政治面貌:\t"; std::cin >> politics;
    std::cout << "职称:\t\t"; std::cin >> position;
    TEAADMI *t = new TEAADMI(name,sex,age,id,department,profession,title,politics,position);
    teaadmi.push_back(t);
    sear.insert(make_pair(name, t));
    sear.insert(make_pair(id, t));
    std::ofstream out;
    out.open("教师&行政人员.txt", std::ios::app);
    out << name << " " << sex << " " << age << " " << id << " ";
    out << department << " " << profession << " " << title << " ";
    out << politics << " " << position << std::endl;
    out.close();
}
std::cout << "注册成功,输入任意键返回\n";
getch();

}

void Delete_information() //删除信息
{
std::cout << "输入目标ID以确认\n";
std::string aid;
std::cin >> aid;

for(unsigned int i = 0; i < aid.length(); i++)
{
    if(aid[i] < '0' || aid[i] > '9')
    {
        std::cout << "输入非法,输入任意键返回\n";
        getch();
        return;
    }
}

std::multimap<std::string, COMMON *>::iterator beg, en, iter;
beg = sear.lower_bound(aid);
en = sear.upper_bound(aid);
if(beg == en)
{
    std::cout << "目标不存在,输入任意键返回\n";
    getch();
    return;
}
std::string aid_name = beg -> second -> get_name();
sear.erase(beg);
beg = sear.lower_bound(aid_name);
en = sear.upper_bound(aid_name);
for(iter = beg; iter != en; ++iter) if(iter -> second -> get_id() == aid) {sear.erase(iter); break;}

bool flag = 0;
std::ofstream out;
out.open("实验员.txt", std::ios::out);
for(std::vector<TESTER*>::iterator it = tester.begin(); it != tester.end();)
{
    if((*it) -> get_id() == aid){flag = 1; delete (*it); it = tester.erase(it); continue;}
    out << (*it) -> get_name() << " " << (*it) -> get_sex() << " ";
    out << (*it) -> get_age() << " " << (*it) -> get_id() << " ";
    out << (*it) -> get_laboratory() << " " << (*it) -> get_title() << std::endl;
    ++it;
}
out.close();
if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;}
out.open("教师.txt", std::ios::out);
for(std::vector<TEACHER*>::iterator it = teacher.begin(); it != teacher.end();)
{
    if((*it) -> get_id() == aid){flag = 1; delete (*it); it = teacher.erase(it); continue;}
    out << (*it) -> get_name() << " " << (*it) -> get_sex() << " ";
    out << (*it) -> get_age() << " " << (*it) -> get_id() << " ";
    out << (*it) -> get_department() << " " << (*it) -> get_profession() << " " << (*it) -> get_title() << std::endl;
    it++;
}
out.close();
if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;}
out.open("行政人员.txt", std::ios::out);
for(std::vector<ADMINISTRATOR*>::iterator it = administrator.begin(); it != administrator.end();)
{
    if((*it) -> get_id() == aid){flag = 1; delete (*it); it = administrator.erase(it); continue;}
    out << (*it) -> get_name() << " " << (*it) -> get_sex() << " ";
    out << (*it) -> get_age() << " " << (*it) -> get_id() << " ";
    out << (*it) -> get_politics() << " " << (*it) -> get_position() << std::endl;
    it++;
}
out.close();
if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;}
out.open("教师&行政人员.txt", std::ios::out);
for(std::vector<TEAADMI*>::iterator it = teaadmi.begin(); it != teaadmi.end();)
{
    if((*it) -> get_id() == aid){flag = 1; delete (*it); it = teaadmi.erase(it); continue;}
    out << (*it) -> get_name() << " " << (*it) -> get_sex() << " ";
    out << (*it) -> get_age() << " " << (*it) -> get_id() << " ";
    out << (*it) -> get_department() << " " << (*it) -> get_profession() << " " << (*it) -> get_title() << " ";
    out << (*it) -> get_politics() << " " << (*it) -> get_position() << std::endl;
    ++it;
}
out.close();
std::cout << "删除成功,输入任意键返回\n";
getch();

}

void Edit_information() //修改信息
{
std::cout << "输入目标ID以确认\n";
std::string aid;
std::cin >> aid;
for(unsigned int i = 0; i < aid.length(); i++)
{
if(aid[i] < '0' || aid[i] > '9')
{
std::cout << "输入非法,输入任意键返回\n";
getch();
return;
}
}

std::multimap<std::string, COMMON *>::iterator beg, en, iter;
beg = sear.lower_bound(aid);
en = sear.upper_bound(aid);

if(beg == en)
{
    std::cout << "目标不存在,输入任意键返回\n";
    getch();
    return;
}
system("cls");
bool flag = 0;
std::ofstream out;
out.open("实验员.txt", std::ios::out);
for(auto iter:tester)
{
    if(iter -> get_id() == aid)
    {
        iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n";
        while(iter -> change())
        {
            system("cls");
            iter -> show();
            std::cout << "输入非法,请重新输入\n";
        }
        flag = 1;
    }
    out << iter -> get_name() << " " << iter -> get_sex() << " ";
    out << iter -> get_age() << " " << iter -> get_id() << " ";
    out << iter -> get_laboratory() << " " << iter -> get_title() << std::endl;
}
out.close();
if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;}
out.open("教师.txt", std::ios::out);
for(auto iter:teacher)
{
    if(iter -> get_id() == aid)
    {
        iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n";
        while(iter -> change())
        {
            system("cls");
            iter -> show();
            std::cout << "输入非法,请重新输入\n";
        }
        flag = 1;
    }
    out << iter -> get_name() << " " << iter -> get_sex() << " ";
    out << iter -> get_age() << " " << iter -> get_id() << " ";
    out << iter -> get_department() << " " << iter -> get_profession() << " " << iter -> get_title() << std::endl;
}
out.close();
if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;}
out.open("行政人员.txt", std::ios::out);
for(auto iter:administrator)
{
    if(iter -> get_id() == aid)
    {
        iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n";
        while(iter -> change())
        {
            system("cls");
            iter -> show();
            std::cout << "输入非法,请重新输入\n";
        }
        flag = 1;
    }
    out << iter -> get_name() << " " << iter -> get_sex() << " ";
    out << iter -> get_age() << " " << iter -> get_id() << " ";
    out << iter -> get_politics() << " " << iter -> get_position() << std::endl;
}
out.close();
if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;}
out.open("教师&行政人员.txt", std::ios::out);
for(auto iter:teaadmi)
{
    if(iter -> get_id() == aid)
    {
        iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n";
        while(iter -> change())
        {
            system("cls");
            iter -> show();
            std::cout << "输入非法,请重新输入\n";
        }
        flag = 1;
    }
    out << iter -> get_name() << " " << iter -> get_sex() << " ";
    out << iter -> get_age() << " " << iter -> get_id() << " ";
    out << iter -> get_department() << " " << iter -> get_profession() << " " << iter -> get_title() << " ";
    out << iter -> get_politics() << " " << iter -> get_position() << std::endl;
}
out.close();
std::cout << "修改成功,输入任意键返回\n";
getch();

}

bool Query_information() //查询函数
{
system("cls");
std::cout << "输入目标姓名或ID以查询\n";
std::string aid;
std::cin >> aid;
std::multimap::iterator beg, en, iter;
beg = sear.lower_bound(aid);
en = sear.upper_bound(aid);

if(beg == en)
{
    std::cout << "查询结果为空,输入任意键返回\n";
    getch();
    return 0;
}
for(iter = beg; iter != en; ++iter)
{
    iter -> second -> show();
    std::cout << std::endl;
}
return 1;

}

void Browse_information() //浏览函数
{
system("cls");
std::cout << "-------------------实验员-------------------\n";
std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "实验室名称\t" << "职务\n";
for(auto iter:tester) iter -> show_row();

std::cout << "\n------------------行政人员------------------\n";
std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "政治面貌\t" << "职称\n";
for(auto iter:administrator) iter -> show_row();


std::cout << "\n--------------------教师--------------------\n";
std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "院系\t\t" << "专业\t\t" << "职务\n";
for(auto iter:teacher) iter -> show_row();


std::cout << "\n-----------------行政人员&教师--------------\n";
std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "政治面貌\t" << "职称\t\t" << "院系\t\t" << "专业\t\t" << "职务\n";
for(auto iter:teaadmi) iter -> show_row();

}

void count_information() //统计信息
{
system("cls");
std::cout << "员工总人数:\t\t" << COMMON::get_person_sum() << std::endl;
std::cout << "男性人数:\t\t" << COMMON::get_man_sum() << std::endl;
std::cout << "女性人数:\t\t" << COMMON::get_woman_sum() << std::endl;
std::cout << "教师人数:\t\t" << TEACHER::get_teacher_sum() << std::endl;
std::cout << "实验员人数:\t\t" << TESTER::get_tester_sum() << std::endl;
std::cout << "行政管理人员人数:\t" << ADMINISTRATOR::get_administrator_sum() << std::endl;
std::cout << "行政管理人员&教师人数:\t" << TEAADMI::get_teaadmi_sum() << std::endl;
std::cout << "\n\n输入任意键返回上一级\n";
getch();
}

#endif // MYFUN_H_INCLUDED

main.cpp 主函数:

#include"interface.h"

int main()
{
Information_load(); //加载信息
interface_login(); //首界面
room_delete(); //释放空间
// count_information();
return 0;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-21 09:16
    关注

    你开头的那一砣是放在了叫做common.h的文件里的么?

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退