h>
#include〈stdlib。
h〉
#include
#include〈WinSock2。
h>
#include〈mysql.h〉
#defineADD1
#defineDELETE2
#defineBROWSE3
#defineUPDATE4
#defineCLOSE5
#defineLENGTH6
MYSQLmysql,*sock;//声明MySQL句柄
/*函数声明*/
voidConnector(char*,int);
voidmainMenu();
voidaddMenu();
voidsearchMenu();
voidupdate_bookinfo_menu();
voidsearch_by_bookName();
voidsearch_by_author();
voidadd_bookinfo();
voiddelete_bookinfo();
voidupdate_bookName();
voidupdate_author();
voidupdate_publisher();
voidupdate_time();
voidupdate_price();
/*程序入口*/
voidmain(){
mainMenu();//主菜单
//Connector(i_query);
}
/*主菜单*/
voidmainMenu(){
intorder;//用户输入指令
printf("\t\t====================================================\n\n");
printf(”\t\t\t\t欢迎进入图书管理系统\n\n”);
printf("\t\t\t1。
图书录入\t”);
printf("\t2。
图书查询\n\n”);
printf(”\t\t\t\t3。
退出图书管理系统\n\n");
printf(”\t\t====================================================\n”);
printf(”\n\n请输入指令所对应的序号后按下回车:
”);
scanf("%d”,&order);
switch(order){
case1:
addMenu();//进入图书录入子菜单
break;
case2:
searchMenu();//进入图书查询子菜单
break;
case3:
Connector("Close”,CLOSE);
exit
(1);
break;
default:
printf(”输入指令有误!
\n");
system("pause");
system(”cls");
mainMenu();
break;
}
}
/*图书录入子菜单*/
voidaddMenu(){
intorder;
system(”cls");
printf("\t\t====================================================\n\n");
printf("\t\t\t\t0.返回主菜单\n\n");
printf("\t\t\t1。
录入图书信息\t”);
printf("\t2.删除图书信息\n\n");
printf(”\t\t\t\t3.修改图书信息\n\n”);
printf(”\t\t====================================================\n");
printf("请输入指令序号:
\n”);
scanf("%d",&order);
switch(order){
case0:
system(”cls”);
mainMenu();
break;
case1:
add_bookinfo();
break;
case2:
delete_bookinfo();
break;
case3:
system(”cls”);
update_bookinfo_menu();
default:
printf("输入指令有误!
\n”);
system(”pause”);
system("cls");
addMenu();
break;
}
}
/*修改图书信息子菜单*/
voidupdate_bookinfo_menu(){
intorder;
printf(”\t\t====================================================\n\n");
printf("\t\t\t\t0.返回上级菜单\n\n");
printf("\t\t1.修改书名\t2.修改作者\t3。
修改出版社\n\n”);
printf("\t\t\t4。
修改出版时间\t5。
修改价格\n\n");
printf("\t\t====================================================\n\n");
printf("请输入指令序号:
\n");
scanf("%d”,&order);
switch(order){
case0:
system(”cls");
addMenu();
break;
case1:
update_bookName();
break;
case2:
update_author();
break;
case3:
update_publisher();
break;
case4:
update_time();
break;
case5:
update_price();
break;
default:
printf("输入指令有误!
\n");
system("pause”);
system(”cls");
update_bookinfo_menu();
break;
}
}
/*修改书名*/
voidupdate_bookName(){
chari_query[200]="updatebooksetbookName=\"";
chari_query_1[40]="\”whereid=\”";
charID[11];
charbookName[50];
printf("请输入图书ID:
\n");
scanf(”%s",&ID);
printf("请输入图书名称:
");
scanf(”%s”,&bookName);
Connector(strcat(i_query,strcat(bookName,strcat(i_query_1,strcat(ID,”\"")))),UPDATE);
}
/*修改作者*/
voidupdate_author(){
chari_query[200]="updatebooksetauthor=\”";
chari_query_1[40]="\"whereid=\””;
charID[11];
charauthor[50];
printf(”请输入图书ID:
\n”);
scanf(”%s",&ID);
printf(”请输入作者名称:
”);
scanf("%s”,&author);
Connector(strcat(i_query,strcat(author,strcat(i_query_1,strcat(ID,"\"")))),UPDATE);
}
/*修改出版社*/
voidupdate_publisher(){
chari_query[200]=”updatebooksetpublisher=\"”;
chari_query_1[40]=”\”whereid=\”";
charID[11];
charpublisher[50];
printf(”请输入图书ID:
\n");
scanf(”%s”,&ID);
printf("请输入出版社:
");
scanf("%s”,&publisher);
Connector(strcat(i_query,strcat(publisher,strcat(i_query_1,strcat(ID,”\”")))),UPDATE);
}
/*修改时间*/
voidupdate_time(){
chari_query[200]=”updatebooksettime=\"";
chari_query_1[40]="\”whereid=\"”;
charID[11];
chartime[50];
printf("请输入图书ID:
\n");
scanf("%s",&ID);
printf(”请输入出版时间:
”);
scanf("%s”,&time);
Connector(strcat(i_query,strcat(time,strcat(i_query_1,strcat(ID,"\””)))),UPDATE);
}
/*修改价格*/
voidupdate_price(){
chari_query[200]="updatebooksetprice=\"";
chari_query_1[40]=”\”whereid=\””;
charID[11];
charprice[50];
printf(”请输入图书ID:
\n”);
scanf("%s",&ID);
printf("请输入图书价格:
");
scanf("%s",&price);
Connector(strcat(i_query,strcat(price,strcat(i_query_1,strcat(ID,”\"")))),UPDATE);
}
/*添加图书信息*/
voidadd_bookinfo(){
chari_query[300]="insertintobook(bookName,author,publisher,time,price)values(\”";
charbookName[200];
charauthor[100];
charpublisher[100];
chartime[40];
charprice[10];
printf(”请输入书名:
\n");
scanf("%s",bookName);
printf("请输入作者:
\n”);
scanf("%s”,author);
printf(”请输入出版社:
\n”);
scanf("%s”,publisher);
printf("请输入出版时间:
\n”);
scanf(”%s”,time);
printf(”请输入价格:
\n”);
scanf("%s”,price);
Connector(strcat(strcat(strcat(strcat(strcat(strcat(strcat(strcat(strcat(strcat(i_query,bookName),”\",\””),author),”\”,\”"),publisher),”\”,\””),time),”\",\”"),price),”\")”),ADD);
}/*删除图书信息*/
voiddelete_bookinfo(){
chari_query[100]=”deletefrombookwhereid=\'”;
charinput[10];
printf(”请输入要删除图书的ID:
\n”);
scanf(”%s",&input);
Connector(strcat(strcat(i_query,input),”\'”),DELETE);
}
/*图书查询子菜单*/
voidsearchMenu(){
intorder;//用户输入指令
system(”cls”);
printf("\t\t====================================================\n\n");
printf(”\t\t\t\t0。
返回主菜单\n\n”);
printf("\t\t\t1。
按书名查询\t");
printf(”\t2。
按作者查询\n\n”);
printf("\t\t\t\t3。
浏览多有图书的信息\n\n");
printf(”\t\t====================================================\n");
printf(”请输入指令序号:
");
scanf(”%d",&order);
switch(order){
case0:
system(”cls”);
mainMenu();
break;
case1:
search_by_bookName();
break;
case2:
search_by_author();
break;
case3:
Connector("select*frombook",BROWSE);
break;
default:
printf(”输入指令有误!
\n");
system(”pause");
system(”cls");
searchMenu();
break;
}
}
/*按书名查找*/
voidsearch_by_bookName(){
chari_query[50]="select*frombookwherebookName=\"”;
charinput[20];
charquotation[]=”\"";
printf(”请输入书名:
”);
scanf("%s",&input);
strcat(i_query,input);
strcat(i_query,quotation);
Connector(i_query,BROWSE);
}
/*按作者名查找*/
voidsearch_by_author(){
chari_qurey[50]="select*frombookwhereauthor=\”";
charinput[20];
charquotation[]="\”";
printf(”请输入作者名:
");
scanf("%s",&input);
strcat(i_qurey,input);
strcat(i_qurey,quotation);
Connector(i_qurey,BROWSE);
}
/*连接数据库函数*/
voidConnector(char*i_query,intfunction){
constchar*host=”127。
0。
0.1";
constchar*user=”root”;
constchar*password="paw8zmre";
constchar*db="bookinfos”;
unsignedintport=3306;
constchar*unix_socket=NULL;
unsignedlongclient_flag=0;
MYSQL_RES*result;
MYSQL_ROWrow;
mysql_init(&mysql);
sock=mysql_real_connect(&mysql,host,user,password,db,port,unix_socket,client_flag);
mysql_set_character_set(&mysql,"GBK");
result=mysql_store_result(&mysql);
switch(function){
/*添加图书信息*/
caseADD:
mysql_query(sock,i_query);
printf("添加图书信息成功\n");
system("pause");
addMenu();
break;
/*删除图书信息*/
caseDELETE:
mysql_query(sock,i_query);
printf(”删除图书信息成功\n”);
system(”pause”);
addMenu();
break;
/*查询结果输出*/
caseBROWSE:
mysql_query(&mysql,i_query);
result=mysql_store_result(&mysql);
while((row=mysql_fetch_row(result))!
=NULL){
printf("ID:
\t%s\n",row[0]);
printf(”书名:
\t%s\n",row[1]);
printf(”作者:
\t%s\n”,row[2]);
printf("出版社:
\t%s\n”,row[3]);
printf(”出版时间:
%s\n",row[4]);
printf("价格:
\t%s\n",row[5]);
printf("\n");
}
system(”pause");
searchMenu();//回到查询图书信息子菜单
break;
caseUPDATE:
mysql_query(sock,i_query);
printf("更新成功\n");
system(”pause”);
system(”cls”);
update_bookinfo_menu();//回到更新图书信息子菜单
break;
caseCLOSE:
mysql_free_result(result);
mysql_close(sock);
break;
}
}
3.程序界面