鏈表:
#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;}
新聞熱點
疑難解答
圖片精選