⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shujuku.cpp

📁 实现一个数据可的功能
💻 CPP
📖 第 1 页 / 共 2 页
字号:



#include<iostream> 
#include<string> 
#include<fstream> 
using namespace std; 

const N=50; // 定义系统可录入的员工最大数值 

string Ename[N]; 
long Enum[N]; 
char Esex[N]; 
int Eage[N]; 
char Emarriage[N]; 
int Edepart[N]; 
int Eposition[N]; 
int Edegree[50]; 
int Eworktime[N]; 
float Epay[N]; 

class Employee 
{ 
public: 
string Employeename; 
long Employeenum; 
char Employeesex; 
int Employeeage; 
char Employeemarriage; 
int Employeedepart; 
int Employeeposition; 
int Employeedegree; 
int Employeeworktime; 
float Employeepay; 


static long EmployeeMaxNum; 
static float EmployeeBasePay; 

void NewInfo(); 
void ShowInfo(); 
void showall(); 
void showdepart(int depart); 
void showdegree(int degree); 
void showage(int min,int max); 
void shownum(long number); 
void RefreshInfo(); 
void DeleteInfo(); 
float Pay(int Employeegrade); 
static int MaxNum(); 
}; 



class DBOperate 
{ 
public: 
string Employeename; 
long Employeenum; 
char Employeesex; 
int Employeeage; 
char Employeemarriage; 
int Employeedepart; 
int Employeeposition; 
int Employeedegree; 
int Employeeworktime; 
float Employeepay; 


static long EmployeeMaxNum; 
static float EmployeeBasePay; 


void WriteIn(int iflag); 
void ReadOut(); 
void RefreshMaxNum(int iflag); //i=1 or -1 or 0 
}; 




long Employee::EmployeeMaxNum = 1000; 
float Employee::EmployeeBasePay = 1500; 


int Employee::MaxNum() //返回系统已经存储的人数 
{ 
int MN = 0; 
ifstream myf; 
myf.open("EmployeeMaxNum.txt"); 
myf>>MN; 
cout<<MN<<endl; 
myf.close(); 
return MN; 
} 



void Employee::NewInfo() //添加新成员函数 
{ 
cout<<"新员工姓名: "; 
cin>>Employee::Employeename; 

Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1; 

cout<<"新员工性别 (F为女性,M为男性): "; 
cin>>Employee::Employeesex; 

cout<<"新员工年龄: "; 
cin>>Employee::Employeeage; 

cout<<"新员工婚姻状况(Y为已婚,N为未婚): "; 
cin>>Employee::Employeemarriage; 

cout<<"新员工学历,请输入相应学历的序号: "<<endl; 
cout<<" [1:初中 2:高中 3:本科 4:硕士 5:博士] "; 
cin>>Employee::Employeedegree; 
while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&Employee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employee::Employeedegree !=5) 
{ 
cout<<"输入有误,请重新输入:"<<endl; 
cout<<" [1:初中 2:高中 3:本科 4:硕士 5:博士]"; 
cin>>Employee::Employeedegree; 
} 

cout<<"新员工所在部门,请输入相应部门的序号:"<<endl; 
cout<<" [1:董事会 2:市场部 3:公关部 4:客服中心 5:信息中心] "; 
cin>>Employee::Employeedepart; 
while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&Employee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee::Employeedepart!=5) 
{ 
cout<<"输入有误,请重新输入:"<<endl; 
cout<<" [1:董事会 2:市场部 3:公关部 4:客服中心 5:信息中心] "; 
cin>>Employee::Employeedepart; 
} 

cout<<"新员工职位, 请输入相应职位的序号: "<<endl; 
cout<<" [1:临时职员 2: 正式职员 3:主任 4:部门经理 5:董事长] "; 
cin>>Employee::Employeeposition; 
while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&&Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Employee::Employeeposition !=5) 
{ 
cout<<"输入有误,请重新输入:"<<endl; 
cout<<" [1:临时职员 2: 正式职员 3:主任 4:部门经理 5:董事长] "; 
cin>>Employee::Employeeposition; 
} 

cout<<"新员工的工作时(不需要输入单位): "; 
cin>>Employee::Employeeworktime; 


Employee::Employeepay = Employee::Pay(Employee::Employeeposition); 

DBOperate dbo; 
dbo.ReadOut(); 

int MaxNum = Employee::MaxNum(); 

