您的位置:首页 > 其它

职工管理系统

2007-10-27 13:19 351 查看
//职工

#include<iostream.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
const int Maxb=10000; //最多的职工
class Worker//职工类
{
int tag; //删除标记1:已删0:未删
int number; //工号
char name[10]; //姓名
int age;//年龄
char sex[2]; //性别
char edu[10];//学历
int price;//工资
char address[50];//地址
int phone;//电话

public:
Worker() {} //构造函数

int getnumber() { return number; }//获取工号
int gettag() { return tag; } //获取删除标记
char *getsex() {return sex;} //获取姓名
char *getedu() {return edu;} //获取学历
char *getaddress() {return address;} //获取地址
int getphone() {return phone;} //获取电话
int getprice() {return price;} //获取工资
int getage() {return age;}
char *getname() {return name;}

void setname(char na[]) //设置姓名
{
strcpy(name,na);
}
void setsex(char se[]) //设置姓名
{
strcpy(sex,se);
}
void setedu(char ed[]) //设置学历
{
strcpy(edu,ed);
}
void setaddress(char ad[]) //设置地址
{
strcpy(address,ad);
}

void delworker() { tag=1; } //删除职工
void addworker(int n,char *na,char *se,int ag,char *ed,int pr,char *addr,int pho) //增加职工
{
tag=0;
number=n;
age=ag;
price=pr;
phone=pho;
strcpy(name,na);
strcpy(sex,se);
strcpy(edu,ed);
strcpy(address,addr);
}
void disp() //输出职工
{
cout <<setw(10)<<number<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<age<<setw(10)<<edu<<setw(10)<<price<<setw(10)<<address<<setw(10)<<phone<<endl;
}
};
class BDatabase //职工库类
{
int top; //职工记录指针
Worker worker[Maxb]; //职工记录
public:BDatabase() //构造函数,将worker.txt读到worker[]中
{
Worker b;
top=-1;
fstream file("worker.txt",ios::binary);
while (1)
{
file.read((char *)&b,sizeof(b));
if (!file) break;
top++;
worker[top]=b;
}
file.close();
}
void clear() //全删
{
int all_del;
cout<<endl<<endl;
cout<<" 注意!"<<endl;
cout<<" 本次操作将删除资料库里的所有信息,您确定要继续吗?"<<endl<<endl;
cout<<" 确定请输入1,取消请输入0: ";
cin>>all_del;
if(all_del==1)
{
top=-1;
cout<<endl<<endl;
cout<<" --------------------------"<<endl;
cout<<" 已清空所有信息"<<endl;
cout<<" --------------------------"<<endl<<endl;
}
}
//增加职工
int addworker(int n,char *na,char *se,int ag,char *ed,int pr,char *addr,int pho)
{
Worker *p=query(n);
if (p==NULL)
{
top++;
worker[top].addworker(n,na,se,ag,ed,pr,addr,pho);
return 1;
}
return 0;
}
Worker *query(int workerid) //查找职工
{
for(int i=0;i<=top;i++)
if(worker[i].getnumber()==workerid &&
worker[i].gettag()==0)
return &worker[i];
return NULL;
}
void workerdata(); //职工库维护
void disp()
{
cout<<setw(10)<<"工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<setw(10)<<"学历"<<setw(10)<<"工资(元)"<<setw(10)<<"住址"<<setw(10)<<"电话"<<endl;
for(int i=0;i<=top;i++)
if(worker[i].gettag()==0)
worker[i].disp();
}
~BDatabase() //析构函数,将worker[]写入worker.txt文件中
{
fstream file("worker.txt",ios::binary);
for(int i=0;i<=top;i++)
if(worker[i].gettag()==0)
file.write((char*)&worker[i],sizeof(worker[i]));
file.close();
}
};
void help()
{
cout<<endl<<endl;
cout<<" *---------------------------------------------*"<<endl;
cout<<" - -"<<endl;
cout<<" - 本软件简单实用 -"<<endl;
cout<<" - 按每一步的提示进行操作即可。 -"<<endl;
cout<<" - -"<<endl;
cout<<" *---------------------------------------------*"<<endl<<endl;
}
void menu()
{
cout<<endl<<endl;
cout<<" * * * * * * * * * * * *"<<endl;
cout<<" * 一 添加职工 *"<<endl;
cout<<" * 二 修改信息 *"<<endl;
cout<<" * 三 逐个删除 *"<<endl;
cout<<" * 四 查询信息 *"<<endl;
cout<<" * 五 信息显示 *"<<endl;
cout<<" * 六 全部删除 *"<<endl;
cout<<" * 七 使用帮助 *"<<endl;
cout<<" * 八 退出系统 *"<<endl;
cout<<" * * * * * * * * * * * *"<<endl<<endl;
}
void BDatabase::workerdata()
{
int choice=1;
int choice2=1;
int workerid;
char bname[10];
char bsex[2];
int bage;
char bedu[10];
char baddress[50];
int bphone;
int bprice;
Worker *b;
while(choice!=8)
{
menu();
//cout<<endl<<"职工管理"<<endl<<"1:新增职工 2:修改 3:删除职工 4:查询职工信息 5:显示 6:全删 0:退出=>";
//cin>>choice;
cout<<"请选择你要进行的操作";
cin>>choice;
while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7&&choice!=8&&choice!=8)
{
cout<<endl<<" ** 您输入的编号在菜单里不存在,请重新输入 **"<<'/a'<<endl<<endl;
cout<<" 请选择您需要的操作:";
cin>>choice;
}
switch(choice)
{
case 1:
while(choice==1)
{
//system("cls");
cout<<endl;
cout<<" 输入工号:";
cin>> workerid;
cout<<" 输入姓名:";
cin>> bname;
cout<<" 输入性别:";
cin>>bsex;
cout<<" 输入年龄:";
cin>>bage;
cout<<" 输入学历:";
cin>>bedu;
cout<<" 输入月工资:";
cin>>bprice;
cout<<" 输入住址:";
cin>>baddress;
cout<<" 输入电话:";
cin>>bphone;
addworker(workerid,bname,bsex,bage,bedu,bprice,baddress,bphone);
cout<<endl<<" "<<"输入1继续添加,输入2返回菜单:";
cin>>choice;
if(choice==1)
{
//system("cls");
cout<<endl;
cout<<" 输入工号:";
cin>> workerid;
cout<<" 输入姓名:";
cin>> bname;
cout<<" 输入性别:";
cin>>bsex;
cout<<" 输入年龄:";
cin>>bage;
cout<<" 输入学历:";
cin>>bedu;
cout<<" 输入月工资:";
cin>>bprice;
cout<<" 输入住址:";
cin>>baddress;
cout<<" 输入电话:";
cin>>bphone;
addworker(workerid,bname,bsex,bage,bedu,bprice,baddress,bphone);
cout<<endl<<" "<<"输入1继续添加,输入2返回菜单:";
cin>>choice;

}
if(choice==2)
{
//system("cls");
menu();
cout<<" 请选择您需要的操作:";
cin>>choice;
}
if(choice!=1&&choice!=2)
{
cout<<endl<<" <您的输入有误>"<<'/a'<<endl;
cout<<endl<<" 返回菜单请输入1 :";
cin>>choice;
}
}
break;
case 2:
cout<< " 输入工号:";
cin>>workerid;
b=query(workerid);
if(b==NULL)
{
cout<< " 该职工不存在" << endl;
break;
}
cout<<"请输入要更改的:1姓名 2性别 3学历 4住址 0退出";
cin>>choice2;
switch(choice2)
{
case 1:
cout<< " 输入新的姓名:"; //修改职工名
cin>> bname;
b->setname(bname);
break;
case 2:
cout<<"输入新的性别:"; //修改职工性别
cin>>bsex;
b->setsex(bsex);
break;
case 3:
cout<<"输入新的学历:"; //修改职工的学历
cin>>bedu;
b->setedu(bedu);
break;
case 4:
cout<<"输入新的地址:"; //修改职工的工资
cin>>baddress;
b->setaddress(baddress);
break;
}
break;
case 3:
cout<< " 输入工号:";
cin>>workerid;
b=query(workerid);
if(b==NULL)
{
cout<< " 该职工不存在" << endl;
break;
}
b->delworker();
break;
case 4:
cout<<" 输入工号:"; //按工号查询
cin>>workerid;
cout<<setw(10)<<"工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<setw(10)<<"学历"<<setw(10)<<"工资"<<setw(10)<<"住址"<<setw(10)<<"电话"<<endl;
b=query(workerid);
if(b==NULL)
{
cout<< " 该职工不存在" << endl;
break;
}
b->disp();
break;
case 5:
disp();
break;
case 6:
clear();
break;
case 7:
help();
}
}
cout<<"退出职工管理"<<endl<<endl;
};

void main()
{
int choice;
BDatabase WorkerDB;
Worker *b;

cout<<" ************************************************************** "<<endl;
cout<<endl;
cout<<" ★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<<endl;
cout<<" ☆ ☆"<<endl;
cout<<" ☆ ☆"<<endl;
cout<<" ★ ★☆欢迎使用职工管理系统☆★ ★"<<endl;
cout<<" ☆ ☆"<<endl;
cout<<" ☆ ☆"<<endl;
cout<<" ★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<<endl;
//cout<<endl;
cout<<endl;
cout<<" *************************************************************** "<<endl;
//cout<< "输入0进入主菜单";
//cin>>choice;
/*if(choice==0)
menu();
else
cout<<endl<<"---输入有误---"<<'/a'<<endl;
cout<<" 请重新输入:";
//cin>>choice;*/

WorkerDB.workerdata();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: