?? shujuku.cpp
字號:
{
if(Enum[i] == number)
{
cout<<"**********************************"<<endl;
cout<<"員工編號 >"<<Enum[i]<<endl;
cout<<"姓 名 >"<<Ename[i]<<endl;
cout<<"性 別 >";
if(Esex[i]=='F') cout<<"女 "<<endl;
else if(Esex[i]=='M') cout<<"男 "<<endl;
cout<<"年 齡 >"<<Eage[i]<<"歲"<<endl;
cout<<"婚姻情況 >";
if(Emarriage[i]=='Y') cout<<"已婚 "<<endl;
else if(Emarriage[i]=='N') cout<<"未婚 "<<endl;
cout<<"學 歷 >";
switch (Edegree[i])
{
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;
}
cout<<"所在部門 >";
switch (Edepart[i])
{
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;
}
cout<<"所任職務 >";
switch (Eposition[i])
{
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;
}
cout<<"工作時長 >"<<Eworktime[i]<<"小時"<<endl;
cout<<"額定工資 >"<<Epay[i]<<"元"<<endl;
cout<<"**********************************"<<endl;
}
else continue;
}
}
void Employee::RefreshInfo() //修改員工信息的函數
{
int cNum = 1000;
DBOperate dbo;
dbo.ReadOut();
void Employee::shownum(long number);
cout<<"請輸入您要修改的員工編號: >";
cin>>cNum;
int MN;
MN = Employee::MaxNum();
for(int i=0;i<MN;i++) //遍歷數據文件,查找要修改的員工數據
{
if(Enum[i] == cNum)
{
Employee::shownum(cNum);
cout<<"請輸入該員工的新信息: "<<endl;
cout<<"新員工姓名: "; //錄入員工的新的數據,員工號保持不變
cin>>Employee::Employeename;
Ename[i] = Employee::Employeename;
cout<<"新員工性別: [F為女性,M為男性]: ";
cin>>Employee::Employeesex;
Esex[i] = Employee::Employeesex;
cout<<"新員工年齡: ";
cin>>Employee::Employeeage;
Eage[i] = Employee::Employeeage;
cout<<"新員工婚姻狀況(Y為已婚,N為未婚): ";
cin>>Employee::Employeemarriage;
Emarriage[i] = 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;
}
Edegree[i] = 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;
}
Edepart[i] = 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;
}
Eposition[i] = Employee::Employeeposition;
cout<<"新員工的工作時 (不需要輸入單位): ";
cin>>Employee::Employeeworktime;
Eworktime[i] = Employee::Employeeworktime;
Epay[i] = Employee::Pay(Employee::Employeeposition);
break;
}
}
dbo.WriteIn(0);
}
void Employee::DeleteInfo() //刪除員工數據的函數
{ char tmp;
int cNum = 1000;
DBOperate dbo;
dbo.ReadOut();
void Employee::shownum(long number);
cout<<"請輸入您要修改的員工編號>: ";
cin>>cNum;
int MN;
MN = Employee::MaxNum();
for(int i=0;i<MN;i++) //遍歷數據文件,查找要刪除的員工
{
if(Enum[i] == cNum)
Employee::shownum(cNum);
}
cout<<"確認要刪除該員工信息?(Y為確認 N為放棄): ";
cin>>tmp;
if(tmp=='Y')
{
if(i==MN-1)
dbo.WriteIn(-1);
else
{
for(int j=i;j<MN-1;j++)
{ Enum[j] = Enum[j+1]; }
dbo.WriteIn(-1);
}
cout<<" 刪除操作成功 ! "<<endl;
}
}
float Employee::Pay(int Employeeposition) //根據員工職位計算工資的函數
{
float tmpPay;
tmpPay = Employee::EmployeeBasePay + Employee::Employeeposition * Employee::EmployeeBasePay;
return tmpPay;
}
void DBOperate::WriteIn(int iflag) //數據操作函數 寫入
{
DBOperate::RefreshMaxNum(iflag);
ofstream myf("Employee.txt");
Employee e;
int MN;
MN = e.MaxNum();
for(int i=0;i<MN;i++)
{
myf<<Enum[i]<<'\n'<<Ename[i]<<'\n'<<Esex[i]<<'\n'<<Eage[i]<<'\n'<<Emarriage[i]<<'\n'<<Edegree[i]<<'\n'<<Edepart[i]<<'\n'<<Eposition[i]<<'\n'<<Eworktime[i]<<'\n'<<Epay[i]<<'\n';
}
myf.close();
return;
}
void DBOperate::ReadOut() //數據操作函數 讀出
{
ifstream myf("Employee.txt");
Employee e;
int MN;
MN = e.MaxNum();
for(int i=0 ;i<MN;i++)
{
myf>>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage
>>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employeepay;
Enum[i] = DBOperate::Employeenum;
Ename[i] = DBOperate::Employeename;
Esex[i] = DBOperate::Employeesex;
Eage[i] = DBOperate::Employeeage;
Emarriage[i] = DBOperate::Employeemarriage;
Edegree[i] = DBOperate::Employeedegree;
Edepart[i] = DBOperate::Employeedepart;
Eposition[i] = DBOperate::Employeeposition;
Eworktime[i] = DBOperate::Employeeworktime;
Epay[i] = DBOperate::Employeepay;
}
myf.close();
}
void DBOperate::RefreshMaxNum(int iflag) //更新系統中員工計數文件的函數
{
int MaxNum = 0;
ifstream myif("EmployeeMaxNum.txt");
myif>>MaxNum;
myif.close();
MaxNum = MaxNum+iflag;
ofstream myof("EmployeeMaxNum.txt");
myof<<MaxNum;
myof.close();
}
int main() //主函數
{
system("color 06f"); //設置當前窗口的背景色和前景色 0 = 黑色 8 = 灰色
// 1 = 藍色 9 = 淡藍色
// 2 = 綠色 A = 淡綠色
// 3 = 淺綠色 B = 淡淺綠色
// 4 = 紅色 C = 淡紅色
// 5 = 紫色 D = 淡紫色
// 6 = 黃色 E = 淡黃色
// 7 = 白色 F = 亮白色
int select = 0;
while(select!=5)
{
cout<<" ╭————————————《主菜單》———————————╮"<<endl;
cout<<" ∣ 請選擇功能 ∣"<<endl;
cout<<" ├————————————————————————————┤"<<endl;
cout<<" ∣ 1.新建并輸入職工數據 ∣"<<endl;
cout<<" ∣ 2.按條件輸出職工數據 ∣"<<endl;
cout<<" ∣ 3.修改指定職工的數據 ∣"<<endl;
cout<<" ∣ 4.刪除數據 ∣"<<endl;
cout<<" ∣ 5.退出 ∣"<<endl;
cout<<" ╰————————————————————————————╯"<<endl;
cout<<" ——————————————————————————————"<<endl;
cout<<" 請選擇您要服務的類別: " ;
cin>>select;
Employee e;
DBOperate dbo;
switch(select)
{
case 1:
e.NewInfo(); break;
case 2:
dbo.ReadOut();
e.ShowInfo(); break;
case 3:
e.RefreshInfo(); break;
case 4:
e.DeleteInfo(); break;
case 5: break;
default:
cout<<"命令錯誤!"<<endl;
}
if(select == 5)
break;
}
exit(1);
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -