实验 4 :公司职工的信息管理程序
一、实验内容:
使用面向对象的程序设计方法设计一个程序,实现对公司职工信息的管理。对公司职工信息的管理包括:增加职工信息、查找职工信息、显示所有职工信息、删除职工信息和退出等功能。
二、实验要求:
1、程序要实现的功能:
①增加职工信息;
②查找职工信息;
③显示所有职工信息;
④删除职工信息;
⑤退出。
2、完成各成员函数。
①定义一个员工类(Staff)
类的声明为:
class Staff
{
public:
char name[10];//姓名
char no[5];//职员号
char department[10];职员所在的部门
int wage;//工资
char position[10];//职位
Staff();
Staff(char *name,char *no,char* dep,intwage,char* posi);
~Staff();
};
②定义一个公司类,类定义为
class Company
{
public :
int count;
Staff* add[30];//对象指针数组
Staff *Sta;//临时对象指针
Company();
~Company();
bool AddStaff(char *name,char *no,char*dep,int wage,char* posi);//添加职工
bool DeleteStaff(char *no);//删除职工
bool FindStaff(char *no);//查找职工
void DispAll();//显示所有职工
};
添加时,若职工信息的工号相同则添加不成功。
功能2为查找职工信息,以职工号检索输入3时,显示所有的员工信息4,删除职工信息按0退出系统
建议用string写,毕竟简单太多了。
/*
Name: company staff management program
Copyright:
Author: Jia daihua
Description: don't copy my work
*/
#include
#include
#include
#include
using namespace std;
static int all = 0;
class Staff
{
public:
string name;
string no;
string department;
string wage;
string position;
Staff();
Staff(string name1,string no1,string department1,string wage1,string position1);
~Staff()
{
}
};
Staff::Staff()
{
name = '0';
no = '0';
department = '0';
wage = '0';
position = '0';
}
Staff::Staff(string name1,string no1,string department1,string wage1,string position1)
{
name = name1;
no = no1;
department = department1;
wage = wage1;
position = position1;
}
class Company
{
public :
int count;
Staff* add[30];
Staff *Sta;
Company()
{
memset(add, 0, sizeof(add));
Sta = 0;
count = 0;
}
~Company()
{
delete []Sta;
}
bool AddStaff(string name,string no,string dep,string wage,string posi);//添加职工
bool DeleteStaff(string no);//删除职工
bool FindStaff(string no);//查找职工
void DispAll();//显示所有职工
};
//添加员工函数
bool Company::AddStaff(string name,string no,string dep,string wage,string posi)
{
int i = 0;
Staff *example;
example = new Staff(name,no,dep,wage,posi);
for(i = 0; i < all; i ++)
{
Sta = (Staff*)add[i];
if( Sta->no == no)
{
cout<<"添加失败,该员工已存在!"<no == no)
{
cout<<"该员工已找到:"<name<no<department<wage<position<no == no)
{
for(int j = i;j < all; j++)
add[j] = add[j + 1];
all--;
cout<<"删除成功!"<name<no<department<wage<position<>r;
if(r >= 0 && r <= 4)
break;
else
cout<<"输入有误,请重新输入:";
}
return r;
}
int main()
{
Company c;
int j,k,l,r, loop = 1;
string name,no,position,department,wage;
welcome();
while(loop)
{
r = select();
if(r == 0)
break;
else if(r == 1)
{
cout<<"请输入姓名(换行键结束):"<>name;
cout<<"请输入工号(换行键结束):"<>no;
cout<<"请输入部门(换行键结束):"<>department;
cout<<"请输入工资(换行键结束):"<>wage;
cout<<"请输入职位(换行键结束):"<>position;
c.AddStaff(name,no,department,wage,position);
}
else if(r == 2)
{
cout<<"请输入您要查找的员工号:"<>no;
c.FindStaff(no);
}
else if(r == 3)
{
c.DispAll();
}
else if(r == 4)
{
cout<<"请输入您要删除的员工的员工号:"<>no;
c.DeleteStaff(no);
}
}
return 0;
}