链表:
#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;
}