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

📄 员工管理系统.txt

📁 简单的员工管理系统
💻 TXT
字号:
#include <string> 
#include <iostream> 
#include <stdio.h> 
#include <stdlib.h> 
using namespace std; 


struct Employee 
{  
    string m_Code; 
    string m_Name; 
    int m_Year,m_Month,m_Day; 
    string m_Sex; 
    string m_Department; 
    int m_Wage;  
    struct Employee* Next; 
}; 


typedef struct Employee Node; 
typedef Node* Link; 

     //-------函数声明------------- 
void face();
Link Create(Link L); 
Link insert(Link L);
void update();
Link Del(Link L);  
Search(Link L); 
Link Search_(Link L); 
void Display_List(Link L); 
void Display_Node(Link L); 



    
Link Create(Link L) //创建一个带头节点的空链表。
{     
L=(Node*)new Node;
L->Next=NULL;  
L->m_Code=""; 
L->m_Name=""; 
L->m_Year=0; 
L->m_Month=0;
L->m_Day=0;
L->m_Sex=""; 
L->m_Department=""; 
L->m_Wage=0; 
return L; 
} 


Link insert(Link L) 
{     
Node * p;     // 声明一个新节点。 
char again; 
string code,name,sex,post,department; 
int year,month,day; 
int wage; 
do 
{ 
   p=(Node*)new Node;  
   cout<<"请输入职工工号:"; 
   cin>>code; 
   cout<<"请输入职工姓名:"; 
   cin>>name; 
   cout<<"请输入职工出生年份:"; 
   cin>>year>>month>>day; 
   cout<<"请输入职工性别:"; 
   cin>>sex; 
   cout<<"请输入职工部门:"; 
   cin>>department; 
   cout<<"请输入职工工资:"; 
   cin>>wage;
   cout<<endl; 
   p->m_Code=code; 
   p->m_Name=name; 
   p->m_Year=year; 
   p->m_Month=month;
   p->m_Day=day;
   p->m_Sex=sex; 
   p->m_Department=department; 
   p->m_Wage=wage; 
   p->Next=L->Next; 
   L->Next=p; 
   cout<<"数据添加成功!是否继续添加?(Y/N)"<<endl; 
   cin>>again; 
}
while(again=='Y'||again=='y'); 
return L; 
} 

Link update(Link L) 
{    // 修改单一个节点。 
Node * ptr; 
ptr=Search_(L); 
string code,name,sex,post,department; 
int year,month,day; 
int wage; 
if(ptr) 
{ 
   cout<<"-------你现在可以修改此职工的信息了!-------"<<endl; 
   cout<<"请输入职工代码:"; 
   cin>>code; 
   cout<<"请输入职工姓名:"; 
   cin>>name; 
   cout<<"请输入职工出生年份:"; 
   cin>>year>>month>>day; 
   cout<<"请输入职工性别:"; 
   cin>>sex; 
   cout<<"请输入职工部门:"; 
   cin>>department; 
   cout<<"请输入职工工资:"; 
   cin>>wage; 
   cout<<endl; 
   ptr->m_Code=code;   //因ptr是前趋节点,所以要用ptr->Next; 
   ptr->m_Name=name; 
   ptr->m_Year=year; 
   ptr->m_Month=month; 
   ptr->m_Day=day; 
   ptr->m_Sex=sex; 
   ptr->m_Department=department; 
   ptr->m_Wage=wage; 
     cout<<"恭喜你,修改信息成功!"<<endl;
}
else
cout<<"没找到此职工的记录,无法修改。"<<endl; 
return L; 
} 

Link Del(Link L) 
{ 
Node * ptr, * s; 
s=Search_(L); 
ptr=s->Next; 
  if(ptr) 
  { 
   s->Next=ptr->Next; 
   delete ptr;     //删除此节点。 
  }  
  cout<<"删除信息成功!"<<endl; 
  return L; 
} 

Search(Link L) 
{     
Node * s;
int choice; 
string code; 
string name; 
s=L->Next; 
cout<<"\t\t-1- 按员工工号查找";
cout<<"\t\t-2- 按员工姓名查找\n";
cout<<"请选择相应操作菜单项:";
cin>>choice;
while(1)
{
   if(choice==1)
   {
     cout<<"请输入工号:"; 
     cin>>code;
     while(s) 
	 { 
        if(s->m_Code==code)
		{ 
           cout<<"\t--------------查询结果--------------\n"<<endl;
           cout<<"工号  "<<"  姓名  "<<"  出生年份  "<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"工资"<<endl;
           Display_Node(s);     
           return 1; 
		} 
         s=s->Next;    
	 } 
     cout<<"无此职工的信息!"<<endl; 
     return 0; 
   } 
   else if(choice==2)
   { 
      cout<<"请输入姓名:"; 
      cin>>name; 
      while(s) 
	  { 
         if(s->m_Name==name)
		 {
 	        cout<<"\t---------------查询结果--------------\n"<<endl;
            cout<<"工号  "<<"  姓名  "<<"  出生年份  "<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"工资"<<endl;   
            Display_Node(s);     
            return 1; 
		 } 
         s=s->Next;  
	  } 
      cout<<"无此职工的信息!"<<endl; 
      return 0; 
   } 
   else
   {
      cout<<"你的输入有误,请重新选择相应操作菜单项:";
      cin>>choice;
   }
}
}

void Display_Node(Link pNode) 
{    
	cout<<pNode->m_Code<<"\t"<<pNode->m_Name
	<<"\t"<<pNode->m_Year<<"/"<<pNode->m_Month<<"/"
    <<pNode->m_Day<<"\t"<<pNode->m_Sex<<"\t"
    <<pNode->m_Department<<"\t"<<pNode->m_Wage<<endl;    
} 

Link Search_(Link L) 
{ 
Node * s,* ptr;
string code; 
ptr=L;
s=L->Next;  
cout<<"请输入职工工号:"; 
cin>>code;
while(1)
{
  if(s->m_Code==code)
  { 
     cout<<"--------------查询结果--------------\n"<<endl;
     cout<<"工号  "<<"  姓名  "<<"  出生年份  "<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"工资"<<endl;
     while(ptr->Next) 
	 { 
        if(ptr->Next->m_Code==code) 
          Display_Node(ptr->Next);    
          return ptr; 
         ptr=ptr->Next;   //查询下一节点。 
	 } 
     return ptr->Next;
  }
  else
     cout<<"无此职工的信息!"<<endl; 
     cout<<"请输入职工工号:"; 
     cin>>code;
}
} 

void Display_List(Link L) 
{ 
Node * ptr; 
ptr=L->Next; 
cout<<"\t--------------所有员工信息--------------\n"<<endl;
cout<<"工号  "<<"  姓名  "<<"  出生年份  "<<"\t"<<"性别"<<"\t"<<"部门"<<"\t"<<"工资"<<endl;
while(ptr) 
{ 
   Display_Node(ptr); 
   ptr=ptr->Next; 
}
} 



void main() 
{                                                      
face();
}

void face()
{ 
Link L;
L=Create(L);
int choice; 
while(1) 
{
   cout<<"\n\t\t-------------------系统菜单-------------------\n"<<endl; 
   cout<<"\t\t\t1.  插入新的员工信息"<<endl;
   cout<<"\t\t\t2.  修改某个员工信息"<<endl;
   cout<<"\t\t\t3.  删除某个员工信息"<<endl;
   cout<<"\t\t\t4.  查询某个员工信息"<<endl;
   cout<<"\t\t\t5.  查看公司全体员工信息"<<endl;
   cout<<"\t\t\t0.  退出系统\n"<<endl; 
   cout<<"请选择相应操作菜单项:"<<endl; 
   cin>>choice; 
   switch(choice) 
   { 
   case 0:
    cout<<"退出系统!"<<endl;
   break;
   case 1: 
    L=insert(L); break; 
   case 2: 
    L=update(L); break; 
   case 3: 
    L=Del(L); break; 
   case 4: 
    Search(L); break; 
   case 5:  
    Display_List(L); break; 
   default: 
    cout<<"\t你的输入有误!\n"<<endl; 
    face();cin>>choice;break;
   } 
}
}

⌨️ 快捷键说明

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