职工管理系统(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 <<"|       5.修改性别       |"<< endl;
cout <<"|       6.修改部门       |"<< endl;
cout <<"|       7.返回菜单       |"<< endl;
cout <<"--------------------------"<< endl;


cout << endl;


do 
{
cout << "请输入你要选择的操作(1-7) :" << endl;
cin >> num;


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


switch(num)
{
case 1:
{
cout <<"请输入你要修改的年龄:"<<endl;
cin >> w_age;
temp -> worker.setage(w_age);
break;
}
case 2:
{
cout << "请输入你要修改的邮编:"<<endl;
cin >> w_postcode;
temp->worker.setpostcode(w_postcode);
break;
}
case 3:
{
cout <<"请输入你要更改的工资:"<<endl;
cin >> w_salary;
temp -> worker.setsalary(w_salary);
break;
}
case 4:
{
cout <<"请输入你要更改的姓名:"<<endl;
cin >> w_name;
temp -> worker.setname(w_name);
break;
}
case 5:
{
cout <<"请输入你要更改的性别:"<<endl;
cin >> w_sex;
temp -> worker.setsex(w_sex);
break;
}
case 6:
{
cout <<"请输入你要更改的部门:"<<endl;
cin >> w_department;
temp -> worker.setdepartment(w_department);
break;
}
case 7:
{
return;
}
}


}
temp = temp -> next;
}
if (flag == 0)
{
cout << "不存在此职工ID,请重新输入!" << endl;
}


}






void WorkerList :: visitworker() //显示职工信息
{
//int id; //职工号
//int age;//年龄
//int postcode;//邮编
//int salary;//工资


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


w_Node tmp = head -> next;


if(tmp == NULL)
{
return ;
}


while (tmp != NULL)
{
tmp -> worker.getid();
tmp -> worker.getage();
tmp -> worker.getpostcode();
tmp -> worker.getsalary();
tmp -> worker.getname();
tmp -> worker.getsex();
tmp -> worker.getdepartment();


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


tmp = tmp->next;
}
}


void WorkerList :: save()
{
ofstream outfile("C:\\Users\\Administrator\\Desktop\\1.txt", ios::app);
if (!outfile)
{
cerr<<"open erro"<<endl;
exit(1);
}


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


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


w_Node tmp = head -> next;


while (tmp != NULL)
{
tmp -> worker.getid();
tmp -> worker.getage();
tmp -> worker.getpostcode();
tmp -> worker.getsalary();
tmp -> worker.getname();
tmp -> worker.getsex();
tmp -> worker.getdepartment();


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


tmp = tmp->next;
}
outfile.close();
}


void WorkerList :: sal_sort()
{
w_Node temp = NULL;
int small;
int max;


string small2;
string max2;

if(head -> next == NULL)
{
cout << "没有职工信息!" << endl;
exit(3);
}

while (head -> next != NULL)
{
temp = head -> next;


while (temp -> next != NULL)
{
if (temp -> worker.getsalary() > temp -> next -> worker.getsalary())
{
small = temp -> next -> worker.getid();
max = temp -> worker.getid();
temp -> next -> worker.setid(max);
temp -> worker.setid(small);


small = temp -> next -> worker.getage();
max = temp -> worker.getage();
temp -> next -> worker.setage(max);
temp -> worker.setage(small);


small = temp -> next -> worker.getpostcode();
max = temp -> worker.getpostcode();
temp -> next -> worker.setpostcode(max);
temp -> worker.setpostcode(small);


small = temp -> next -> worker.getsalary();
max = temp -> worker.getsalary();
temp -> next -> worker.setsalary(max);
temp -> worker.setsalary(small);


small2 = temp -> next -> worker.getname();
max2 = temp -> worker.getname();
temp -> next -> worker.setname(max2);
temp -> worker.setname(small2);


small2 = temp -> next -> worker.getsex();
max2 = temp -> worker.getsex();
temp -> next -> worker.setsex(max2);
temp -> worker.setsex(small2);


small2 = temp -> next -> worker.getdepartment();
max2 = temp -> worker.getdepartment();
temp -> next -> worker.setdepartment(max2);
temp -> worker.setdepartment(small2);
}
temp = temp -> next;
}
head = head -> next;

}


}




void menu();


int main()
{
Node head;//创建一个类
head.create();


int num;


while (1)
{
menu();
cout << "请输入你要选择的功能选项(0-7):" << endl;
cin >> num;


switch(num)
{
case 1:
{
head.add();
break;
}
case 2:
{
head.change();
break;
}
case 3:
{
head.dele();
break;
}
case 4:
{
head.sal_sort();
break;
}
case 5:
{
head.search();
break;
}
case 6:
{
head.visitworker();
break;
}
case 7:
{
head.save();
break;
}
case 0:
{
exit(1);
}
default:
{
cout << "输入值无效,请重新输入" << endl;
}
}
}


return 0;
}


void menu() //菜单
{
cout<<endl;


cout<<endl;


cout<<"***********************************************"<<endl;


cout<<"** **"<<endl;


cout<<"** 职工信息管理系统主菜单 **"<<endl;


cout<<"** **"<<endl;


cout<<"** 1.职工信息添加 **"<<endl;


cout<<"** 2.职工信息修改 **"<<endl;


cout<<"** 3.职工信息删除 **"<<endl;


cout<<"** 4.职工薪资排序 **"<<endl;


cout<<"** 5.职工信息查找 **"<<endl;


cout<<"** 6.职工信息显示 **"<<endl;


cout<<"** 7.职工信息保存 **"<<endl;


cout<<"** 0.退出 **"<<endl;


cout<<"** **"<<endl;


cout<<"***********************************************"<<endl;


cout<<endl;
}




向量容器:


#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>


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();


friend ostream &operator <<(ostream &out, Worker &worker);//重载输出
bool operator==(Worker &worker);//重载等于
bool operator<(Worker &worker);//重载小于
};


ostream &operator <<(ostream &out, Worker &worker)
{

out <<worker.getid()<<"\t"<<worker.getage()<<"\t"<<worker.getpostcode()<<"\t"<<worker.getsalary()<<"\t"<<worker.getname()<<"\t"<<worker.getsex()<<"\t"<<worker.getdepartment();



return out;
}


bool Worker :: operator==(Worker &worker)
{
return this->salary == worker.salary;
}


bool Worker :: operator<(Worker &worker)
{
return this->salary > worker.salary;
}


//赋值操作
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;
}


vector<Worker> s; //创建一个名为s的链表容器
Worker worker;//定义一个对象


void add() //注册职工信息
{
int id; //职工号
int age;//年龄
int postcode;//邮编
int salary;//工资


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


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


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


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


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


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


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


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


s.push_back(worker); //将信息插入容器内
}