Enum[MaxNum] = Employee::Employeenum; 
Ename[MaxNum] = Employee::Employeename; 
Esex[MaxNum] = Employee::Employeesex; 
Eage[MaxNum] = Employee::Employeeage; 
Emarriage[MaxNum] = Employee::Employeemarriage; 
Edegree[MaxNum] = Employee::Employeedegree; 
Edepart[MaxNum] = Employee::Employeedepart; 
Eposition[MaxNum] = Employee::Employeeposition; 
Eworktime[MaxNum] = Employee::Employeeworktime; 
Epay[MaxNum] = Employee::Employeepay; 

dbo.WriteIn(1); 
cout<<" 添加新成员成功!"<<endl; 

return; 
} 



void Employee::ShowInfo() //程序主体 数据输出函数 
{ 

int choice1,choice2,min,max; 
long searchnum; 
Employee e; 


cout<<" 请选择查询方式:"<<endl; 
cout<<"******************************************"<<endl; 
cout<<"* 输出全体职工信息--------------------- 1"<<endl; 
cout<<"* 按职工部门输出----------------------- 2"<<endl; 
cout<<"* 按职工学历输出----------------------- 3"<<endl; 
cout<<"* 按职工年龄输出----------------------- 4"<<endl; 
cout<<"* 按职工编号输出----------------------- 5"<<endl; 
cout<<"******************************************"<<endl; 
cin>>choice1; 

switch(choice1) 
{ 
case 1: showall();break; 
case 2: cout<<"请输入要查询职工的部门编号: [1:董事会 2:市场部 3:公关部 4:客服中心 5:信息中心] " ; 
cin>>choice2; 
e.showdepart(choice2);break; 
case 3: cout<<"请输入要查询职工的学历编号: [1:初中 2:高中 3:本科 4:硕士 5:博士] "; 
cin>>choice2; 
e.showdegree(choice2);break; 
case 4: cout<<"请输入要查询的年龄范围: "; 
cout<<"最小值: "; 
cin>>min; 
cout<<"最大值: "; 
cin>>max; 
e.showage(min,max);break; 
case 5: cout<<"请输入要查询的员工号: "; 
cin>>searchnum; 
e.shownum(searchnum);break; 

default: cout<<"出错啦! "<<endl;break; 

} 

} 

void Employee::showall() //全体员工输出函数 
{ int i; 
long number; 
for(i=0;i<Employee::MaxNum();i++) 
{ 
number = Enum[i]; 
shownum(number); 
} 
} 

void Employee::showdepart(int depart) //按员工所在部门输出函数 
{ 
int i; 
switch(depart) 
{ 
case 1: cout<<"董事会的成员有: >"<<endl; break; 
case 2: cout<<"市场部的成员有: >"<<endl; break; 
case 3: cout<<"公关部的成员有: >"<<endl; break; 
case 4: cout<<"客服中心成员有: >"<<endl; break; 
case 5: cout<<"信息中心成员有: >"<<endl; break; 
default: cout<<"输入错误!>"<<endl; break; 
} 
for(i=0;i<Employee::MaxNum();i++) 
{ 
if(Edepart[i] == depart) 
{ 
long number = Enum[i]; 
shownum(number); 
} else continue; 

} 
} 



void Employee::showdegree(int degree) //按员工学历输出函数 
{ 
int i; 
switch(degree) 
{ 
case 1:cout<<"初中学历的员工有:"<<endl;break; 
case 2:cout<<"高中学历的员工有:"<<endl;break; 
case 3:cout<<"本科学历的员工有:"<<endl;break; 
case 4:cout<<"硕士学位的员工有:"<<endl;break; 
case 5:cout<<"博士学位的员工有:"<<endl;break; 
} 
for(i=0;i<Employee::MaxNum();i++) 
{ 
if(Edegree[i] == degree) 
{ 
long number = Enum[i]; 
shownum(number); 
} else continue; 

} 
} 


void Employee::showage(int min,int max) //按员工年龄段输出函数 
{ 
int i; 
for(i=0;i<Employee::MaxNum();i++) 
{ 
if(Eage[i]>=min&&Eage[i]<=max) 
{ 
long number = Enum[i]; 
shownum(number); 
} 
else continue; 
} 
} 




void Employee::shownum(long number) //按员工编号输出函数 
{ 
int i; 
for(i=0;i<Employee::MaxNum();i++) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -