📄 员工管理系统.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 + -