MySQL职工管理系统
来源:互联网 发布:c语言运算符 编辑:程序博客网 时间:2024/04/27 22:24
#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;
}
#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;
}
0 0
- MySQL职工管理系统
- 职工管理系统
- 职工管理系统
- 职工综合信息管理系统
- 用链表写职工管理系统
- c++课程设计,职工管理系统
- 职工管理系统(C++链表,向量容器,MySQL三种方法)
- C++课程设计:职工综合信息管理系统
- C语言程序设计案例精编----职工管理系统
- 职工管理系统的开发(C++)
- 第五章:简单的职工管理系统
- C语言职工管理系统设计
- 职工管理系统(c++巩固)
- 职工管理系统(文件保存)
- 职工管理系统(list容器)
- 用vector容器写职工管理系统
- 职工管理系统 ——静态数组实现
- 职工管理系统——动态数组实现
- 运算符重载-编程题#2(C++程序设计第4周)
- 索引综述
- Bellman-Ford的队列优化
- UVA 10214 Trees in a Wood. (欧拉函数)
- Servlet
- MySQL职工管理系统
- python GUI编程(Tkinter)
- Head first python 之第一章初识python列表学习
- 深入理解原型对象和原型链
- leetcode 492 python
- android利用socket与java后台交互的设计与实现
- 亿级Web系统搭建——单机到分布式集群
- 如何用LaTeX写简历
- 蓝桥杯算法训练——操作格子(线段树+单点更新+区间求和+求最大值)