人事管理系统(课程设计)源码

  • 格式:doc
  • 大小:77.50 KB
  • 文档页数:7

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

急需一个公司的人事管理系统源代码(vc++编程)

悬赏分:100 |解决时间:2008-1-8 09:58 |提问者:klak1

某小型公司,主要有两类人员:经理、员工。现在,需要存储这些人员的姓名、编号、身份证号码、业绩、级别(经理包括总经理、经理、副经理级别,员工包括高级员工、普通员工和临时工级别)、家庭住址、开始工作日期、所在部门、薪水等信息,并可以对这些信息进行检索。

要求:

1)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1;

2)根据业绩的大小具有自动升降级别的功能;

3)输入员工身份证号码号码后自动获取员工生日;

4)输入员工开始工作日期后自动获取员工工龄;

5)能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息

最佳答案

#include

#include

#include

#include

const int Maxr=100;

class Employee //职工类

{

int tag;//删除标记

int no;//职工编号

char name[20];

char zw[20];//职工姓名

int salary;//职工工资

public:

Employee(){}

char *getname() {return name;}//获取名字

int gettag() {return tag;}//获取标记

int getno() {return no;}//获取编号

int getsalary(){return salary;}

void setzw(char q[])//设置名字

{

strcpy(zw,q);

}

void setname(char na[])//设置名字

{

strcpy(name,na);

}

void getsalary(int sa){salary=sa;}

void delna(){tag=1;}//删除

void addemp(int n,int sa,char *na,char *q)//增加

{

tag=0;

no=n;

salary=sa;

strcpy(name,na);

strcpy(zw,q);

}

void disp()//显示职工信息

{

cout<<"│"<

cout<<"├—————┼—————┼—————┼—————┤"<

}

};

class Database//职工数据类

{

int top;

Employee read[Maxr];

public:

Database()//将职工信息从employee.txt读取到read[]中

{ Employee s;

top=-1;

fstream file("employee.txt",ios::in);

while (1)

{

file.read((char *)&s,sizeof(s));

if (!file) break;

top++;

read[top]=s;

}

file.close();

}

void clear()//删除所有

top=-1;

}

int addemp (int n, int sa,char *na,char*q) //增加职工{

Employee *p=query(n);

if (p==NULL)

{

top++;

read[top].addemp(n,sa,na,q);

return 1;

}

return 0;

}

Employee *query(int empid)

{

for (int i=0;i<=top;i++)

if (read[i].getno()==empid && read[i].gettag()==0) return &read[i];

return NULL;

}

Employee *query1(char empna[20])

{

for (int i=0;i<=top;i++)

if ((read[i].getname()==empna) && read[i].gettag()==0) return &read[i];

return NULL;

}

void disp() //职工信息显示

{

for (int i=0;i<=top;i++)

read[i].disp();

}

void empdata();

~Database() //将read[]中的信息读如到employee.txt中{

fstream file("employee.txt",ios::out);

for (int i=0;i<=top;i++)

if (read[i].gettag()==0)

file.write((char *)&read[i],sizeof(read[i]));

file.close();

}