void dele() //删除职工信息(通过id删除)
{
int w_id;
int flag = 0;
int i;


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


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


for (i = 0; i < s.size(); i++)
{
if (w_id == s[i].getid())
{
s.erase(s.begin() + i);
cout << "删除成功" << endl;
flag = 1;


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


void search()
{
string w_name; //定义要查询的名字
string w_department; //定义要查询的部门


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


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


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


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


switch(num)
{
case 1:
{
cout << "请输入名字 : " << endl;
cin >> w_name;
            cout <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl; 


for (i = 0; i < s.size(); i++)
{
if (w_name == s.at(i).getname())
{
cout << s[i] << endl;
flag = 1;
}
}

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


case 2:
{
cout << "请输入部门 : " << endl;
cin >> w_department;
            cout <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl; 


for (i = 0; i < s.size(); i++)
{
if (w_name == s.at(i).getdepartment())
{
cout << s[i] << endl;
flag = 1;
}
}

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


}
}


void change()//根据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 i;
int flag = 0;


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


for (i = 0; i < s.size(); i++)
{
if (w_id == s.at(i).getid())
{
flag = 1;


cout <<"--------------------------"<< endl;
cout <<"|       1.修改年龄       |"<< endl;
cout <<"|       2.修改邮编       |"<< endl; 
cout <<"|       3.修改工资       |"<< endl;
cout <<"|       4.修改姓名       |"<< endl;
cout <<"|       5.修改性别       |"<< endl;
cout <<"|       6.修改部门       |"<< endl;
cout <<"|       7.返回菜单       |"<< endl;
cout <<"--------------------------"<< endl;


cout << endl;


do 
{
cout << "请输入你要选择的操作(1-7) :" << endl;
cin >> num;


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


switch(num)
{
case 1:
{
cout <<"请输入你要修改的年龄:"<<endl;
cin >> w_age;
s[i].setage(w_age);
break;
}
case 2:
{
cout << "请输入你要修改的邮编:"<<endl;
cin >> w_postcode;
   s[i].setpostcode(w_postcode);
break;
}
case 3:
{
cout <<"请输入你要更改的工资:"<<endl;
cin >> w_salary;
s[i].setsalary(w_salary);
break;
}
case 4:
{
cout <<"请输入你要更改的姓名:"<<endl;
cin >> w_name;
s[i].setname(w_name);
break;
}
case 5:
{
cout <<"请输入你要更改的性别:"<<endl;
cin >> w_sex;
s[i].setsex(w_sex);
break;
}
case 6:
{
cout <<"请输入你要更改的部门:"<<endl;
cin >> w_department;
s[i].setdepartment(w_department);
break;
}
case 7:
{
return;
}
}


}


}


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


void visitworker() //显示职工信息
{
int i;
cout << endl;
cout <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl; 


for (i = 0; i < s.size(); i++)
{
cout << s[i] << endl;
}
}


void save() //写入文件
{
ofstream outfile("C:\\Users\\周键钧\\Desktop\\1.txt", ios::app);
if (!outfile)
{
cerr<<"open erro"<<endl;
exit(1);
}


int i;
outfile  <<"职工号\t"<<"年龄\t"<<"邮编\t"<<"工资\t"<<"姓名\t"<<"性别\t"<<"部门"<< endl;


    for (i = 0; i < s.size(); i++)
{  
outfile  << s[i] << endl;
}


outfile.close();
}


void sal_sort()//按工资排序
{
int i;


sort(s.begin(), s.end());


for (i = 0; i < s.size(); i++)
{
cout << s[i] << endl;
}

}


void menu() //菜单
{
cout<<endl;


cout<<endl;


cout<<"***********************************************"<<endl;


cout<<"** **"<<endl;


cout<<"** 职工信息管理系统主菜单 **"<<endl;


cout<<"** **"<<endl;


cout<<"** 1.职工信息添加 **"<<endl;


cout<<"** 2.职工信息修改 **"<<endl;


cout<<"** 3.职工信息删除 **"<<endl;


cout<<"** 4.职工薪资排序 **"<<endl;


cout<<"** 5.职工信息查找 **"<<endl;


cout<<"** 6.职工信息显示 **"<<endl;


cout<<"** 7.职工信息保存 **"<<endl;


cout<<"** 0.退出 **"<<endl;


cout<<"** **"<<endl;


cout<<"***********************************************"<<endl;


cout<<endl;
}


int main()
{
int num;


while (1)
{
menu();
cout << "请输入你要选择的功能选项(0-7):" << endl;
cin >> num;


switch(num)
{
case 1:
{
add();
break;
}
case 2:
{
change();
break;
}
case 3:
{
dele();
break;
}
case 4:
{
sal_sort();
break;
}
case 5:
{
search();
break;
}
case 6:
{
visitworker();
break;
}
case 7:
{
save();
break;
}
case 0:
{
exit(1);
}
default:
{
cout << "输入值无效,请重新输入" << endl;
}
}
}
return 0;
}





MySQL:



#include <mysql.h>
#include <iostream>
#include <string>


using namespace std;


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


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


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


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


void menu();
void add();
void dele();
void search();
void change();
void sal_sort();
void visitworker();


int main()
{
mysql = mysql_init(NULL);



if (NULL == mysql)
{
cout<<"error..."<<mysql_error(mysql)<< endl;
}


my_bool reconnect = true;
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk");


mysql_real_connect(mysql, "localhost", "root", "123456", "work", 3306, NULL, 0);



int num;


while (1)
{
menu();
cout << "请输入你要选择的功能选项(0-7):" << endl;
cin >> num;


switch(num)
{
case 1:
{
add();
break;
}
case 2:
{
change();
break;
}
case 3:
{
dele();
break;
}
case 4:
{
sal_sort();
break;
}
case 5:
{
search();
break;
}
case 6:
{
visitworker();
break;
}
case 0:
{
exit(1);
}
default:
{
cout << "输入值无效,请重新输入" << endl;
}
}
}



mysql_close(mysql);


return 0;


}


void add() //注册职工信息
{
cout <<"请输入职工的职工号 :"<< endl;
cin >> w_id;


cout <<"请输入职工的年龄 :"<< endl;
cin >> w_age;


cout <<"请输入职工的邮编 :"<< endl;
cin >> w_postcode;

cout <<"请输入职工的工资 :"<< endl;
cin >> w_salary;


cout <<"请输入职工的姓名 :"<< endl;
cin >> w_name;


cout <<"请输入职工的性别 :"<< endl;
cin >> w_sex;


cout <<"请输入职工的部门 :"<< endl;
cin >> w_department;


//int ret = mysql_query(mysql, "insert into values (id, age, postcode, salary, 'name', 'sex', 'department'");


char *insert_str = "insert into workers (id, age, postcode, salary, name, sex, department) values (%d, %d, %d, %d, '%s', '%s', '%s')";

char str[1024];
int ret;
//插入注册信息到workers表
sprintf(str, insert_str, w_id, w_age, w_postcode, w_salary, w_name.c_str(), w_sex.c_str(), w_department.c_str());


ret = mysql_query(mysql, str);
if (0 != ret)
{
   cout<<"error---"<<mysql_error(mysql)<< endl;
}
else
{
cout << "**  信息注册成功  **" << endl;
}


}


void dele()//删除职工信息(通过id删除)
{
int w_id;


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


char *dele_str = "delete from workers where id = %d";
char str[1024];
sprintf(str, dele_str, w_id);


int ret = mysql_query(mysql, str);
if (0!= ret)
{
cout<<"error+++"<<mysql_error(mysql)<< endl;
}
else
{
cout << "**  信息删除成功  **" << endl;
}

}


void search()
{
string w_name; //定义要查询的名字
string w_department; //定义要查询的部门
char str[1024];
char *search_str = "select * from work.workers where name = '%s'";
char *search_str2 = "select * from work.workers where department = '%s'";


int num; //功能选项


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


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


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


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


sprintf(str, search_str, w_name.c_str());
// cout << "22222" << endl;
MYSQL_RES *mysql_res;
MYSQL_ROW mysql_row;

int ret = mysql_query(mysql, str);
if (0!= ret)
{
cout<<"error***"<<mysql_error(mysql)<< endl;
}
else
{
   mysql_res = mysql_store_result(mysql);
//获取字段个数
int col = mysql_num_fields(mysql_res);
//cout << col << endl;


//获取返回结果的行数
int row = mysql_num_rows(mysql_res);
cout << "共查询到" << row << "条信息:" << endl;
cout << endl;
cout << "工号" << "\t" << "年龄" << "\t" << "邮编" << "\t" << "工资" << "\t" << "名字" << "\t" << "性别" << "\t" << "部门" << endl;


while((mysql_row = mysql_fetch_row(mysql_res)))
{
for (int i = 0; i < col ;i++)
{
cout << ( mysql_row[i] ? mysql_row[i] : "NULL") <<"\t";
}
cout << endl;
}


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


sprintf(str, search_str2, w_department.c_str());


MYSQL_RES *mysql_res;

MYSQL_ROW mysql_row;


int ret = mysql_query(mysql, str);
if (0!= ret)
{
cout<<"error///"<<mysql_error(mysql)<< endl;
}
else
{
  mysql_res = mysql_store_result(mysql);
//获取字段个数
int col = mysql_num_fields(mysql_res);
//cout << col << endl;


//获取返回结果的行数
int row = mysql_num_rows(mysql_res);
cout << "共查询到" << row << "条信息:" << endl;
cout << endl;
cout << "工号" << "\t" << "年龄" << "\t" << "邮编" << "\t" << "工资" << "\t" << "名字" << "\t" << "性别" << "\t" << "部门" << endl;


while((mysql_row = mysql_fetch_row(mysql_res)))
{
for (int i = 0; i < col ;i++)
{
cout << ( mysql_row[i] ? mysql_row[i] : "NULL") <<"\t";
}
cout << endl;
}


}


break;
}
}
}


void change()//根据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 = 1;


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


if (flag == 1)
{
cout <<"--------------------------"<< endl;
cout <<"|       1.修改年龄       |"<< endl;
cout <<"|       2.修改邮编       |"<< endl; 
cout <<"|       3.修改工资       |"<< endl;
cout <<"|       4.修改姓名       |"<< endl;
cout <<"|       5.修改性别       |"<< endl;
cout <<"|       6.修改部门       |"<< endl;
cout <<"|       7.返回菜单       |"<< endl;
cout <<"--------------------------"<< endl;


cout << endl;


do 
{
cout << "请输入你要选择的操作(1-7) :" << endl;
cin >> num;


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


switch(num)
{
case 1:
{
cout << "请输入你要修改的年龄:" << endl;
cin >> w_age;
char str[1024];
char *up_str = "update work.workers set age = %d where id = %d";
sprintf(str, up_str, w_age, w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << " 修改成功!" << endl;
}
break;
}
case 2:
{
cout << "请输入你要修改的邮编:" << endl;
cin >> w_postcode;
char str[1024];
char *up_str = "update work.workers set postcode = %d where id = %d";
sprintf(str, up_str, w_postcode, w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << "修改成功!" << endl;
}
break;
}
case 3:
{
cout << "请输入你要修改的工资:" << endl;
cin >> w_salary;
char str[1024];
char *up_str = "update work.workers set salary = %d where id = %d";
sprintf(str, up_str, w_salary, w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << "修改成功!" << endl;
}
break;
}
case 4:
{
cout << "请输入你要修改的姓名:" << endl;
cin >> w_name;
char str[1024];
char *up_str = "update work.workers set name = '%s' where id = %d";
sprintf(str, up_str, w_name.c_str(), w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << "修改成功!" << endl;
}
break;
}
case 5:
{
cout << "请输入你要修改的性别:" << endl;
cin >> w_sex;
char str[1024];
char *up_str = "update work.workers set sex = '%s' where id = %d";
sprintf(str, up_str, w_sex.c_str(), w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << "修改成功!" << endl;
}
break;
break;
}
case 6:
{
cout << "请输入你要修改的部门:" << endl;
cin >> w_department;
char str[1024];
char *up_str = "update work.workers set department = '%s' where id = %d";
sprintf(str, up_str, w_department.c_str(), w_id);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error : update" << endl;
}
else
{
cout << "修改成功!" << endl;
}
break;
break;
}
case 7:
{
return ;
break;
}
}
}


}


void sal_sort()//按照工资排序
{
char *sort_str = "select * from work.workers order by salary";
char str[1024];
sprintf(str, sort_str);


MYSQL_RES *mysql_res;
MYSQL_ROW mysql_row;


int ret = mysql_query(mysql, str);
if (0!= ret)
{
cout<<"error***"<<mysql_error(mysql)<< endl;
}
else
{
cout << "工号" << "\t" << "年龄" << "\t" << "邮编" << "\t" << "工资" << "\t" << "名字" << "\t" << "性别" << "\t" << "部门" << endl;
mysql_res = mysql_store_result(mysql);
//获取字段个数
int col = mysql_num_fields(mysql_res);
//cout << col << endl;


//获取返回结果的行数
int row = mysql_num_rows(mysql_res);

while((mysql_row = mysql_fetch_row(mysql_res)))
{
for (int i = 0; i < col ;i++)
{
cout << ( mysql_row[i] ? mysql_row[i] : "NULL") <<"\t";
}
cout << endl;
}


}


}


void visitworker()//职工信息显示
{


char *sel_str = "select * from work.workers";
char str[1024];
sprintf(str, sel_str);


int ret = mysql_query(mysql, str);
if (ret != 0)
{
cout << "error :" << endl;
}
else
{


MYSQL_RES *mysql_res;
MYSQL_ROW mysql_row;


cout << "工号" << "\t" << "年龄" << "\t" << "邮编" << "\t" << "工资" << "\t" << "名字" << "\t" << "性别" << "\t" << "部门" << endl;
mysql_res = mysql_store_result(mysql);
//获取字段个数
int col = mysql_num_fields(mysql_res);
//cout << col << endl;


//获取返回结果的行数
int row = mysql_num_rows(mysql_res);


while((mysql_row = mysql_fetch_row(mysql_res)))
{
for (int i = 0; i < col ;i++)
{
cout << ( mysql_row[i] ? mysql_row[i] : "NULL") <<"\t";
}
cout << endl;
}
}
}




void menu() //菜单
{
cout<<endl;


cout<<endl;


cout<<"***********************************************"<<endl;


cout<<"** **"<<endl;


cout<<"** 职工信息管理系统主菜单 **"<<endl;


cout<<"** **"<<endl;


cout<<"** 1.职工信息添加 **"<<endl;


cout<<"** 2.职工信息修改 **"<<endl;


cout<<"** 3.职工信息删除 **"<<endl;


cout<<"** 4.职工薪资排序 **"<<endl;


cout<<"** 5.职工信息查找 **"<<endl;


cout<<"** 6.职工信息显示 **"<<endl;


cout<<"** 0.退出 **"<<endl;


cout<<"** **"<<endl;


cout<<"***********************************************"<<endl;


cout<<endl;
}



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值