小型学校人事管理系统
来源:互联网 发布:pdf拆分软件 编辑:程序博客网 时间:2024/04/28 05:27
/**//*头文件 StuTeach.h */
//Y:
#ifndef STUTEACH_H
#define STUTEACH_H
#include <string>
#include <vector>
class People...{
public:
People(std::string name="" , bool sex=0)
:m_name(name),m_sex(sex)
...{}
virtual ~People();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
protected:
std::string m_name;
bool m_sex;
};
class Teacher:public People...{
public:
Teacher(std::string name="", bool sex=0, int no=0, int depart=0, std::string title="")
:People(name,sex),m_no(no),m_depart(depart),m_title(title)
...{}
virtual ~Teacher();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
private:
int m_no;
int m_depart;
std::string m_title;
};
class Student:public People...{
public:
Student(std::string name="", bool sex=0, int no=0, int depart=0, int grade=0)
:People(name,sex),m_no(no),m_depart(depart),m_grade(grade)
...{}
virtual ~Student();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
private:
int m_no;
int m_depart;
int m_grade;
};
class FindFunObj...{//函数对象,
public:
FindFunObj(People* pt=NULL):p(pt)...{}
bool operator()(const People* pp)
...{
return (pp->getNo() == p->getNo());
}
private:
const People* p;
};
enum OP...{ADD=1, EDIT, DEL, FIND, PRINT, BACK};
enum OBJ...{TEACH=1, STU, QUIT};
//全局函数声明
void printMess(const char* m);
bool checkNo(const std::vector<People*>& vv, People* p);
bool ascByNo(People* p1, People* p2);
void addIn(std::vector<People*>& v, int obj);
int who(int obj);
std::vector<People*>::iterator geti(std::vector<People* >& v, int obj);
void edit(std::vector<People* >& v, int obj);
void del(std::vector<People* >& v, int obj);
void myfind(std::vector<People* >& v, int obj);
void myprint(std::vector<People* >& v);
void manage(std::vector<People*>& vp, int obj);
#endif
/**/////////////////////////////////////////////////////
/**//*函数实现文件 StuTeach.cpp */
//Y:
#include "StuTeach.h"
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
/**///// Member Functions of People
People::~People()
...{}
void People::input()
...{
cout << "输入姓名:";
cin >> m_name;
cout << "输入性别(0-男,1-女):";
cin >> m_sex;
}
void People::print()
...{
cout << "姓名:" << m_name <<endl;
cout << "性别:" << (m_sex == 0 ? "男" : "女") <<endl;
}
void People::edit()
...{
cout << "修改姓名为:";
cin >> m_name;
cout << "修改性别(0-男,1-女)为:";
cin >> m_sex;
}
int People::getNo() const
...{
return 0;
}
/**///// Member Functions of Teacher
Teacher::~Teacher()
...{}
void Teacher::input()
...{
cout << "输入职工号:";
cin >> m_no;
People::input();
cout << "输入系号:" ;
cin >> m_depart;
cout << "输入职称:";
cin >> m_title;
}
void Teacher::print()
...{
cout << "职工号:" << m_no <<endl;
People::print();
cout << "系号:" << m_depart <<endl;
cout << "职称:" << m_title << endl;
}
void Teacher::edit()
...{
cout << "修改职工号为:";
cin >> m_no;
People::edit();
cout << "修改系号为:" ;
cin >> m_depart;
cout << "修改职称为:";
cin >> m_title;
}
int Teacher::getNo() const
...{
return m_no;
}
/**///// Member Functions of Student
Student::~Student()
...{}
void Student::input()
...{
cout << "输入学号:";
cin >> m_no;
People::input();
cout << "输入系号:" ;
cin >> m_depart;
cout << "输入年级:";
cin >> m_grade;
}
void Student::print()
...{
cout << "学号:" << m_no <<endl;
People::print();
cout << "系号:" << m_depart <<endl;
cout << "年级:" << m_grade << endl;
}
void Student::edit()
...{
cout << "修改学号为:";
cin >> m_no;
People::edit();
cout << "修改系号为:" ;
cin >> m_depart;
cout << "修改年级为:";
cin >> m_grade;
}
int Student::getNo() const
...{
return m_no;
}
/**/////全局函数定义
void printMess(const char* m)
...{cout << m;}
bool checkNo(const vector<People*>& vv, People* p)
...{
vector<People*>::const_iterator i
= find_if(vv.begin(), vv.end(), FindFunObj(p));
return i != vv.end();
}
bool ascByNo(People* p1, People* p2)//按号码递增排序的函数对象
...{
return (p1->getNo() < p2->getNo());
}
void addIn(vector<People*>& v, int obj)
...{
People* pnew=NULL;
if(obj == TEACH)
pnew = new Teacher();
else if(obj == STU)
pnew = new Student();
else
...{
printMess("对象错误 ");
return;
}
pnew->input();
if(!checkNo(v, pnew))
...{
v.push_back(pnew);
sort(v.begin(), v.end(), ascByNo);
}
else
...{
printMess("号码冲突,添加失败 ");
delete pnew;
}
}
int who(int obj)
...{
if(obj == TEACH)
printMess("输入职工号:");
else if(obj == STU)
printMess("输入学号:");
else
...{
printMess("对象错误 ");
return -1;
}
int w;
cin >> w;
return w;
}
vector<People*>::iterator geti(vector<People* >& v, int obj)
...{
int w = who(obj);
vector<People*>::iterator i;
for(i= v.begin(); i != v.end(); ++i)
...{
if((*i)->getNo() == w)
break;
}
return i;
}
void edit(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
(*i)->edit();
else
printMess("查无此人 ");
}
void del(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
...{
v.erase(i);
}
else
printMess("查无此人 ");
}
void myfind(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
(*i)->print();
else
printMess("查无此人 ");
}
void myprint(vector<People* >& v)
...{
for(vector<People*>::const_iterator ci = v.begin(); ci != v.end(); ++ci)
...{
(*ci)->print();
printMess("---------- ");
}
}
void manage(vector<People*>& vp, int obj)
...{
printMess("1.添加 ");
printMess("2.修改 ");
printMess("3.删除 ");
printMess("4.查询 ");
printMess("5.打印 ");
printMess("6.返回 ");
printMess("请选择:");
int op;
while(cin >> op)
...{
if(op == BACK)
break;
switch(op)
...{
case ADD:
addIn(vp, obj);
break;
case EDIT:
edit(vp, obj);
break;
case DEL:
del(vp, obj);
break;
case FIND:
myfind(vp, obj);
break;
case PRINT:
myprint(vp);
break;
default:
printMess("无此操作 ");
break;
}
printMess("请选择:");
}
}
/**////////////////////////////////////////////////////////////////////
/**//*测试文件 main.cpp*/
//Y:
#include "StuTeach.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
...{
vector<People*> vpTeach, vpStu;
printMess("1.处理教师信息 ");
printMess("2.处理学生信息 ");
printMess("3.退出程序 ");
printMess("请选择:");
int obj;
while(cin >> obj)
...{
if(obj == QUIT)
break;
switch(obj)
...{
case TEACH:
manage(vpTeach, obj);
break;
case STU:
manage(vpStu, obj);
break;
default:
printMess("无此操作对象 ");
break;
}
printMess("请选择:");
}
return 0;
}
//Y:
#ifndef STUTEACH_H
#define STUTEACH_H
#include <string>
#include <vector>
class People...{
public:
People(std::string name="" , bool sex=0)
:m_name(name),m_sex(sex)
...{}
virtual ~People();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
protected:
std::string m_name;
bool m_sex;
};
class Teacher:public People...{
public:
Teacher(std::string name="", bool sex=0, int no=0, int depart=0, std::string title="")
:People(name,sex),m_no(no),m_depart(depart),m_title(title)
...{}
virtual ~Teacher();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
private:
int m_no;
int m_depart;
std::string m_title;
};
class Student:public People...{
public:
Student(std::string name="", bool sex=0, int no=0, int depart=0, int grade=0)
:People(name,sex),m_no(no),m_depart(depart),m_grade(grade)
...{}
virtual ~Student();
virtual void input();
virtual void print();
virtual void edit();
virtual int getNo() const;
private:
int m_no;
int m_depart;
int m_grade;
};
class FindFunObj...{//函数对象,
public:
FindFunObj(People* pt=NULL):p(pt)...{}
bool operator()(const People* pp)
...{
return (pp->getNo() == p->getNo());
}
private:
const People* p;
};
enum OP...{ADD=1, EDIT, DEL, FIND, PRINT, BACK};
enum OBJ...{TEACH=1, STU, QUIT};
//全局函数声明
void printMess(const char* m);
bool checkNo(const std::vector<People*>& vv, People* p);
bool ascByNo(People* p1, People* p2);
void addIn(std::vector<People*>& v, int obj);
int who(int obj);
std::vector<People*>::iterator geti(std::vector<People* >& v, int obj);
void edit(std::vector<People* >& v, int obj);
void del(std::vector<People* >& v, int obj);
void myfind(std::vector<People* >& v, int obj);
void myprint(std::vector<People* >& v);
void manage(std::vector<People*>& vp, int obj);
#endif
/**/////////////////////////////////////////////////////
/**//*函数实现文件 StuTeach.cpp */
//Y:
#include "StuTeach.h"
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
/**///// Member Functions of People
People::~People()
...{}
void People::input()
...{
cout << "输入姓名:";
cin >> m_name;
cout << "输入性别(0-男,1-女):";
cin >> m_sex;
}
void People::print()
...{
cout << "姓名:" << m_name <<endl;
cout << "性别:" << (m_sex == 0 ? "男" : "女") <<endl;
}
void People::edit()
...{
cout << "修改姓名为:";
cin >> m_name;
cout << "修改性别(0-男,1-女)为:";
cin >> m_sex;
}
int People::getNo() const
...{
return 0;
}
/**///// Member Functions of Teacher
Teacher::~Teacher()
...{}
void Teacher::input()
...{
cout << "输入职工号:";
cin >> m_no;
People::input();
cout << "输入系号:" ;
cin >> m_depart;
cout << "输入职称:";
cin >> m_title;
}
void Teacher::print()
...{
cout << "职工号:" << m_no <<endl;
People::print();
cout << "系号:" << m_depart <<endl;
cout << "职称:" << m_title << endl;
}
void Teacher::edit()
...{
cout << "修改职工号为:";
cin >> m_no;
People::edit();
cout << "修改系号为:" ;
cin >> m_depart;
cout << "修改职称为:";
cin >> m_title;
}
int Teacher::getNo() const
...{
return m_no;
}
/**///// Member Functions of Student
Student::~Student()
...{}
void Student::input()
...{
cout << "输入学号:";
cin >> m_no;
People::input();
cout << "输入系号:" ;
cin >> m_depart;
cout << "输入年级:";
cin >> m_grade;
}
void Student::print()
...{
cout << "学号:" << m_no <<endl;
People::print();
cout << "系号:" << m_depart <<endl;
cout << "年级:" << m_grade << endl;
}
void Student::edit()
...{
cout << "修改学号为:";
cin >> m_no;
People::edit();
cout << "修改系号为:" ;
cin >> m_depart;
cout << "修改年级为:";
cin >> m_grade;
}
int Student::getNo() const
...{
return m_no;
}
/**/////全局函数定义
void printMess(const char* m)
...{cout << m;}
bool checkNo(const vector<People*>& vv, People* p)
...{
vector<People*>::const_iterator i
= find_if(vv.begin(), vv.end(), FindFunObj(p));
return i != vv.end();
}
bool ascByNo(People* p1, People* p2)//按号码递增排序的函数对象
...{
return (p1->getNo() < p2->getNo());
}
void addIn(vector<People*>& v, int obj)
...{
People* pnew=NULL;
if(obj == TEACH)
pnew = new Teacher();
else if(obj == STU)
pnew = new Student();
else
...{
printMess("对象错误 ");
return;
}
pnew->input();
if(!checkNo(v, pnew))
...{
v.push_back(pnew);
sort(v.begin(), v.end(), ascByNo);
}
else
...{
printMess("号码冲突,添加失败 ");
delete pnew;
}
}
int who(int obj)
...{
if(obj == TEACH)
printMess("输入职工号:");
else if(obj == STU)
printMess("输入学号:");
else
...{
printMess("对象错误 ");
return -1;
}
int w;
cin >> w;
return w;
}
vector<People*>::iterator geti(vector<People* >& v, int obj)
...{
int w = who(obj);
vector<People*>::iterator i;
for(i= v.begin(); i != v.end(); ++i)
...{
if((*i)->getNo() == w)
break;
}
return i;
}
void edit(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
(*i)->edit();
else
printMess("查无此人 ");
}
void del(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
...{
v.erase(i);
}
else
printMess("查无此人 ");
}
void myfind(vector<People* >& v, int obj)
...{
vector<People*>::iterator i = geti(v, obj);
if(i != v.end())
(*i)->print();
else
printMess("查无此人 ");
}
void myprint(vector<People* >& v)
...{
for(vector<People*>::const_iterator ci = v.begin(); ci != v.end(); ++ci)
...{
(*ci)->print();
printMess("---------- ");
}
}
void manage(vector<People*>& vp, int obj)
...{
printMess("1.添加 ");
printMess("2.修改 ");
printMess("3.删除 ");
printMess("4.查询 ");
printMess("5.打印 ");
printMess("6.返回 ");
printMess("请选择:");
int op;
while(cin >> op)
...{
if(op == BACK)
break;
switch(op)
...{
case ADD:
addIn(vp, obj);
break;
case EDIT:
edit(vp, obj);
break;
case DEL:
del(vp, obj);
break;
case FIND:
myfind(vp, obj);
break;
case PRINT:
myprint(vp);
break;
default:
printMess("无此操作 ");
break;
}
printMess("请选择:");
}
}
/**////////////////////////////////////////////////////////////////////
/**//*测试文件 main.cpp*/
//Y:
#include "StuTeach.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
...{
vector<People*> vpTeach, vpStu;
printMess("1.处理教师信息 ");
printMess("2.处理学生信息 ");
printMess("3.退出程序 ");
printMess("请选择:");
int obj;
while(cin >> obj)
...{
if(obj == QUIT)
break;
switch(obj)
...{
case TEACH:
manage(vpTeach, obj);
break;
case STU:
manage(vpStu, obj);
break;
default:
printMess("无此操作对象 ");
break;
}
printMess("请选择:");
}
return 0;
}
- 小型学校人事管理系统
- 人事管理系统
- 人事管理系统
- 人事管理系统
- 人事管理系统
- 学校小型的实验室局域网络的搭建
- 学校.......
- 学校
- 学校
- 人事管理系统课程设计
- 公司人事管理系统
- 蓝山人事管理系统
- 企业人事管理系统
- 人事管理系统呀
- 企业人事管理系统
- 公司人事管理系统
- 人事管理系统 简述
- 企业人事管理系统
- RTS行业化差异初显
- 政府门户网站发展的六大趋势
- c/c++中指针学习的两个绝好例子
- 什么是门户网站?
- 将 SOA 引入 Office 应用程序桌面
- 小型学校人事管理系统
- 单词,标点统计程序
- 使用 SQL SERVER 2005 新增功能--- DDL_DATABASE_LEVEL_EVENTS 数据库级的触发器,创建数据库日志表
- [葛勤民]怎样计算任一天是星期几
- 学习c++的50条忠告(初学者必看)
- 使用Eclipse+RVDS 2.2搭建 ARM 开发环境
- 效率啊,效率[by Ivan]
- Svchost进程功能及相关知识大揭秘
- Windows下安全权限设置详解