#include<iostream>
#include<string>
#include<cstring>
#include<fstream>
#include <stdlib.h>
#include <stdio.h>
#define N 100 //最多录入的职工人数
using namespace std;
string p; //选择是否返回主菜单的变量
//定义职工信息类
class Amployee
{
public:
Amployee(){} //构造函数
void show(); //职工信息显示
~Amployee(){} //析构函数
friend class Amployee_List; //友元
private:
int ID; //定义职工号
char Name[20]; //定义职工姓名
string Sex; //定义职工性别
int Age; //定义职工年龄
string Education; //定义职工学历
float Wage; //定义职工工资
char Address[30]; //定义职工住址
int Telephone; //定义职工电话
};
//定义数组、函数类
class Amployee_List
{
private:
Amployee Amplo[N]; //把职工定义成数组形式
int NUM; //用来计录职工数目
int n; //用来暂时记录当前操作第几个职工
public:
void add(); //录入职工信息
void find(); //查询职工信息
void deleate(); //删除职工信息
void change(); //修改职工信息
void save_file(); //以文件形式保存职工信息
void Show_Amployee(); //把职工信息显示在屏幕上
Amployee_List(){
NUM=0;
n=0;
}
};
//系统功能菜单
void menu()
{
system ("color 30");
cout<<"\n";
cout<<" 欢迎使用公司职工信息管理软件\n"<<endl;
cout<<" ----------------------------"<<endl;
cout<<" -------1.录入职工信息-------"<<endl;
cout<<" -------2.修改职工信息-------"<<endl;
cout<<" -------3.删除职工信息-------"<<endl;
cout<<" -------4.查询职工信息-------"<<endl;
cout<<" -------5.浏览职工信息-------"<<endl;
cout<<" -------6.保存职工信息-------"<<endl;
cout<<" ---------7.退出系统---------"<<endl;
cout<<" ----------------------------"<<endl;
}
//主菜单
void main_menu()
{
Amployee_List s;
int a;
while(1)
{
menu();
cout<<"请选择功能编号1~7"<<endl;
cin>>a;
if(a<1||a>7)
{
cout<<"输入错误,请选择有效指令1~7!"<<endl;
cin>>a;
}
switch(a)
{
case 1:s.add();break;
case 2:s.change();break;
case 3:s.deleate();break;
case 4:s.find();break;
case 5:s.Show_Amployee();break;
case 6:s.save_file();break;
case 7:system ("color 8F");cout<<"谢谢使用公司职工信息管理软件!"<<endl;
exit(0);
default:
break;
}
cout<<"是否返回主菜单? Y/N"<<endl;
cin>>p;
if(p=="n"||p=="N")
{
cout<<"系统退出!!"<<endl;
exit(0);
}
}
}
//录入职工信息
void Amployee_List::add()
{
system ("color B0");
int id;
cout<<"请输入职工信息:"<<endl;
cout<<"请输入职工号:";
cin>>id;
for(int i=0;i<NUM;i++)
while(id==Amplo[i].ID) //判断是否有重复的职工号
{
cout<<"此职工号已存在,请重新输入:"<<endl;
cout<<"请输入职工号:";
cin>>id;
}
Amplo[NUM].ID=id;
cout<<"请输入职工姓名:";cin>>Amplo[NUM].Name;
cout<<"请输入职工性别:";cin>>Amplo[NUM].Sex;
cout<<"请输入职工年龄:";cin>>Amplo[NUM].Age;
cout<<"请输入职工学历:";cin>>Amplo[NUM].Education;
cout<<"请输入职工工资:";cin>>Amplo[NUM].Wage;
cout<<"请输入职工地址:";cin>>Amplo[NUM].Address;
cout<<"请输入职工电话:";cin>>Amplo[NUM].Telephone;
++NUM;
n=NUM;
}
//修改职工信息
void Amployee_List::change()
{
system ("color EC");
if(NUM<=0)
{
cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
menu();
}
cout<<"请输入需要修改信息职工的职工号:"<<endl;
int id;
cin>>id;
int j,k,f=1;
while(f)
{
for(j=0;j<n;j++)
{
if(id==Amplo[j].ID)
{
f=0;
k=j;
break;
}
}
if(f)
{
cout<<"此职工信息不存在,请重新输入:"<<endl;
j=0;
cin>>id;
}
}
cout<<"选择修改的职工原信息为:"<<endl;
cout<<"\n";
cout<<"职工号:"<<Amplo[k].ID<<endl;
cout<<"姓名:"<<Amplo[k].Name<<endl;
cout<<"年龄:"<<Amplo[k].Age<<endl;
cout<<"性别:"<<Amplo[k].Sex<<endl;
cout<<"学历:"<<Amplo[k].Education<<endl;
cout<<"工资:"<<Amplo[k].Wage<<endl;
cout<<"地址:"<<Amplo[k].Address<<endl;
cout<<"电话:"<<Amplo[k].Telephone<<endl;
cout<<endl;
cout<<"***********************"<<endl;
cout<<"1.修改职工号"<<endl;
cout<<"2.修改职工姓名"<<endl;
cout<<"3.修改职工性别"<<endl;
cout<<"4.修改职工年龄"<<endl;
cout<<"5.修改职工学历"<<endl;
cout<<"6.修改职工工资"<<endl;
cout<<"7.修改职工地址"<<endl;
cout<<"8.修改职工电话"<<endl;
cout<<"9.返回主菜单"<<endl;
cout<<"**********************"<<endl;
cout<<endl;
cout<<"请选择功能前的编号1~9"<<endl;
int b;
cin>>b;
while(b<1||b>9)
{
cout<<"输入有误,请重新输入:"<<endl;
cin>>b;
}
switch(b)
{
case 1:{
cout<<"请重新输入职工号:";
cin>>Amplo[k].ID;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 2:{
cout<<"请重新输入职工姓名:";
cin>>Amplo[k].Name;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 3:{
cout<<"请重新输入职工性别:";
cin>>Amplo[k].Sex;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 4:{
cout<<"请重新输入职工年龄:";
cin>>Amplo[k].Age;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 5:{
cout<<"请重新输入职工学历:";
cin>>Amplo[k].Education;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 6:{
cout<<"请重新输入职工工资:";
cin>>Amplo[k].Wage;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 7:{
cout<<"请重新输入工地址:";
cin>>Amplo[k].Address;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 8:{
cout<<"请重新输入职工电话:";
cin>>Amplo[k].Telephone;
cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
}
case 9:menu();
default:break;
}
}
//删除职工信息函数
void Amployee_List::deleate()
{
system ("color DF");
int id;
if(NUM<=0)
{
cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
menu();
}
cout<<"请输入需要删除信息职工的职工号:"<<endl;
cin>>id;
int j,k,f=1;
while(f)
{
for(j=0;j<n;j++)
{
if(id==Amplo[j].ID)
{
f=0;
k=j;
break;
}
}
if(f)
{
cout<<"无此员工信息,请重新输入:"<<endl;
j=0;
cin>>id;
}
}
cout<<"将要删除的职工信息为:"<<endl;
cout<<"\n";
cout<<"职工号:"<<Amplo[k].ID<<endl;
cout<<"职工姓名:"<<Amplo[k].Name<<endl;
cout<<"职工性别:"<<Amplo[k].Sex<<endl;
cout<<"职工年龄:"<<Amplo[k].Age<<endl;
cout<<"职工学历:"<<Amplo[k].Education<<endl;
cout<<"职工工资:"<<Amplo[k].Wage<<endl;
cout<<"职工地址:"<<Amplo[k].Address<<endl;
cout<<"职工电话:"<<Amplo[k].Telephone<<endl;
cout<<endl;
cout<<"确认删除请输入Y,返回主菜单请输入N "<<endl;
cin>>p;
while(1)
{
if(p=="y"||p=="Y")
{
cout<<"员工信息已删除!"<<endl;
for(int i=0;i<n;i++)
if(Amplo[i].ID==id)
for(j=i;j<=n-1;j++)
Amplo[j]=Amplo[j+1];
n--;
break;
}
else if(p=="n"||p=="N")
{
menu();
break;
}
else
{
cout<<"输入有误,请重新输入:Y或者N:";
cin>>p;
}
}
}
//查询职工信息函数
void Amployee_List::find()
{
system ("color F2");
int c;
if(NUM<=0)
{
cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
menu();
}
else
cout<<"-----------------"<<endl;
cout<<"请选择查询方式:"<<endl;
cout<<"1.按职工号查询"<<endl;
cout<<"2.按职工姓名查询"<<endl;
cout<<"3.按职工学历查询"<<endl;
cout<<"4.返回主菜单"<<endl;
cout<<"-----------------"<<endl;
cout<<endl;
cout<<"请选择查询方式:1~4"<<endl;
cin>>c;
while(c<1||c>4)
{
cout<<"输入有误,请重新输入:"<<endl;
cin>>c;
}
if(c==1)
{
int id;
cout<<"请输入要查询的职工的工号:"<<endl;
cin>>id;
int j1,k1,f1=1;
while(f1)
{
for(j1=0;j1<n;j1++)
{
if(id==Amplo[j1].ID)
{
f1=0;
k1=j1;
cout<<"查询的职工信息如下:"<<endl;
cout<<"职工号:"<<Amplo[k1].ID<<endl;
cout<<"职工姓名:"<<Amplo[k1].Name<<endl;
cout<<"职工性别:"<<Amplo[k1].Sex<<endl;
cout<<"职工年龄:"<<Amplo[k1].Age<<endl;
cout<<"职工学历:"<<Amplo[k1].Education<<endl;
cout<<"职工工资:"<<Amplo[k1].Wage<<endl;
cout<<"职工地址:"<<Amplo[k1].Address<<endl;
cout<<"职工电话:"<<Amplo[k1].Telephone<<endl;
break;
}
}
if(f1)
{
f1=0;
cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
break;
}
}
}
else if(c==2)
{
char name[20];
cout<<"请输入要查询的职工的姓名:"<<endl;
cin>>name;
int j2,k2,f2=1;
while(f2)
{
for(j2=0;j2<n;j2++)
{
if(name==Amplo[j2].Name)
{
f2=0;
k2=j2;
cout<<"查询的职工信息如下:"<<endl;
cout<<"职工号:"<<Amplo[k2].ID<<endl;
cout<<"职工姓名:"<<Amplo[k2].Name<<endl;
cout<<"职工性别:"<<Amplo[k2].Sex<<endl;
cout<<"职工年龄:"<<Amplo[k2].Age<<endl;
cout<<"职工学历:"<<Amplo[k2].Education<<endl;
cout<<"职工工资:"<<Amplo[k2].Wage<<endl;
cout<<"职工地址:"<<Amplo[k2].Address<<endl;
cout<<"职工电话:"<<Amplo[k2].Telephone<<endl;
break;
}
}
if(f2)
{
f2=0;
cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
break;
}
}
}
else if(c==3)
{
string edu;
cout<<"请输入要查询的职工的学历:"<<endl;
cin>>edu;
int j3,k3,f3=1;
while(f3)
{
for(j3=0;j3<n;j3++)
{
if(edu==Amplo[j3].Education)
{
f3=0;
k3=j3;
cout<<"查询的职工信息如下:"<<endl;
cout<<"职工号:"<<Amplo[k3].ID<<endl;
cout<<"职工姓名:"<<Amplo[k3].Name<<endl;
cout<<"职工性别:"<<Amplo[k3].Sex<<endl;
cout<<"职工年龄:"<<Amplo[k3].Age<<endl;
cout<<"职工学历:"<<Amplo[k3].Education<<endl;
cout<<"职工工资:"<<Amplo[k3].Wage<<endl;
cout<<"职工地址:"<<Amplo[k3].Address<<endl;
cout<<"职工电话:"<<Amplo[k3].Telephone<<endl;
break;
}
}
if(f3)
{
f3=0;
cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
break;
}
}
}
else if(c=4)
menu();
}
//显示职工信息函数实现
void Amployee_List::Show_Amployee()
{
system ("color F0");
if(NUM<=0)
{
cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
menu();
}
else
cout<<"已保存的职工信息如下:"<<endl;
for(int i=0;i<n;i++)
{
cout<<"------------------"<<endl;
cout<<"职工号:"<<Amplo[i].ID<<endl;
cout<<"职工姓名:"<<Amplo[i].Name<<endl;
cout<<"职工性别:"<<Amplo[i].Sex<<endl;
cout<<"职工学历:"<<Amplo[i].Education<<endl;
cout<<"职工年龄:"<<Amplo[i].Age<<endl;
cout<<"职工工资:"<<Amplo[i].Wage<<endl;
cout<<"职工地址:"<<Amplo[i].Address<<endl;
cout<<"职工电话:"<<Amplo[i].Telephone<<endl;
cout<<"------------------"<<endl;
}
}
//把职工信息以文件的形式保存函数
void Amployee_List::save_file()
{
system ("color 0F");
if(NUM<=0)
{
cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
menu();
}
else
{
ofstream fout;
fout.open("职工信息.txt",ios::out);
cout<<"数据保存成功!"<<endl;
fout<<"已保存职工信息如下:"<<endl;
for(int i=0;i<n;i++)
{
fout<<"------------------"<<endl;
fout<<"职工号:"<<Amplo[i].ID<<endl;
fout<<"职工姓名:"<<Amplo[i].Name<<endl;
fout<<"职工性别:"<<Amplo[i].Sex<<endl;
fout<<"职工年龄:"<<Amplo[i].Age<<endl;
fout<<"职工学历:"<<Amplo[i].Education<<endl;
fout<<"职工工资:"<<Amplo[i].Wage<<endl;
fout<<"职工地址:"<<Amplo[i].Address<<endl;
fout<<"职工电话:"<<Amplo[i].Telephone<<endl;
fout<<"------------------"<<endl;
}
cout<<"系统返回主菜单:"<<endl;
menu();
fout.close();
}
}
//主函数
int main()
{
main_menu();
return 0;
}
*************************************转载注明出处***********************************************