人事管理系统(课程设计)源码
- 格式:doc
- 大小:77.50 KB
- 文档页数:7
急需一个公司的人事管理系统源代码(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(); }