职工管理系统(C++链表,向量容器,MySQL三种方法)

链表:


#include <iostream>
#include <string>
#include <fstream>


using namespace std;


class Worker //职工基本信息类
{
private:
int id; //职工号
int age;//年龄
int postcode;//邮编
int salary;//工资


string name;//姓名
string sex;//性别
string department;//部门


public:
void setid(int id);
void setage(int age);
void setpostcode(int postcode);
void setsalary(int salary);


void setname(string name);
void setsex(string sex);
void setdepartment(string department);


int getid();
int getage();
int getpostcode();
int getsalary();


string getname();
string getsex();
string getdepartment();

};


//赋值操作
void Worker :: setid(int id)
{
this->id = id;
}


void Worker :: setage(int age)
{
this->age = age;
}


void Worker :: setpostcode(int postcode)
{
this->postcode = postcode;
}


void Worker :: setsalary(int salary)
{
this->salary = salary;
}


void Worker :: setname(string name)
{
this->name = name;
}


void Worker :: setsex(string sex)
{
this->sex = sex;
}


void Worker :: setdepartment(string department)
{
this->department = department;
}


//取值操作
int Worker :: getid()
{
return id;
}


int Worker :: getage()
{
return age;
}


int Worker :: getpostcode()
{
return postcode;
}


int Worker :: getsalary()
{
return salary;
}


string Worker :: getname()
{
return name;
}


string Worker :: getsex()
{
return sex;
}


string Worker :: getdepartment()
{
return department;
}




class WorkerList //职工系统功能实现类
{
private:
Worker worker; 
class WorkerList *next; //定义指针域
class WorkerList *head; //定义头结点


public:


void create(); //创建头结点


void add();//职工信息录入


void sal_sort();//职工信息排序(根据月薪排序)


void search();//职工信息查找


void dele();//职工信息删除     


void change();//职工信息修改


void save();//职工信息以文件形式保存


void visitworker();//显示职工信息在屏幕上


};


typedef class WorkerList Node;
typedef class WorkerList *w_Node; //定义一个指向WorkerList类的指针


void WorkerList :: create()
{
head = new Node[sizeof(Node)];


if (head == NULL)
{
cout << "初始化失败" << endl;
exit(1);
}


head -> next = NULL;
}


void WorkerList :: add() //增加
{
w_Node w_new = new Node[sizeof(Node)];


if (w_new == NULL)
{
cout << "申请结点失败" << endl;
exit(2);
}


int id; //职工号
int age;//年龄
int postcode;//邮编
int salary;//工资


string name;//姓名
string sex;//性别
string department;//部门


cout <<"请输入职工的职工号 :"<< endl;
cin >> id;
w_new -> worker.setid(id);


cout <<"请输入职工的年龄 :"<< endl;
cin >> age;
w_new -> worker.setage(age);


cout <<"请输入职工的邮编 :"<< endl;
cin >> postcode;
w_new -> worker.setpostcode(postcode);


cout <<"请输入职工的工资 :"<< endl;
cin >> salary;
w_new -> worker.setsalary(salary);


cout <<"请输入职工的姓名 :"<< endl;
cin >> name;
w_new -> worker.setname(name);


cout <<"请输入职工的性别 :"<< endl;
cin >> sex;
w_new -> worker.setsex(sex);


cout <<"请输入职工的部门 :"<< endl;
cin >> department;
w_new -> worker.setdepartment(department);


//使用头插法


if (head -> next == NULL)
{
head -> next = w_new;
w_new -> next = NULL;
}
else
{
w_new -> next = head -> next;
head -> next = w_new;
}
}


void WorkerList :: dele() //删除
{
int w_id;
int flag = 0;


cout << "请输入你要删除的职工id :" << endl;


cin >> w_id; //输入你要删除的职工id;


    w_Node temp = head;


while (temp -> next != NULL)
{
//temp -> next -> worker.getid();


if (w_id == temp -> next -> worker.getid())
{
w_Node tmp = temp -> next;
temp -> next = temp -> next -> next;
flag = 1;
delete[] tmp;
}
else
{
temp = temp -> next;
}
}


if (flag == 0)
{
cout << "不存在此职工号,请重新输入id" << endl;
}
}


void WorkerList :: search() //查找
{
//int id; //职工号
//int age;//年龄
//int postcode;//邮编
//int salary;//工资


//string name;//姓名
//string sex;//性别
//string department;//部门


string w_name; //定义要查询的名字
string w_department; //定义要查询的部门


int flag = 0;
int num; //功能选项


cout << "**   1.通过名字查询   **" << endl;
cout << "**   2.通过部门查询   **" << endl;


do 
{
cout <<"********************************"<< endl;
cout <<"请输入你的选择: " << endl;
cin >> num;


} while (num < 1 || num > 2 );


w_Node temp = head;


switch(num)
{
case 1:
{
cout << "请输入名字 : " << endl;
cin >> w_name;


while (temp -> next != NULL)
{
if (temp -> next -> worker.getname() == w_name)
{
temp -> next -> worker.getid();
temp -> next -> worker.getage();
temp -> next -> worker.getpostcode();
temp -> next -> worker.getsalary();
temp -> next -> worker.getname();
temp -> next -> worker.getsex();
temp -> next -> worker.getdepartment();


cout <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl; 
cout <<temp -> next -> worker.getid()<<"\t"<<temp -> next -> worker.getage()<<"\t"<<temp -> next -> worker.getpostcode()<<"\t"<<temp -> next -> worker.getsalary()<<"\t"<<temp -> next -> worker.getname()<<"\t"<<temp -> next -> worker.getsex()<<"\t"<<temp -> next -> worker.getdepartment()<< endl;


flag++;
}
temp = temp -> next;
}


if (flag == 0)
{
cout << "没有此职工名字,请重新输入" << endl;
}
break;
}


case 2:
{
cout << "请输入部门 : " << endl;
cin >> w_department;


while (temp -> next != NULL)
{
if (temp -> next -> worker.getdepartment() == w_department)
{
temp -> next -> worker.getid();
temp -> next -> worker.getage();
temp -> next -> worker.getpostcode();
temp -> next -> worker.getsalary();
temp -> next -> worker.getname();
temp -> next -> worker.getsex();
temp -> next -> worker.getdepartment();


cout <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl; 
cout <<temp -> next -> worker.getid()<<"\t"<<temp -> next -> worker.getage()<<"\t"<<temp -> next -> worker.getpostcode()<<"\t"<<temp -> next -> worker.getsalary()<<"\t"<<temp -> next -> worker.getname()<<"\t"<<temp -> next -> worker.getsex()<<"\t"<<temp -> next -> worker.getdepartment()<< endl;


flag++;
}
temp = temp -> next;
}


if (flag == 0)
{
cout << "没有此职工部门,请重新输入" << endl;
}
break;
}
  
}


}


void WorkerList :: change() //根据ID修改职工信息
{
/*int id;*/


int w_id; //职工号
int w_age;//年龄
int w_postcode;//邮编
int w_salary;//工资


string w_name;//姓名
string w_sex;//性别
string w_department;//部门


int num;
int flag = 0;


cout <<"请输入职工号:"<<endl;
cin >> w_id;


w_Node temp = head -> next;


while (temp != NULL)
{
if (temp -> worker.getid() == w_id)
{
flag = 1;


cout <<"--------------------------"<< endl;
cout <<"|       1.修改年龄       |"<< endl;
cout <<"|       2.修改邮编       |"<< endl; 
cout <<"|       3.修改工资       |"<< endl;
cout <<"|       4.修改姓名       |"<< endl;
cout &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值